Repository: andrew-hoffman/halfnes Branch: master Commit: 16476263cd95 Files: 152 Total size: 2.2 MB Directory structure: gitextract_4vbeh24w/ ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── nbactions.xml ├── pom.xml └── src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── grapeshot/ │ │ └── halfnes/ │ │ ├── APU.java │ │ ├── CPU.java │ │ ├── CPURAM.java │ │ ├── FileUtils.java │ │ ├── HeadlessNES.java │ │ ├── JInputHelper.java │ │ ├── JavaFXNES.java │ │ ├── NES.java │ │ ├── PPU.java │ │ ├── PrefsSingleton.java │ │ ├── ROMLoader.java │ │ ├── Twiddler.form │ │ ├── Twiddler.java │ │ ├── audio/ │ │ │ ├── AudioOutInterface.java │ │ │ ├── CircularBuffer.java │ │ │ ├── ExpansionSoundChip.java │ │ │ ├── FDSSoundChip.java │ │ │ ├── FFT.java │ │ │ ├── MMC5SoundChip.java │ │ │ ├── Namco163SoundChip.java │ │ │ ├── NoiseTimer.java │ │ │ ├── Reverberator.java │ │ │ ├── SquareTimer.java │ │ │ ├── Sunsoft5BSoundChip.java │ │ │ ├── SwingAudioImpl.java │ │ │ ├── Timer.java │ │ │ ├── TriangleTimer.java │ │ │ ├── VRC6SoundChip.java │ │ │ └── VRC7SoundChip.java │ │ ├── cheats/ │ │ │ ├── ActionReplay.java │ │ │ ├── ActionReplayGui.form │ │ │ ├── ActionReplayGui.java │ │ │ └── Patch.java │ │ ├── halfNES.java │ │ ├── mappers/ │ │ │ ├── Action52Mapper.java │ │ │ ├── AfterburnerMapper.java │ │ │ ├── AnromMapper.java │ │ │ ├── BadMapperException.java │ │ │ ├── BnromMapper.java │ │ │ ├── CaltronMapper.java │ │ │ ├── CnromMapper.java │ │ │ ├── CodemastersMapper.java │ │ │ ├── ColorDreamsMapper.java │ │ │ ├── CrazyClimberMapper.java │ │ │ ├── CrimeBustersMapper.java │ │ │ ├── FME7Mapper.java │ │ │ ├── GnromMapper.java │ │ │ ├── IremH3001Mapper.java │ │ │ ├── MIMICMapper.java │ │ │ ├── MMC1Mapper.java │ │ │ ├── MMC2Mapper.java │ │ │ ├── MMC3Mapper.java │ │ │ ├── MMC4Mapper.java │ │ │ ├── MMC5Mapper.java │ │ │ ├── Mapper.java │ │ │ ├── Mapper107.java │ │ │ ├── Mapper112.java │ │ │ ├── Mapper119.java │ │ │ ├── Mapper140.java │ │ │ ├── Mapper15.java │ │ │ ├── Mapper152.java │ │ │ ├── Mapper182.java │ │ │ ├── Mapper185.java │ │ │ ├── Mapper200.java │ │ │ ├── Mapper201.java │ │ │ ├── Mapper203.java │ │ │ ├── Mapper212.java │ │ │ ├── Mapper213.java │ │ │ ├── Mapper214.java │ │ │ ├── Mapper225.java │ │ │ ├── Mapper226.java │ │ │ ├── Mapper229.java │ │ │ ├── Mapper231.java │ │ │ ├── Mapper240.java │ │ │ ├── Mapper241.java │ │ │ ├── Mapper242.java │ │ │ ├── Mapper244.java │ │ │ ├── Mapper246.java │ │ │ ├── Mapper255.java │ │ │ ├── Mapper31.java │ │ │ ├── Mapper33.java │ │ │ ├── Mapper36.java │ │ │ ├── Mapper47.java │ │ │ ├── Mapper48.java │ │ │ ├── Mapper58.java │ │ │ ├── Mapper60.java │ │ │ ├── Mapper61.java │ │ │ ├── Mapper62.java │ │ │ ├── Mapper70.java │ │ │ ├── Mapper72.java │ │ │ ├── Mapper76.java │ │ │ ├── Mapper78.java │ │ │ ├── Mapper86.java │ │ │ ├── Mapper87.java │ │ │ ├── Mapper92.java │ │ │ ├── Mapper94.java │ │ │ ├── Mapper97.java │ │ │ ├── NINA_001_Mapper.java │ │ │ ├── NINA_003_006_Mapper.java │ │ │ ├── NSFMapper.java │ │ │ ├── NSFPlayerFont.java │ │ │ ├── NamcoMapper.java │ │ │ ├── Namcot34x3Mapper.java │ │ │ ├── NromMapper.java │ │ │ ├── Sunsoft01Mapper.java │ │ │ ├── Sunsoft02Mapper.java │ │ │ ├── Sunsoft03Mapper.java │ │ │ ├── TengenRamboMapper.java │ │ │ ├── UnromMapper.java │ │ │ ├── VRC1Mapper.java │ │ │ ├── VRC2Mapper.java │ │ │ ├── VRC3Mapper.java │ │ │ ├── VRC4Mapper.java │ │ │ ├── VRC6Mapper.java │ │ │ └── VRC7Mapper.java │ │ ├── ui/ │ │ │ ├── ControllerImpl.java │ │ │ ├── ControllerInterface.java │ │ │ ├── ControlsDialog.form │ │ │ ├── ControlsDialog.java │ │ │ ├── DebugUI.java │ │ │ ├── DummyController.java │ │ │ ├── FrameLimiterImpl.java │ │ │ ├── FrameLimiterInterface.java │ │ │ ├── GUIInterface.java │ │ │ ├── HeadlessUI.java │ │ │ ├── NESFileFilter.java │ │ │ ├── OnScreenMenu.java │ │ │ ├── Oscilloscope.java │ │ │ ├── PreferencesDialog.form │ │ │ ├── PreferencesDialog.java │ │ │ ├── PuppetController.java │ │ │ └── SwingUI.java │ │ ├── utils.java │ │ └── video/ │ │ ├── AltNTSCRenderer.java │ │ ├── NTSCRenderer.java │ │ ├── NesColors.java │ │ ├── RGBRenderer.java │ │ └── Renderer.java │ ├── java-templates/ │ │ └── com/ │ │ └── grapeshot/ │ │ └── halfnes/ │ │ └── ProjectInfo.java │ └── resources/ │ ├── changelog.txt │ └── todo.txt └── test/ ├── java/ │ └── com/ │ └── grapeshot/ │ └── halfnes/ │ ├── JInputTest.java │ └── nestest/ │ └── NesTest.java └── resources/ └── nestest/ ├── compare.log ├── nestest.log └── nestest.nes ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ *.class # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.ear # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* nesdebug*.txt #unnecessary javadocs /lib/javadoc/** /lib/src/** /proguard4.7/examples/** /proguard4.7/src/** /build/** #include necessary jars for building !jarsplice-0.40-CLI-CUSTPATCH.jar !proguard*.jar !retrace.jar /dist/ /HalfNES.exe proguard4.7 /HalfNES.app /*.app /battletoads double dragon.txt /justbreedbug.txt /.idea /*.iml /target /.settings/ .classpath .project ================================================ FILE: .travis.yml ================================================ language: java jdk: - oraclejdk8 ================================================ FILE: LICENSE ================================================ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. {one line to give the program's name and a brief idea of what it does.} Copyright (C) {year} {name of author} This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: {project} Copyright (C) {year} {fullname} This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ================================================ FILE: README.md ================================================ [DOWNLOAD HERE](https://github.com/andrew-hoffman/halfnes/releases) halfnes ======= An accurate NES/Famicom emulator [![Join the chat at https://gitter.im/andrew-hoffman/halfnes](https://badges.gitter.im/Join%20Chat.svg)] (https://gitter.im/andrew-hoffman/halfnes?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Current Features ---------------- - Joystick support through both DirectInput and xInput (thanks Zlika) - Cross-Platform - Supports Mapper 0, 1, 2, 3, 4, 5, 7, 9, 10, 11, 15, 19, 21, 22, 23, 24, 25, 26, 31, 33, 34, 38, 41, 48, 58, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 78, 79, 86, 87, 88, 89, 92, 93, 94, 97, 107, 112, 113, 118, 119, 140, 152, 154, 180, 182, 185, 200, 201, 203, 206, 212, 213, 214, 225, 226, 229, 231, 240, 241, 242, 244, 246, 255 - Accurate sound core - Fast display code - Battery save support (No savestates! Come on. You can live without them.) - Remappable controls - Full screen mode - NTSC filter - NSF player Running HalfNES --------------- Download the latest version from https://github.com/andrew-hoffman/halfnes/releases . There are two versions of HalfNES included in this package: a Windows executable and a JAR file for other platforms. Use whichever one works best on your platform, but you will need Java 8 or newer installed no matter what file is to be used. Linux users will need to set execute permissions on the JAR. # Default Controls (See Preferences dialog to remap them) Controller 1: - D-Pad: Arrow Keys - B Button: Z - A Button: X - Select: Right Shift - Start: Enter # Controller 2: - D-Pad: WASD - B Button: F - A Button: G - Select: R - Start: T The keys mapped to the A and B buttons are used to change tracks in the NSF player. # Note on joystick support The first detected gamepad will be used as Controller 1, and the second will be Controller 2. Currently the buttons used are not configurable. (the controller needs to be plugged in before a game is loaded in order to be detected.) # Compatibility At this point in development, almost all US released games will start, but certain games still have graphics corruption or freezing problems. Please report any issues you encounter with the emulator or with games on the Github Issues page (https://github.com/andrew-hoffman/halfnes/issues). PAL games are now supported as well but are likely to have more issues. Please change the system type to PAL in preferences to run these. Building instructions --------------------- The project requires JInput library to build. The project comes with a Maven build script that will automatically download that and package the natives as a library. To use it you will need to install Maven, change to the project directory and run mvn install and that should produce an exe and a JAR with all the natives in the /target/ directory under the project root. Do NOT ask me where to find ROM files of commercial games. Some public domain homebrew ROMs are available at www.pdroms.de for testing purposes. A 2 ghz Athlon 64 or better is currently required to run all games full speed. (The NTSC filter requires MUCH more processing power, however.) Saved games are placed in the folder that the ROM file is in for now. If you are having problems getting the emulator to run, make sure to update your Java Runtime to the latest version. Go to http://java.com/en/download/manual.jsp and get the correct version for your OS. Special Thanks to the NESDev wiki and forum community for the invaluable NES hardware reference that made this project possible. ================================================ FILE: nbactions.xml ================================================ run jar process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec -classpath %classpath com.grapeshot.halfnes.halfNES java debug jar process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec -Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath com.grapeshot.halfnes.halfNES java true ================================================ FILE: pom.xml ================================================ 4.0.0 com.grapeshot halfnes 0.6.3-SNAPSHOT net.java.jinput jinput 2.0.6 org.testng testng 6.9.9 test org.mockito mockito-core 1.9.5 test UTF-8 UTF-8 org.apache.maven.plugins maven-compiler-plugin 3.3 1.8 1.8 org.apache.maven.plugins maven-source-plugin 2.2.1 attach-sources jar test-jar org.apache.maven.plugins maven-javadoc-plugin 2.9 attach-javadocs jar test-jar false false org.codehaus.mojo templating-maven-plugin 1.0.0 filter-src filter-sources halfNES An accurate NES/Famicom emulator https://github.com/andrew-hoffman/halfnes 2010 andrew-hoffman Andrew Hoffman Klaus Hauschild Stephen Chin Thomas Lorblanches Nawrot Krzystof https://github.com/andrew-hoffman/halfnes scm:git:https://github.com/andrew-hoffman/halfnes.git scm:git:https://github.com/andrew-hoffman/halfnes.git 3.0.5 make-binary package maven-assembly-plugin 2.6 make-assembly package single jar-with-dependencies com.grapeshot.halfnes.halfNES com.akathist.maven.plugins.launch4j launch4j-maven-plugin 1.7.8 package launch4j gui target/halfNES.exe target/${project.build.finalName}-jar-with-dependencies.jar 1.8.0 128 1024 ================================================ FILE: src/main/java/com/grapeshot/halfnes/APU.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes; import com.grapeshot.halfnes.ui.Oscilloscope; import com.grapeshot.halfnes.audio.*; import com.grapeshot.halfnes.mappers.Mapper; import java.util.ArrayList; public class APU { public int samplerate; private final Timer[] timers = {new SquareTimer(8, 2), new SquareTimer(8, 2), new TriangleTimer(), new NoiseTimer()}; private double cyclespersample; public final NES nes; CPU cpu; CPURAM cpuram; public int sprdma_count; private int apucycle = 0, remainder = 0; private int[] noiseperiod; // different for PAL private long accum = 0; private final ArrayList expnSound = new ArrayList<>(); private boolean soundFiltering; private final static int[] TNDLOOKUP = initTndLookup(), SQUARELOOKUP = initSquareLookup(); private int framectrreload; private int framectrdiv = 7456; private int dckiller = -6392; //removes icky power on thump private int lpaccum = 0; private boolean apuintflag = true, statusdmcint = false, statusframeint = false; private int framectr = 0, ctrmode = 4; private final boolean[] lenCtrEnable = {true, true, true, true}; private final int[] volume = new int[4]; //dmc instance variables private int[] dmcperiods; private int dmcrate = 0x36, dmcpos = 0, dmcshiftregister = 0, dmcbuffer = 0, dmcvalue = 0, dmcsamplelength = 1, dmcsamplesleft = 0, dmcstartaddr = 0xc000, dmcaddr = 0xc000, dmcbitsleft = 8; private boolean dmcsilence = true, dmcirq = false, dmcloop = false, dmcBufferEmpty = true; //length ctr instance variables private final int[] lengthctr = {0, 0, 0, 0}; private final static int[] lenctrload = {10, 254, 20, 2, 40, 4, 80, 6, 160, 8, 60, 10, 14, 12, 26, 14, 12, 16, 24, 18, 48, 20, 96, 22, 192, 24, 72, 26, 16, 28, 32, 30}; private final boolean[] lenctrHalt = {true, true, true, true}; //linear counter instance vars private int linearctr = 0; private int linctrreload = 0; private boolean linctrflag = false; //instance variables for envelope units private final int[] envelopeValue = {15, 15, 15, 15}; private final int[] envelopeCounter = {0, 0, 0, 0}; private final int[] envelopePos = {0, 0, 0, 0}; private final boolean[] envConstVolume = {true, true, true, true}; private final boolean[] envelopeStartFlag = {false, false, false, false}; //instance variables for sweep unit private final boolean[] sweepenable = {false, false}, sweepnegate = {false, false}, sweepsilence = {false, false}, sweepreload = {false, false}; private final int[] sweepperiod = {15, 15}, sweepshift = {0, 0}, sweeppos = {0, 0}; private int cyclesperframe; private AudioOutInterface ai; public APU(final NES nes, final CPU cpu, final CPURAM cpuram) { this.samplerate = 1; //just in case we can't init audio //then init the audio stream this.nes = nes; this.cpu = cpu; this.cpuram = cpuram; setParameters(); } private static int[] initTndLookup() { int[] lookup = new int[203]; for (int i = 0; i < lookup.length; ++i) { lookup[i] = (int) ((163.67 / (24329.0 / i + 100)) * 49151); } return lookup; } private static int[] initSquareLookup() { //fill square, triangle volume lookup tables int[] lookup = new int[31]; for (int i = 0; i < lookup.length; ++i) { lookup[i] = (int) ((95.52 / (8128.0 / i + 100)) * 49151); } return lookup; } public final synchronized void setParameters() { Mapper.TVType tvtype = cpuram.mapper.getTVType(); soundFiltering = PrefsSingleton.get().getBoolean("soundFiltering", true); samplerate = PrefsSingleton.get().getInt("sampleRate", 44100); if (ai != null) { ai.destroy(); } ai = new SwingAudioImpl(nes, samplerate, tvtype); if (PrefsSingleton.get().getBoolean("showScope", false)) { ai = new Oscilloscope(ai); } //pick the appropriate pitches and lengths for NTSC or PAL switch (tvtype) { case NTSC: default: this.dmcperiods = new int[]{428, 380, 340, 320, 286, 254, 226, 214, 190, 160, 142, 128, 106, 84, 72, 54}; this.noiseperiod = new int[]{4, 8, 16, 32, 64, 96, 128, 160, 202, 254, 380, 508, 762, 1016, 2034, 4068}; this.framectrreload = 7456; cyclespersample = 1789773.0 / samplerate; cyclesperframe = 29781; break; case DENDY: this.dmcperiods = new int[]{428, 380, 340, 320, 286, 254, 226, 214, 190, 160, 142, 128, 106, 84, 72, 54}; this.noiseperiod = new int[]{4, 8, 16, 32, 64, 96, 128, 160, 202, 254, 380, 508, 762, 1016, 2034, 4068}; this.framectrreload = 7456; cyclespersample = 1773448.0 / samplerate; cyclesperframe = 35469; break; case PAL: cyclespersample = 1662607.0 / samplerate; this.dmcperiods = new int[]{398, 354, 316, 298, 276, 236, 210, 198, 176, 148, 132, 118, 98, 78, 66, 50}; this.noiseperiod = new int[]{4, 8, 14, 30, 60, 88, 118, 148, 188, 236, 354, 472, 708, 944, 1890, 3778}; this.framectrreload = 8312; cyclesperframe = 33252; break; } // ai = new Reverberator(ai, 2,0.7,0.8,0.99); // ai = new Reverberator(ai, 243,0.5,0.7,0.99); // ai = new Reverberator(ai, 4001,0.3,0.5,0.99); // ai = new Reverberator(ai, 20382,0.2,0.3,0.9); } public boolean bufferHasLessThan(int samples) { return ai.bufferHasLessThan(samples); } public final int read(final int addr) { updateto((int) cpu.clocks); switch (addr) { case 0x15: //returns channel status //for future ref: NEED to put those ternary operators in parentheses! //otherwise order of operations does the wrong thing. final int returnval = ((lengthctr[0] > 0) ? 1 : 0) | ((lengthctr[1] > 0) ? 2 : 0) | ((lengthctr[2] > 0) ? 4 : 0) | ((lengthctr[3] > 0) ? 8 : 0) | ((dmcsamplesleft > 0) ? 16 : 0) | (statusframeint ? 64 : 0) | (statusdmcint ? 128 : 0); if (statusframeint) { //System.err.println("Frame interrupt ack at " + cpu.cycles); --cpu.interrupt; statusframeint = false; } //System.err.println("*" + utils.hex(returnval)); return returnval; case 0x16: nes.getcontroller1().strobe(); return nes.getcontroller1().getbyte() | 0x40; case 0x17: nes.getcontroller2().strobe(); return nes.getcontroller2().getbyte() | 0x40; default: return 0x40; //open bus } } final private static int[][] DUTYLOOKUP = { {0, 1, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 0, 0, 0}, {1, 0, 0, 1, 1, 1, 1, 1} }; public void addExpnSound(ExpansionSoundChip chip) { expnSound.add(chip); } public void destroy() { ai.destroy(); } public void pause() { ai.pause(); } public void resume() { ai.resume(); } public final void write(final int reg, final int data) { //This is how values written to any of the APU's memory //mapped registers change the state of the system. updateto((int) cpu.clocks - 1); //System.err.println("Wrote " + utils.hex(data) + " to " + utils.hex(reg) + " @ cycle " + cpu.cycles); switch (reg) { case 0x0: //length counter 1 halt lenctrHalt[0] = ((data & (utils.BIT5)) != 0); // pulse 1 duty cycle timers[0].setduty(DUTYLOOKUP[data >> 6]); // and envelope envConstVolume[0] = ((data & (utils.BIT4)) != 0); envelopeValue[0] = data & 15; //setvolumes(); break; case 0x1: //pulse 1 sweep setup //sweep enabled sweepenable[0] = ((data & (utils.BIT7)) != 0); //sweep divider period sweepperiod[0] = (data >> 4) & 7; //sweep negate flag sweepnegate[0] = ((data & (utils.BIT3)) != 0); //sweep shift count sweepshift[0] = (data & 7); sweepreload[0] = true; break; case 0x2: // pulse 1 timer low bit timers[0].setperiod((timers[0].getperiod() & 0xfe00) + (data << 1)); break; case 0x3: // length counter load, timer 1 high bits if (lenCtrEnable[0]) { lengthctr[0] = lenctrload[data >> 3]; } timers[0].setperiod((timers[0].getperiod() & 0x1ff) + ((data & 7) << 9)); // sequencer restarted timers[0].reset(); //envelope also restarted envelopeStartFlag[0] = true; break; case 0x4: //length counter 2 halt lenctrHalt[1] = ((data & (utils.BIT5)) != 0); // pulse 2 duty cycle timers[1].setduty(DUTYLOOKUP[data >> 6]); // and envelope envConstVolume[1] = ((data & (utils.BIT4)) != 0); envelopeValue[1] = data & 15; //setvolumes(); break; case 0x5: //pulse 2 sweep setup //sweep enabled sweepenable[1] = ((data & (utils.BIT7)) != 0); //sweep divider period sweepperiod[1] = (data >> 4) & 7; //sweep negate flag sweepnegate[1] = ((data & (utils.BIT3)) != 0); //sweep shift count sweepshift[1] = (data & 7); sweepreload[1] = true; break; case 0x6: // pulse 2 timer low bit timers[1].setperiod((timers[1].getperiod() & 0xfe00) + (data << 1)); break; case 0x7: if (lenCtrEnable[1]) { lengthctr[1] = lenctrload[data >> 3]; } timers[1].setperiod((timers[1].getperiod() & 0x1ff) + ((data & 7) << 9)); // sequencer restarted timers[1].reset(); //envelope also restarted envelopeStartFlag[1] = true; break; case 0x8: //triangle linear counter load linctrreload = data & 0x7f; //and length counter halt lenctrHalt[2] = ((data & (utils.BIT7)) != 0); break; case 0x9: break; case 0xA: // triangle low bits of timer timers[2].setperiod((((timers[2].getperiod() * 1) & 0xff00) + data)); break; case 0xB: // triangle length counter load // and high bits of timer if (lenCtrEnable[2]) { lengthctr[2] = lenctrload[data >> 3]; } timers[2].setperiod((((timers[2].getperiod() * 1) & 0xff) + ((data & 7) << 8))); linctrflag = true; break; case 0xC: //noise halt and envelope lenctrHalt[3] = ((data & (utils.BIT5)) != 0); envConstVolume[3] = ((data & (utils.BIT4)) != 0); envelopeValue[3] = data & 0xf; //setvolumes(); break; case 0xD: break; case 0xE: timers[3].setduty(((data & (utils.BIT7)) != 0) ? 6 : 1); timers[3].setperiod(noiseperiod[data & 15]); break; case 0xF: //noise length counter load, envelope restart if (lenCtrEnable[3]) { lengthctr[3] = lenctrload[data >> 3]; } envelopeStartFlag[3] = true; break; case 0x10: dmcirq = ((data & (utils.BIT7)) != 0); dmcloop = ((data & (utils.BIT6)) != 0); dmcrate = dmcperiods[data & 0xf]; if (!dmcirq && statusdmcint) { --cpu.interrupt; statusdmcint = false; } //System.err.println(dmcirq ? "dmc irq on" : "dmc irq off"); break; case 0x11: dmcvalue = data & 0x7f; break; case 0x12: dmcstartaddr = (data << 6) + 0xc000; break; case 0x13: dmcsamplelength = (data << 4) + 1; break; case 0x14: //sprite dma for (int i = 0; i < 256; ++i) { cpuram.write(0x2004, cpuram.read((data << 8) + i)); } //account for time stolen from cpu sprdma_count = 2; break; case 0x15: //status register // counter enable(silence channel when bit is off) for (int i = 0; i < 4; ++i) { lenCtrEnable[i] = ((data & (1 << i)) != 0); //THIS was the channels not cutting off bug! If you toggle a channel's //status on and off very quickly then the length counter should //IMMEDIATELY be forced to zero. if (!lenCtrEnable[i]) { lengthctr[i] = 0; } } if (((data & (utils.BIT4)) != 0)) { if (dmcsamplesleft == 0) { restartdmc(); } } else { dmcsamplesleft = 0; dmcsilence = true; } if (statusdmcint) { --cpu.interrupt; statusdmcint = false; } break; case 0x16: // latch controller 1 + 2 nes.getcontroller1().output(((data & (utils.BIT0)) != 0)); nes.getcontroller2().output(((data & (utils.BIT0)) != 0)); break; case 0x17: ctrmode = ((data & (utils.BIT7)) != 0) ? 5 : 4; //System.err.println("reset " + ctrmode + ' ' + cpu.cycles); apuintflag = ((data & (utils.BIT6)) != 0); //set is no interrupt, clear is an interrupt framectr = 0; framectrdiv = framectrreload + 8; //Why +8? if (apuintflag && statusframeint) { statusframeint = false; --cpu.interrupt; //System.err.println("Frame interrupt off at " + cpu.cycles); } if (ctrmode == 5) { //everything frame counter runs is clocked no matter what setenvelope(); setlinctr(); setlength(); setsweep(); } break; default: break; } } public final void updateto(final int cpucycle) { //still have to run this even if sound is disabled, some games rely on DMC IRQ etc. if (soundFiltering) { //linear sampling code //should really be a FIR filter + decimator instead //but I don't have the DSP experience to design something like that //that would be fast enough to work / not require calculating every sample //this works well enough at eliminating aliasing anyway. while (apucycle < cpucycle) { ++remainder; clockdmc(); if (--framectrdiv <= 0) { framectrdiv = framectrreload; clockframecounter(); } timers[0].clock(); timers[1].clock(); if (lengthctr[2] > 0 && linearctr > 0) { timers[2].clock(); } timers[3].clock(); if (!expnSound.isEmpty()) { for (ExpansionSoundChip c : expnSound) { c.clock(1); } } accum += getOutputLevel(); if ((apucycle % cyclespersample) < 1) { //not quite right - there's a non-integer # cycles per sample. ai.outputSample(lowpass_filter(highpass_filter((int) (accum / remainder)))); remainder = 0; accum = 0; } ++apucycle; } } else { //point sampling code while (apucycle < cpucycle) { ++remainder; clockdmc(); if (--framectrdiv <= 0) { framectrdiv = framectrreload; clockframecounter(); } if ((apucycle % cyclespersample) < 1) { //not quite right - there's a non-integer # cycles per sample. timers[0].clock(remainder); timers[1].clock(remainder); if (lengthctr[2] > 0 && linearctr > 0) { timers[2].clock(remainder); } timers[3].clock(remainder); int mixvol = getOutputLevel(); if (!expnSound.isEmpty()) { for (ExpansionSoundChip c : expnSound) { c.clock(remainder); } } remainder = 0; ai.outputSample(lowpass_filter(highpass_filter(mixvol))); } ++apucycle; } } } private int getOutputLevel() { int vol; vol = SQUARELOOKUP[volume[0] * timers[0].getval() + volume[1] * timers[1].getval()]; vol += TNDLOOKUP[3 * timers[2].getval() + 2 * volume[3] * timers[3].getval() + dmcvalue]; if (!expnSound.isEmpty()) { vol *= 0.8; for (ExpansionSoundChip c : expnSound) { vol += c.getval(); } } return vol; //as usual, lack of unsigned types causes unending pain. } private int highpass_filter(int sample) { //for killing the dc in the signal sample -= dckiller; dckiller += sample >> 8;//the actual high pass part dckiller += (sample > 0 ? 1 : -1);//guarantees the signal decays to exactly zero return sample; } private int lowpass_filter(int sample) { return lpaccum += 0.5 * (sample - lpaccum); //y = y + a * (x - y) } public final void finishframe() { updateto(cyclesperframe); apucycle = 0; ai.flushFrame(nes.isFrameLimiterOn()); } private void clockframecounter() { //System.err.println("frame ctr clock " + framectr + ' ' + cpu.cycles); //should be ~4x a frame, 240 Hz //but the problem is this isn't exactly related to the video signal, //it's a completely separate timer, so the phase can shift in relation to the //video signal. also in the current implementation APU interrupts can only be fired when //an APU register is written/read from, or @ end of frame. So both of those need work if ((ctrmode == 4) || (ctrmode == 5 && (framectr != 3))) { setenvelope(); setlinctr(); } if ((ctrmode == 4 && (framectr == 1 || framectr == 3)) || (ctrmode == 5 && (framectr == 1 || framectr == 4))) { setlength(); setsweep(); } if (!apuintflag && (framectr == 3) && (ctrmode == 4) && !statusframeint) { ++cpu.interrupt; //System.err.println("frame interrupt set at " + cpu.cycles); statusframeint = true; } ++framectr; framectr %= ctrmode; setvolumes(); } private void setvolumes() { volume[0] = ((lengthctr[0] <= 0 || sweepsilence[0]) ? 0 : (((envConstVolume[0]) ? envelopeValue[0] : envelopeCounter[0]))); volume[1] = ((lengthctr[1] <= 0 || sweepsilence[1]) ? 0 : (((envConstVolume[1]) ? envelopeValue[1] : envelopeCounter[1]))); volume[3] = ((lengthctr[3] <= 0) ? 0 : ((envConstVolume[3]) ? envelopeValue[3] : envelopeCounter[3])); //System.err.println("setvolumes " + volume[1]); } private void clockdmc() { if (dmcBufferEmpty && dmcsamplesleft > 0) { dmcfillbuffer(); } dmcpos = (dmcpos + 1) % dmcrate; if (dmcpos == 0) { if (dmcbitsleft <= 0) { dmcbitsleft = 8; if (dmcBufferEmpty) { dmcsilence = true; } else { dmcsilence = false; dmcshiftregister = dmcbuffer; dmcBufferEmpty = true; } } if (!dmcsilence) { dmcvalue += (((dmcshiftregister & (utils.BIT0)) != 0) ? 2 : -2); //DMC output register doesn't wrap around if (dmcvalue > 0x7f) { dmcvalue = 0x7f; } if (dmcvalue < 0) { dmcvalue = 0; } dmcshiftregister >>= 1; --dmcbitsleft; } } } private void dmcfillbuffer() { if (dmcsamplesleft > 0) { dmcbuffer = cpuram.read(dmcaddr++); dmcBufferEmpty = false; cpu.stealcycles(4); //DPCM Does steal cpu cycles - this should actually vary between 1-4 //can't do this properly without a cycle accurate cpu/ppu if (dmcaddr > 0xffff) { dmcaddr = 0x8000; } --dmcsamplesleft; if (dmcsamplesleft == 0) { if (dmcloop) { restartdmc(); } else if (dmcirq && !statusdmcint) { //this is supposed to fire after we've just READ the //last byte, not when coming back AFTER reading the last byte //and finding that there are no more bytes left to read. //that meant all dmc timing was too long. ++cpu.interrupt; statusdmcint = true; //System.err.println("dmc irq fire"); } } } else { dmcsilence = true; } } private void restartdmc() { dmcaddr = dmcstartaddr; dmcsamplesleft = dmcsamplelength; dmcsilence = false; } private void setlength() { for (int i = 0; i < 4; ++i) { if (!lenctrHalt[i] && lengthctr[i] > 0) { --lengthctr[i]; if (lengthctr[i] == 0) { setvolumes(); } } } } private void setlinctr() { if (linctrflag) { linearctr = linctrreload; } else if (linearctr > 0) { --linearctr; } if (!lenctrHalt[2]) { linctrflag = false; } } private void setenvelope() { //System.err.println("envelope"); for (int i = 0; i < 4; ++i) { if (envelopeStartFlag[i]) { envelopeStartFlag[i] = false; envelopePos[i] = envelopeValue[i] + 1; envelopeCounter[i] = 15; } else { --envelopePos[i]; } if (envelopePos[i] <= 0) { envelopePos[i] = envelopeValue[i] + 1; if (envelopeCounter[i] > 0) { --envelopeCounter[i]; } else if (lenctrHalt[i] && envelopeCounter[i] <= 0) { envelopeCounter[i] = 15; } } } } private void setsweep() { //System.err.println("sweep"); for (int i = 0; i < 2; ++i) { sweepsilence[i] = false; if (sweepreload[i]) { sweepreload[i] = false; sweeppos[i] = sweepperiod[i]; } ++sweeppos[i]; final int rawperiod = (timers[i].getperiod() >> 1); int shiftedperiod = (rawperiod >> sweepshift[i]); if (sweepnegate[i]) { //invert bits of period //add 1 on second channel only shiftedperiod = -shiftedperiod + i; } shiftedperiod += rawperiod; if ((rawperiod < 8) || shiftedperiod > 0x7ff) { // silence channel sweepsilence[i] = true; } else if (sweepenable[i] && (sweepshift[i] != 0) && lengthctr[i] > 0 && sweeppos[i] > sweepperiod[i]) { sweeppos[i] = 0; timers[i].setperiod(shiftedperiod << 1); } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/CPU.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.nio.charset.StandardCharsets; public final class CPU { private final CPURAM ram; private int cycles; //increment to steal cycles from cpu public int clocks; //use for synchronizing with cpu private int A, X, Y, S; // registers public int PC; private boolean carryFlag = false, zeroFlag = false, interruptsDisabled = true, decimalModeFlag = false; private boolean overflowFlag = false, negativeFlag = false, previntflag = false, nmi = false, prevnmi = false, logging = false; private int pb = 0;// set to 1 if access crosses page boundary public int interrupt = 0; public boolean nmiNext = false, idle = false; private final static boolean decimalModeEnable = false, idleLoopSkip = true; //NES 6502 is missing decimal mode, but most other 6502s have it private boolean interruptDelay = false; private final static String[] opcodes = opcodes(); //Battletoads Hack until I get around to making a truly cycle accurate CPU core. //Delays the write of a STA, STX, or STY until the first cycle of the NEXT instruction //which is enough to move it a few PPU clocks after the scroll is changed //making sure that Battletoads gets its sprite 0 hit. final private static boolean battletoadsHackOn = true; private boolean dirtyBattletoadsHack = false; private int hackAddr = 0; private int hackData = 0; private static enum dummy { ONCARRY, ALWAYS; //type of dummy read } OutputStreamWriter w; //debug log writer public CPU(final CPURAM cpuram) { ram = cpuram; //ram is the ONLY thing the cpu tries to talk to. if (logging) { startLog(); } } public void startLog() { logging = true; try { w = new OutputStreamWriter(new FileOutputStream(new File("nesdebug.txt")), StandardCharsets.UTF_8); } catch (IOException e) { System.err.println("Cannot create debug log" + e.getLocalizedMessage()); } } public void startLog(String path) { logging = true; try { w = new OutputStreamWriter(new FileOutputStream(new File(path)), StandardCharsets.UTF_8); } catch (IOException e) { System.err.println("Cannot create debug log" + e.getLocalizedMessage()); } } public void stopLog() { logging = false; flushLog(); } public void init() { init(null); } public void init(Integer initialPC) {// different than reset // puts RAM in NES poweron state for (int i = 0; i < 0x800; ++i) { ram.write(i, 0xFF); } //poweron RAM values from one specific console (nesdev wiki pre-2015) ram.write(0x0008, 0xF7); ram.write(0x0009, 0xEF); ram.write(0x000A, 0xDF); ram.write(0x000F, 0xBF); for (int i = 0x4000; i <= 0x400F; ++i) { ram.write(i, 0x00); } ram.write(0x4015, 0x00); ram.write(0x4017, 0x00); //clocks = 27393; //correct for position we start vblank in A = 0; X = 0; Y = 0; S = 0xFD; if (initialPC == null) { PC = ram.read(0xFFFD) * 256 + ram.read(0xFFFC); } else { PC = initialPC; } } public void reset() { PC = ram.read(0xFFFD) * 256 + ram.read(0xFFFC); ram.write(0x4015, 0); ram.write(0x4017, ram.read(0x4017)); //disable audio on reset S -= 3; S &= 0xff; interruptsDisabled = true; } public void modcycles() { //System.err.println(clocks); clocks = 0; } public void stealcycles(int cyclestosteal) { cycles += cyclestosteal; log("**STEAL " + cyclestosteal + "**"); } public final void runcycle(final int scanline, final int pixel) { ram.read(0x4000); //attempt to sync the APU every cycle and make dmc irqs work properly, which they still don't. Feh. ++clocks; //guard against overflows // if ((A & 0xff) != A) { // System.err.println("houston we have A problem"); // } // if ((X & 0xff) != X) { // System.err.println("houston we have X problem"); // } // if ((Y & 0xff) != Y) { // System.err.println("houston we have Y problem"); // } // if ((S & 0xff) != S) { // System.err.println("houston we have S problem"); // } // if ((PC & 0xffff) != PC) { // System.err.println("houston we have PC problem"); // } if (ram.apu.sprdma_count > 0) { ram.apu.sprdma_count--; if (ram.apu.sprdma_count == 0) { cycles += 513; } //this doesn't look right any more //who patched this in and when? (wasn't me, it was for some bug...) } if (dirtyBattletoadsHack && cycles == 1) { ram.write(hackAddr, hackData); dirtyBattletoadsHack = false; } if (cycles-- > 0) { //count down cycles until there is work to do again return; } //now we're at the start of a new instruction //handle nmi requests (NMI line is edge sensitive not level sensitive) if (nmiNext) { nmi(); nmiNext = false; } if (nmi && !prevnmi) {//only trigger on positive rising edge of NMI nmiNext = true; } prevnmi = nmi; if (interrupt > 0) { if (!interruptsDisabled && !interruptDelay) { interrupt(); cycles += 7; return; } else if (interruptDelay) { interruptDelay = false; if (!previntflag) { interrupt(); cycles += 7; return; } } } else { interruptDelay = false; } //Idle loop skipping if (idle && idleLoopSkip) { cycles += 3; //not accurate should depend on type of instr we skip decoding return; } pb = 0; final int instr = ram.read(PC++); //note: if (logging) { //that looks redundant, but this is a really expensive operation to create the log string //also, logging *might* trigger side effects if logging while executing //code from i/o registers (reading twice). So we don't want to do it always. //TODO: Optimize this! It gets called a LOT //and slows logging to 16 fps //even when not actually writing anything String op = String.format(opcodes[instr], ram.read(PC), ram.read(PC + 1), PC + (byte) (ram.read(PC)) + 1); log(utils.hex(PC - 1) + " " + utils.hex(instr) + String.format(" %-14s ", op) + status() + " CYC:" + pixel + " SL:" + scanline + "\n"); } if (cycles == 0) { flushLog(); } switch (instr) { // ADC case 0x69: adc(imm()); cycles += 2; break; case 0x65: adc(zpg()); cycles += 3; break; case 0x75: adc(zpg(X)); cycles += 4; break; case 0x6d: adc(abs()); cycles += 4; break; case 0x7d: adc(abs(X, dummy.ONCARRY)); cycles += 4 + pb; break; case 0x79: adc(abs(Y, dummy.ONCARRY)); cycles += 4 + pb; break; case 0x61: adc(indX()); cycles += 6; break; case 0x71: adc(indY(dummy.ONCARRY)); cycles += 5 + pb; break; // AHX (unofficial) case 0x93: ahx(indY(dummy.ALWAYS)); cycles += 6; break; case 0x9f: ahx(abs(Y, dummy.ALWAYS)); cycles += 5; break; // ALR (unofficial) case 0x4b: alr(imm()); cycles += 2; break; // ANC (unofficial) case 0x0b: anc(imm()); cycles += 2; break; case 0x2b: anc(imm()); cycles += 2; break; // AND case 0x29: and(imm()); cycles += 2; break; case 0x25: and(zpg()); cycles += 3; break; case 0x35: and(zpg(X)); cycles += 4; break; case 0x2D: and(abs()); cycles += 4; break; case 0x3D: and(abs(X, dummy.ONCARRY)); cycles += 4 + pb; break; case 0x39: and(abs(Y, dummy.ONCARRY)); cycles += 4 + pb; break; case 0x21: and(indX()); cycles += 6; break; case 0x31: and(indY(dummy.ONCARRY)); cycles += 5 + pb; break; // ARR (unofficial) case 0x6b: arr(imm()); cycles += 2; break; // ASL case 0x0A: aslA(); cycles += 2; break; case 0x06: asl(zpg()); cycles += 5; break; case 0x16: asl(zpg(X)); cycles += 6; break; case 0x0e: asl(abs()); cycles += 6; break; case 0x1e: asl(abs(X, dummy.ALWAYS)); cycles += 7; break; // AXS (unofficial) case 0xcb: axs(imm()); cycles += 2; break; // BIT case 0x24: bit(zpg()); cycles += 3; break; case 0x2c: bit(abs()); cycles += 4; break; // Branches: every branch uses rel. addressing case 0x10: branch(!negativeFlag); cycles += 2 + pb; break; case 0x30: branch(negativeFlag); cycles += 2 + pb; break; case 0x50: branch(!overflowFlag); cycles += 2 + pb; break; case 0x70: branch(overflowFlag); cycles += 2 + pb; break; case 0x90: branch(!carryFlag); cycles += 2 + pb; break; case 0xB0: branch(carryFlag); cycles += 2 + pb; break; case 0xD0: branch(!zeroFlag); cycles += 2 + pb; break; case 0xF0: branch(zeroFlag); cycles += 2 + pb; break; // BRK case 0x00: //System.err.println("Hey! A break!"); breakinterrupt(); cycles += 7; break; // CMP case 0xc9: cmp(A, imm()); cycles += 2; break; case 0xc5: cmp(A, zpg()); cycles += 3; break; case 0xd5: cmp(A, zpg(X)); cycles += 4; break; case 0xcd: cmp(A, abs()); cycles += 4; break; case 0xdd: cmp(A, abs(X, dummy.ONCARRY)); cycles += 4 + pb; break; case 0xd9: cmp(A, abs(Y, dummy.ONCARRY)); cycles += 4 + pb; break; case 0xc1: cmp(A, indX()); cycles += 6; break; case 0xd1: cmp(A, indY(dummy.ONCARRY)); cycles += 5 + pb; break; // CPX case 0xe0: cmp(X, imm()); cycles += 2; break; case 0xe4: cmp(X, zpg()); cycles += 3; break; case 0xec: cmp(X, abs()); cycles += 4; break; // CPY case 0xc0: cmp(Y, imm()); cycles += 2; break; case 0xc4: cmp(Y, zpg()); cycles += 3; break; case 0xcc: cmp(Y, abs()); cycles += 4; break; // DEC case 0xc6: dec(zpg()); cycles += 5; break; case 0xd6: dec(zpg(X)); cycles += 6; break; case 0xce: dec(abs()); cycles += 6; break; case 0xde: dec(abs(X, dummy.ALWAYS)); cycles += 7; break; // DCP (unofficial) case 0xc3: dcp(A, indX()); cycles += 8; break; case 0xd3: dcp(A, indY(dummy.ALWAYS)); cycles += 8; break; case 0xc7: dcp(A, zpg()); cycles += 5; break; case 0xd7: dcp(A, zpg(X)); cycles += 6; break; case 0xdb: dcp(A, abs(Y, dummy.ALWAYS)); cycles += 7; break; case 0xcf: dcp(A, abs()); cycles += 6; break; case 0xdf: dcp(A, abs(X, dummy.ALWAYS)); cycles += 7; break; // EOR case 0x49: eor(imm()); cycles += 2; break; case 0x45: eor(zpg()); cycles += 3; break; case 0x55: eor(zpg(X)); cycles += 4; break; case 0x4d: eor(abs()); cycles += 4; break; case 0x5d: eor(abs(X, dummy.ONCARRY)); cycles += 4 + pb; break; case 0x59: eor(abs(Y, dummy.ONCARRY)); cycles += 4 + pb; break; case 0x41: eor(indX()); cycles += 6; break; case 0x51: eor(indY(dummy.ONCARRY)); cycles += 5 + pb; break; // Flag set/clear case 0x18: carryFlag = false; cycles += 2; break; case 0x38: carryFlag = true; cycles += 2; break; case 0x58: //cli //interrupts shouldn't fire for 1 cycle after cli delayInterrupt(); interruptsDisabled = false; cycles += 2; break; case 0x78: //sei delayInterrupt(); interruptsDisabled = true; cycles += 2; break; case 0xb8: overflowFlag = false; cycles += 2; break; case 0xd8: decimalModeFlag = false; cycles += 2; break;// decimal mode doesnt case 0xf8: decimalModeFlag = true; cycles += 2; break;// do anything on NES // INC case 0xe6: inc(zpg()); cycles += 5; break; case 0xf6: inc(zpg(X)); cycles += 6; break; case 0xee: inc(abs()); cycles += 6; break; case 0xfe: inc(abs(X, dummy.ALWAYS)); cycles += 7; break; // ISC (unofficial) case 0xe3: isc(indX()); cycles += 8; break; case 0xf3: isc(indY(dummy.ALWAYS)); cycles += 8; break; case 0xe7: isc(zpg()); cycles += 5; break; case 0xf7: isc(zpg(X)); cycles += 6; break; case 0xfb: isc(abs(Y, dummy.ALWAYS)); cycles += 7; break; case 0xef: isc(abs()); cycles += 6; break; case 0xff: isc(abs(X, dummy.ALWAYS)); cycles += 7; break; // JMP case 0x4c: int tempe = PC; PC = abs(); if (PC == (tempe - 1)) { idle = true; } cycles += 3; break; case 0x6c: int tempf = PC; PC = ind(); if (PC == (tempf - 1)) { idle = true; } cycles += 5; break; // JSR case 0x20: jsr(abs()); cycles += 6; break; // KIL (unofficial) case 0x02: case 0x12: case 0x22: case 0x32: case 0x42: case 0x52: case 0x62: case 0x72: case 0x92: case 0xb2: case 0xd2: case 0xf2: System.err.println("KIL - CPU locked"); flushLog(); ram.apu.nes.runEmulation = false; break; // LAS (unofficial) case 0xbb: las(abs(Y, dummy.ONCARRY)); cycles += 4 + pb; break; // LAX (unofficial) case 0xa3: lax(indX()); cycles += 6; break; case 0xb3: lax(indY(dummy.ONCARRY)); cycles += 5 + pb; break; case 0xa7: lax(zpg()); cycles += 3; break; case 0xb7: lax(zpg(Y)); cycles += 4; break; case 0xab: lax(imm()); cycles += 2; break; case 0xaf: lax(abs()); cycles += 4; break; case 0xbf: lax(abs(Y, dummy.ONCARRY)); cycles += 4 + pb; break; // LDA case 0xa9: lda(imm()); cycles += 2; break; case 0xa5: lda(zpg()); cycles += 3; break; case 0xb5: lda(zpg(X)); cycles += 4; break; case 0xad: lda(abs()); cycles += 4; break; case 0xbd: lda(abs(X, dummy.ONCARRY)); cycles += 4 + pb; break; case 0xb9: lda(abs(Y, dummy.ONCARRY)); cycles += 4 + pb; break; case 0xa1: lda(indX()); cycles += 6; break; case 0xb1: lda(indY(dummy.ONCARRY)); cycles += 5 + pb; break; // LDX case 0xa2: ldx(imm()); cycles += 2; break; case 0xa6: ldx(zpg()); cycles += 3; break; case 0xb6: ldx(zpg(Y)); cycles += 4; break; case 0xae: ldx(abs()); cycles += 4; break; case 0xbe: ldx(abs(Y, dummy.ONCARRY)); cycles += 4 + pb; break; // LDY case 0xa0: ldy(imm()); cycles += 2; break; case 0xa4: ldy(zpg()); cycles += 3; break; case 0xb4: ldy(zpg(X)); cycles += 4; break; case 0xac: ldy(abs()); cycles += 4; break; case 0xbc: ldy(abs(X, dummy.ONCARRY)); cycles += 4 + pb; break; // LSR case 0x4a: lsrA(); cycles += 2; break; case 0x46: lsr(zpg()); cycles += 5; break; case 0x56: lsr(zpg(X)); cycles += 6; break; case 0x4e: lsr(abs()); cycles += 6; break; case 0x5e: lsr(abs(X, dummy.ALWAYS)); cycles += 7; break; // NOP case 0x1a: case 0x3a: case 0x5a: case 0x7a: case 0xda: case 0xEA: case 0xfa: cycles += 2; break; case 0x80: case 0x82: case 0xc2: case 0xe2: case 0x89: imm(); cycles += 2; break; case 0x04: case 0x44: case 0x64: zpg(); cycles += 3; break; case 0x14: case 0x34: case 0x54: case 0x74: case 0xd4: case 0xf4: zpg(X); cycles += 4; break; case 0x0C: abs(); cycles += 4; break; case 0x1c: case 0x3c: case 0x5c: case 0x7c: case 0xdc: case 0xfc: abs(X, dummy.ONCARRY); cycles += 4 + pb; break; // ORA case 0x09: ora(imm()); cycles += 2; break; case 0x05: ora(zpg()); cycles += 3; break; case 0x15: ora(zpg(X)); cycles += 4; break; case 0x0d: ora(abs()); cycles += 4; break; case 0x1d: ora(abs(X, dummy.ONCARRY)); cycles += 4 + pb; break; case 0x19: ora(abs(Y, dummy.ONCARRY)); cycles += 4 + pb; break; case 0x01: ora(indX()); cycles += 6; break; case 0x11: ora(indY(dummy.ONCARRY)); cycles += 5 + pb; break; // Register instrs. case 0xAA: X = A; cycles += 2; setflags(A); break; case 0x8a: A = X; cycles += 2; setflags(A); break; case 0xca: X--; X &= 0xFF; setflags(X); cycles += 2; break; case 0xe8: X++; X &= 0xFF; setflags(X); cycles += 2; break; case 0xa8: Y = A; cycles += 2; setflags(A); break; case 0x98: A = Y; cycles += 2; setflags(A); break; case 0x88: Y--; Y &= 0xFF; setflags(Y); cycles += 2; break; case 0xc8: Y++; Y &= 0xFF; setflags(Y); cycles += 2; break; // RLA (unofficial) case 0x23: rla(indX()); cycles += 8; break; case 0x33: rla(indY(dummy.ALWAYS)); cycles += 8; break; case 0x27: rla(zpg()); cycles += 5; break; case 0x37: rla(zpg(X)); cycles += 6; break; case 0x3b: rla(abs(Y, dummy.ALWAYS)); cycles += 7; break; case 0x2f: rla(abs()); cycles += 6; break; case 0x3f: rla(abs(X, dummy.ALWAYS)); cycles += 7; break; // ROL case 0x2a: rolA(); cycles += 2; break; case 0x26: rol(zpg()); cycles += 5; break; case 0x36: rol(zpg(X)); cycles += 6; break; case 0x2e: rol(abs()); cycles += 6; break; case 0x3e: rol(abs(X, dummy.ALWAYS)); cycles += 7; break; // ROR case 0x6a: rorA(); cycles += 2; break; case 0x66: ror(zpg()); cycles += 5; break; case 0x76: ror(zpg(X)); cycles += 6; break; case 0x6e: ror(abs()); cycles += 6; break; case 0x7e: ror(abs(X, dummy.ALWAYS)); cycles += 7; break; // RRA (unofficial) case 0x63: rra(indX()); cycles += 8; break; case 0x73: rra(indY(dummy.ALWAYS)); cycles += 8; break; case 0x67: rra(zpg()); cycles += 5; break; case 0x77: rra(zpg(X)); cycles += 6; break; case 0x7b: rra(abs(Y, dummy.ALWAYS)); cycles += 7; break; case 0x6f: rra(abs()); cycles += 6; break; case 0x7f: rra(abs(X, dummy.ALWAYS)); cycles += 7; break; // RTI case 0x40: rti(); cycles += 6; break; // RTS case 0x60: rts(); cycles += 6; break; // SAX (unofficial) case 0x83: sax(indX()); cycles += 6; break; case 0x87: sax(zpg()); cycles += 3; break; case 0x97: sax(zpg(Y)); cycles += 4; break; case 0x8f: sax(abs()); cycles += 4; break; // SBC case 0xE1: sbc(indX()); cycles += 6; break; case 0xF1: sbc(indY(dummy.ONCARRY)); cycles += 5 + pb; break; case 0xE5: sbc(zpg()); cycles += 3; break; case 0xF5: sbc(zpg(X)); cycles += 4; break; case 0xE9: sbc(imm()); cycles += 2; break; case 0xF9: sbc(abs(Y, dummy.ONCARRY)); cycles += 4 + pb; break; case 0xeb: sbc(imm()); cycles += 2; break; case 0xEd: sbc(abs()); cycles += 4; break; case 0xFd: sbc(abs(X, dummy.ONCARRY)); cycles += 4 + pb; break; // SHX (unofficial) case 0x9e: shx(abs(Y, dummy.ALWAYS)); cycles += 5; break; // SHY (unofficial) case 0x9c: shy(abs(X, dummy.ALWAYS)); cycles += 5; break; // SLO (unofficial) case 0x03: slo(indX()); cycles += 8; break; case 0x07: slo(zpg()); cycles += 5; break; case 0x0f: slo(abs()); cycles += 6; break; case 0x13: slo(indY(dummy.ALWAYS)); cycles += 8; break; case 0x17: slo(zpg(X)); cycles += 6; break; case 0x1b: slo(abs(Y, dummy.ALWAYS)); cycles += 7; break; case 0x1f: slo(abs(X, dummy.ALWAYS)); cycles += 7; break; // SRE (unofficial) case 0x43: sre(indX()); cycles += 8; break; case 0x53: sre(indY(dummy.ALWAYS)); cycles += 8; break; case 0x47: sre(zpg()); cycles += 5; break; case 0x57: sre(zpg(X)); cycles += 6; break; case 0x5b: sre(abs(Y, dummy.ALWAYS)); cycles += 7; break; case 0x4f: sre(abs()); cycles += 6; break; case 0x5f: sre(abs(X, dummy.ALWAYS)); cycles += 7; break; // STA case 0x85: sta(zpg()); cycles += 3; break; case 0x95: sta(zpg(X)); cycles += 4; break; case 0x8d: sta(abs()); cycles += 4; break; case 0x9d: sta(abs(X, dummy.ALWAYS)); cycles += 5; break; case 0x99: sta(abs(Y, dummy.ALWAYS)); cycles += 5; break; case 0x81: sta(indX()); cycles += 6; break; case 0x91: sta(indY(dummy.ALWAYS)); cycles += 6; break; // Stack instructions case 0x9A: S = X; cycles += 2; break; case 0xBA: X = S; cycles += 2; setflags(X); break; case 0x48: ram.read(PC + 1); //dummy fetch push(A); cycles += 3; break; case 0x68: ram.read(PC + 1); //dummy fetch A = pop(); setflags(A); cycles += 4; break; case 0x08: ram.read(PC + 1); //dummy fetch push(flagstobyte() | utils.BIT4); cycles += 3; break; case 0x28: //plp delayInterrupt(); ram.read(PC + 1); //dummy fetch bytetoflags(pop()); cycles += 4; break; // STX case 0x86: stx(zpg()); cycles += 3; break; case 0x96: stx(zpg(Y)); cycles += 4; break; case 0x8E: stx(abs()); cycles += 4; break; // STY case 0x84: sty(zpg()); cycles += 3; break; case 0x94: sty(zpg(X)); cycles += 4; break; case 0x8c: sty(abs()); cycles += 4; break; // TAS (unofficial) case 0x9b: tas(abs(Y, dummy.ALWAYS)); cycles += 5; break; // XAA (unofficial) case 0x8b: xaa(imm()); cycles += 2; break; default: cycles += 2; System.err.println("Illegal opcode:" + utils.hex(instr) + " @ " + utils.hex(PC - 1)); break; } pb = 0; PC &= 0xffff; } /* really every instruction should be reading from or writing something to memory every cycle. Even when all that's happening that cycle is the processor updating state internally Fetching the next opcode cn overlap with last cycle of prev instruction if that last cycle is purely internal. but since the second cycle of all instructions (even single byte ones) is reading the nest byte after the PC, the fastest we can do even a single byte NOP instruction is still 2 cycles. that's where the dummy reads+writes come from. how to represent this in the smallest space possible? probably the way they did it on the real chip: using a PLA that does certain things conditionally based on bits of the current opcode and the current cycle (up to 7 i suppose) Bisqwit did some really nifty template stuff with his C==10 emu that I can't match. */ private void delayInterrupt() { interruptDelay = true; previntflag = interruptsDisabled; } private void rol(final int addr) { int data = (ram.read(addr)); ram.write(addr, data); //dummy write data = (data << 1) | (carryFlag ? 1 : 0); carryFlag = ((data & (utils.BIT8)) != 0); data &= 0xFF; setflags(data); ram.write(addr, data); } private void rolA() { A = A << 1 | (carryFlag ? 1 : 0); carryFlag = ((A & (utils.BIT8)) != 0); A &= 0xFF; setflags(A); } private void ror(final int addr) { int data = ram.read(addr); ram.write(addr, data); //dummy write final boolean tmp = carryFlag; carryFlag = ((data & (utils.BIT0)) != 0); data >>= 1; data &= 0x7F; data |= (tmp ? 0x80 : 0); setflags(data); ram.write(addr, data); } private void rorA() { final boolean tmp = carryFlag; carryFlag = ((A & (utils.BIT0)) != 0); A >>= 1; A &= 0x7F; A |= (tmp ? 128 : 0); setflags(A); } public void setNMI(boolean val) { this.nmi = val; } private void nmi() { idle = false; log("**NMI**"); //System.err.println(" NMI"); push(PC >> 8); // high bit 1st push((PC) & 0xFF);// check that this pushes right address push(flagstobyte() & ~utils.BIT4); PC = ram.read(0xFFFA) + (ram.read(0xFFFB) << 8); cycles += 7; interruptsDisabled = true; } private void interrupt() { idle = false; log("**INTERRUPT**"); //System.err.println("IRQ " + interrupt); push(PC >> 8); // high bit 1st push(PC & 0xFF);// check that this pushes right address push(flagstobyte() & ~utils.BIT4); //jump to reset vector PC = ram.read(0xFFFE) + (ram.read(0xFFFF) << 8); interruptsDisabled = true; } private void breakinterrupt() { //same as interrupt but BRK flag is turned on log("**BREAK**"); ram.read(PC++); //dummy fetch push(PC >> 8); // high bit 1st push(PC & 0xFF);// check that this pushes right address push(flagstobyte() | utils.BIT4 | utils.BIT5);//push byte w/bits 4+5 set PC = ram.read(0xFFFE) + (ram.read(0xFFFF) << 8); interruptsDisabled = true; } private void lsr(final int addr) { int data = ram.read(addr); ram.write(addr, data); //dummy write carryFlag = ((data & (utils.BIT0)) != 0); data >>= 1; data &= 0x7F; ram.write(addr, data); setflags(data); } private void lsrA() { carryFlag = ((A & (utils.BIT0)) != 0); A >>= 1; A &= 0x7F; setflags(A); } private void eor(final int addr) { A ^= ram.read(addr); A &= 0xff; setflags(A); } private void ora(final int addr) { A |= ram.read(addr); A &= 0xff; setflags(A); } // Instructions private void bit(final int addr) { final int data = ram.read(addr); zeroFlag = ((data & A) == 0); negativeFlag = ((data & (utils.BIT7)) != 0); overflowFlag = ((data & (utils.BIT6)) != 0); } private void jsr(final int addr) { PC--; ram.read(PC); //dummy fetch push(PC >> 8); // high bit 1st push(PC & 0xFF);// check that this pushes right address PC = addr; } private void rts() { ram.read(PC++); //dummy fetch PC = (pop() & 0xff) | (pop() << 8);// page crossing bug again? PC++; } private void rti() { //System.err.println("RTI"); ram.read(PC++); //dummy fetch bytetoflags(pop()); PC = (pop() & 0xff) | (pop() << 8); // not plus one } private int pop() { ++S; S &= 0xff; return ram.read(0x100 + S); } public void push(final int byteToPush) { ram.write((0x100 + (S & 0xff)), byteToPush); --S; S &= 0xff; } private void branch(final boolean isTaken) { if (isTaken) { final int pcprev = PC + 1;// store prev. PC PC = rel(); // System.err.println(pcprev + " "+ PC); //page boundary penalty if ((pcprev & 0xff00) != (PC & 0xff00)) { pb = 2;//page crossing for branch takes 2 cycles } else { cycles++; } if ((pcprev - 2) == PC) { idle = true; } } else { rel(); // have to do the memory access even if we're not branching } } private void inc(final int addr) { int tmp = ram.read(addr); ram.write(addr, tmp); //dummy write ++tmp; tmp &= 0xff; ram.write(addr, tmp); //THEN real write setflags(tmp); } private void dec(final int addr) { int tmp = ram.read(addr); ram.write(addr, tmp); //dummy write --tmp; tmp &= 0xff; ram.write(addr, tmp); //THEN real write setflags(tmp); } private void adc(final int addr) { final int value = ram.read(addr); int result; if (decimalModeFlag && decimalModeEnable) { int AL = (A & 0xF) + (value & 0xF) + (carryFlag ? 1 : 0); if (AL >= 0x0A) { AL = ((AL + 0x6) & 0xF) + 0x10; } result = (A & 0xF0) + (value & 0xF0) + AL; if (result >= 0xA0) { result += 0x60; } } else { result = value + A + (carryFlag ? 1 : 0); } carryFlag = (result >> 8 != 0); // set overflow flag overflowFlag = (((A ^ value) & 0x80) == 0) && (((A ^ result) & 0x80) != 0); A = result & 0xff; setflags(A);// set other flags } private void sbc(final int addr) { final int value = ram.read(addr); int result; if (decimalModeFlag && decimalModeEnable) { int AL = (A & 0xF) - (value & 0xF) + (carryFlag ? 1 : 0) - 1; if (AL < 0) { AL = ((AL - 0x6) & 0xF) - 0x10; } result = (A & 0xF0) + (value & 0xF0) + AL; if (result < 0) { result -= 0x60; } } else { result = A - value - (carryFlag ? 0 : 1); } carryFlag = (result >> 8 == 0); // set overflow flag overflowFlag = (((A ^ value) & 0x80) != 0) && (((A ^ result) & 0x80) != 0); A = result & 0xff; setflags(A);// set other flags } private void and(final int addr) { A &= ram.read(addr); setflags(A); } private void asl(final int addr) { int data = ram.read(addr); ram.write(addr, data); //dummy write carryFlag = ((data & (utils.BIT7)) != 0); data = data << 1; data &= 0xff; setflags(data); ram.write(addr, data); } private void aslA() { carryFlag = ((A & (utils.BIT7)) != 0); A <<= 1; A &= 0xff; setflags(A); } private void cmp(final int regval, final int addr) { final int result = regval - ram.read(addr); if (result < 0) { negativeFlag = ((result & (utils.BIT7)) != 0); carryFlag = false; zeroFlag = false; } else if (result == 0) { negativeFlag = false; carryFlag = true; zeroFlag = true; } else { negativeFlag = ((result & (utils.BIT7)) != 0); carryFlag = true; zeroFlag = false; } } private void lda(final int addr) { A = ram.read(addr); setflags(A); } private void ldx(final int addr) { X = ram.read(addr); setflags(X); } private void ldy(final int addr) { Y = ram.read(addr); setflags(Y); } private void setflags(final int result) { zeroFlag = (result == 0); negativeFlag = ((result & (utils.BIT7)) != 0); } private void sta(final int addr) { if (!battletoadsHackOn) { ram.write(addr, A); } else { hackAddr = addr; hackData = A; dirtyBattletoadsHack = true; } } private void stx(final int addr) { if (!battletoadsHackOn) { ram.write(addr, X); } else { hackAddr = addr; hackData = X; dirtyBattletoadsHack = true; } } private void sty(final int addr) { if (!battletoadsHackOn) { ram.write(addr, Y); } else { hackAddr = addr; hackData = Y; dirtyBattletoadsHack = true; } } // Unofficial opcodes private void ahx(final int addr) { final int data = (A & X & ((addr >> 8) + 1)) & 0xFF; final int tmp = (addr - Y) & 0xFF; if ((Y + tmp) <= 0xFF) { ram.write(addr, data); } else { ram.write(addr, ram.read(addr)); } } private void alr(final int addr) { and(addr); lsrA(); } private void anc(final int addr) { and(addr); carryFlag = negativeFlag; } private void arr(final int addr) { A = (((ram.read(addr) & A) >> 1) | (carryFlag ? 0x80 : 0x00)); setflags(A); carryFlag = ((A & (utils.BIT6)) != 0); overflowFlag = carryFlag ^ ((A & (utils.BIT5)) != 0); } private void axs(final int addr) { X = ((A & X) - ram.read(addr)) & 0xff; setflags(X); carryFlag = (X >= 0); } private void dcp(final int regval, final int addr) { dec(addr); cmp(regval, addr); } private void las(final int addr) { S &= ram.read(addr); A = X = S; setflags(S); } private void lax(final int addr) { A = X = ram.read(addr); setflags(A); } private void isc(final int addr) { inc(addr); sbc(addr); } private void rla(final int addr) { rol(addr); and(addr); } private void rra(int addr) { ror(addr); adc(addr); } private void sax(int addr) { ram.write(addr, (A & X) & 0xFF); } private void shx(final int addr) { final int data = (X & ((addr >> 8) + 1)) & 0xFF; final int tmp = (addr - Y) & 0xFF; if ((Y + tmp) <= 0xFF) { ram.write(addr, data); } else { ram.write(addr, ram.read(addr)); } } private void shy(final int addr) { final int data = (Y & ((addr >> 8) + 1)) & 0xFF; final int tmp = (addr - X) & 0xFF; if ((X + tmp) <= 0xFF) { ram.write(addr, data); } else { ram.write(addr, ram.read(addr)); } } private void slo(int addr) { asl(addr); ora(addr); } private void sre(int addr) { lsr(addr); eor(addr); } private void tas(int addr) { S = A & X; final int data = (S & ((addr >> 8) + 1)) & 0xFF; final int tmp = (addr - Y) & 0xFF; if ((Y + tmp) <= 0xFF) { ram.write(addr, data); } else { ram.write(addr, ram.read(addr)); } } private void xaa(int addr) { A = X & ram.read(addr); setflags(A); } // Functions for memory address types; each returns the _memory_address_ for // the next fn private int imm() { return PC++; } private int zpg() { // zero page mode return ram.read(PC++); } private int zpg(final int reg) { // zero page added to register (modulus page boundary) return (ram.read(PC++) + reg) & 0xff; } private int rel() { // returns actual value of PC, not memory location to look at // because only branches use this return ((byte) ram.read(PC++)) + PC; } private int abs() { // absolute mode return ram.read(PC++) + (ram.read(PC++) << 8); } private int abs(final int reg, final dummy dummy) { // absolute plus value from reg final int addr = (ram.read(PC++) | (ram.read(PC++) << 8)); if (addr >> 8 != (addr + reg) >> 8) { pb = 1; } if ((addr & 0xFF00) != ((addr + reg) & 0xFF00) && dummy == dummy.ONCARRY) { ram.read((addr & 0xFF00) | ((addr + reg) & 0xFF)); } if (dummy == dummy.ALWAYS) { ram.read((addr & 0xFF00) | ((addr + reg) & 0xFF)); } return (addr + reg) & 0xffff; } private int ind() { // weird mode. only used by jmp final int readloc = abs(); return ram.read(readloc) + (ram.read(((readloc & 0xff) == 0xff) ? readloc - 0xff : readloc + 1) << 8); //if reading from the last byte in a page, high bit of address //is taken from first byte on the page, not first byte on NEXT page. } private int indX() { // indirect mode final int arg = ram.read(PC++); return ram.read((arg + X) & 0xff) + (ram.read((arg + 1 + X) & 0xff) << 8); // doesn't suffer from the same bug as jump indirect } private int indY(final dummy dummy) { final int arg = ram.read(PC++); final int addr = (ram.read((arg) & 0xff) | (ram.read((arg + 1) & 0xff) << 8)); if (addr >> 8 != (addr + Y) >> 8) { pb = 1; } if ((addr & 0xFF00) != ((addr + Y) & 0xFF00) && dummy == dummy.ONCARRY) { ram.read((addr & 0xFF00) | ((addr + Y) & 0xFF)); } if (dummy == dummy.ALWAYS) { ram.read((addr & 0xFF00) | ((addr + Y) & 0xFF)); } return (addr + Y) & 0xffff; } public final int flagstobyte() { return ((negativeFlag ? utils.BIT7 : 0) | (overflowFlag ? utils.BIT6 : 0) | utils.BIT5 | (decimalModeFlag ? utils.BIT3 : 0) | (interruptsDisabled ? utils.BIT2 : 0) | (zeroFlag ? utils.BIT1 : 0) | (carryFlag ? utils.BIT0 : 0)); } private void bytetoflags(final int statusbyte) { negativeFlag = ((statusbyte & utils.BIT7) != 0); overflowFlag = ((statusbyte & utils.BIT6) != 0); //breakFlag = ((b & 32) != 0); // unusedFlag = ((b & 16) != 0); // actually nestest wants the unused flag to always be zero, // and doesn't set the break flag with a plp decimalModeFlag = ((statusbyte & utils.BIT3) != 0); interruptsDisabled = ((statusbyte & utils.BIT2) != 0); zeroFlag = ((statusbyte & utils.BIT1) != 0); carryFlag = ((statusbyte & utils.BIT0) != 0); } public String status() { //TODO: convert to format string. lots of wasted strings return " PC:" + utils.hex(PC) + " A:" + utils.hex(A) + " X:" + utils.hex(X) + " Y:" + utils.hex(Y) + " P:" + utils.hex(flagstobyte()) + " SP:" + utils.hex(S); } public static String[] opcodes() { //%1 1st byte, %2 2nd byte, %3 relative offset from PC //odd combination of format string and eventual syntax in file here. String[] op = new String[0x100]; op[0x00] = "BRK"; op[0x01] = "ORA $(%2$02X%1$02X,x)"; op[0x02] = "KIL"; op[0x03] = "SLO $(%2$02X%1$02X,x)"; op[0x04] = "NOP $%1$02X"; op[0x05] = "ORA $%1$02X"; op[0x06] = "ASL $%1$02X"; op[0x07] = "SLO $%1$02X"; op[0x08] = "PHP"; op[0x09] = "ORA #$%1$02X"; op[0x0A] = "ASL A"; op[0x0B] = "ANC #$%1$02X"; op[0x0C] = "NOP $%2$02X%1$02X"; op[0x0D] = "ORA $%2$02X%1$02X"; op[0x0E] = "ASL $%2$02X%1$02X"; op[0x0F] = "SLO $%2$02X%1$02X"; op[0x10] = "BPL $%3$02X"; op[0x11] = "ORA ($%1$02X), y"; op[0x12] = "KIL"; op[0x13] = "SLO ($%1$02X), y"; op[0x14] = "NOP $%1$02X,x"; op[0x15] = "ORA $%1$02X,x"; op[0x16] = "ASL $%1$02X,x"; op[0x17] = "SLO $%1$02X,x"; op[0x18] = "CLC"; op[0x19] = "ORA $%2$02X%1$02X,y"; op[0x1A] = "NOP"; op[0x1B] = "SLO $%2$02X%1$02X,y"; op[0x1C] = "NOP $%2$02X%1$02X,x"; op[0x1D] = "ORA $%2$02X%1$02X,x"; op[0x1E] = "ASL $%2$02X%1$02X,x"; op[0x1F] = "SLO $%2$02X%1$02X,x"; op[0x20] = "JSR $%2$02X%1$02X"; op[0x21] = "AND $(%2$02X%1$02X,x)"; op[0x22] = "KIL"; op[0x23] = "RLA $(%2$02X%1$02X,x)"; op[0x24] = "BIT $%1$02X"; op[0x25] = "AND $%1$02X"; op[0x26] = "ROL $%1$02X"; op[0x27] = "RLA $%1$02X"; op[0x28] = "PLP"; op[0x29] = "AND #$%1$02X"; op[0x2A] = "ROL"; op[0x2B] = "ANC #$%1$02X"; op[0x2C] = "BIT $%2$02X%1$02X"; op[0x2D] = "AND $%2$02X%1$02X"; op[0x2E] = "ROL $%2$02X%1$02X"; op[0x2F] = "RLA $%2$02X%1$02X"; op[0x30] = "BMI $%3$02X"; op[0x31] = "AND ($%1$02X), y"; op[0x32] = "KIL"; op[0x33] = "RLA ($%1$02X), y"; op[0x34] = "NOP $%1$02X,x"; op[0x35] = "AND $%1$02X,x"; op[0x36] = "ROL $%1$02X,x"; op[0x37] = "RLA $%1$02X,x"; op[0x38] = "SEC"; op[0x39] = "AND $%2$02X%1$02X,y"; op[0x3A] = "NOP"; op[0x3B] = "RLA $%2$02X%1$02X,y"; op[0x3C] = "NOP $%2$02X%1$02X,x"; op[0x3D] = "AND $%2$02X%1$02X,x"; op[0x3E] = "ROL $%2$02X%1$02X,x"; op[0x3F] = "RLA $%2$02X%1$02X,x"; op[0x40] = "RTI"; op[0x41] = "EOR $(%2$02X%1$02X,x)"; op[0x42] = "KIL"; op[0x43] = "SRE $(%2$02X%1$02X,x)"; op[0x44] = "NOP $%1$02X"; op[0x45] = "EOR $%1$02X"; op[0x46] = "LSR $%1$02X"; op[0x47] = "SRE $%1$02X"; op[0x48] = "PHA"; op[0x49] = "EOR #$%1$02X"; op[0x4A] = "LSR"; op[0x4B] = "ALR #$%1$02X"; op[0x4C] = "JMP $%2$02X%1$02X"; op[0x4D] = "EOR $%2$02X%1$02X"; op[0x4E] = "LSR $%2$02X%1$02X"; op[0x4F] = "SRE $%2$02X%1$02X"; op[0x50] = "BVC $%3$02X"; op[0x51] = "EOR ($%1$02X), y"; op[0x52] = "KIL"; op[0x53] = "SRE ($%1$02X), y"; op[0x54] = "NOP $%1$02X,x"; op[0x55] = "EOR $%1$02X,x"; op[0x56] = "LSR $%1$02X,x"; op[0x57] = "SRE $%1$02X,x"; op[0x58] = "CLI"; op[0x59] = "EOR $%2$02X%1$02X,y"; op[0x5A] = "NOP"; op[0x5B] = "SRE $%2$02X%1$02X,y"; op[0x5C] = "NOP $%2$02X%1$02X,x"; op[0x5D] = "EOR $%2$02X%1$02X,x"; op[0x5E] = "LSR $%2$02X%1$02X,x"; op[0x5F] = "SRE $%2$02X%1$02X,x"; op[0x60] = "RTS"; op[0x61] = "ADC $(%2$02X%1$02X,x)"; op[0x62] = "KIL"; op[0x63] = "RRA $(%2$02X%1$02X,x)"; op[0x64] = "NOP $%1$02X"; op[0x65] = "ADC $%1$02X"; op[0x66] = "ROR $%1$02X"; op[0x67] = "RRA $%1$02X"; op[0x68] = "PLA"; op[0x69] = "ADC #$%1$02X"; op[0x6A] = "ROR"; op[0x6B] = "ARR #$%1$02X"; op[0x6C] = "JMP ($%2$02X%1$02X)"; op[0x6D] = "ADC $%2$02X%1$02X"; op[0x6E] = "ROR $%2$02X%1$02X"; op[0x6F] = "RRA $%2$02X%1$02X"; op[0x70] = "BVS $%3$02X"; op[0x71] = "ADC ($%1$02X), y"; op[0x72] = "KIL"; op[0x73] = "RRA ($%1$02X), y"; op[0x74] = "NOP $%1$02X,x"; op[0x75] = "ADC $%1$02X,x"; op[0x76] = "ROR $%1$02X,x"; op[0x77] = "RRA $%1$02X,x"; op[0x78] = "SEI"; op[0x79] = "ADC $%2$02X%1$02X,y"; op[0x7A] = "NOP"; op[0x7B] = "RRA $%2$02X%1$02X,y"; op[0x7C] = "NOP $%2$02X%1$02X,x"; op[0x7D] = "ADC $%2$02X%1$02X,x"; op[0x7E] = "ROR $%2$02X%1$02X,x"; op[0x7F] = "RRA $%2$02X%1$02X,x"; op[0x80] = "NOP #$%1$02X"; op[0x81] = "STA $(%2$02X%1$02X,x)"; op[0x82] = "NOP #$%1$02X"; op[0x83] = "SAX $(%2$02X%1$02X,x)"; op[0x84] = "STY $%1$02X"; op[0x85] = "STA $%1$02X"; op[0x86] = "STX $%1$02X"; op[0x87] = "SAX $%1$02X"; op[0x88] = "DEY"; op[0x89] = "NOP #$%1$02X"; op[0x8A] = "TXA"; op[0x8B] = "XAA #$%1$02X"; op[0x8C] = "STY $%2$02X%1$02X"; op[0x8D] = "STA $%2$02X%1$02X"; op[0x8E] = "STX $%2$02X%1$02X"; op[0x8F] = "SAX $%2$02X%1$02X"; op[0x90] = "BCC $%3$02X"; op[0x91] = "STA ($%1$02X), y"; op[0x92] = "KIL"; op[0x93] = "AHX ($%1$02X), y"; op[0x94] = "STY $%1$02X,x"; op[0x95] = "STA $%1$02X,x"; op[0x96] = "STX $%1$02X,y"; op[0x97] = "SAX $%1$02X,y"; op[0x98] = "TYA"; op[0x99] = "STA $%2$02X%1$02X,y"; op[0x9A] = "TXS"; op[0x9B] = "TAS $%2$02X%1$02X,y"; op[0x9C] = "SHY $%2$02X%1$02X,x"; op[0x9D] = "STA $%2$02X%1$02X,x"; op[0x9E] = "SHX $%2$02X%1$02X,y"; op[0x9F] = "AHX $%2$02X%1$02X,y"; op[0xA0] = "LDY #$%1$02X"; op[0xA1] = "LDA $(%2$02X%1$02X,x)"; op[0xA2] = "LDX #$%1$02X"; op[0xA3] = "LAX $(%2$02X%1$02X,x)"; op[0xA4] = "LDY $%1$02X"; op[0xA5] = "LDA $%1$02X"; op[0xA6] = "LDX $%1$02X"; op[0xA7] = "LAX $%1$02X"; op[0xA8] = "TAY"; op[0xA9] = "LDA #$%1$02X"; op[0xAA] = "TAX"; op[0xAB] = "LAX #$%1$02X"; op[0xAC] = "LDY $%2$02X%1$02X"; op[0xAD] = "LDA $%2$02X%1$02X"; op[0xAE] = "LDX $%2$02X%1$02X"; op[0xAF] = "LAX $%2$02X%1$02X"; op[0xB0] = "BCS $%3$02X"; op[0xB1] = "LDA ($%1$02X), y"; op[0xB2] = "KIL"; op[0xB3] = "LAX ($%1$02X), y"; op[0xB4] = "LDY $%1$02X,x"; op[0xB5] = "LDA $%1$02X,x"; op[0xB6] = "LDX $%1$02X,y"; op[0xB7] = "LAX $%1$02X,y"; op[0xB8] = "CLV"; op[0xB9] = "LDA $%2$02X%1$02X,y"; op[0xBA] = "TSX"; op[0xBB] = "LAS $%2$02X%1$02X,y"; op[0xBC] = "LDY $%2$02X%1$02X,x"; op[0xBD] = "LDA $%2$02X%1$02X,x"; op[0xBE] = "LDX $%2$02X%1$02X,y"; op[0xBF] = "LAX $%2$02X%1$02X,y"; op[0xC0] = "CPY #$%1$02X"; op[0xC1] = "CMP $(%2$02X%1$02X,x)"; op[0xC2] = "NOP #$%1$02X"; op[0xC3] = "DCP $(%2$02X%1$02X,x)"; op[0xC4] = "CPY $%1$02X"; op[0xC5] = "CMP $%1$02X"; op[0xC6] = "DEC $%1$02X"; op[0xC7] = "DCP $%1$02X"; op[0xC8] = "INY"; op[0xC9] = "CMP #$%1$02X"; op[0xCA] = "DEX"; op[0xCB] = "AXS #$%1$02X"; op[0xCC] = "CPY $%2$02X%1$02X"; op[0xCD] = "CMP $%2$02X%1$02X"; op[0xCE] = "DEC $%2$02X%1$02X"; op[0xCF] = "DCP $%2$02X%1$02X"; op[0xD0] = "BNE $%3$02X"; op[0xD1] = "CMP ($%1$02X), y"; op[0xD2] = "KIL"; op[0xD3] = "DCP ($%1$02X), y"; op[0xD4] = "NOP $%1$02X,x"; op[0xD5] = "CMP $%1$02X,x"; op[0xD6] = "DEC $%1$02X,x"; op[0xD7] = "DCP $%1$02X,x"; op[0xD8] = "CLD"; op[0xD9] = "CMP $%2$02X%1$02X,y"; op[0xDA] = "NOP"; op[0xDB] = "DCP $%2$02X%1$02X,y"; //did i delete this line somehow? op[0xDC] = "NOP $%2$02X%1$02X,x"; op[0xDD] = "CMP $%2$02X%1$02X,x"; op[0xDE] = "DEC $%2$02X%1$02X,x"; op[0xDF] = "DCP $%2$02X%1$02X,x"; op[0xE0] = "CPX #$%1$02X"; op[0xE1] = "SBC $(%2$02X%1$02X,x)"; op[0xE2] = "NOP #$%1$02X"; op[0xE3] = "ISC $(%2$02X%1$02X,x)"; op[0xE4] = "CPX $%1$02X"; op[0xE5] = "SBC $%1$02X"; op[0xE6] = "INC $%1$02X"; op[0xE7] = "ISC $%1$02X"; op[0xE8] = "INX"; op[0xE9] = "SBC #$%1$02X"; op[0xEA] = "NOP"; op[0xEB] = "SBC #$%1$02X"; op[0xEC] = "CPX $%2$02X%1$02X"; op[0xED] = "SBC $%2$02X%1$02X"; op[0xEE] = "INC $%2$02X%1$02X"; op[0xEF] = "ISC $%2$02X%1$02X"; op[0xF0] = "BEQ $%3$02X"; op[0xF1] = "SBC ($%1$02X), y"; op[0xF2] = "KIL"; op[0xF3] = "ISC ($%1$02X), y"; op[0xF4] = "NOP $%1$02X,x"; op[0xF5] = "SBC $%1$02X,x"; op[0xF6] = "INC $%1$02X,x"; op[0xF7] = "ISC $%1$02X,x"; op[0xF8] = "SED"; op[0xF9] = "SBC $%2$02X%1$02X,y"; op[0xFA] = "NOP"; op[0xFB] = "ISC $%2$02X%1$02X,y"; op[0xFC] = "NOP $%2$02X%1$02X,x"; op[0xFD] = "SBC $%2$02X%1$02X,x"; op[0xFE] = "INC $%2$02X%1$02X,x"; op[0xFF] = "ISC $%2$02X%1$02X,x"; return op; } //these methods are needed for NSF playing use public void setRegA(int value) { A = value & 0xff; } public void setRegX(int value) { X = value & 0xff; } public void setPC(int value) { PC = value & 0xffff; idle = false; log("**PC SET**"); } public final void log(String tolog) { if (logging) { try { w.write(tolog); } catch (IOException e) { System.err.println("Cannot write to debug log" + e.getLocalizedMessage()); } } } private void flushLog() { if (logging) { try { w.flush(); } catch (IOException e) { System.err.println("Cannot write to debug log" + e.getLocalizedMessage()); } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/CPURAM.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes; import com.grapeshot.halfnes.cheats.Patch; import com.grapeshot.halfnes.mappers.Mapper; import java.util.Arrays; import java.util.HashMap; /** * * @author Andrew Hoffman * * */ public class CPURAM { private final int[] wram = new int[2048]; Mapper mapper; public APU apu; PPU ppu; //need these to call their write handlers from here. private HashMap patches = new HashMap<>(); public CPURAM(final Mapper mappy) { mapper = mappy; // init memory Arrays.fill(wram, 0xff); } public final int read(final int addr) { if (!patches.isEmpty()) { int retval = _read(addr); Patch p = patches.get(addr); if (p != null && p.getAddress() == addr && p.matchesData(retval)) { return p.getData(); } return retval; } else { return _read(addr); } } public final int _read(final int addr) { if (addr > 0x4018) { return mapper.cartRead(addr); } else if (addr <= 0x1fff) { return wram[addr & 0x7FF]; } else if (addr <= 0x3fff) { // 8 byte ppu regs; mirrored lots return ppu.read(addr & 7); } else if (0x4000 <= addr && addr <= 0x4018) { return apu.read(addr - 0x4000); } else { return addr >> 8; //open bus } } public final void write(final int addr, final int data) { // if((data & 0xff) != data){ // System.err.println("DANGER WILL ROBINSON"); // } if (addr > 0x4018) { mapper.cartWrite(addr, data); } else if (addr <= 0x1fff) { wram[addr & 0x7FF] = data; } else if (addr <= 0x3fff) { // 8 byte ppu regs; mirrored lots ppu.write(addr & 7, data); } else if (0x4000 <= addr && addr <= 0x4018) { apu.write(addr - 0x4000, data); } } public void setAPU(APU apu) { this.apu = apu; } public void setPPU(PPU ppu) { this.ppu = ppu; } public void setPatches(HashMap p) { this.patches = p; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/FileUtils.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes; import java.awt.EventQueue; import java.io.*; /** * * @author Andrew */ public class FileUtils { private FileUtils() {} public static String getExtension(final File f) { return getExtension(f.getName()); } public static String getExtension(final String s) { if (s == null || s.equals("")) { return ""; } int split = s.lastIndexOf('.'); if (split < 0) { return ""; } return s.substring(split); } public static String stripExtension(final File f) { String s = f.getName(); if (s == null || s.equals("")) { return ""; } int split = s.lastIndexOf('.'); if (split < 0) { return ""; } return s.substring(0, split); } public static String stripExtension(final String s) { if (s == null || s.equals("")) { return ""; } int split = s.lastIndexOf('.'); if (split < 0) { return ""; } return s.substring(0, split); } public static void writetofile(final int[] array, final String path) { //note: does NOT write the ints directly to the file - only the low bytes. AsyncWriter writer = new AsyncWriter(array, path); writer.run(); } public static void asyncwritetofile(final int[] array, final String path) { //now does the file writing in the dispatch thread //hopefully that will eliminate annoying hitches when file system's slow //and not do pathological stuff like threads are prone to AsyncWriter writer = new AsyncWriter(array, path); EventQueue.invokeLater(writer); } private static class AsyncWriter implements Runnable { private final int[] a; private final String path; public AsyncWriter(final int[] a, final String path) { this.a = a; this.path = path; } @Override public void run() { if (a != null && path != null) { try { FileOutputStream b = new FileOutputStream(path); byte[] buf = new byte[a.length]; for (int i = 0; i < a.length; ++i) { buf[i] = (byte) (a[i] & 0xff); } b.write(buf); b.flush(); b.close(); } catch (IOException e) { System.err.print("Could not save. "); System.err.println(e); } } } } public static String getFilenamefromPath(String path) { return new File(path).getName(); } public static int[] readfromfile(final String path) { File f = new File(path); byte[] bytes = new byte[(int) f.length()]; FileInputStream fis; try { fis = new FileInputStream(f); fis.read(bytes); } catch (IOException e) { // TODO Auto-generated catch block System.err.println("Failed to load file"); e.printStackTrace(); } int[] ints = new int[bytes.length]; for (int i = 0; i < bytes.length; i++) { ints[i] = (short) (bytes[i] & 0xFF); } return ints; } public static boolean exists(final String path) { File f = new File(path); return f.canRead() && !f.isDirectory(); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/HeadlessNES.java ================================================ package com.grapeshot.halfnes; import com.grapeshot.halfnes.ui.HeadlessUI; import com.grapeshot.halfnes.ui.PuppetController; import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; /** * @author Mitchell Skaggs */ public class HeadlessNES { private HeadlessNES() {} public static final int scale = 4; public static void main(String[] args) { BufferedImage bufferedImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB_PRE); HeadlessUI ui = new HeadlessUI("src/test/resources/nestest/nestest.nes", true); for (int i = 0; i < 100; i++) { ui.runFrame(); } ui.getController1().pressButton(PuppetController.Button.START); ui.runFrame(); ui.getController1().releaseButton(PuppetController.Button.START); for (int i = 0; i < 5; i++) { ui.runFrame(); } BufferedImage image = ui.getLastFrame(); JFrame frame = new JFrame("Display") { @Override public void paint(Graphics g) { super.paint(g); g.drawImage(image, 0, 0, image.getWidth() * scale, image.getHeight() * scale, this); } }; frame.setSize(256 * scale, 224 * scale); frame.setVisible(true); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/JInputHelper.java ================================================ package com.grapeshot.halfnes; import java.io.*; import java.lang.reflect.Field; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.security.AccessController; import java.security.PrivilegedAction; /** * Created by KlausH on 29.11.2015. */ public enum JInputHelper { ; private static final String[] NATIVE_LIBRARIES = new String[]{ // Windows "jinput-dx8.dll", "jinput-dx8_64.dll", "jinput-raw.dll", "jinput-raw_64.dll", "jinput-wintab.dll", "jinput-wintab.dll", // Linux "libjinput-linux.so", "libjinput-linux64.so", // OsX (Mac) "libjinput-osx.jnilib",}; public static void setupJInput() { try { File nativesDirectory = createTempDirectory(); unpackNativeLibraries(nativesDirectory); setLibraryPath(nativesDirectory); fixInputPluginForWindows8(); } catch (Exception exception) { throw new RuntimeException("Unable to setup native libraries.", exception); } } private static void unpackNativeLibraries(File nativesDirectory) throws IOException { for (String nativeLibrary : NATIVE_LIBRARIES) { unpackNativeLibrary(nativesDirectory, nativeLibrary); } } private static void unpackNativeLibrary(File nativesDirectory, String nativeLibrary) throws IOException { try (InputStream nativeLibraryInputStream = ClassLoader.getSystemResourceAsStream(nativeLibrary)) { File nativeLibraryTempFile = new File(nativesDirectory, nativeLibrary); nativeLibraryTempFile.deleteOnExit(); if (!nativeLibraryTempFile.exists()) { try (BufferedOutputStream nativeLibraryTempFileOutputStream = new BufferedOutputStream(new FileOutputStream(nativeLibraryTempFile))) { byte[] buffer = new byte[4096]; int length; while ((length = nativeLibraryInputStream.read(buffer)) > 0) { nativeLibraryTempFileOutputStream.write(buffer, 0, length); } } } } } private static File createTempDirectory() throws IOException { String tmpdir = System.getProperty("java.io.tmpdir") + "/halfnes-" + NES.VERSION; System.err.println(tmpdir); File f = new File(tmpdir); if (!f.exists()) { f.mkdir(); } //File nativeDirectory = Files.createTempDirectory("halfNES-natives").toFile(); f.deleteOnExit(); return f; } private static void setLibraryPath(final File nativesDirectory) throws NoSuchFieldException, IllegalAccessException { System.setProperty("java.library.path", nativesDirectory.getAbsolutePath()); final Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths"); fieldSysPath.setAccessible(true); fieldSysPath.set(null, null); } private static void fixInputPluginForWindows8() { AccessController.doPrivileged((PrivilegedAction) () -> { String os = System.getProperty("os.name", "").trim(); if (os.startsWith("Windows")) { if (os.startsWith("Windows 8")) { // disable default plugin lookup System.setProperty("jinput.useDefaultPlugin", "false"); // set to same as windows 7 System.setProperty("net.java.games.input.plugins", "net.java.games.input.DirectAndRawInputEnvironmentPlugin"); } if (os.startsWith("Windows 10") || isWindows10()) { // disable default plugin lookup System.setProperty("jinput.useDefaultPlugin", "false"); // set fallback to AWT plugin System.setProperty("net.java.games.input.plugins", "net.java.games.input.DirectAndRawInputEnvironmentPlugin"); } } return null; }); } private static boolean isWindows10() { try { Process process = Runtime.getRuntime().exec("cmd.exe /c ver"); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8)); bufferedReader.readLine(); String line = bufferedReader.readLine(); process.waitFor(); return line.contains("10"); } catch (Exception exception) { throw new RuntimeException(exception); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/JavaFXNES.java ================================================ package com.grapeshot.halfnes; import com.grapeshot.halfnes.ui.ControllerImpl; import com.grapeshot.halfnes.ui.GUIInterface; import com.grapeshot.halfnes.ui.OnScreenMenu; import com.grapeshot.halfnes.video.NesColors; import java.nio.ByteBuffer; import java.util.List; import javafx.application.Application; import javafx.application.Platform; import javafx.geometry.Insets; import javafx.geometry.Rectangle2D; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.image.PixelWriter; import javafx.scene.image.WritablePixelFormat; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCombination; import javafx.scene.paint.Color; import javafx.scene.transform.Scale; import javafx.stage.Stage; /** * @author Stephen Chin - steveonjava@gmail.com */ public class JavaFXNES extends Application implements GUIInterface { // Set the overscan insets to match your config // And make sure your framebuffer is set to: // * screen.width + overscan.right // * screen.height + overscan.bottom //overscan for PC private static final Insets overscan = new Insets(0, 0, 0, 0); //overscan for Pi screen //private static final Insets overscan = new Insets(-59, 160, 150, 0); private static final Insets extraOverscan = new Insets(8, 0, 8, 0); private NES nes; private Canvas gameCanvas; private Stage stage; private OnScreenMenu menu; @Override public void start(Stage stage) throws Exception { this.stage = stage; //Rectangle2D bounds = Screen.getPrimary().getBounds(); Rectangle2D bounds = new Rectangle2D(0,0,640,480); gameCanvas = new Canvas(256, 240); stage.addEventHandler(javafx.stage.WindowEvent.WINDOW_CLOSE_REQUEST, e -> nes.quit()); menu = new OnScreenMenu(this); //menu.setPadding(extraOverscan); menu.setPrefWidth(256); menu.setPrefHeight(240); Group root = new Group(gameCanvas, menu); Scene scene = new Scene(root, bounds.getWidth(), bounds.getHeight(), Color.BLACK); stage.setScene(scene); //stage.setFullScreen(true); stage.setFullScreenExitKeyCombination(KeyCombination.valueOf("F11")); stage.addEventHandler(javafx.scene.input.KeyEvent.KEY_PRESSED, e -> { if (e.getCode().equals(KeyCode.ESCAPE)) { menu.show(); } }); root.setLayoutX(overscan.getRight() - overscan.getLeft() - extraOverscan.getLeft() * bounds.getWidth() / 256); root.setLayoutY(overscan.getBottom() - overscan.getTop() - extraOverscan.getTop() * bounds.getHeight() / 240); root.getTransforms().add(new Scale( (bounds.getWidth() - (overscan.getRight() - overscan.getLeft())) / (256 - extraOverscan.getLeft() - extraOverscan.getRight()), (bounds.getHeight() - (overscan.getBottom() - overscan.getTop())) / (240 - extraOverscan.getTop() - extraOverscan.getBottom()))); nes = new NES(this); ControllerImpl padController1 = new ControllerImpl(scene, 0); ControllerImpl padController2 = new ControllerImpl(scene, 1); padController1.startEventQueue(); padController2.startEventQueue(); nes.setControllers(padController1, padController2); final List params = getParameters().getRaw(); new Thread(() -> { if (params.isEmpty()) { nes.run(); } else { nes.run(params.get(0)); } }, "Game Thread").start(); } public static void main(String[] args) { JInputHelper.setupJInput(); launch(args); } @Override public NES getNes() { return nes; } @Override public void setNES(NES nes) { this.nes = nes; } final byte[] buffer = new byte[256 * 240 * 4]; final WritablePixelFormat format = WritablePixelFormat.getByteBgraPreInstance(); private final long[] frametimes = new long[60]; private int frametimeptr = 0; private double fps; @Override public void setFrame(int[] nespixels, int[] bgcolor, boolean dotcrawl) { Platform.runLater(() -> { frametimes[frametimeptr] = nes.getFrameTime(); ++frametimeptr; frametimeptr %= frametimes.length; if (frametimeptr == 0) { long averageframes = 0; for (long l : frametimes) { averageframes += l; } averageframes /= frametimes.length; fps = 1E9 / averageframes; stage.setTitle(String.format("HalfNES %s, %2.2f fps", // + ((nes.frameskip > 0) ? " frameskip " + nes.frameskip : ""), NES.VERSION, // nes.getCurrentRomName(), fps)); } PixelWriter writer = gameCanvas.getGraphicsContext2D().getPixelWriter(); for (int i = 0; i < nespixels.length; i++) { byte[] colbytes = NesColors.colbytes[(nespixels[i] & 0x1c0) >> 6][nespixels[i] & 0x3f]; System.arraycopy(colbytes, 0, buffer, i * 4, 3); } writer.setPixels(0, 0, 256, 240, format, buffer, 0, 256 * 4); }); } @Override public void messageBox(String message) { System.out.println("message = " + message); } @Override public void run() { Platform.runLater(() -> { stage.show(); menu.show(); }); } @Override public void render() { // whatever... } public void loadROMs(String path) { menu.loadROMs(path); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/NES.java ================================================ /** * * @author Andrew Hoffman */ package com.grapeshot.halfnes; import com.grapeshot.halfnes.cheats.ActionReplay; import com.grapeshot.halfnes.mappers.BadMapperException; import com.grapeshot.halfnes.mappers.Mapper; import com.grapeshot.halfnes.ui.ControllerInterface; import com.grapeshot.halfnes.ui.FrameLimiterImpl; import com.grapeshot.halfnes.ui.FrameLimiterInterface; import com.grapeshot.halfnes.ui.GUIInterface; import javafx.application.Platform; public class NES implements ProjectInfo { private Mapper mapper; private APU apu; private CPU cpu; private CPURAM cpuram; private PPU ppu; private GUIInterface gui; private ControllerInterface controller1, controller2; public boolean runEmulation = false; private boolean dontSleep = false; private boolean shutdown = false; public long frameStartTime, framecount, frameDoneTime; private boolean frameLimiterOn = true; private String curRomPath, curRomName; private final FrameLimiterInterface limiter = new FrameLimiterImpl(this, 16639267); // Pro Action Replay device private ActionReplay actionReplay; public NES(GUIInterface gui) { if (gui != null) { this.gui = gui; gui.setNES(this); gui.run(); } } public CPURAM getCPURAM() { return this.cpuram; } public CPU getCPU() { return this.cpu; } public void run(final String romtoload) { Thread.currentThread().setPriority(Thread.NORM_PRIORITY + 1); //set thread priority higher than the interface thread curRomPath = romtoload; gui.loadROMs(romtoload); run(); } public void run() { while (!shutdown) { if (runEmulation) { frameStartTime = System.nanoTime(); actionReplay.applyPatches(); runframe(); if (frameLimiterOn && !dontSleep) { limiter.sleep(); } frameDoneTime = System.nanoTime() - frameStartTime; } else { limiter.sleepFixed(); if (ppu != null && framecount > 1) { gui.render(); } } } } private synchronized void runframe() { //run cpu, ppu for a whole frame ppu.runFrame(); //do end of frame stuff dontSleep = apu.bufferHasLessThan(1000); //if the audio buffer is completely drained, don't sleep for this frame //this is to prevent the emulator from getting stuck sleeping too much //on a slow system or when the audio buffer runs dry. apu.finishframe(); cpu.modcycles(); // if (framecount == 13 * 60) { // cpu.startLog(); // System.err.println("log on"); // } //render the frame ppu.renderFrame(gui); if ((framecount & 2047) == 0) { //save sram every 30 seconds or so saveSRAM(true); } ++framecount; //System.err.println(framecount); } public void setControllers(ControllerInterface controller1, ControllerInterface controller2) { this.controller1 = controller1; this.controller2 = controller2; } public void toggleFrameLimiter() { frameLimiterOn = !frameLimiterOn; } public synchronized void loadROM(final String filename) { loadROM(filename, null); } public synchronized void loadROM(final String filename, Integer initialPC) { runEmulation = false; if (FileUtils.exists(filename) && (FileUtils.getExtension(filename).equalsIgnoreCase(".nes") || FileUtils.getExtension(filename).equalsIgnoreCase(".nsf"))) { Mapper newmapper; try { final ROMLoader loader = new ROMLoader(filename); loader.parseHeader(); newmapper = Mapper.getCorrectMapper(loader); newmapper.setLoader(loader); newmapper.loadrom(); } catch (BadMapperException e) { gui.messageBox("Error Loading File: ROM is" + " corrupted or uses an unsupported mapper.\n" + e.getMessage()); return; } catch (Exception e) { gui.messageBox("Error Loading File: ROM is" + " corrupted or uses an unsupported mapper.\n" + e.toString() + e.getMessage()); e.printStackTrace(); return; } if (apu != null) { //if rom already running save its sram before closing apu.destroy(); saveSRAM(false); //also get rid of mapper etc. mapper.destroy(); cpu = null; cpuram = null; ppu = null; } mapper = newmapper; //now some annoying getting of all the references where they belong cpuram = mapper.getCPURAM(); actionReplay = new ActionReplay(cpuram); cpu = mapper.cpu; ppu = mapper.ppu; apu = new APU(this, cpu, cpuram); cpuram.setAPU(apu); cpuram.setPPU(ppu); curRomPath = filename; curRomName = FileUtils.getFilenamefromPath(filename); framecount = 0; //if savestate exists, load it if (mapper.hasSRAM()) { loadSRAM(); } //and start emulation cpu.init(initialPC); mapper.init(); setParameters(); runEmulation = true; } else { gui.messageBox("Could not load file:\nFile " + filename + "\n" + "does not exist or is not a valid NES game."); } } private void saveSRAM(final boolean async) { if (mapper != null && mapper.hasSRAM() && mapper.supportsSaves()) { if (async) { FileUtils.asyncwritetofile(mapper.getPRGRam(), FileUtils.stripExtension(curRomPath) + ".sav"); } else { FileUtils.writetofile(mapper.getPRGRam(), FileUtils.stripExtension(curRomPath) + ".sav"); } } } private void loadSRAM() { final String name = FileUtils.stripExtension(curRomPath) + ".sav"; if (FileUtils.exists(name) && mapper.supportsSaves()) { mapper.setPRGRAM(FileUtils.readfromfile(name)); } } public void quit() { //save SRAM and quit //should wait for any save sram workers to be done before here if (cpu != null && curRomPath != null) { runEmulation = false; saveSRAM(false); } //there might be some subtle threading bug with saving? //System.Exit is very dirty and does NOT let the delete on exit handler //fire so the natives stick around... shutdown = true; Platform.exit(); } public synchronized void reset() { if (cpu != null) { mapper.reset(); cpu.reset(); runEmulation = true; apu.pause(); apu.resume(); } //reset frame counter as well because PPU is reset //on Famicom, PPU is not reset when Reset is pressed //but some NES games expect it to be and you get garbage. framecount = 0; } public synchronized void reloadROM() { loadROM(curRomPath); } public synchronized void pause() { if (apu != null) { apu.pause(); } runEmulation = false; } public long getFrameTime() { return frameDoneTime; } public String getrominfo() { if (mapper != null) { return mapper.getrominfo(); } return null; } public synchronized void frameAdvance() { runEmulation = false; if (cpu != null) { runframe(); } } public synchronized void resume() { if (apu != null) { apu.resume(); } if (cpu != null) { runEmulation = true; } } public String getCurrentRomName() { return curRomName; } public boolean isFrameLimiterOn() { return frameLimiterOn; } public void messageBox(final String string) { if (gui != null) { gui.messageBox(string); } } public ControllerInterface getcontroller1() { return controller1; } public ControllerInterface getcontroller2() { return controller2; } public synchronized void setParameters() { if (apu != null) { apu.setParameters(); } if (ppu != null) { ppu.setParameters(); } if (limiter != null && mapper != null) { switch (mapper.getTVType()) { case NTSC: default: limiter.setInterval(16639267); break; case PAL: case DENDY: limiter.setInterval(19997200); } } } /** * Access to the Pro Action Replay device. */ public synchronized ActionReplay getActionReplay() { return actionReplay; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/PPU.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes; import static com.grapeshot.halfnes.PrefsSingleton.get; import com.grapeshot.halfnes.mappers.Mapper; import com.grapeshot.halfnes.ui.DebugUI; import com.grapeshot.halfnes.ui.GUIInterface; import static com.grapeshot.halfnes.utils.reverseByte; import java.awt.image.BufferedImage; import static java.awt.image.BufferedImage.TYPE_INT_BGR; import java.util.Arrays; import static java.util.Arrays.fill; import static java.util.Arrays.fill; public class PPU { public Mapper mapper; private int oamaddr, oamstart, readbuffer = 0; private int loopyV = 0x0;//ppu memory pointer private int loopyT = 0x0;//temp pointer private int loopyX = 0;//fine x scroll public int scanline = 0; public int cycles = 0; private int framecount = 0; private int div = 2; private final int[] OAM = new int[256], secOAM = new int[32], spriteshiftregH = new int[8], spriteshiftregL = new int[8], spriteXlatch = new int[8], spritepals = new int[8], bitmap = new int[240 * 256]; private int found, bgShiftRegH, bgShiftRegL, bgAttrShiftRegH, bgAttrShiftRegL; private final boolean[] spritebgflags = new boolean[8]; private boolean even = true, bgpattern = true, sprpattern, spritesize, nmicontrol, grayscale, bgClip, spriteClip, bgOn, spritesOn, vblankflag, sprite0hit, spriteoverflow; private int emph; public final int[] pal; private DebugUI debuggui; private int vraminc = 1; private final static boolean PPUDEBUG = get().getBoolean("ntView", false); private BufferedImage nametableView; private final int[] bgcolors = new int[256]; private int openbus = 0; //the last value written to the PPU private int nextattr; private int linelowbits; private int linehighbits; private int penultimateattr; private int numscanlines; private int vblankline; private final int[] cpudivider = {3, 3, 3, 3, 3}; public PPU(final Mapper mapper) { this.pal = new int[]{0x09, 0x01, 0x00, 0x01, 0x00, 0x02, 0x02, 0x0D, 0x08, 0x10, 0x08, 0x24, 0x00, 0x00, 0x04, 0x2C, 0x09, 0x01, 0x34, 0x03, 0x00, 0x04, 0x00, 0x14, 0x08, 0x3A, 0x00, 0x02, 0x00, 0x20, 0x2C, 0x08}; /* power-up pallette checked by Blargg's power_up_palette test. Different revs of NES PPU might give different initial results but there's a test expecting this set of values and nesemu1, BizHawk, RockNES, MyNes use it */ this.mapper = mapper; fill(OAM, 0xff); if (PPUDEBUG) { nametableView = new BufferedImage(512, 480, TYPE_INT_BGR); debuggui = new DebugUI(512, 480); debuggui.run(); } setParameters(); } final void setParameters() { //set stuff to NTSC or PAL or Dendy values switch (mapper.getTVType()) { case NTSC: default: numscanlines = 262; vblankline = 241; cpudivider[0] = 3; break; case PAL: numscanlines = 312; vblankline = 241; cpudivider[0] = 4; break; case DENDY: numscanlines = 312; vblankline = 291; cpudivider[0] = 3; break; } } public void runFrame() { for (int line = 0; line < numscanlines; ++line) { clockLine(line); } } /** * Performs a read from a PPU register, as well as causes any side effects * of reading that specific register. * * @param regnum register to read (address with 0x2000 already subtracted) * @return the data in the PPU register, or open bus (the last value written * to a PPU register) if the register is read only */ public final int read(final int regnum) { switch (regnum) { case 2: even = true; if (scanline == 241) { if (cycles == 1) {//suppress NMI flag if it was just turned on this same cycle vblankflag = false; } //OK, uncommenting this makes blargg's NMI suppression test //work but breaks Antarctic Adventure. //I'm going to need a cycle accurate CPU to fix that... // if (cycles < 4) { // //show vblank flag but cancel pending NMI before the CPU // //can actually do anything with it // //TODO: use proper interface for this // mapper.cpu.nmiNext = false; // } } openbus = (vblankflag ? 0x80 : 0) | (sprite0hit ? 0x40 : 0) | (spriteoverflow ? 0x20 : 0) | (openbus & 0x1f); vblankflag = false; break; case 4: // reading this is NOT reliable but some games do it anyways openbus = OAM[oamaddr]; //System.err.println("codemasters?"); if (renderingOn() && (scanline <= 240)) { if (cycles < 64) { return 0xFF; } else if (cycles <= 256) { return 0x00; } //Micro Machines relies on this: else if (cycles < 320) { return 0xFF; } //and this: else { return secOAM[0]; //is this the right value @ the time? } } break; case 7: // PPUDATA // correct behavior. read is delayed by one // -unless- is a read from sprite pallettes final int temp; if ((loopyV & 0x3fff) < 0x3f00) { temp = readbuffer; readbuffer = mapper.ppuRead(loopyV & 0x3fff); } else { readbuffer = mapper.ppuRead((loopyV & 0x3fff) - 0x1000); temp = mapper.ppuRead(loopyV); } if (!renderingOn() || (scanline > 240 && scanline < (numscanlines - 1))) { loopyV += vraminc; } else { //if 2007 is read during rendering PPU increments both horiz //and vert counters erroneously. incLoopyVHoriz(); incLoopyVVert(); } openbus = temp; break; // and don't increment on read default: return openbus; // last value written to ppu } return openbus; } /** * Performs a write to a PPU register * * @param regnum register number from 0 to 7, memory addresses are decoded * to these elsewhere * @param data the value to write to the register (0x00 to 0xff valid) */ public final void write(final int regnum, final int data) { // if (regnum != 4 /*&& regnum != 7*/) { // System.err.println("PPU write - wrote " + utils.hex(data) + " to reg " // + utils.hex(regnum + 0x2000) // + " frame " + framecount + " scanline " + scanline); // } //debugdraw(); openbus = data; switch (regnum) { case 0: //PPUCONTROL (2000) //set 2 bits of vram address (nametable select) //bits 0 and 1 affect loopyT to change nametable start by 0x400 loopyT &= ~0xc00; loopyT |= (data & 3) << 10; /* SMB1 writes here at the end of its main loop and if this write lands on one exact PPU clock, the address bits are set to 0. This only happens on one CPU/PPU alignment of real hardware though so it only shows up ~33% of the time. */ vraminc = (((data & (utils.BIT2)) != 0) ? 32 : 1); sprpattern = ((data & (utils.BIT3)) != 0); bgpattern = ((data & (utils.BIT4)) != 0); spritesize = ((data & (utils.BIT5)) != 0); /*bit 6 is kind of a halt and catch fire situation since it outputs ppu color data on the EXT pins that are tied to ground if set and that'll make the PPU get very hot from sourcing the current. Only really useful for the NESRGB interposer board, kind of useless for emulators. I will ignore it. */ nmicontrol = ((data & (utils.BIT7)) != 0); break; case 1: //PPUMASK (2001) grayscale = ((data & (utils.BIT0)) != 0); bgClip = !((data & (utils.BIT1)) != 0); //clip left 8 pixels when its on spriteClip = !((data & (utils.BIT2)) != 0); bgOn = ((data & (utils.BIT3)) != 0); spritesOn = ((data & (utils.BIT4)) != 0); emph = (data & 0xe0) << 1; if (numscanlines == 312) { //if PAL switch position of red and green emphasis bits (6 and 5) //red is bit 6 -> bit 7 //green is bit 7 -> bit 6 int red = (emph >> 6) & 1; int green = (emph >> 7) & 1; emph &= 0xf3f; emph |= (red << 7) | (green << 6); } break; case 3: // PPUOAMADDR (2003) // most games just write zero and use the dma oamaddr = data & 0xff; break; case 4: // PPUOAMDATA(2004) if ((oamaddr & 3) == 2) { OAM[oamaddr++] = (data & 0xE3); } else { OAM[oamaddr++] = data; } oamaddr &= 0xff; // games don't usually write this directly anyway, it's unreliable break; // PPUSCROLL(2005) case 5: if (even) { // update horizontal scroll loopyT &= ~0x1f; loopyX = data & 7; loopyT |= data >> 3; even = false; } else { // update vertical scroll loopyT &= ~0x7000; loopyT |= ((data & 7) << 12); loopyT &= ~0x3e0; loopyT |= (data & 0xf8) << 2; even = true; } break; case 6: // PPUADDR (2006) if (even) { // high byte loopyT &= 0xc0ff; loopyT |= ((data & 0x3f) << 8); loopyT &= 0x3fff; even = false; } else { loopyT &= 0xfff00; loopyT |= data; loopyV = loopyT; even = true; } break; case 7: // PPUDATA mapper.ppuWrite((loopyV & 0x3fff), data); if (!renderingOn() || (scanline > 240 && scanline < (numscanlines - 1))) { loopyV += vraminc; } else if ((loopyV & 0x7000) == 0x7000) { int YScroll = loopyV & 0x3E0; loopyV &= 0xFFF; switch (YScroll) { case 0x3A0: loopyV ^= 0xBA0; break; case 0x3E0: loopyV ^= 0x3E0; break; default: loopyV += 0x20; break; } } else { // while rendering, it seems to drop by 1 line, regardless of increment mode loopyV += 0x1000; } break; default: break; } } /** * PPU is on if either background or sprites are enabled * * @return true */ public boolean renderingOn() { return bgOn || spritesOn; } /** * MMC3 scan line counter isn't clocked if background and sprites are using * the same half of the pattern table * * @return true if PPU is rendering and BG and sprites are using different * pattern tables */ public final boolean mmc3CounterClocking() { return (bgpattern != sprpattern) && renderingOn(); } /** * Runs the PPU emulation for one NES scan line. */ public final void clockLine(int scanline) { //skip a PPU clock on line 0 of odd frames when rendering is on //and we are in NTSC mode (pal has no skip) int skip = (numscanlines == 262 && scanline == 0 && renderingOn() && !((framecount & (utils.BIT1)) != 0)) ? 1 : 0; for (cycles = skip; cycles < 341; ++cycles) { clock(); } } private int tileAddr = 0; private int cpudividerctr = 0; /** * runs the emulation for one PPU clock cycle. */ public final void clock() { //cycle based ppu stuff will go here if (cycles == 1) { if (scanline == 0) { dotcrawl = renderingOn(); } if (scanline < 240) { bgcolors[scanline] = pal[0]; } } if (scanline < 240 || scanline == (numscanlines - 1)) { //on all rendering lines if (renderingOn() && ((cycles >= 1 && cycles <= 256) || (cycles >= 321 && cycles <= 336))) { //fetch background tiles, load shift registers bgFetch(); } else if (cycles == 257 && renderingOn()) { //x scroll reset //horizontal bits of loopyV = loopyT loopyV &= ~0x41f; loopyV |= loopyT & 0x41f; } else if (cycles > 257 && cycles <= 341) { //clear the oam address from pxls 257-341 continuously oamaddr = 0; } if ((cycles == 340) && renderingOn()) { //read the same nametable byte twice //this signals the MMC5 to increment the scanline counter fetchNTByte(); fetchNTByte(); } if (cycles == 65 && renderingOn()) { oamstart = oamaddr; } if (cycles == 260 && renderingOn()) { //evaluate sprites for NEXT scanline (as long as either background or sprites are enabled) //this does in fact happen on scanline 261 but it doesn't do anything useful //it's cycle 260 because that's when the first important sprite byte is read //actually sprite overflow should be set by sprite eval somewhat before //so this needs to be split into 2 parts, the eval and the data fetches evalSprites(); } if (scanline == (numscanlines - 1)) { if (cycles == 0) {// turn off vblank, sprite 0, sprite overflow flags vblankflag = false; sprite0hit = false; spriteoverflow = false; } else if (cycles >= 280 && cycles <= 304 && renderingOn()) { //loopyV = (all of)loopyT for each of these cycles loopyV = loopyT; } } } else if (scanline == vblankline && cycles == 1) { //handle vblank on / off vblankflag = true; } if (!renderingOn() || (scanline > 240 && scanline < (numscanlines - 1))) { //HACK ALERT //handle the case of MMC3 mapper watching A12 toggle //even when read or write aren't asserted on the bus //needed to pass Blargg's mmc3 tests mapper.checkA12(loopyV & 0x3fff); } if (scanline < 240 && cycles >= 1 && cycles <= 256) { int bufferoffset = (scanline << 8) + (cycles - 1); //bg drawing if (bgOn) { //if background is on, draw a dot of that first final boolean isBG = drawBGPixel(bufferoffset); //sprite drawing drawSprites(scanline, cycles - 1, isBG); } else if (spritesOn) { //just the sprites then int bgcolor = ((loopyV > 0x3f00 && loopyV < 0x3fff) ? mapper.ppuRead(loopyV) : pal[0]); bitmap[bufferoffset] = bgcolor; drawSprites(scanline, cycles - 1, true); } else { //rendering is off, so draw either the background color OR //if the PPU address points to the palette, draw that color instead. int bgcolor = ((loopyV > 0x3f00 && loopyV < 0x3fff) ? mapper.ppuRead(loopyV) : pal[0]); bitmap[bufferoffset] = bgcolor; } //deal with the grayscale flag if (grayscale) { bitmap[bufferoffset] &= 0x30; } //handle color emphasis bitmap[bufferoffset] = (bitmap[bufferoffset] & 0x3f) | emph; } //handle nmi if (vblankflag && nmicontrol) { //pull NMI line on when conditions are right mapper.cpu.setNMI(true); } else { mapper.cpu.setNMI(false); } //clock CPU, once every 3 ppu cycles div = (div + 1) % cpudivider[cpudividerctr]; if (div == 0) { mapper.cpu.runcycle(scanline, cycles); mapper.cpucycle(1); cpudividerctr = (cpudividerctr + 1) % cpudivider.length; } if (cycles == 257) { mapper.notifyscanline(scanline); } else if (cycles == 340) { scanline = (scanline + 1) % numscanlines; if (scanline == 0) { ++framecount; } } } private void bgFetch() { //fetch tiles for background //on real PPU this logic is repurposed for sprite fetches as well //System.err.println(hex(loopyV)); bgAttrShiftRegH |= ((nextattr >> 1) & 1); bgAttrShiftRegL |= (nextattr & 1); //background fetches switch ((cycles - 1) & 7) { case 1: fetchNTByte(); break; case 3: //fetch attribute (FIX MATH) penultimateattr = getAttribute(((loopyV & 0xc00) + 0x23c0), (loopyV) & 0x1f, (((loopyV) & 0x3e0) >> 5)); break; case 5: //fetch low bg byte linelowbits = mapper.ppuRead((tileAddr) + ((loopyV & 0x7000) >> 12)); break; case 7: //fetch high bg byte linehighbits = mapper.ppuRead((tileAddr) + 8 + ((loopyV & 0x7000) >> 12)); bgShiftRegL |= linelowbits; bgShiftRegH |= linehighbits; nextattr = penultimateattr; if (cycles != 256) { incLoopyVHoriz(); } else { incLoopyVVert(); } break; default: break; } if (cycles >= 321 && cycles <= 336) { bgShiftClock(); } } private void incLoopyVVert() { //increment loopy_v to next row of tiles if ((loopyV & 0x7000) == 0x7000) { //reset the fine scroll bits and increment tile address to next row loopyV &= ~0x7000; int y = (loopyV & 0x03E0) >> 5; if (y == 29) { //if row is 29 zero fine scroll and bump to next nametable y = 0; loopyV ^= 0x0800; } else { //increment (wrap to 5 bits) but if row is already over 29 //we don't bump loopyV to next nt. y = (y + 1) & 31; } loopyV = (loopyV & ~0x03E0) | (y << 5); } else { //increment the fine scroll loopyV += 0x1000; } } private void incLoopyVHoriz() { //increment horizontal part of loopyv if ((loopyV & 0x001F) == 31) // if coarse X == 31 { loopyV &= ~0x001F; // coarse X = 0 loopyV ^= 0x0400;// switch horizontal nametable } else { loopyV += 1;// increment coarse X } } private void fetchNTByte() { //fetch nt byte tileAddr = mapper.ppuRead( ((loopyV & 0xc00) | 0x2000) + (loopyV & 0x3ff)) * 16 + (bgpattern ? 0x1000 : 0); } private boolean drawBGPixel(int bufferoffset) { //background drawing //loopyX picks bits final boolean isBG; if (bgClip && (bufferoffset & 0xff) < 8) { //left hand of screen clipping //(needs to be marked as BG and not cause a sprite hit) bitmap[bufferoffset] = pal[0]; isBG = true; } else { final int bgPix = (((bgShiftRegH >> -loopyX + 16) & 1) << 1) + ((bgShiftRegL >> -loopyX + 16) & 1); final int bgPal = (((bgAttrShiftRegH >> -loopyX + 8) & 1) << 1) + ((bgAttrShiftRegL >> -loopyX + 8) & 1); isBG = (bgPix == 0); bitmap[bufferoffset] = isBG ? pal[0] : pal[(bgPal << 2) + bgPix]; } bgShiftClock(); return isBG; } private void bgShiftClock() { bgShiftRegH <<= 1; bgShiftRegL <<= 1; bgAttrShiftRegH <<= 1; bgAttrShiftRegL <<= 1; } boolean dotcrawl = true; private boolean sprite0here = false; /** * evaluates PPU sprites for the NEXT scanline */ private void evalSprites() { sprite0here = false; int ypos, offset; found = 0; Arrays.fill(secOAM, 0xff); //primary evaluation //need to emulate behavior when OAM address is set to nonzero here for (int spritestart = oamstart; spritestart < 255; spritestart += 4) { //for each sprite, first we cull the non-visible ones ypos = OAM[spritestart]; offset = scanline - ypos; if (ypos > scanline || offset > (spritesize ? 15 : 7)) { //sprite is out of range vertically continue; } //if we're here it's a valid renderable sprite if (spritestart == 0) { sprite0here = true; } //actually which sprite is flagged for sprite 0 depends on the starting //oam address which is, on the real thing, not necessarily zero. if (found >= 8) { //if more than 8 sprites, set overflow bit and STOP looking //todo: add "no sprite limit" option back spriteoverflow = true; break; //also the real PPU does strange stuff on sprite overflow //todo: emulate register trashing that happens when overflow } else { //set up ye sprite for rendering secOAM[found * 4] = OAM[spritestart]; // secOAM[found * 4 + 1] = OAM[spritestart + 1]; // secOAM[found * 4 + 2] = OAM[spritestart + 2]; // secOAM[found * 4 + 3] = OAM[spritestart + 3]; final int oamextra = OAM[spritestart + 2]; //bg flag spritebgflags[found] = ((oamextra & (utils.BIT5)) != 0); //x value spriteXlatch[found] = OAM[spritestart + 3]; spritepals[found] = ((oamextra & 3) + 4) * 4; if (((oamextra & (utils.BIT7)) != 0)) { //if sprite is flipped vertically, reverse the offset offset = (spritesize ? 15 : 7) - offset; } //now correction for the fact that 8x16 tiles are 2 separate tiles if (offset > 7) { offset += 8; } //get tile address (8x16 sprites can use both pattern tbl pages but only the even tiles) final int tilenum = OAM[spritestart + 1]; spriteFetch(spritesize, tilenum, offset, oamextra); ++found; } } for (int i = found; i < 8; ++i) { //fill unused sprite registers with zeros spriteshiftregL[found] = 0; spriteshiftregH[found] = 0; //also, we need to do 8 reads no matter how many sprites we found //dummy reads are to sprite 0xff spriteFetch(spritesize, 0xff, 0, 0); } } private void spriteFetch(final boolean spritesize, final int tilenum, int offset, final int oamextra) { int tilefetched; if (spritesize) { tilefetched = ((tilenum & 1) * 0x1000) + (tilenum & 0xfe) * 16; } else { tilefetched = tilenum * 16 + ((sprpattern) ? 0x1000 : 0); } tilefetched += offset; //now load up the shift registers for said sprite final boolean hflip = ((oamextra & (utils.BIT6)) != 0); if (!hflip) { spriteshiftregL[found] = reverseByte(mapper.ppuRead(tilefetched)); spriteshiftregH[found] = reverseByte(mapper.ppuRead(tilefetched + 8)); } else { spriteshiftregL[found] = mapper.ppuRead(tilefetched); spriteshiftregH[found] = mapper.ppuRead(tilefetched + 8); } } /** * draws appropriate pixel of the sprites selected by sprite evaluation */ private void drawSprites(int line, int x, boolean bgflag) { final int startdraw = !spriteClip ? 0 : 8;//sprite left 8 pixels clip int sprpxl = 0; int index = 7; //check all the used sprite slots to see if any sprite covers this pixel for (int y = found - 1; y >= 0; --y) { int off = x - spriteXlatch[y]; if (off >= 0 && off <= 8) { if ((spriteshiftregH[y] & 1) + (spriteshiftregL[y] & 1) != 0) { index = y; sprpxl = 2 * (spriteshiftregH[y] & 1) + (spriteshiftregL[y] & 1); } spriteshiftregH[y] >>= 1; spriteshiftregL[y] >>= 1; } } if (sprpxl == 0 || x < startdraw || !spritesOn) { //no opaque sprite pixel here return; } if (sprite0here && (index == 0) && !bgflag && x < 255) { //sprite 0 hit! sprite0hit = true; } //now, FINALLY, drawing. if (!spritebgflags[index] || bgflag) { bitmap[(line << 8) + x] = pal[spritepals[index] + sprpxl]; } } /** * Read the appropriate color attribute byte for the current tile. this is * fetched 2x as often as it really needs to be, the MMC5 takes advantage of * that for ExGrafix mode. * * @param ntstart //start of the current attribute table * @param tileX //x position of tile (0-31) * @param tileY //y position of tile (0-29) * @return attribute table value (0-3) */ private int getAttribute(final int ntstart, final int tileX, final int tileY) { final int base = mapper.ppuRead(ntstart + (tileX >> 2) + 8 * (tileY >> 2)); if (((tileY & (utils.BIT1)) != 0)) { if (((tileX & (utils.BIT1)) != 0)) { return (base >> 6) & 3; } else { return (base >> 4) & 3; } } else if (((tileX & (utils.BIT1)) != 0)) { return (base >> 2) & 3; } else { return base & 3; } } /** * draw all 4 nametables/tileset/pallette to debug window. (for the * nametable viewer) */ private void debugDraw() { for (int i = 0; i < 32; ++i) { for (int j = 0; j < 30; ++j) { nametableView.setRGB(i * 8, j * 8, 8, 8, debugGetTile(mapper.ppuRead(0x2000 + i + 32 * j) * 16 + (bgpattern ? 0x1000 : 0)), 0, 8); } } for (int i = 0; i < 32; ++i) { for (int j = 0; j < 30; ++j) { nametableView.setRGB(i * 8 + 255, j * 8, 8, 8, debugGetTile(mapper.ppuRead(0x2400 + i + 32 * j) * 16 + (bgpattern ? 0x1000 : 0)), 0, 8); } } for (int i = 0; i < 32; ++i) { for (int j = 0; j < 30; ++j) { nametableView.setRGB(i * 8, j * 8 + 239, 8, 8, debugGetTile(mapper.ppuRead(0x2800 + i + 32 * j) * 16 + (bgpattern ? 0x1000 : 0)), 0, 8); } } for (int i = 0; i < 32; ++i) { for (int j = 0; j < 30; ++j) { nametableView.setRGB(i * 8 + 255, j * 8 + 239, 8, 8, debugGetTile(mapper.ppuRead(0x2C00 + i + 32 * j) * 16 + (bgpattern ? 0x1000 : 0)), 0, 8); } } //draw the tileset // for (int i = 0; i < 16; ++i) { // for (int j = 0; j < 32; ++j) { // nametableView.setRGB(i * 8, j * 8, 8, 8, // debugGetTile((i + 16 * j) * 16), 0, 8); // } // } //draw the palettes on the bottom. // for (int i = 0; i < 32; ++i) { // for (int j = 0; j < 16; ++j) { // for (int k = 0; k < 16; ++k) { // nametableView.setRGB(j + i * 16, k + 256, nescolor[0][pal[i]]); // } // } // } debuggui.setFrame(nametableView); //debugbuff.clear(); } /** * Fetches 8x8 NES tile stored at the given offset. This is an artifact of * the first renderer I wrote which drew 8 scanlines at a time. * * @return an 8x8 array with colors stored as RGB packed in int */ private int[] debugGetTile(final int offset) { //read one whole tile from nametable and convert from bitplane to packed //only used for debugging int[] dat = new int[64]; for (int i = 0; i < 8; ++i) { //per line of tile ( 1 byte) for (int j = 0; j < 8; ++j) { //per pixel(1 bit) dat[8 * i + j] = ((((mapper.ppuRead(i + offset) & (utils.BIT7 - j)) != 0)) ? 0x555555 : 0) + ((((mapper.ppuRead(i + offset + 8) & (utils.BIT7 - j)) != 0)) ? 0xaaaaaa : 0); } } return dat; } /** * Sends off a frame of NES video to be rendered by the GUI. also includes * dot crawl flag and BG color to be displayed around edges which are needed * for the NTSC renderer. * * @param gui the GUI window to render to */ public final void renderFrame(GUIInterface gui) { if (PPUDEBUG) { debugDraw(); } if (gui != null) { gui.setFrame(bitmap, bgcolors, dotcrawl); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/PrefsSingleton.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes; import java.util.prefs.Preferences; /** * * @author Andrew */ public class PrefsSingleton { private static Preferences instance = null; protected PrefsSingleton() { // Exists only to defeat instantiation. } public synchronized static Preferences get() { if (instance == null) { instance = Preferences.userNodeForPackage(com.grapeshot.halfnes.NES.class); } return instance; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ROMLoader.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes; import com.grapeshot.halfnes.mappers.BadMapperException; import com.grapeshot.halfnes.mappers.Mapper; public class ROMLoader { //this is the oldest code in the project... I'm honestly ashamed //at how it's structured but for now it works. //TODO: fix this up //this SHOULD do just enough to figure out the file type //and the correct mapper for it, and no more. public String name; public int prgsize; public int chrsize; public Mapper.MirrorType scrolltype; public Mapper.TVType tvtype; public int mappertype; public int submapper; public int prgoff, chroff; public boolean savesram = false; public int[] header; private final int[] therom; public ROMLoader(String filename) { therom = FileUtils.readfromfile(filename); name = filename; } private void ReadHeader(int len) { // iNES header is 16 bytes, nsf header is 128, //other headers increasingly large header = new int[len]; System.arraycopy(therom, 0, header, 0, len); } public void parseHeader() throws BadMapperException { ReadHeader(16); // decode iNES 1.0 headers // 1st 4 bytes : $4E $45 $53 $1A if (header[0] == 'N' && header[1] == 'E' && header[2] == 'S' && header[3] == 0x1A) { //a valid iNES file, proceed scrolltype = ((header[6] & (utils.BIT3)) != 0) ? Mapper.MirrorType.FOUR_SCREEN_MIRROR : ((header[6] & (utils.BIT0)) != 0) ? Mapper.MirrorType.V_MIRROR : Mapper.MirrorType.H_MIRROR; savesram = ((header[6] & (utils.BIT1)) != 0); mappertype = (header[6] >> 4); //detect NES 2.0 format for the rest of the header if (((header[7] >> 2) & 3) == 2) { System.err.println("NES 2 format"); //nes 2 //mapper buts 4-7 in byte 7 mappertype += ((header[7] >> 4) << 4); //mapper bits 8-12 in byte 8 mappertype += ((header[8] & 15) << 8); //submapper number is the high 4 bits of byte 8 submapper = (header[8] >> 4); //extra prg and chr bits in byte 9 prgsize = Math.min(therom.length - 16, 16384 * (header[4] + ((header[9] & 15) << 8))); if (prgsize == 0) { throw new BadMapperException("No PRG ROM size in header"); } chrsize = Math.min(therom.length - 16 - prgsize, 8192 * (header[5] + ((header[9] >> 4) << 8))); //prg ram size in header byte 10 //chr ram size byte 11 //tv type is byte 12 if ((header[12] & 3) == 1) { //pal mode only rom tvtype = Mapper.TVType.PAL; System.err.println("pal"); } else { //if ntsc only or works on both we'll use ntsc tvtype = Mapper.TVType.NTSC; } //byte 13 is Vs. System palettes that i don't deal with yet //byte 14 and 15 must be zero } else { //nes 1 format, with hacks prgsize = Math.min(therom.length - 16, 16384 * header[4]); if (prgsize == 0) { throw new BadMapperException("No PRG ROM size in header"); //someone made this field zero on a 4mb multicart ROM //and someone ELSE made this zero for an 8k PRG dump (no-intro) //so if anyone gets this error make some heuristics to fix it. //basically no multicarts > 2mb in iNES 1.0 format } chrsize = Math.min(therom.length - 16 - prgsize, 8192 * header[5]); if (header[11] + header[12] + header[13] + header[14] + header[15] == 0) { //only consider upper bytes of mapper # if the end bytes are zero mappertype += ((header[7] >> 4) << 4); if (((header[9] & (utils.BIT0)) != 0)) { //detect tv type though it's not really used tvtype = Mapper.TVType.PAL; System.err.println("pal header type 1"); } else if ((header[10] & 3) == 2) { tvtype = Mapper.TVType.PAL; System.err.println("pal header type 2"); } else { tvtype = Mapper.TVType.NTSC; } } else { System.err.println("diskdude (please clean your roms)"); tvtype = Mapper.TVType.NTSC; } } // calc offsets; header not incl. here prgoff = 0; chroff = 0 + prgsize; } else if (('N' == header[0]) && ('E' == header[1]) && ('S' == header[2]) && ('M' == header[3]) && (0x1a == header[4])) { //nsf file mappertype = -1; //reread header since it's 128 bytes ReadHeader(128); prgsize = therom.length - 128; } else if (header[0] == 'U') { throw new BadMapperException("This is a UNIF file with the wrong extension"); } else { throw new BadMapperException("iNES Header Invalid"); } } public int[] load(int size, int offset) { int[] bindata = new int[size]; System.arraycopy(therom, offset + header.length, bindata, 0, size); return bindata; } public int romlen() { return therom.length - header.length; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/Twiddler.form ================================================
================================================ FILE: src/main/java/com/grapeshot/halfnes/Twiddler.java ================================================ /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.grapeshot.halfnes; /** * * @author Andrew the brain dead simplest way I could tweak a value with a * minimum hassle. */ public class Twiddler extends javax.swing.JFrame { double d = 0; /** * Creates new form Twiddler */ public Twiddler() { initComponents(); } public Twiddler(double v) { initComponents(); d = v; jTextField1.setText(Double.toString(v)); } public double get() { return d; } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { jTextField1 = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jTextField1.setText("0"); jButton1.setText("Apply"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 198, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButton1) .addContainerGap(24, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(19, 19, 19) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton1)) .addContainerGap(25, Short.MAX_VALUE)) ); pack(); }// //GEN-END:initComponents private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed d = Double.parseDouble(jTextField1.getText()); }//GEN-LAST:event_jButton1ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JTextField jTextField1; // End of variables declaration//GEN-END:variables } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/AudioOutInterface.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; /** * * @author Andrew */ public interface AudioOutInterface { public void outputSample(int sample); public void flushFrame(boolean waitIfBufferFull); public void pause(); public void resume(); public void destroy(); public boolean bufferHasLessThan(int samples); } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/CircularBuffer.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; /** * * @author Andrew */ public class CircularBuffer { int[] buffer; int bufsize; int write_ptr; int read_ptr; public CircularBuffer(int size) { //gives you a circular FIFO of indicated size. //size rounded up to nearest power of two. Limited to 2^26 b/c that's 256mb for (int i = 0; i < 26; ++i) { int q = (int) Math.pow(2, i); if (q > (size)) { buffer = new int[q]; bufsize = q; break; } } if (buffer == null) { throw new UnsupportedOperationException("Buffer too large"); } write_ptr = size - 2; read_ptr = 0; } public void write(final int data) { buffer[write_ptr] = data; ++write_ptr; write_ptr &= (bufsize - 1); } public int read() { final int retval = buffer[read_ptr]; ++read_ptr; read_ptr &= (bufsize - 1); return retval; } public void advanceRead(int amt) { read_ptr = (read_ptr + amt) & (bufsize - 1); } public void advanceWrite(int amt) { write_ptr = (write_ptr + amt) & (bufsize - 1); } public int peek() { return buffer[read_ptr]; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/ExpansionSoundChip.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; /** * * @author Andrew */ public interface ExpansionSoundChip { public void clock(final int cycles); public void write(int register, int data); public int getval(); } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/FDSSoundChip.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ public class FDSSoundChip implements ExpansionSoundChip { //emulates the wavetable channel in the FDS 2C33 sound chip //(does anything ever read back from these registers? they aren't all write-only) //io enable: must be set for any other register to work boolean regEnable = true; //wavetable RAM (actually only 6 bits wide) int[] wavetable = new int[64]; int waveAddr, waveOut, waveAccum; //16 bits boolean waveWriteEnable; //holds channel at last output value when on and //allows access to wavetable RAM. does NOT stop wave unit. //envelopes boolean volEnvDirection, volEnvDisable, modEnvDirection, modEnvDisable; int volEnvSpeed, modEnvSpeed, envClockMultiplier = 0xe8;//bios sets it thus? int pitch; //12 bits //modulation boolean modDisable; int modCtr, //7 bits SIGNED +63 to -64 modFreq, //12 bits modAccum; int[] modTable = new int[64]; //3 bits wide int modTableAddr; //six bits, not settable from register //Volumes int masterVol, volGain, modGain; //the lowpass int lpaccum; int modout; boolean BothEnvDisable, haltWaveAndReset; @Override public void clock(int cycles) { for (int i = 0; i < cycles; ++i) { runUnits(); } } private void runUnits() { //increment wave accumulator if ((pitch + modout) > 0 && !haltWaveAndReset) { waveAccum += (pitch + modout); if ((waveAccum & 0xffff) != waveAccum) { //increment wave position on overflow waveAccum &= 0xffff; waveAddr = (waveAddr + 1) & 63; } } //increment modulator if (modFreq > 0 && !modDisable) { modAccum += modFreq; if ((modAccum & 0xffff) != modAccum) { //and when that overflows run the rest of the modulation stuff modAccum &= 0xffff; CalculateModulator(); } } else if (modDisable) { modAccum = 0; modout = 0; } if (!haltWaveAndReset && !BothEnvDisable && (envClockMultiplier != 0)) { CalculateEnvelopes(); } if (!waveWriteEnable) { waveOut = wavetable[waveAddr]; } int tmp = (volGain > 32) ? 32 : volGain; int out = (waveOut * tmp); //apply master volume attenuator switch (masterVol) { case 0: default: out *= 8; break; case 1: out *= 5; break; case 2: out *= 4; break; case 3: out *= 3; break; } //do a little lowpass (about 2khz) out += lpaccum; lpaccum -= out >> 6; } private void CalculateModulator() { switch (modTable[modTableAddr]) { case 0: default: modCtr += 0; break; case 1: modCtr += 1; break; case 2: modCtr += 2; break; case 3: modCtr += 4; break; case 4: modCtr = 0; break; case 5: modCtr -= 4; break; case 6: modCtr -= 2; break; case 7: modCtr -= 1; break; } modTableAddr = ++modTableAddr & 63; //wrap mod counter to 7 bits signed again modCtr = (modCtr << 25) >> 25; //apply modulator result (code pretty much from nesdev wiki) //thanks rainwarrior (thrainwarrior) // pitch = $4082/4083 (12-bit unsigned pitch value) // counter = $4085 (7-bit signed mod counter) // gain = $4084 (6-bit unsigned mod gain) // 1. multiply counter by gain, lose lowest 4 bits of result but "round" in a strange way int temp = modCtr * modGain; int remainder = temp & 0xF; temp >>= 4; if ((remainder > 0) && ((temp & 0x80) == 0)) { if (modCtr < 0) { temp -= 1; } else { temp += 2; } } // 2. wrap if a certain range is exceeded if (temp >= 192) { temp -= 256; } else if (temp < -64) { temp += 256; } // 3. multiply result by pitch, then round to nearest while dropping 6 bits temp = pitch * temp; remainder = temp & 0x3F; temp >>= 6; if (remainder >= 32) { temp += 1; } // final mod result is in temp modout = temp; } int modEnvAccum, volEnvAccum; private void CalculateEnvelopes() { if (!modEnvDisable) { ++modEnvAccum; if (modEnvAccum > (8 * envClockMultiplier * (modEnvSpeed + 1))) { modEnvAccum = 0; if (modEnvDirection) { //increase if (modGain < 32) { ++modGain; } } else { //decrease if (modGain > 0) { --modGain; } } } } if (!volEnvDisable) { ++volEnvAccum; if (volEnvAccum > (8 * envClockMultiplier * (volEnvSpeed + 1))) { volEnvAccum = 0; if (volEnvDirection) { //increase if (volGain < 32) { ++volGain; } } else { //decrease if (volGain > 0) { --volGain; } } } } } @Override public void write(int register, int data) { if (register == 0x4023) { //enable register, must be 1 for anything else to work regEnable = ((data & (utils.BIT0)) != 0); } if (regEnable) { if (register >= 0x4040 && register <= 0x407f) { //wavetable write if (waveWriteEnable) { wavetable[(register - 0x4040) & 63] = (data & 63); } } else if (register == 0x4080) { //volume envelope enable and speed volEnvDisable = ((data & (utils.BIT7)) != 0); //ON when it's FALSE volEnvDirection = ((data & (utils.BIT6)) != 0); if (volEnvDisable) { volGain = (data & 63); } volEnvSpeed = (data & 63); volEnvAccum = 0; } else if (register == 0x4082) { //low 8 bits of wave frequency pitch &= 0xf00; pitch |= (data & 0xff); } else if (register == 0x4083) { //frequency high, wave reset and phase pitch &= 0xff; pitch |= (data & 0xf) << 8; haltWaveAndReset = ((data & (utils.BIT7)) != 0); if (haltWaveAndReset) { waveAccum = 0; waveAddr = 0; } //uh is it write 1 to enable or DISable here?? //todo: do something with envelope enables bit 6 BothEnvDisable = ((data & (utils.BIT6)) != 0); } else if (register == 0x4084) { //modulator envelope enable and speed modEnvDisable = ((data & (utils.BIT7)) != 0); modEnvDirection = ((data & (utils.BIT6)) != 0); if (modEnvDisable) { modGain = data & 0x3f; } modEnvSpeed = data & 0x3f; modAccum = 0; modEnvAccum = 0; } else if (register == 0x4085) { //set modulator counter directly //Bio Miracle Bokutte Opa uses this, requires very tight timing //sign extend modCtr = ((data & 0x7f) << 25) >> 25; //modTableAddr = 0; } else if (register == 0x4086) { //low 8 bits of mod freq modFreq &= 0xf00; modFreq |= (data & 0xff); } else if (register == 0x4087) { //high 4 bits of mod freq, reset and phase modFreq &= 0xff; modFreq |= (data & 0xf) << 8; //setting frequency to 0 disables modulation too //i think this is 1 to disable. modDisable = ((data & (utils.BIT7)) != 0); } else if (register == 0x4088) { //write data to 2 consecutive entries of modulator table if (modDisable) { for (int i = 0; i < 2; ++i) { modTable[modTableAddr] = data & 7; modTableAddr = (modTableAddr + 1) & 63; } } modAccum = 0; //? } else if (register == 0x4089) { //wave write protect and master vol masterVol = data & 3; waveWriteEnable = ((data & (utils.BIT7)) != 0); } else if (register == 0x408A) { //sets speed of volume and sweep envelopes //(or 0 to disable them) //normally 0xff envClockMultiplier = data; } } } public int read(int register) { if ((register >= 0x4040) && (register < 0x4080)) { return wavetable[register - 0x4040] | 0x40; } else if (register == 0x4090) { //volume gain return volGain; } else if (register == 0x4092) { //modulator gain return modGain; } else { //System.err.println("what goes here " + utils.hex(register)); //why are nsfs reading from 4080 and 4084? there's nothing there return 0x40; } } @Override public int getval() { return lpaccum; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/FFT.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; /** * * @author Andrew */ public class FFT { //note to self: works, des not give sensible results when plotted //on a linear scale! why? you should know this. hearing's logarithmic. int n, m; // Lookup tables. Only need to recompute when size of FFT changes. double[] cos; double[] sin; public FFT(int n) { this.n = n; this.m = (int) (Math.log(n) / Math.log(2)); // Make sure n is a power of 2 if (n != (1 << m)) { throw new RuntimeException("FFT length must be power of 2"); } // precompute tables cos = new double[n / 2]; sin = new double[n / 2]; for (int i = 0; i < n / 2; i++) { cos[i] = Math.cos(-2 * Math.PI * i / n); sin[i] = Math.sin(-2 * Math.PI * i / n); } } public void fft(double[] x, double[] y) { int i, j, k, n1, n2, a; double c, s, t1, t2; // Bit-reverse j = 0; n2 = n / 2; for (i = 1; i < n - 1; i++) { n1 = n2; while (j >= n1) { j = j - n1; n1 = n1 / 2; } j = j + n1; if (i < j) { t1 = x[i]; x[i] = x[j]; x[j] = t1; t1 = y[i]; y[i] = y[j]; y[j] = t1; } } // FFT n1 = 0; n2 = 1; for (i = 0; i < m; i++) { n1 = n2; n2 = n2 + n2; a = 0; for (j = 0; j < n1; j++) { c = cos[a]; s = sin[a]; a += 1 << (m - i - 1); for (k = j; k < n; k = k + n2) { t1 = c * x[k + n1] - s * y[k + n1]; t2 = s * x[k + n1] + c * y[k + n1]; x[k + n1] = x[k] - t1; y[k + n1] = y[k] - t2; x[k] = x[k] + t1; y[k] = y[k] + t2; } } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/MMC5SoundChip.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ public class MMC5SoundChip implements ExpansionSoundChip { //really quickly hacked together. Need better interfaces for this kind of thing. private final Timer[] timers = {new SquareTimer(8, 2), new SquareTimer(8, 2)}; final private static int[] DUTYLOOKUP = {1, 2, 4, 6}; private final int[] volume = new int[2]; private final boolean[] lenCtrEnable = {true, true, true, true}; private boolean pcmMode, pcmIRQen; private int cycles, pcmOut; @Override public final void clock(final int cycle) { cycles += cycle; if ((cycles % 7445) != cycles) { clockframecounter(); cycles %= 6445; } timers[0].clock(cycle); timers[1].clock(cycle); } @Override public void write(int register, int data) { switch (register) { case 0x0: //length counter 1 halt lenctrHalt[0] = ((data & (utils.BIT5)) != 0); // pulse 1 duty cycle timers[0].setduty(DUTYLOOKUP[data >> 6]); // and envelope envConstVolume[0] = ((data & (utils.BIT4)) != 0); envelopeValue[0] = data & 15; //setvolumes(); break; case 0x1: //pulse 1 sweep setup //mmc5 lacks a sweep break; case 0x2: // pulse 1 timer low bit timers[0].setperiod((timers[0].getperiod() & 0xfe00) + (data << 1)); break; case 0x3: // length counter load, timer 1 high bits if (lenCtrEnable[0]) { lengthctr[0] = LENCTRLOAD[data >> 3]; } timers[0].setperiod((timers[0].getperiod() & 0x1ff) + ((data & 7) << 9)); // sequencer restarted timers[0].reset(); //envelope also restarted envelopeStartFlag[0] = true; break; case 0x4: //length counter 2 halt lenctrHalt[1] = ((data & (utils.BIT5)) != 0); // pulse 2 duty cycle timers[1].setduty(DUTYLOOKUP[data >> 6]); // and envelope envConstVolume[1] = ((data & (utils.BIT4)) != 0); envelopeValue[1] = data & 15; //setvolumes(); break; case 0x5: //pulse 2 sweep setup break; case 0x6: // pulse 2 timer low bit timers[1].setperiod((timers[1].getperiod() & 0xfe00) + (data << 1)); break; case 0x7: if (lenCtrEnable[1]) { lengthctr[1] = LENCTRLOAD[data >> 3]; } timers[1].setperiod((timers[1].getperiod() & 0x1ff) + ((data & 7) << 9)); // sequencer restarted timers[1].reset(); //envelope also restarted envelopeStartFlag[1] = true; break; case 0x10: pcmMode = ((data & (utils.BIT0)) != 0); //true = read mode, false = write mode //read mode watches ALL reads in first 8k of PRG ROM //and writes to dpcm reg //(no way to implement w/o refactors) pcmIRQen = ((data & (utils.BIT7)) != 0); if (pcmIRQen || pcmMode) { System.err.println("Implement the MMC5 PCM IRQ, something's using it!"); } break; case 0x11: if (!pcmMode) { if (data != 0) { pcmOut = data; } else { //should trip an irq, but no way to in current design } } break; default: break; } } @Override public int getval() { int accum = 0; for (int i = 0; i < 2; ++i) { accum += volume[i] * timers[i].getval() * 750; } accum += pcmOut << 5; return accum; } public int status() { return (lengthctr[0] == 0 ? 0 : 1) + (lengthctr[1] == 0 ? 0 : 2); } private int[] lengthctr = {0, 0, 0, 0}; private final static int[] LENCTRLOAD = {10, 254, 20, 2, 40, 4, 80, 6, 160, 8, 60, 10, 14, 12, 26, 14, 12, 16, 24, 18, 48, 20, 96, 22, 192, 24, 72, 26, 16, 28, 32, 30}; private final boolean[] lenctrHalt = {true, true, true, true}; private void setlength() { for (int i = 0; i < 4; ++i) { if (!lenctrHalt[i] && lengthctr[i] > 0) { --lengthctr[i]; if (lengthctr[i] == 0) { setvolumes(); } } } } //instance variables for envelope units private final int[] envelopeValue = {15, 15, 15, 15}; private final int[] envelopeCounter = {0, 0, 0, 0}; private final int[] envelopePos = {0, 0, 0, 0}; private final boolean[] envConstVolume = {true, true, true, true}; private final boolean[] envelopeStartFlag = {false, false, false, false}; private void setenvelope() { for (int i = 0; i < 2; ++i) { if (envelopeStartFlag[i]) { envelopeStartFlag[i] = false; envelopePos[i] = envelopeValue[i] + 1; envelopeCounter[i] = 15; } else { --envelopePos[i]; } if (envelopePos[i] <= 0) { envelopePos[i] = envelopeValue[i] + 1; if (envelopeCounter[i] > 0) { --envelopeCounter[i]; } else if (lenctrHalt[i] && envelopeCounter[i] <= 0) { envelopeCounter[i] = 15; } } } } private void setvolumes() { volume[0] = ((lengthctr[0] <= 0) ? 0 : (((envConstVolume[0]) ? envelopeValue[0] : envelopeCounter[0]))); volume[1] = ((lengthctr[1] <= 0) ? 0 : (((envConstVolume[1]) ? envelopeValue[1] : envelopeCounter[1]))); //System.err.println("setvolumes " + volume[1]); } private int framectr = 0; private final int ctrmode = 4; private void clockframecounter() { //System.err.println("frame ctr clock " + framectr); //should be ~4x a frame, 240 Hz //separate timebase from the NES APU though if (framectr < 4) { setenvelope(); } if ((ctrmode == 4 && (framectr == 1 || framectr == 3)) || (ctrmode == 5 && (framectr == 0 || framectr == 2))) { setlength(); } ++framectr; framectr %= ctrmode; setvolumes(); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/Namco163SoundChip.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ public class Namco163SoundChip implements ExpansionSoundChip { /* Warning for anyone making Namco 163 music: * As the number of channels used increases, the sample rate decreases. * Since the original chip only outputs one channel at a time and cycles * between them, using all 8 channels causes very noticeable 10khz noise * which is not implemented here. */ private final int[] registers = new int[128], out = new int[8]; private int numch, cycpos = 0, curch = 0; @Override public void clock(int cycles) { numch = 1 + ((registers[127] >> 4) & 7); for (int i = 0; i < cycles; ++i) { cycpos = ++cycpos % 15; if (cycpos == 0) { curch = ++curch % numch; clock_channel(curch); } } } private void clock_channel(final int ch) { //get channel register start position final int off = 0x80 - (8 * (ch + 1)); //get phase/freq value int phase = (registers[off + 5] << 16) + (registers[off + 3] << 8) + registers[off + 1]; final int f = ((registers[off + 4] & 3) << 16) + (registers[off + 2] << 8) + registers[off]; //get waveform length int len = (64 - (registers[off + 4] >> 2)) * 4; //ugly heuristics: some NSFs were written with the //expectation that you couldn't have more than 32 byte samples //and that this field loops. Rolling Thunder shows this isn't the case //but the NSFs work in Nintendlator/Nestopia and so have to work //well if there's more than 3 zero samples in the wave data i guess //the longer length probably isn't legit. if (len > 32 && registers[off + 4] != 0) { for (int i = 2; (i << 2) < len; ++i) { if (registers[i - 2] == 0 && registers[i - 1] == 0 && registers[i] == 0) { len = 0x20 - (registers[off + 4] & 0x1C); //System.err.println("truncation"); break; } } } //get waveform start position final int wavestart = registers[off + 6]; //get volume phase = (phase + f) % (len << 16); final int volume = registers[off + 7] & 0xf; final int output = (getWavefromRAM(((phase >> 16) + wavestart) & 0xff) - 8) * volume; //store phase back registers[off + 5] = (phase >> 16) & 0xff; registers[off + 3] = (phase >> 8) & 0xff; registers[off + 1] = phase & 0xff; out[ch] = output * 16; output(); } private int getWavefromRAM(final int addr) { final int b = registers[(addr) >> 1]; return ((addr & (utils.BIT0)) != 0) ? b >> 4 : b & 0xf; } @Override public void write(int register, int data) { //System.err.println(numch); registers[register] = data; } public int read(int register) { return registers[register]; } @Override public int getval() { return lpaccum << 2; } int lpaccum = 0; private void output() { int sample = 0; for (int i = 0; i < numch; ++i) { sample += out[i]; } //this low pass filter is here to reduce noise in games using 8 channels //while still letting me output 1 after the other like the real chip does sample += lpaccum; lpaccum -= sample * (1 / 16.); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/NoiseTimer.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ public class NoiseTimer extends Timer { private int divider = 0; private int[] values = genvalues(1, 1); private int prevduty = 1; private final static int periodadd = 0; public NoiseTimer() { period = 0; } @Override public void setduty(int duty) { if (duty != prevduty) { values = genvalues(duty, values[position]); position = 0; } prevduty = duty; } @Override public final void clock() { ++divider; // note: stay away from negative division to avoid rounding problems int periods = (divider + period + periodadd) / (period + periodadd); if (periods < 0) { periods = 0; // can happen if period or periodadd were made smaller } position = (position + periods) % values.length; divider -= (period + periodadd) * periods; } @Override public final int getval() { return (values[position] & 1); } @Override public final void reset() { position = 0; } @Override public final void clock(final int cycles) { divider += cycles; // note: stay away from negative division to avoid rounding problems int periods = (divider + period + periodadd) / (period + periodadd); if (periods < 0) { periods = 0; // can happen if period or periodadd were made smaller } position = (position + periods) % values.length; divider -= (period + periodadd) * periods; } @Override public final void setperiod(final int newperiod) { period = newperiod; } public static int[] genvalues(int whichbit, int seed) { int[] tehsuck = new int[(whichbit == 1) ? 32767 : 93]; for (int i = 0; i < tehsuck.length; ++i) { seed = (seed >> 1) | ((((seed & (1 << whichbit)) != 0) ^ ((seed & (utils.BIT0)) != 0)) ? 16384 : 0); tehsuck[i] = seed; } return tehsuck; } @Override public void setduty(int[] duty) { throw new UnsupportedOperationException("Not supported on noise channel."); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/Reverberator.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; /** * * @author Andrew */ public class Reverberator implements AudioOutInterface { AudioOutInterface iface; CircularBuffer cb; double echo, lp_coef, hp_coef; public Reverberator(AudioOutInterface i, int length, double echo_gain, double lp_coef, double hp_coef) { this.echo = echo_gain; this.lp_coef = lp_coef; this.hp_coef = hp_coef; iface = i; cb = new CircularBuffer(length); } int lpaccum = 0; private int lowpass_filter(int sample) { sample += lpaccum; lpaccum -= sample * lp_coef; return lpaccum; } private int dckiller = 0; private int highpass_filter(int sample) { //for killing the dc in the signal sample += dckiller; dckiller -= sample * hp_coef;//the actual high pass part dckiller += (sample > 0 ? -1 : 1);//guarantees the signal decays to exactly zero return sample; } @Override public void outputSample(int sample) { sample -= cb.read() * echo; if (sample < -32768) { sample = -32768; //System.err.println("clip"); } if (sample > 32767) { sample = 32767; //System.err.println("clop"); } cb.write(lowpass_filter(highpass_filter(sample))); if (!(iface == null)) { iface.outputSample(sample); } } @Override public void flushFrame(boolean waitIfBufferFull) { if (!(iface == null)) { iface.flushFrame(waitIfBufferFull); } } @Override public void pause() { if (!(iface == null)) { iface.pause(); } } @Override public void resume() { if (!(iface == null)) { iface.resume(); } } @Override public void destroy() { if (!(iface == null)) { iface.destroy(); } } @Override public boolean bufferHasLessThan(int samples) { if (!(iface == null)) { return iface.bufferHasLessThan(samples); } else { return false; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/SquareTimer.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; /** * * @author Andrew */ public class SquareTimer extends Timer { protected int[] values; final private int periodadd; private int divider = 0; @Override public final void clock() { if (period + periodadd <= 0) { return; } ++divider; // note: stay away from negative division to avoid rounding problems int periods = (divider + period + periodadd) / (period + periodadd); if (periods < 0) { periods = 0; // can happen if period or periodadd were made smaller } position = (position + periods) % values.length; divider -= (period + periodadd) * periods; } @Override public final void clock(final int cycles) { if (period < 8) { return; } divider += cycles; // note: stay away from negative division to avoid rounding problems int periods = (divider + period + periodadd) / (period + periodadd); if (periods < 0) { periods = 0; // can happen if period or periodadd were made smaller } position = (position + periods) % values.length; divider -= (period + periodadd) * periods; } public SquareTimer(final int ctrlen, final int periodadd) { this.periodadd = periodadd; values = new int[ctrlen]; period = 0; position = 0; setduty(ctrlen / 2); } public SquareTimer(final int ctrlen) { this.periodadd = 0; values = new int[ctrlen]; period = 0; position = 0; setduty(ctrlen / 2); } @Override public final void reset() { position = 0; } @Override public final void setduty(final int duty) { for (int i = 0; i < values.length; ++i) { values[i] = (i < duty) ? 1 : 0; } } @Override public final void setduty(int[] dutyarray) { values = dutyarray; } @Override public final int getval() { return values[position]; } @Override public final void setperiod(final int newperiod) { period = newperiod; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/Sunsoft5BSoundChip.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ public class Sunsoft5BSoundChip implements ExpansionSoundChip { //not complete... missing volume envelopes and noise channel at the moment. //sound test for Gimmick - Hold Select, push Start on title screen private final Timer[] timers = {new SquareTimer(32), new SquareTimer(32), new SquareTimer(32)}; private final boolean[] enable = {false, false, false}; private final boolean[] useenvelope = {false, false, false}; private final int[] volume = {0, 0, 0}; int enval = 0; private static final int[] VOLTBL = getvoltbl(); @Override public final void write(final int register, final int data) { //System.err.println(register + " " + data); switch (register) { case 0: timers[0].setperiod((timers[0].getperiod() & 0xf00) + data); break; case 1: timers[0].setperiod((timers[0].getperiod() & 0xff) + ((data & 0xf) << 8)); break; case 2: timers[1].setperiod((timers[1].getperiod() & 0xf00) + data); break; case 3: timers[1].setperiod((timers[1].getperiod() & 0xff) + ((data & 0xf) << 8)); break; case 4: timers[2].setperiod((timers[2].getperiod() & 0xf00) + data); break; case 5: timers[2].setperiod((timers[2].getperiod() & 0xff) + ((data & 0xf) << 8)); break; case 7: for (int i = 0; i < 3; ++i) { enable[i] = !(((data & (1 << i)) != 0)); } break; case 8: volume[0] = data & 0xf; useenvelope[0] = ((data & (utils.BIT4)) != 0); break; case 9: volume[1] = data & 0xf; useenvelope[1] = ((data & (utils.BIT4)) != 0); break; case 10: volume[2] = data & 0xf; useenvelope[2] = ((data & (utils.BIT4)) != 0); break; case 13: enval = 15; break; default: //System.err.println("Unrecognized register write to " + register + " ," + data); } } @Override public final void clock(final int cycle) { clockenvelope(cycle); timers[0].clock(cycle); timers[1].clock(cycle); timers[2].clock(cycle); } @Override public final int getval() { return (enable[0] ? ((useenvelope[0] ? enval : VOLTBL[volume[0]]) * timers[0].getval()) : 0) + (enable[1] ? ((useenvelope[1] ? enval : VOLTBL[volume[1]]) * timers[1].getval()) : 0) + (enable[2] ? ((useenvelope[2] ? enval : VOLTBL[volume[2]]) * timers[2].getval()) : 0); } public static int[] getvoltbl() { //the AY-3-8910 volume levels are NOT linear, but logarithmic. int[] vols = new int[16]; for (int i = 0; i < 16; ++i) { vols[i] = (int) (90 * Math.pow(1.4, i)); //matches YMZ284 datasheet info } //utils.printarray(vols); return vols; } private void clockenvelope(final int cycles) { enval = 0; //gimmick only uses the envelope to mute a channel. } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/SwingAudioImpl.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; import com.grapeshot.halfnes.NES; import com.grapeshot.halfnes.PrefsSingleton; import com.grapeshot.halfnes.audio.AudioOutInterface; import com.grapeshot.halfnes.mappers.Mapper; import javax.sound.sampled.*; /** * * @author Andrew */ public class SwingAudioImpl implements AudioOutInterface { private boolean soundEnable; private SourceDataLine sdl; private byte[] audiobuf; private int bufptr = 0; private float outputvol; public SwingAudioImpl(final NES nes, final int samplerate, Mapper.TVType tvtype) { soundEnable = PrefsSingleton.get().getBoolean("soundEnable", true); outputvol = (float) (PrefsSingleton.get().getInt("outputvol", 13107) / 16384.); double fps; switch (tvtype) { case NTSC: default: fps = 60.; break; case PAL: case DENDY: fps = 50.; break; } if (soundEnable) { final int samplesperframe = (int) Math.ceil((samplerate * 2) / fps); audiobuf = new byte[samplesperframe * 2]; try { AudioFormat af = new AudioFormat( samplerate, 16,//bit 2,//channel true,//signed false //little endian //(works everywhere, afaict, but macs need 44100 sample rate) ); sdl = AudioSystem.getSourceDataLine(af); sdl.open(af, samplesperframe * 4 * 2 /*ch*/ * 2 /*bytes/sample*/); //create 4 frame audio buffer sdl.start(); } catch (LineUnavailableException a) { System.err.println(a); nes.messageBox("Unable to inintialize sound."); soundEnable = false; } catch (IllegalArgumentException a) { System.err.println(a); nes.messageBox("Unable to inintialize sound."); soundEnable = false; } } } @Override public final void flushFrame(final boolean waitIfBufferFull) { if (soundEnable) { // if (sdl.available() == sdl.getBufferSize()) { // System.err.println("Audio is underrun"); // } if (sdl.available() < bufptr) { // System.err.println("Audio is blocking"); if (waitIfBufferFull) { //write to audio buffer and don't worry if it blocks sdl.write(audiobuf, 0, bufptr); } //else don't bother to write if the buffer is full } else { sdl.write(audiobuf, 0, bufptr); } } bufptr = 0; } @Override public final void outputSample(int sample) { if (soundEnable) { sample *= outputvol; if (sample < -32768) { sample = -32768; //System.err.println("clip"); } if (sample > 32767) { sample = 32767; //System.err.println("clop"); } //left ch int lch = sample; audiobuf[bufptr] = (byte) (lch & 0xff); audiobuf[bufptr + 1] = (byte) ((lch >> 8) & 0xff); //right ch int rch = sample; audiobuf[bufptr + 2] = (byte) (rch & 0xff); audiobuf[bufptr + 3] = (byte) ((rch >> 8) & 0xff); bufptr += 4; } } @Override public void pause() { if (soundEnable) { sdl.flush(); sdl.stop(); } } @Override public void resume() { if (soundEnable) { sdl.start(); } } @Override public final void destroy() { if (soundEnable) { sdl.stop(); sdl.close(); } } public final boolean bufferHasLessThan(final int samples) { //returns true if the audio buffer has less than the specified amt of samples remaining in it return (sdl == null) ? false : ((sdl.getBufferSize() - sdl.available()) <= samples); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/Timer.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; public abstract class Timer { protected int period; protected int position; public final int getperiod() { return period; } public abstract void setperiod(final int newperiod); public abstract void setduty(int duty); public abstract void setduty(int[] duty); public abstract void reset(); public abstract void clock(); public abstract void clock(final int cycles); public abstract int getval(); } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/TriangleTimer.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; /** * * @author Andrew */ public class TriangleTimer extends Timer { private int divider = 0; private final static int periodadd = 1; private final static int[] triangle = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; public TriangleTimer() { period = 0; position = 0; } @Override public final void reset() { //no way to reset the triangle } @Override public final void clock() { if (period == 0) { return; } ++divider; // note: stay away from negative division to avoid rounding problems int periods = (divider + period + periodadd) / (period + periodadd); if (periods < 0) { periods = 0; // can happen if period or periodadd were made smaller } position = (position + periods) & 0x1F; divider -= (period + periodadd) * periods; } @Override public final void clock(final int cycles) { if (period == 0) { return; } divider += cycles; // note: stay away from negative division to avoid rounding problems int periods = (divider + period + periodadd) / (period + periodadd); if (periods < 0) { periods = 0; // can happen if period or periodadd were made smaller } position = (position + periods) & 0x1F; divider -= (period + periodadd) * periods; } @Override public final int getval() { return (period == 0) ? 7 : triangle[position]; //needed to avoid screech when period is zero } @Override public final void setperiod(final int newperiod) { period = newperiod; if (period == 0) { position = 7; } } @Override public void setduty(int duty) { throw new UnsupportedOperationException("Triangle counter has no duty setting."); } @Override public void setduty(int[] duty) { throw new UnsupportedOperationException("Triangle counter has no duty setting."); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/VRC6SoundChip.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ public class VRC6SoundChip implements ExpansionSoundChip { //to access sound test in Castlevania 3(J) - //Hold down A+B while resetting, push Start twice private final Timer[] timers = {new SquareTimer(16), new SquareTimer(16)}; private final boolean[] enable = {true, true, true}; private final int[] volume = {0, 0, 0}; private int sawdivider = 15; private int sawctr = 0; private int sawaccum = 0; private int sawseq = 0; private boolean clocknow = false; @Override public final void write(final int register, final int data) { switch (register) { case 0x9000: volume[0] = data & 0xf; //duty cycle is between 12.5% and 50% unless last bit set and then it's forced to 100% timers[0].setduty(((data & (utils.BIT7)) != 0) ? 16 : (((data >> 4) & 7) + 1)); break; case 0x9001: timers[0].setperiod((timers[0].getperiod() & 0xf00) + data); break; case 0x9002: timers[0].setperiod((timers[0].getperiod() & 0xff) + ((data & 0xf) << 8)); enable[0] = ((data & (utils.BIT7)) != 0); break; case 0xa000: volume[1] = data & 0xf; timers[1].setduty(((data & (utils.BIT7)) != 0) ? 16 : (((data >> 4) & 7) + 1)); break; case 0xa001: timers[1].setperiod((timers[1].getperiod() & 0xf00) + data); break; case 0xa002: timers[1].setperiod((timers[1].getperiod() & 0xff) + ((data & 0xf) << 8)); enable[1] = ((data & (utils.BIT7)) != 0); break; case 0xb000: //saw accumulator sawaccum = data & 0x3f; break; case 0xb001: sawdivider &= 0xf00; sawdivider += data; break; case 0xb002: sawdivider &= 0xff; sawdivider += ((data & 0xf) << 8); enable[2] = ((data & (utils.BIT7)) != 0); break; } } @Override public final void clock(final int cycle) { timers[0].clock(cycle); timers[1].clock(cycle); for (int i = 0; i < cycle; ++i) { clocksaw(); } } @Override public final int getval() { return 320 * (((enable[0] ? volume[0] : 0) * timers[0].getval() + (enable[1] ? volume[1] : 0) * timers[1].getval()) + (enable[2] ? ((volume[2] & 0xff) >> 3) : 0)); } private void clocksaw() { --sawctr; if (sawctr < 0) { sawctr = sawdivider; if (clocknow) { clocknow = false; volume[2] += sawaccum; ++sawseq; if (sawseq > 6) { sawseq = 0; volume[2] = 0; } } else { clocknow = true; } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/audio/VRC7SoundChip.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.audio; //import com.grapeshot.halfnes.ui.DebugUI; import static com.grapeshot.halfnes.utils.*; //import java.awt.image.BufferedImage; import java.util.Arrays; /** * * @author Andrew */ public class VRC7SoundChip implements ExpansionSoundChip { //Emulates the YM2413 sound chip, pretty much only found in Lagrange Point //sound test in lagrange point: hold A and B on controller 2 and reset. //the VRC7 version is permanently forced into percussion mode //but there's no percussion output pin, //so it only supports 6 output channels instead of 9. private static enum EnvState { CUTOFF, ATTACK, DECAY, RELEASE; } private final EnvState[] modenv_state = new EnvState[6], carenv_state = new EnvState[6]; private final int[] vol = new int[6], freq = new int[6], octave = new int[6], instrument = new int[6], mod = new int[6], oldmodout = new int[6], out = new int[6]; private final boolean[] key = new boolean[6], chSust = new boolean[6]; private int fmctr = 0, amctr = 0; //free running counter for indices private final double[] phase = new double[6]; private final int[] usertone = new int[8], modenv_vol = new int[6], carenv_vol = new int[6]; private final int[][] instdata = { //instrument parameters usertone, //modifiable user tone register is instrument 0 //finally accurate dumped hardcoded instruments from ROM! (Mar 2019) {0x03, 0x21, 0x05, 0x06, 0xE8, 0x81, 0x42, 0x27}, //Bell {0x13, 0x41, 0x14, 0x0D, 0xD8, 0xF6, 0x23, 0x12}, //Guitar {0x11, 0x11, 0x08, 0x08, 0xFA, 0xB2, 0x20, 0x12}, //Wurlitzer {0x31, 0x61, 0x0c, 0x07, 0xA8, 0x64, 0x61, 0x27}, //Flute {0x32, 0x21, 0x1E, 0x06, 0xE1, 0x76, 0x01, 0x28}, //Clarinet {0x02, 0x01, 0x06, 0x00, 0xA3, 0xE2, 0xF4, 0xF4}, //Synth {0x21, 0x61, 0x1D, 0x07, 0x82, 0x81, 0x11, 0x07}, //Trumpet {0x23, 0x21, 0x22, 0x17, 0xA2, 0x72, 0x01, 0x17}, //Organ {0x35, 0x11, 0x25, 0x00, 0x40, 0x73, 0x72, 0x01}, //Bells {0xB5, 0x01, 0x0F, 0x0F, 0xA8, 0xA5, 0x51, 0x02}, //Vibes {0x17, 0xC1, 0x24, 0x07, 0xF8, 0xF8, 0x22, 0x12}, //Vibraphone {0x71, 0x23, 0x11, 0x06, 0x65, 0x74, 0x18, 0x16}, //Tutti {0x01, 0x02, 0xD3, 0x05, 0xC9, 0x95, 0x03, 0x02}, //Fretless {0x61, 0x63, 0x0C, 0x00, 0x94, 0xC0, 0x33, 0xF6}, //Synth Bass {0x21, 0x72, 0x0D, 0x00, 0xC1, 0xD5, 0x56, 0x06} //Sweep }; private final static int[] LOGSIN = genlogsintbl(), EXP = genexptbl(), AM = genamtbl(); private final static double[] MULTIPLIER = {0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 12, 12, 15, 15}, VIBRATO = genvibtbl(); private final static int[] KEYSCALE = {0, 1536, 2048, 2368, 2560, 2752, 2880, 3008, 3072, 3200, 3264, 3328, 3392, 3456, 3520, 3584 }; public VRC7SoundChip() { Arrays.fill(modenv_state, EnvState.CUTOFF); Arrays.fill(carenv_state, EnvState.CUTOFF); Arrays.fill(modenv_vol, 511); Arrays.fill(carenv_vol, 511); } public static int clamp(final int a) { return (a != (a & 0xff)) ? ((a < 0) ? 0 : 255) : a; } private static double[] genvibtbl() { //vibrato wavetable. Yes this is a waste of memory. sue me. //from looking at genplus gx code, the vibrato depth is supposed //to vary per octave, but exactly how is complex. double l = 1789773 / 6.; double f = 6.4; int depth = 10; //blatant guess double[] tbl = new double[(int) Math.ceil(l / f)]; for (int x = 0; x < tbl.length; ++x) { tbl[x] = (depth * tri(2 * Math.PI * f * x / l)); } return tbl; } private static int[] genamtbl() { double l = 1789773 / 6.; double f = 3.7; int depth = 128; int[] tbl = new int[(int) Math.ceil(l / f)];//one full cycle of wave for (int x = 0; x < tbl.length; ++x) { tbl[x] = (int) (depth * tri(2 * Math.PI * f * x / l) + depth); //should be a triangle wave? } return tbl; } private static double tri(double x) { //triangle wave function. x %= 2 * Math.PI; if (x < (Math.PI / 2)) { return x / (Math.PI); } else if (x < (3 * Math.PI) / 2) { return 1 - (x / (Math.PI)); } else { return x / (Math.PI) - 2; } } private static int[] genlogsintbl() { int[] tbl = new int[256]; for (int i = 0; i < tbl.length; ++i) { //y = round(-log(sin((x+0.5)*pi/256/2))/log(2)*256) //see https://docs.google.com/Doc?id=dd8kqn9f_13cqjkf4gp for info tbl[i] = (int) Math.round(-Math.log(Math.sin((i + 0.5) * Math.PI / 256 / 2)) / Math.log(2) * 256); } return tbl; } private static int[] genexptbl() { int[] tbl = new int[256]; for (int i = 0; i < tbl.length; ++i) { //y = round((power(2, x/256)-1)*1024) tbl[i] = (int) Math.round((Math.pow(2, i / 256.) - 1) * 1024.); } return tbl; } @Override public final void write(int register, int data) { switch (register) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: //parameters for instrument 0 (user settable instrument) usertone[register & 7] = data; break; case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: //frequency registers for ch. 0-5 int n = register - 0x10; freq[n] = (freq[n] & 0xf00) | data; break; case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: // ??stooof //f: Upper bit of frequency //o: Octave Select //t: Channel keying on/off (key on = note starts, key off: note decays). //s: bit 5 is _channel_ sustain, //?: bit 6 and 7 are unused? int m = register - 0x20; octave[m] = (data >> 1) & 7; freq[m] = (freq[m] & 0xff) | ((data & 1) << 8); if (((data & (BIT4)) != 0) && !key[m]) { //when note is keyed on carenv_state[m] = EnvState.CUTOFF; modenv_state[m] = EnvState.CUTOFF; // printarray(key); } //TODO: when key is released, //modulator release shouldn't do anything if sustain is on //http://famitracker.com/forum/posts.php?id=6804 key[m] = ((data & (BIT4)) != 0); chSust[m] = ((data & (BIT5)) != 0); break; case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: //top 4 bits instrument number, bottom 4 volume int j = register - 0x30; vol[j] = data & 0xf; //System.err.println(j + " " + hex(data)); instrument[j] = (data >> 4) & 0xf; break; default: //System.err.println(hex(register) + " doesn't exist " + hex(data)); } } int ch = 0; @Override public final void clock(final int cycle) { /* real chip runs at ~3.6 mhz from a separate oscillator but this emulation operates at NTSC NES clock freq of 1.789 this would be a problem if anyone wanted to use it on a PAL system real chip takes 72 cycles to advance through all ch (49716 hz) I update all ch every 36 NES clocks (about the same speed) but I do the carrier and the modulator in the same cycle instead of separately */ for (int i = 0; i < cycle; ++i) { ch = (ch + 1) % (36); if (ch < 6) { operate(); } } } private void operate() { fmctr = (fmctr + 1) % VIBRATO.length; amctr = (amctr + 1) % AM.length; phase[ch] += (1 / 512.) * (freq[ch] << (octave[ch])); //Tuned this with audacity so it's definitely ok this time. phase[ch] %= 1024; int[] inst = instdata[instrument[ch]]; //envelopes int modEnvelope = setenvelope(inst, modenv_state, modenv_vol, ch, false) << 2; int carEnvelope = setenvelope(inst, carenv_state, carenv_vol, ch, true) << 2; //key scaling int keyscale = KEYSCALE[freq[ch] >> 5] - 512 * (7 - octave[ch]); if (keyscale < 0) { keyscale = 0; } int modks = inst[2] >> 6; modks = (modks == 0) ? 0 : (keyscale >> (3 - modks)); int carks = (inst[3] >> 6); carks = (carks == 0) ? 0 : (keyscale >> (3 - carks)); int fb = (~inst[3] & 7); //now the operator cells //invaluable info: http://gendev.spritesmind.net/forum/viewtopic.php?t=386 //http://www.smspower.org/maxim/Documents/YM2413ApplicationManual //http://forums.nesdev.com/viewtopic.php?f=3&t=9102 final double modVibrato = ((inst[0] & (BIT6)) != 0) ? VIBRATO[fmctr] * (1 << octave[ch]) : 0; final double modFreqMultiplier = MULTIPLIER[inst[0] & 0xf]; final int modFeedback = (fb == 7) ? 0 : (mod[ch] + oldmodout[ch]) >> (2 + fb); //no i don't know why it adds the last 2 old outputs but MAME //does it that way and the feedback doesn't sound right w/o it final int mod_f = modFeedback + (int) (modVibrato + modFreqMultiplier * phase[ch]); //each of these values is an attenuation value final int modVol = (inst[2] & 0x3f) * 32;//modulator vol final int modAM = ((inst[0] & (BIT7)) != 0) ? AM[amctr] : 0; final boolean modRectify = ((inst[3] & (BIT3)) != 0); //calculate modulator operator value mod[ch] = operator(mod_f, (int) (modVol + modEnvelope + modks + modAM), modRectify) << 2; oldmodout[ch] = mod[ch]; //now repeat most of that for the carrier final double carVibrato = ((inst[1] & (BIT6)) != 0) ? VIBRATO[fmctr] * (freq[ch] << octave[ch]) / 512. : 0; final double carFreqMultiplier = MULTIPLIER[inst[1] & 0xf]; final int carFeedback = (mod[ch] + oldmodout[ch]) >> 1; //inaccurately named final int car_f = carFeedback + (int) (carVibrato + carFreqMultiplier * phase[ch]); final int carVol = vol[ch] * 128; //4 bits for carrier vol not 6 final int carAM = ((inst[1] & (BIT7)) != 0) ? AM[amctr] : 0; final boolean carRectify = ((inst[3] & (BIT4)) != 0); out[ch] = operator(car_f, (int) (carVol + carEnvelope + carks + carAM), carRectify) << 2; outputSample(ch); } private int operator(final int phase, final int gain, final boolean rectify) { return exp((logsin(phase, rectify) + gain)); } private int exp(int val) { //perform e^x function on 13 bit fp output value using the hardware table on the chip //value should never be negative; if it is, find out why. // if (val < 0) { // val = 0; // System.err.println("why"); // // } //values saturate instead of rolling over in the actual hardware if (val > (BIT13) - 1) { val = (BIT13) - 1; } //val &= (BIT12); //uncomment for sega smash pack vol. 1 for dreamcast int mantissa = EXP[(-val & 0xff)]; int exponent = (-val) >> 8; // int a = (int) Math.scalb(mantissa + 1024, exponent) * s; //correct but slow return ((((mantissa + 1024) >> (-exponent)))) * s; //not correct for negative #s } private int s; // sign flag: positive (1), negative (-1) or muted (0) private int logsin(final int x, final boolean rectify) { //s stores sign of the output, in actual hw the sign bit bypasses //everything else and goes directly to the dac. switch ((x >> 8) & 3) { case 0: s = 1; return LOGSIN[(x & 0xff)]; case 1: s = 1; return LOGSIN[255 - (x & 0xff)]; case 2: s = rectify ? 0 : -1; return LOGSIN[(x & 0xff)]; case 3: default: s = rectify ? 0 : -1; return LOGSIN[255 - (x & 0xff)]; } } int lpaccum = 0; int lpaccum2 = 0; private void outputSample(int ch) { int sample = out[ch] * 24; //two stage low pass filter (looked @ schematic of hybrid on PCB) sample += lpaccum; lpaccum -= sample >> 2; int j = lpaccum; j += lpaccum2; lpaccum2 -= j >> 2; } @Override public final int getval() { return lpaccum2; } final private static int ZEROVOL = 8388608; //2^23 final private static int MAXVOL = 0; // Twiddler t = new Twiddler(0.4); private int setenvelope(final int[] instrument, final EnvState[] state, final int[] vol, final int ch, final boolean isCarrier) { final boolean keyscaleRate = ((instrument[(isCarrier ? 1 : 0)] & (BIT4)) != 0); final int ksrShift = keyscaleRate ? (octave[ch] << 1) + (freq[ch] >> 8) : octave[ch] >> 1; //^ the key scaling bit (java should really have unions, this is such a mess) /* Most of these constants were computed backwards from a table in a badly translated YM2413 technical manual (that was given in ms to decay 40db) and are thus only approximate. The key scaling stuff is similarly just a best guess. I suspect it's a 23 bit int value and each envelope update changes at least 1 LSB */ //from docs on the OPL3: envelope starts at 511 (max attenuation) //and counts down to zero (no attenuation) //on real HW the envelope out is probably the upper 9 bits of a 23 bit //attenuation register (this would add 1 LSB per clock at slowest rate) //System.err.println(state[ch]); switch (state[ch]) { default: case CUTOFF: if (vol[ch] < ZEROVOL) { vol[ch] += 16384; //decay to off in 10ms /* programmer's manual seems to say it takes a few ms to decay before the new note starts its attack run. need to listen really hard to the HW recordings and tune this by ear */ } else { vol[ch] = ZEROVOL; if (key[ch]) { /*the programmer's manual suggests that sound has to decay back to zero volume when keyed on before the attack happens, but other references don't say this */ state[ch] = EnvState.ATTACK; phase[ch] = 0; //reset phase to avoid popping? can't tell if the chip does this. } } break; case ATTACK: if (vol[ch] > MAXVOL + 8) { vol[ch]-= ATTACKVAL[ (instrument[(isCarrier ? 5 : 4)] >> 4) * 4 + ksrShift ]; } else { state[ch] = EnvState.DECAY; } if (!key[ch]) { state[ch] = EnvState.RELEASE; } break; case DECAY: if (vol[ch] < ((instrument[(isCarrier ? 7 : 6)] >> 4)) * 524288) { // <-- check this 524288 //the higher the sustain value is, the lower the volume when //it switches to sustain. vol[ch] += DECAYVAL[(instrument[(isCarrier ? 5 : 4)] & 0xf) * 4 + ksrShift]; } else { state[ch] = EnvState.RELEASE; } if (!key[ch]) { state[ch] = EnvState.RELEASE; } break; case RELEASE: //there are 3 things we need to know: //1. Is the key on? //2. Is the channel sustain bit set? //3. Is bit 5 in patch register 0 or 1 set? //What makes this especially confusing is that the sustain bit in the patch //is bit 5 and the sustain bit in the channel is *also* a bit 5, //in its respective register (ugh) //for consistency with it though let's call the channel sustain SUS //and the patch register D5 boolean d5 = ((instrument[isCarrier ? 1 : 0] & (BIT5)) != 0); boolean SUS = chSust[ch]; if (key[ch]) { //if we're keyed on if (d5) { //sustained tone //don't decay at all } else { //percussive tone //decay at release rate vol[ch] += DECAYVAL[(instrument[(isCarrier ? 7 : 6)] & 0xf) * 4 + ksrShift]; } } else { //key is off if (d5) { //sustained tone if (SUS) { //decay at rate of 1.2 seconds to cut off vol[ch] += DECAYVAL[5 * 4 + ksrShift]; } else { //decay at release rate vol[ch] += DECAYVAL[(instrument[(isCarrier ? 7 : 6)] & 0xf) * 4 + ksrShift]; } } else { //percussive tone if (SUS) { //decay at rate of 1.2 seconds to cut off vol[ch] += DECAYVAL[5 * 4 + ksrShift]; } else { //decay at release rate prime, 310ms to cutoff //according to the docs, //or a rate of 7 according //to tests on nesdev forums. vol[ch] += DECAYVAL[7 * 4 + ksrShift]; //maybe we do apply key scaling to these still } } } break; //there was also something about one of the decay values not working //if a modulator or something //on the famitracker forums or somewhere } if (vol[ch] < MAXVOL) { vol[ch] = MAXVOL; } if (vol[ch] > ZEROVOL) { vol[ch] = ZEROVOL; } if(state[ch] == EnvState.ATTACK){ //logarithmic envelope attack //48 dB - (48 dB * ln(EGC) / ln(1<<23)) from Disch's doc //also accounting for env ctr is running down not up //this is slow and probably wrong vs real chip //but stays for now bc it works and sounds ok int output = 8388608 - (int)(8388608 * Math.log(8388608 - vol[ch]) / Math.log(8388608)); return output >> 14; } return vol[ch] >> 14; } private final static int[] ATTACKVAL = {0, 0, 0, 0, 98, 120, 146, 171, 195, 216, 293, 341, 390, 471, 602, 683, 780, 964, 1168, 1366, 1560, 1927, 2315, 2731, 3075, 3855, 4682, 5461, 6242, 8035, 9364, 10921, 12480, 15423, 18727, 21856, 24960, 30847, 37413, 43713, 51130, 61580, 74991, 87425, 99841, 123161, 149319, 173949, 200870, 241044, 281218, 312464, 337461, 401739, 496266, 562435, 602609, 766957, 937392, 1205218, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607, 8388607}; private final static int[] DECAYVAL = {0, 0, 0, 0, 8, 10, 12, 14, //+2 16, 20, 24, 28, //+4 32, 40, 48, 56, //+8 65, 77, 96, 112, //+16 129, 161, 193, 224, //+32 258, 321, 386, 449, //+64 516, 643, 771, 898, //+128 1032, 1285, 1542, 1796, //+256 2064, 2570, 3084, 3591, //+512 4211, 5268, 6167, 7183, //+1024 8255, 10282, 12407, 14360, //+2048 16510, 20552, 24668, 28745, //+4096 33020, 41154, 49336, 57391, //+8192 66169, 82308, 98673, 114783, //+16384 132859, 132859, 132859, 132859, 132859, 132859, 132859, 132859, 132859, 132859, 132859, 132859, 132859, 132859, 132859, 132859,}; } //these 2 tables calculated with excel based on the envelope length table //in the YM2413 programming guide. //decay table is SO CLOSE to neat powers of 2 //and it really has to be created with simple logic //on the real chip where there is no table of envelope values. ================================================ FILE: src/main/java/com/grapeshot/halfnes/cheats/ActionReplay.java ================================================ package com.grapeshot.halfnes.cheats; import com.grapeshot.halfnes.CPURAM; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * Emulation of the Pro Action Replay device. This device allows to apply "RAM * codes" to have extra lives, ammo, time, etc... * * @author Thomas Lorblanches */ public class ActionReplay { private static final int RAM_SIZE = 0x07FF; private final CPURAM cpuram; // Memory patches for Pro Action Replay codes private final HashMap patches = new HashMap<>(); // List of addresses for the "find code" feature private final List foundAddresses = new ArrayList<>(); /** * Creates a new Pro Action Replay device which will act on the given * memory. * * @param cpuram - memory */ public ActionReplay(CPURAM cpuram) { this.cpuram = cpuram; } /** * Get the list of patches currently applied. */ public HashMap getPatches() { return patches; } /** * Add a memory patch. The patch is permanent (the value is constantly * written into memory until a new game is loaded). */ public void addMemoryPatch(Patch patch) { if (!patches.containsKey(patch.getAddress())) { patches.put((Integer) patch.getAddress(), patch); } } /** * Patches the memory with Pro Action Replay codes. */ public void applyPatches() { cpuram.setPatches(patches); } /** * Remove all the patches. */ public void clear() { patches.clear(); } /** * Find where in RAM can be found the given value. This method begins a new * search. * * @param value - value to be found. * @return the list of addresses where the value were found. */ public List newSearchInMemory(byte value) { foundAddresses.clear(); for (int address = 0; address < RAM_SIZE; address++) { if ((cpuram.read(address) & 0xFF) == (value & 0xFF)) { foundAddresses.add(address); } } return foundAddresses; } /** * Gets the list memory addresses of the current search. */ public List getFoundAddresses() { return foundAddresses; } /** * Find where at the previously found addresses can be found the given * value. This method continue a previously started search. * * @param value - value to be found. * @return the list of addresses where the value were found. */ public List continueSearch(byte value) { List addressesToRemove = new ArrayList<>(); for (int address : foundAddresses) { if ((cpuram.read(address) & 0xFF) != (value & 0xFF)) { addressesToRemove.add(address); } } foundAddresses.removeAll(addressesToRemove); return foundAddresses; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/cheats/ActionReplayGui.form ================================================
================================================ FILE: src/main/java/com/grapeshot/halfnes/cheats/ActionReplayGui.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.cheats; import java.util.ArrayList; import java.util.List; import java.util.Locale; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; import static com.grapeshot.halfnes.utils.*; /** * Dialog box to configure and apply Pro Action Replay cheat codes. * * @author Thomas Lorblanches */ public class ActionReplayGui extends javax.swing.JDialog { private static final int ADDRESS_LENGTH = 6; private static final int DATA_LENGTH = 2; private static final int CODE_LENGTH = ADDRESS_LENGTH + DATA_LENGTH; private Patch patch = null; private final ActionReplay actionReplay; /** * Creates new form ActionReplayGui */ public ActionReplayGui(java.awt.Frame parent, boolean modal, ActionReplay actionReplay) { super(parent, modal); initComponents(); setLocationRelativeTo(null); textCode.requestFocusInWindow(); textCode.setDocument(new PlainDocument() { @Override public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException { if (str == null) { return; } if (((getLength() + str.length()) <= CODE_LENGTH) && (str.matches("[0-9a-fA-FAEGIKLNOPSTUVXYZaegiklnopstuvxyz]*"))) { super.insertString(offset, str, attr); } } }); textFindData.setDocument(new PlainDocument() { @Override public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException { if (str == null) { return; } if (((getLength() + str.length()) <= 3) && (str.matches("[0-9]*"))) { super.insertString(offset, str, attr); } } }); listPossibleAddresses.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()) { return; } if (listPossibleAddresses.getSelectedIndex() == -1) { btnTry.setEnabled(false); } else { btnTry.setEnabled(true); } } }); this.actionReplay = actionReplay; updateCurrentCodesList(); updateListPossibleCodes(); } private void updateCurrentCodesList() { final Patch[] patches = actionReplay.getPatches().values().toArray(new Patch[0]); final String[] patchesStr = new String[patches.length]; for (int i = 0; i < patches.length; i++) { patchesStr[i] = patches[i].toString().toUpperCase(); } currentCodesList.setListData(patchesStr); } private void updateListPossibleCodes() { List adrStr = new ArrayList<>(); for (Integer adr : actionReplay.getFoundAddresses()) { String str = Integer.toHexString(adr).toUpperCase(); while (str.length() < ADDRESS_LENGTH) { str = "0" + str; } adrStr.add(str); } listPossibleAddresses.setListData(adrStr.toArray()); } private boolean isCodeValid() { final String code = textCode.getText(); if ((code.length() == 8) && code.matches("[0-9a-fA-F]*")) { btnApply.setEnabled(true); final int data = (Integer.parseInt(textCode.getText().substring(textCode.getText().length() - 2), 16) & 0xFF); final int address = Integer.parseInt(textCode.getText().substring(0, textCode.getText().length() - 2), 16); patch = new Patch(address, data); return true; } else if ((code.length() == 6) && code.matches("[AEGIKLNOPSTUVXYZaegiklnopstuvxyz]*")) { //game genie type 1 code long c = GGtoHex(code); if (!((c & (BIT15)) != 0)) { //check bit 15 is false //now descramble this value into address and data final int address = 0x8000 | ((int) ((c >> 10) & 1) << 14) | ((int) ((c >> 9) & 1) << 13) | ((int) ((c >> 8) & 1) << 12) | ((int) ((c >> 7) & 1) << 11) | ((int) ((c >> 2) & 1) << 10) | ((int) ((c >> 1) & 1) << 9) | ((int) ((c >> 0) & 1) << 8) | ((int) ((c >> 19) & 1) << 7) | ((int) ((c >> 14) & 1) << 6) | ((int) ((c >> 13) & 1) << 5) | ((int) ((c >> 12) & 1) << 4) | ((int) ((c >> 11) & 1) << 3) | ((int) ((c >> 6) & 1) << 2) | ((int) ((c >> 5) & 1) << 1) | ((int) ((c >> 4) & 1)); final int data = ((int) ((c >> 23) & 1) << 7) | ((int) ((c >> 18) & 1) << 6) | ((int) ((c >> 17) & 1) << 5) | ((int) ((c >> 16) & 1) << 4) | ((int) ((c >> 3) & 1) << 3) | ((int) ((c >> 22) & 1) << 2) | ((int) ((c >> 21) & 1) << 1) | (int) ((c >> 20) & 1); btnApply.setEnabled(true); patch = new Patch(address, data); return true; } } else if ((code.length() == 8) && code.matches("[AEGIKLNOPSTUVXYZaegiklnopstuvxyz]*")) { //game genie type 2 code long c = GGtoHex(code); if (((c & (1 << 23)) != 0)) { //check bit 15 is true //now descramble this value into address and data final int address = 0x8000 | ((int) ((c >> 18) & 1) << 14) | ((int) ((c >> 17) & 1) << 13) | ((int) ((c >> 16) & 1) << 12) | ((int) ((c >> 15) & 1) << 11) | ((int) ((c >> 10) & 1) << 10) | ((int) ((c >> 9) & 1) << 9) | ((int) ((c >> 8) & 1) << 8) | ((int) ((c >> 27) & 1) << 7) | ((int) ((c >> 22) & 1) << 6) | ((int) ((c >> 21) & 1) << 5) | ((int) ((c >> 20) & 1) << 4) | ((int) ((c >> 19) & 1) << 3) | ((int) ((c >> 14) & 1) << 2) | ((int) ((c >> 13) & 1) << 1) | ((int) ((c >> 12) & 1)); final int data = ((int) ((c >> 31) & 1) << 7) | ((int) ((c >> 26) & 1) << 6) | ((int) ((c >> 25) & 1) << 5) | ((int) ((c >> 24) & 1) << 4) | ((int) ((c >> 3) & 1) << 3) | ((int) ((c >> 30) & 1) << 2) | ((int) ((c >> 29) & 1) << 1) | ((int) ((c >> 28) & 1)); final int check = //8 char game genie codes use a check byte so val is only //patched when rom value matches this. ((int) ((c >> 7) & 1) << 7) | ((int) ((c >> 2) & 1) << 6) | ((int) ((c >> 1) & 1) << 5) | ((int) ((c >> 0) & 1) << 4) | ((int) ((c >> 11) & 1) << 3) | ((int) ((c >> 6) & 1) << 2) | ((int) ((c >> 5) & 1) << 1) | ((int) ((c >> 4) & 1)); btnApply.setEnabled(true); patch = new Patch(address, data, check); return true; } } btnApply.setEnabled(false); patch = null; return false; } private final static String ggMap = "APZLGITYEOXUKSVN"; private long GGtoHex(String code) { //converts a game genie code to a hex string //the individual bits still need to be unscrambled code = code.toUpperCase(Locale.ENGLISH); long ret = 0; for (int i = 0; i < code.length(); ++i) { ret *= 16; ret += ggMap.indexOf(code.charAt(i)); } return ret; } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { jScrollPane2 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); tabbedPan = new javax.swing.JTabbedPane(); jPanel1 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea(); panelApplyCode = new javax.swing.JPanel(); textCode = new javax.swing.JTextField(); btnApply = new javax.swing.JButton(); jPanel3 = new javax.swing.JPanel(); jScrollPane4 = new javax.swing.JScrollPane(); currentCodesList = new javax.swing.JList(); btnRemoveAll = new javax.swing.JButton(); jPanel2 = new javax.swing.JPanel(); jScrollPane3 = new javax.swing.JScrollPane(); jTextArea2 = new javax.swing.JTextArea(); jPanel4 = new javax.swing.JPanel(); textFindData = new javax.swing.JTextField(); btnSearch = new javax.swing.JButton(); btnReset = new javax.swing.JButton(); jPanel5 = new javax.swing.JPanel(); jScrollPane5 = new javax.swing.JScrollPane(); listPossibleAddresses = new javax.swing.JList(); btnTry = new javax.swing.JButton(); btnClose = new javax.swing.JButton(); jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Title 1", "Title 2", "Title 3", "Title 4" } )); jScrollPane2.setViewportView(jTable1); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Cheat Codes"); setModal(true); setName("actionReplayDialog"); // NOI18N setResizable(false); tabbedPan.setMinimumSize(new java.awt.Dimension(10, 128)); jTextArea1.setEditable(false); jTextArea1.setBackground(new java.awt.Color(240, 240, 240)); jTextArea1.setColumns(20); jTextArea1.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N jTextArea1.setRows(5); jTextArea1.setText("Enter a Game Genie or Pro Action Replay cheat code.\nA Pro Action Replay code is composed of 8 hexadecimal characters\n(numbers from 0 to 9 and letters from A to F).\nThe first 6 characters represent the in-memory address, and the last two the value to write in.\nIt is used to patch the NES memory to give you extra lives, ammo, time etc..."); jScrollPane1.setViewportView(jTextArea1); panelApplyCode.setBorder(javax.swing.BorderFactory.createTitledBorder("Add new code")); textCode.setColumns(8); textCode.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N textCode.addCaretListener(new javax.swing.event.CaretListener() { public void caretUpdate(javax.swing.event.CaretEvent evt) { textCodeCaretUpdate(evt); } }); btnApply.setText("Apply"); btnApply.setEnabled(false); btnApply.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnApplyActionPerformed(evt); } }); javax.swing.GroupLayout panelApplyCodeLayout = new javax.swing.GroupLayout(panelApplyCode); panelApplyCode.setLayout(panelApplyCodeLayout); panelApplyCodeLayout.setHorizontalGroup( panelApplyCodeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelApplyCodeLayout.createSequentialGroup() .addContainerGap() .addComponent(textCode, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(btnApply) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelApplyCodeLayout.setVerticalGroup( panelApplyCodeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelApplyCodeLayout.createSequentialGroup() .addContainerGap() .addGroup(panelApplyCodeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(textCode, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnApply)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Currently applied codes")); currentCodesList.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); currentCodesList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); jScrollPane4.setViewportView(currentCodesList); btnRemoveAll.setText("Remove all"); btnRemoveAll.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnRemoveAllActionPerformed(evt); } }); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(btnRemoveAll) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addComponent(btnRemoveAll) .addGap(0, 96, Short.MAX_VALUE)) .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) .addContainerGap()) ); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 468, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(panelApplyCode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(20, 20, 20) .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addContainerGap(13, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(panelApplyCode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(16, Short.MAX_VALUE)) ); tabbedPan.addTab("Apply", jPanel1); jTextArea2.setEditable(false); jTextArea2.setBackground(new java.awt.Color(240, 240, 240)); jTextArea2.setColumns(20); jTextArea2.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N jTextArea2.setRows(5); jTextArea2.setText("You can find new Pro Action Replay codes by searching into memory the location of\nsome data like remaining lives, time left, etc...\nStart a new search with the current value you want to search, then continue the search\nwith new values of the same data until the number of locations found is low, and then\ntry the codes until you found the good one!"); jScrollPane3.setViewportView(jTextArea2); jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Search")); textFindData.setColumns(8); textFindData.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N textFindData.addCaretListener(new javax.swing.event.CaretListener() { public void caretUpdate(javax.swing.event.CaretEvent evt) { textFindDataCaretUpdate(evt); } }); btnSearch.setText("Search"); btnSearch.setEnabled(false); btnSearch.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnSearchActionPerformed(evt); } }); btnReset.setText("Reset Search"); btnReset.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnResetActionPerformed(evt); } }); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addContainerGap() .addComponent(textFindData, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(btnSearch) .addContainerGap(42, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnReset) .addContainerGap()) ); jPanel4Layout.setVerticalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(textFindData, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnSearch)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 7, Short.MAX_VALUE) .addComponent(btnReset) .addContainerGap()) ); jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Possible addresses")); listPossibleAddresses.setModel(new javax.swing.AbstractListModel() { String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public Object getElementAt(int i) { return strings[i]; } }); listPossibleAddresses.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); jScrollPane5.setViewportView(listPossibleAddresses); btnTry.setText("Try"); btnTry.setEnabled(false); btnTry.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnTryActionPerformed(evt); } }); javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE) .addComponent(btnTry) .addGap(18, 18, 18)) ); jPanel5Layout.setVerticalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 155, Short.MAX_VALUE) .addGroup(jPanel5Layout.createSequentialGroup() .addContainerGap() .addComponent(btnTry) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 468, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel2Layout.createSequentialGroup() .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(13, Short.MAX_VALUE)) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)) .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); tabbedPan.addTab("Find", jPanel2); btnClose.setText("Close"); btnClose.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnCloseActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(tabbedPan, javax.swing.GroupLayout.PREFERRED_SIZE, 496, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnClose) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(tabbedPan, javax.swing.GroupLayout.PREFERRED_SIZE, 315, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(btnClose) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); tabbedPan.getAccessibleContext().setAccessibleName(""); pack(); }// //GEN-END:initComponents private void btnCloseActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnCloseActionPerformed {//GEN-HEADEREND:event_btnCloseActionPerformed this.dispose(); }//GEN-LAST:event_btnCloseActionPerformed private void btnApplyActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnApplyActionPerformed {//GEN-HEADEREND:event_btnApplyActionPerformed if (isCodeValid()) { actionReplay.addMemoryPatch(patch); this.setVisible(false); } }//GEN-LAST:event_btnApplyActionPerformed private void textCodeCaretUpdate(javax.swing.event.CaretEvent evt)//GEN-FIRST:event_textCodeCaretUpdate {//GEN-HEADEREND:event_textCodeCaretUpdate isCodeValid(); }//GEN-LAST:event_textCodeCaretUpdate private void btnRemoveAllActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnRemoveAllActionPerformed {//GEN-HEADEREND:event_btnRemoveAllActionPerformed actionReplay.clear(); updateCurrentCodesList(); }//GEN-LAST:event_btnRemoveAllActionPerformed private void btnResetActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnResetActionPerformed {//GEN-HEADEREND:event_btnResetActionPerformed actionReplay.getFoundAddresses().clear(); updateListPossibleCodes(); }//GEN-LAST:event_btnResetActionPerformed private void textFindDataCaretUpdate(javax.swing.event.CaretEvent evt)//GEN-FIRST:event_textFindDataCaretUpdate {//GEN-HEADEREND:event_textFindDataCaretUpdate if (textFindData.getText().matches("[0-9]+")) { btnSearch.setEnabled(true); } else { btnSearch.setEnabled(false); } }//GEN-LAST:event_textFindDataCaretUpdate private void btnSearchActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnSearchActionPerformed {//GEN-HEADEREND:event_btnSearchActionPerformed if (actionReplay.getFoundAddresses().isEmpty()) { actionReplay.newSearchInMemory((byte) Integer.parseInt(textFindData.getText(), 16)); } else { actionReplay.continueSearch((byte) Integer.parseInt(textFindData.getText(), 16)); } updateListPossibleCodes(); }//GEN-LAST:event_btnSearchActionPerformed private void btnTryActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnTryActionPerformed {//GEN-HEADEREND:event_btnTryActionPerformed textCode.setText(listPossibleAddresses.getSelectedValue().toString()); tabbedPan.setSelectedIndex(0); }//GEN-LAST:event_btnTryActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnApply; private javax.swing.JButton btnClose; private javax.swing.JButton btnRemoveAll; private javax.swing.JButton btnReset; private javax.swing.JButton btnSearch; private javax.swing.JButton btnTry; private javax.swing.JList currentCodesList; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JScrollPane jScrollPane4; private javax.swing.JScrollPane jScrollPane5; private javax.swing.JTable jTable1; private javax.swing.JTextArea jTextArea1; private javax.swing.JTextArea jTextArea2; private javax.swing.JList listPossibleAddresses; private javax.swing.JPanel panelApplyCode; private javax.swing.JTabbedPane tabbedPan; private javax.swing.JTextField textCode; private javax.swing.JTextField textFindData; // End of variables declaration//GEN-END:variables } ================================================ FILE: src/main/java/com/grapeshot/halfnes/cheats/Patch.java ================================================ package com.grapeshot.halfnes.cheats; /** * A patch object includes an address to modify and the value to write at this * address. Patch objects are immutable and then thread-safe. * * @author Thomas Lorblanches */ public class Patch { private final int type; //0 = no compare read, 1 = do private final int address; private final int data; private final int cmpData; /** * Creates a patch. * * @param address - in-memory address to be patched. * @param data - data to write in the address. */ public Patch(int address, int data) { this.address = address; this.data = data; this.type = 0; this.cmpData = 0; } public Patch(int address, int data, int check) { this.address = address; this.data = data; this.type = 1; this.cmpData = check; } /** * Returns the address to patch. */ public int getAddress() { return address; } /** * Returns the value to write in the address. */ public int getData() { return data; } /** * Returns true if the check matches the data or it's a code type that * doesn't check data bus */ public boolean matchesData(int data) { return (type == 0) || (data == cmpData); } @Override public int hashCode() { int hash = 5; hash = 71 * hash + this.address; hash = 71 * hash + this.data; return hash; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final Patch other = (Patch) obj; if (this.address != other.address) { return false; } if (this.data != other.data) { return false; } return true; } @Override public String toString() { String addStr = Integer.toHexString(address); String datStr = Integer.toHexString(data & 0xFF); StringBuilder builder = new StringBuilder(); for (int i = 0; i < 6 - addStr.length(); i++) { builder.append("0"); } builder.append(addStr); for (int i = 0; i < 2 - datStr.length(); i++) { builder.append("0"); } builder.append(datStr); return builder.toString().toUpperCase(); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/halfNES.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes; import com.grapeshot.halfnes.ui.SwingUI; import java.io.*; import javax.swing.*; public class halfNES { private halfNES() {} public static void main(String[] args) throws IOException { JInputHelper.setupJInput(); try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { System.err.println("Could not set system look and feel. Meh."); } new SwingUI().start(args); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Action52Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ public class Action52Mapper extends Mapper { int[] ram = new int[4]; int prgchip = 0; int prgpage = 0; int chrpage = 0; boolean prgmode = false; @Override public void loadrom() throws BadMapperException { super.loadrom(); cartWrite(0x8000, 0); } @Override public final void cartWrite(final int addr, final int data) { if (addr <= 0x5fff) { ram[addr & 3] = data & 0xf; } else if (addr >= 0x8000) { chrpage = ((addr & 0xf) << 2) + (data & 3); prgmode = ((addr & (utils.BIT5)) != 0); prgpage = (addr >> 6) & 0x1f; prgchip = (addr >> 11) & 3; setmirroring((((addr & (utils.BIT13)) != 0)) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (chrpage * 8 + i)) % chrsize; } int off = 0; switch (prgchip) { case 0: off = 0; break; case 1: off = 0x080000; break; case 3: off = 0x100000; break; default: System.err.println("Who knows."); } if (prgmode) { for (int i = 0; i < 16; ++i) { prg_map[i] = ((1024 * ((16 * prgpage) + i)) + off) % prgsize; prg_map[i + 16] = ((1024 * ((16 * prgpage) + i)) + off) % prgsize; } } else { for (int i = 0; i < 32; ++i) { prg_map[i] = ((1024 * ((32 * (prgpage >> 1)) + i)) + off) % prgsize; } } } } @Override public final int cartRead(final int addr) { // by default has wram at 0x6000 and cartridge at 0x8000-0xfff // but some mappers have different so override for those if (addr >= 0x8000) { return prg[prg_map[((addr & 0x7fff)) >> 10] + (addr & 1023)]; } else if (addr < 0x6000) { return ram[addr & 3] & 0xf; } return addr >> 8; //open bus } public void reset() { cartWrite(0x8000, 0); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/AfterburnerMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.utils; import java.util.Arrays; /** * * @author Andrew */ public class AfterburnerMapper extends Mapper { //the Afterburner mapper is special in that it uses ROM name tables private int bank = 0x0; boolean useromnt = false; int romnt1, romnt2; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //movable bank, should really be random. eh, effort for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } else if (addr <= 0x8fff) { setppubank(2, 0, data); } else if (addr <= 0x9fff) { setppubank(2, 2, data); } else if (addr <= 0xafff) { setppubank(2, 4, data); } else if (addr <= 0xbfff) { setppubank(2, 6, data); } else if (addr <= 0xcfff) { romnt1 = data | 0x80; } else if (addr <= 0xdfff) { romnt2 = data | 0x80; } else if (addr <= 0xefff) { useromnt = ((data & (utils.BIT4)) != 0); setmirroring(((data & (utils.BIT0)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } else if (addr <= 0xffff) { bank = data & 0xf; //remap PRG bank (1st bank switchable, 2nd bank mapped to LAST bank) for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * bank)) & (prgsize - 1); } } } private void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banksize * banknum) + i)) % chrsize; } } public int ppuRead(int addr) { if (addr < 0x2000) { return chr[chr_map[addr >> 10] + (addr & 1023)]; } else { switch (addr & 0xc00) { case 0: return (useromnt ? chr[(addr & 0x3ff) + (romnt1 * 1024)] : nt0[addr & 0x3ff]); case 0x400: return (useromnt ? chr[(addr & 0x3ff) + (romnt2 * 1024)] : nt1[addr & 0x3ff]); case 0x800: return (useromnt ? chr[(addr & 0x3ff) + (romnt2 * 1024)] : nt2[addr & 0x3ff]); case 0xc00: default: if (addr >= 0x3f00) { addr &= 0x1f; if (addr >= 0x10 && ((addr & 3) == 0)) { addr -= 0x10; } return ppu.pal[addr]; } else { return (useromnt ? chr[(addr & 0x3ff) + (romnt1 * 1024)] : nt3[addr & 0x3ff]); } } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/AnromMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class AnromMapper extends Mapper { @Override public void loadrom() throws BadMapperException { super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //remap all 32k of PRG to 32 x bank # for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + (32 * (data & 15)))) & (prgsize - 1); } setmirroring(((data & (utils.BIT4)) != 0) ? MirrorType.SS_MIRROR1 : MirrorType.SS_MIRROR0); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/BadMapperException.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; public class BadMapperException extends Exception { public String e; public BadMapperException(String e) { this.e = e; } @Override public String getMessage() { return e; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/BnromMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; public class BnromMapper extends Mapper { @Override public void loadrom() throws BadMapperException { super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //remap all 32k of PRG to 32 x bank # int bankstart = 32 * (data & 15); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + bankstart)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/CaltronMapper.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class CaltronMapper extends Mapper { int reg = 0; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr >= 0x6000 && addr <= 0x67FF) { reg = addr & 0xFF; //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * (addr & 7))) & (prgsize - 1); } setmirroring(((addr & (utils.BIT5)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } else if (addr >= 0x8000 && addr <= 0xFFFF && (reg & 4) != 0) { //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * ((reg >> 1 & 0xC) | (data & 3)))) & (chrsize - 1); } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/CnromMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; public class CnromMapper extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * (data & 0xff))) & (chrsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/CodemastersMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ public class CodemastersMapper extends Mapper { private int bank = 0x0; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //movable bank, should really be random. eh, effort for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } if (addr < 0xc000) { if (crc == 0x1BC686A8L) { //fire hawk is only game with mapper controlled mirroring //micro machines glitches hard if this is on setmirroring((((data & (utils.BIT4)) != 0) ? MirrorType.SS_MIRROR1 : MirrorType.SS_MIRROR0)); } } else { bank = data & 0xf; //remap PRG bank (1st bank switchable, 2nd bank mapped to LAST bank) for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * bank)) & (prgsize - 1); } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/ColorDreamsMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; /** * * @author Andrew */ public class ColorDreamsMapper extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 1; i <= 8; ++i) { chr_map[8 - i] = chrsize - (1024 * i); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } final int prgselect = data & 0xf; final int chrselect = data >> 4; //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/CrazyClimberMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; public class CrazyClimberMapper extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //movable (second) bank; first one is fixed for (int i = 0; i < 16; ++i) { prg_map[16 + i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int bank = (data & 7); //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[16 + i] = (1024 * (i + 16 * bank)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/CrimeBustersMapper.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class CrimeBustersMapper extends Mapper { //Mapper 38 - GNROM (mapper 066) variant for Crime Busters @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int prgselect = data & 3; int chrselect = (data >> 2) & 3; //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/FME7Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.utils; import com.grapeshot.halfnes.*; import com.grapeshot.halfnes.audio.*; /** * * @author Andrew */ public class FME7Mapper extends Mapper { private int commandRegister = 0; private int soundCommand = 0; private int[] charbanks = new int[8]; //8 1k char rom banks private int[] prgbanks = new int[4]; //4 8k prg banks - PLUS 1 8k fixed one private boolean ramEnable = true; private boolean ramSelect = false; private int irqcounter = 0xffff; //really needs to be unsigned but we'll cheese it private boolean irqenabled; private boolean irqclock; private boolean hasInitSound = false; private final ExpansionSoundChip sndchip = new Sunsoft5BSoundChip(); private boolean interrupted = false; public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //on startup: prg_map = new int[40]; //(trollface) //fixed bank maps to last 8k of rom, set everything else to last chunk //as well. for (int i = 1; i <= 40; ++i) { prg_map[40 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } } @Override public final int cartRead(int addr) { //five possible rom banks. if (addr >= 0x6000) { if (addr < 0x8000 && ramSelect) { if (ramEnable) { return prgram[addr - 0x6000]; } else { return addr >> 8; //open bus } } return prg[prg_map[(addr - 0x6000) >> 10] + (addr & 1023)]; } return addr >> 8; //open bus } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } if (addr == 0x8000) { //command register commandRegister = data & 0xf; } else if (addr == 0xc000) { //sound command register soundCommand = data & 0xf; if (!hasInitSound) { //only initialize the sound chip if anything writes a sound command. cpuram.apu.addExpnSound(sndchip); hasInitSound = true; } } else if (addr == 0xa000) { //mapper data register switch (commandRegister) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: //char bank switches charbanks[commandRegister] = data; setbanks(); break; case 8: ramEnable = ((data & (utils.BIT7)) != 0); ramSelect = ((data & (utils.BIT6)) != 0); prgbanks[0] = data & 0x3f; setbanks(); break; case 9: case 0xa: case 0xb: //prg bank switch prgbanks[commandRegister - 8] = data; setbanks(); break; case 0xc: //mirroring select switch (data & 3) { case 0: setmirroring(Mapper.MirrorType.V_MIRROR); break; case 1: setmirroring(Mapper.MirrorType.H_MIRROR); break; case 2: setmirroring(Mapper.MirrorType.SS_MIRROR0); break; case 3: setmirroring(Mapper.MirrorType.SS_MIRROR1); break; } case 0xd: //irq - let's put this in and hope it works irqclock = ((data & (utils.BIT7)) != 0); //2015-05: test by Teppples says that any value written here //will acknowledge a pending interrupt irqenabled = ((data & (utils.BIT0)) != 0); if (interrupted && cpu.interrupt > 0) { --cpu.interrupt; } interrupted = false; //System.err.println(cpu.interrupt); break; case 0xe: irqcounter &= 0xff00; irqcounter |= data; break; case 0xf: irqcounter &= 0xff; irqcounter |= (data << 8); break; } } else if (addr == 0xe000) { sndchip.write(soundCommand, data); } } @Override public void cpucycle(int cycles) { if (irqclock) { if (irqcounter == 0) { irqcounter = 0xffff; if (irqenabled && !interrupted) { interrupted = true; ++cpu.interrupt; //System.err.println("FME7 Interrupt"); } } else { --irqcounter; } } } private void setbanks() { for (int i = 0; i < 8; ++i) { for (int j = 0; j < 4; ++j) { prg_map[i + 8 * j] = (1024 * (i + (prgbanks[j] * 8))) % prgsize; } } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * charbanks[i]) % chrsize; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/GnromMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; /** * * @author Andrew */ public class GnromMapper extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 1; i <= 8; ++i) { chr_map[8 - i] = chrsize - (1024 * i); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int prgselect = (data >> 4) & 3; int chrselect = data & 3; //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/IremH3001Mapper.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class IremH3001Mapper extends Mapper { private int[] chrbank = {0, 0, 0, 0, 0, 0, 0, 0}; private int irqctr, irqreload = 0; private boolean irqenable, interrupted = false; @Override public void loadrom() throws BadMapperException { // needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xCFFF) { super.cartWrite(addr, data); return; } if (addr >= 0x8000 && addr <= 0x8FFF) { //PRG Reg 0 for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + (data * 8))) & (prgsize - 1); } } else if (addr == 0x9001) { //Mirroring setmirroring(((data & (utils.BIT7)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } else if (addr == 0x9003) { //IRQ Enable irqenable = ((data & (utils.BIT7)) != 0); if (interrupted) { --cpu.interrupt; interrupted = false; } } else if (addr == 0x9004) { //IRQ Reload irqctr = irqreload; if (interrupted) { --cpu.interrupt; interrupted = false; } } else if (addr == 0x9005) { //High 8 bits of IRQ Reload irqreload = (irqreload & 0x00FF) | (data << 8); } else if (addr == 0x9006) { //Low 8 bits of IRQ Reload irqreload = (irqreload & 0xFF00) | data; } else if (addr >= 0xA000 && addr <= 0xAFFF) { //PRG Reg 1 for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + data * 8)) & (prgsize - 1); } } else if (addr >= 0xB000 && addr <= 0xBFFF) { //CHR Regs chrbank[addr & 7] = data; setppubank(1, (addr & 7), chrbank[addr & 7]); } else if (addr >= 0xC000 && addr <= 0xCFFF) { //PRG Reg 2 for (int i = 0; i < 8; ++i) { prg_map[i + 16] = (1024 * (i + data * 8)) & (prgsize - 1); } } } @Override public void cpucycle(final int cycles) { if (irqenable) { if (irqctr <= 0) { if (!interrupted) { ++cpu.interrupt; interrupted = true; } irqenable = false; } else { irqctr -= cycles; } } } private void setppubank(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * (banknum + i)) & (chrsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/MIMICMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; /** * * @author Andrew */ public class MIMICMapper extends Mapper { //a stripped down mmc3 clone for namco/tengen games. //almost everything using this is marked as mapper 4 and works fine like that private int whichbank = 0; private int[] chrreg = {0, 0, 0, 0, 0, 0}; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //bankswitches here System.err.println(utils.hex(addr) + " " + utils.hex(data)); if (addr == 0x8001) { data &= 0x3f; if (whichbank <= 5) { chrreg[whichbank] = data; setupchr(); } else if (whichbank == 6) { for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + (data * 8))) % prgsize; } } else if (whichbank == 7) { System.err.println(data * 8); //bank 7 always swappable, always in same place for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + (data * 8))) % prgsize; } } } else if (addr == 0x8000) { //bank select whichbank = data & 7; } } private void setupchr() { setppubank(1, 4, chrreg[2]); setppubank(1, 5, chrreg[3]); setppubank(1, 6, chrreg[4]); setppubank(1, 7, chrreg[5]); setppubank(2, 0, (chrreg[0] >> 1) << 1); setppubank(2, 2, (chrreg[1] >> 1) << 1); } private void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/MMC1Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class MMC1Mapper extends Mapper { private int mmc1shift = 0; private int mmc1latch = 0; private int mmc1ctrl = 0xc; private int mmc1chr0 = 0; private int mmc1chr1 = 0; private int mmc1prg = 0; private boolean soromlatch = false; private double cpucycleprev = 0; // for Bill and Ted fix private long framecountprev = 0; @Override public void loadrom() throws BadMapperException { // needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } setbanks(); } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } if (cpu.clocks == cpucycleprev && cpuram.apu.nes.framecount == framecountprev) { return; //bill and ted fix - prevents 2 writes too close together //from being acknowledged //if I ever go to a cycle based core instead of opcode based this needs to change. } framecountprev = cpuram.apu.nes.framecount; //and this is extremely ugly/likely to break //but is needed to prevent the Bill+Ted fix from breaking Dr Mario intro. cpucycleprev = cpu.clocks; if (((data & (utils.BIT7)) != 0)) { // reset shift register mmc1shift = 0; mmc1latch = 0; mmc1ctrl |= 0xc; setbanks(); return; } mmc1shift = (mmc1shift >> 1) + (data & 1) * 16; ++mmc1latch; // mmc1shift &= 0x1f; if (mmc1latch < 5) { return; // no need to do anything } else { if (addr >= 0x8000 && addr <= 0x9fff) { // mmc1control mmc1ctrl = mmc1shift & 0x1f; MirrorType mirtype; switch (mmc1ctrl & 3) { case 0: mirtype = MirrorType.SS_MIRROR0; break; case 1: mirtype = MirrorType.SS_MIRROR1; break; case 2: mirtype = MirrorType.V_MIRROR; break; default: mirtype = MirrorType.H_MIRROR; break; } setmirroring(mirtype); } else if (addr >= 0xa000 && addr <= 0xbfff) { // mmc1chr0 mmc1chr0 = mmc1shift & 0x1f; if (prgsize > 262144) { //SOROM boards use the high bit of CHR to switch between 1st and last //256k of the PRG ROM mmc1chr0 &= 0xf; soromlatch = ((mmc1shift & (utils.BIT4)) != 0); } } else if (addr >= 0xc000 && addr <= 0xdfff) { // mmc1chr1 mmc1chr1 = mmc1shift & 0x1f; if (prgsize > 262144) { mmc1chr1 &= 0xf; } } else if (addr >= 0xe000 && addr <= 0xffff) { // mmc1prg mmc1prg = mmc1shift & 0xf; } // System.err.println("Mapper Bankswitch: Write " + utils.hex(mmc1shift) + " @ " + utils.hex(addr)); setbanks(); mmc1latch = 0; mmc1shift = 0; } } private void setbanks() { // chr bank 0 if (((mmc1ctrl & (utils.BIT4)) != 0)) { // 4k bank mode for (int i = 0; i < 4; ++i) { chr_map[i] = (1024 * (i + 4 * mmc1chr0)) % chrsize; } for (int i = 0; i < 4; ++i) { chr_map[i + 4] = (1024 * (i + 4 * mmc1chr1)) % chrsize; } } else { // 8k bank mode for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * (mmc1chr0 >> 1))) % chrsize; } } // prg bank if (!((mmc1ctrl & (utils.BIT3)) != 0)) { // 32k switch // ignore low bank bit for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i + 32768 * (mmc1prg >> 1)) % prgsize; } } else if (!((mmc1ctrl & (utils.BIT2)) != 0)) { // fix 1st bank, 16k switch 2nd bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i); } for (int i = 0; i < 16; ++i) { prg_map[i + 16] = (1024 * i + 16384 * mmc1prg) % prgsize; } } else { // fix last bank, switch 1st bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i + 16384 * mmc1prg) % prgsize; } for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = (prgsize - (1024 * i)); if ((prg_map[32 - i]) > 262144) { prg_map[32 - i] -= 262144; } } } //if more thn 256k ROM AND SOROM latch is on if (soromlatch && (prgsize > 262144)) { //add 256k to all of the prg bank #s for (int i = 0; i < prg_map.length; ++i) { prg_map[i] += 262144; } } //utils.printarray(prg_map); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/MMC2Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; /** * * @author Andrew */ public class MMC2Mapper extends Mapper { boolean chrlatchL = true; boolean chrlatchR = false; int chrbankL1 = 0; int chrbankR1 = 0; int chrbankL2 = 0; int chrbankR2 = 0; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //on startup: for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } else if (addr >= 0xa000 && addr <= 0xafff) { //remap prg for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * (data & 0xf))) & (chrsize - 1); } } else if (addr >= 0xb000 && addr <= 0xbfff) { chrbankL1 = data & 0x1f; setupPPUBanks(); } else if (addr >= 0xc000 && addr <= 0xcfff) { chrbankL2 = data & 0x1f; setupPPUBanks(); } else if (addr >= 0xd000 && addr <= 0xdfff) { chrbankR1 = data & 0x1f; setupPPUBanks(); } else if (addr >= 0xe000 && addr <= 0xefff) { chrbankR2 = data & 0x1f; setupPPUBanks(); } else if (addr >= 0xf000 && addr <= 0xffff) { setmirroring((((data & (utils.BIT0)) != 0)) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } @Override public int ppuRead(final int addr) { int retval = super.ppuRead(addr); if (((addr & (utils.BIT3)) != 0)) { //latch fires after 2nd read from pattern table //A3 will be on for 2nd read b/c it's tile low bytes switch (addr >> 4) { //read of the 2nd byte of tile fd/fe/1fd/1fe //switches the set of character banks used for that side //of the pattern table case 0xfd: if ((addr & 3) == 0) { chrlatchL = false; setupPPUBanks(); } break; case 0xfe: if ((addr & 3) == 0) { chrlatchL = true; setupPPUBanks(); break; } case 0x1fd: chrlatchR = false; setupPPUBanks(); break; case 0x1fe: chrlatchR = true; setupPPUBanks(); default: break; } } return retval; } // public void notifyscanline(final int scanline) { // System.err.println(" ScanLine " + scanline + " " + chrlatchL); // } private void setupPPUBanks() { if (chrlatchL) { setppubank(4, 0, chrbankL2); } else { setppubank(4, 0, chrbankL1); } if (chrlatchR) { setppubank(4, 4, chrbankR2); } else { setppubank(4, 4, chrbankR1); } } private void setppubank(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banksize * banknum) + i)) % chrsize; } //utils.printarray(chr_map); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/MMC3Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; /** * * @author Andrew */ public class MMC3Mapper extends Mapper { protected int whichbank = 0; protected boolean prgconfig = false; protected boolean chrconfig = false; protected int irqctrreload = 0; protected int irqctr = 0; protected boolean irqenable = false; protected boolean irqreload = false; protected int bank6 = 0; protected int[] chrreg = {0, 0, 0, 0, 0, 0}; protected boolean interrupted = false; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } setbank6(); //cpuram.setPrgRAMEnable(false); } @Override public void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //bankswitches here //different register for even/odd writes //System.err.println("mmc3 write " + utils.hex(addr) + " " + utils.hex(data)); if (((addr & (utils.BIT0)) != 0)) { //odd registers if ((addr >= 0x8000) && (addr <= 0x9fff)) { //bank change //System.err.println("setting " + whichbank + " " + data + " " + prgconfig); if (whichbank <= 5) { chrreg[whichbank] = data; setupchr(); } else if (whichbank == 6) { bank6 = data; setbank6(); } else if (whichbank == 7) { //bank 7 always swappable, always in same place for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + (data * 8))) % prgsize; } } } else if ((addr >= 0xA000) && (addr <= 0xbfff)) { //prg ram write protect //cpuram.setPrgRAMEnable(!utils.getbit(data, 7)); } else if ((addr >= 0xc000) && (addr <= 0xdfff)) { //any value here reloads irq counter irqreload = true; } else if ((addr >= 0xe000) && (addr <= 0xffff)) { //iany value here enables interrupts irqenable = true; } } else { //even registers if ((addr >= 0x8000) && (addr <= 0x9fff)) { //bank select whichbank = data & 7; prgconfig = ((data & (utils.BIT6)) != 0); //if bit is false, 8000-9fff swappable and c000-dfff fixed to 2nd to last bank //if bit is true, c000-dfff swappable and 8000-9fff fixed to 2nd to last bank chrconfig = ((data & (utils.BIT7)) != 0); //if false: 2 2k banks @ 0000-0fff, 4 1k banks in 1000-1fff //if true: 4 1k banks @ 0000-0fff, 2 2k banks @ 1000-1fff setupchr(); setbank6(); //OOPS FORGOT THIS I GUESS } else if ((addr >= 0xA000) && (addr <= 0xbfff)) { //mirroring setup if (scrolltype != MirrorType.FOUR_SCREEN_MIRROR) { setmirroring(((data & (utils.BIT0)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } else if ((addr >= 0xc000) && (addr <= 0xdfff)) { //value written here used to reload irq counter _@ end of scanline_ irqctrreload = data; } else if ((addr >= 0xe000) && (addr <= 0xffff)) { //any value here disables IRQ and acknowledges if (interrupted) { --cpu.interrupt; } interrupted = false; irqenable = false; } } } protected void setupchr() { if (chrconfig) { setppubank(1, 0, chrreg[2]); setppubank(1, 1, chrreg[3]); setppubank(1, 2, chrreg[4]); setppubank(1, 3, chrreg[5]); //Lowest bit of bank number IS IGNORED for the 2k banks setppubank(2, 4, (chrreg[0] >> 1) << 1); setppubank(2, 6, (chrreg[1] >> 1) << 1); } else { setppubank(1, 4, chrreg[2]); setppubank(1, 5, chrreg[3]); setppubank(1, 6, chrreg[4]); setppubank(1, 7, chrreg[5]); setppubank(2, 0, (chrreg[0] >> 1) << 1); setppubank(2, 2, (chrreg[1] >> 1) << 1); } } protected void setbank6() { if (!prgconfig) { //map c000-dfff to last bank, 8000-9fff to selected bank for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + (bank6 * 8))) % prgsize; prg_map[i + 16] = ((prgsize - 16384) + 1024 * i); } } else { //map 8000-9fff to last bank, c000 to dfff to selected bank for (int i = 0; i < 8; ++i) { prg_map[i] = ((prgsize - 16384) + 1024 * i); prg_map[i + 16] = (1024 * (i + (bank6 * 8))) % prgsize; } } } private boolean lastA12 = false; @Override public int ppuRead(int addr) { //note: to pass blargg's mmc3 tests the vram address is read //in a loop while the PPU is not rendering //actually the read signal is not asserted then //but I have no other way to call into the mapper code when //the address changes. checkA12(addr); return super.ppuRead(addr); } @Override public void ppuWrite(int addr, int data) { checkA12(addr); super.ppuWrite(addr, data); } int a12timer = 0; @Override public void checkA12(int addr) { //run on every PPU cycle (wasteful...) //clocks scanline counter every time A12 line goes from low to high //on PPU address bus, _except_ when it has been less than 8 PPU cycles //since the line last went low. boolean a12 = ((addr & (utils.BIT12)) != 0); if (a12 && (!lastA12)) { //rising edge if ((a12timer <= 0)) { clockScanCounter(); } } else if (!a12 && lastA12) { //falling edge a12timer = 8; } --a12timer; lastA12 = a12; } private void clockScanCounter() { if (irqreload || (irqctr == 0)) { //System.err.println(ppu.scanline + "reloading" + irqctrreload); irqctr = irqctrreload; irqreload = false; } else { --irqctr; } if ((irqctr == 0) && irqenable && !interrupted) { ++cpu.interrupt; interrupted = true; //System.err.println("interrupt line " + ppu.scanline + " reload " + irqctrreload); } } protected void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/MMC4Mapper.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class MMC4Mapper extends Mapper { boolean chrlatchL = true; boolean chrlatchR = false; int chrbankL1 = 0; int chrbankR1 = 0; int chrbankL2 = 0; int chrbankR2 = 0; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //on startup: for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } else if (addr >= 0x8000 && addr <= 0xafff) { //remap prg for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * data)) & (prgsize - 1); } } else if (addr >= 0xb000 && addr <= 0xbfff) { chrbankL1 = data & 0x1f; setupPPUBanks(); } else if (addr >= 0xc000 && addr <= 0xcfff) { chrbankL2 = data & 0x1f; setupPPUBanks(); } else if (addr >= 0xd000 && addr <= 0xdfff) { chrbankR1 = data & 0x1f; setupPPUBanks(); } else if (addr >= 0xe000 && addr <= 0xefff) { chrbankR2 = data & 0x1f; setupPPUBanks(); } else if (addr >= 0xf000 && addr <= 0xffff) { setmirroring((((data & (utils.BIT0)) != 0)) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } @Override public int ppuRead(final int addr) { int retval = super.ppuRead(addr); if (((addr & (utils.BIT3)) != 0)) { //latch fires after 2nd read from pattern table //A3 will be on for 2nd read b/c it's tile low bytes switch (addr >> 4) { //read of the 2nd byte of tile fd/fe/1fd/1fe //switches the set of character banks used for that side //of the pattern table case 0xfd: chrlatchL = false; setupPPUBanks(); break; case 0xfe: chrlatchL = true; setupPPUBanks(); break; case 0x1fd: chrlatchR = false; setupPPUBanks(); break; case 0x1fe: chrlatchR = true; setupPPUBanks(); default: break; } } return retval; } private void setupPPUBanks() { if (chrlatchL) { setppubank(4, 0, chrbankL2); } else { setppubank(4, 0, chrbankL1); } if (chrlatchR) { setppubank(4, 4, chrbankR2); } else { setppubank(4, 4, chrbankR1); } } private void setppubank(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banksize * banknum) + i)) % chrsize; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/MMC5Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.utils; import com.grapeshot.halfnes.audio.MMC5SoundChip; import java.util.Arrays; /** * * @author Andrew */ public class MMC5Mapper extends Mapper { //the infamous kitchen sink mapper final int[] exram = new int[1024]; private int exramMode, chrMode, prgMode; private int wramWrite1, wramWrite2, multiplier1, multiplier2; private int prgpage, chrOr, wrambank; boolean scanctrEnable, irqPend; private final int[] chrregsA = new int[8]; private final int[] chrregsB = new int[4]; private final int[] prgregs = new int[4]; private final int[] chrmapB = new int[4]; private final boolean[] romHere = new boolean[3]; private int scanctrLine, irqCounter = 20; private final int[] fillnt = new int[1024]; private MMC5SoundChip soundchip; private boolean inFrame = false; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //on startup: prgregs[3] = (prgsize / 8192) - 1; prgregs[2] = (prgsize / 8192) - 1; prgregs[1] = (prgsize / 8192) - 1; prgregs[0] = (prgsize / 8192) - 1; prgMode = 3; setupPRG(); for (int i = 0; i < 8; ++i) { chr_map[i] = 1024 * i; } prgram = new int[65536]; } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x5c00) { //System.err.println("MMC5 Write register "+ utils.hex(addr) + " d " + utils.hex(data)); switch (addr) { case 0x5000: case 0x5001: case 0x5002: case 0x5003: case 0x5004: case 0x5005: case 0x5006: case 0x5007: case 0x5010: case 0x5011: case 0x5015: if (soundchip == null) { soundchip = new MMC5SoundChip(); cpuram.apu.addExpnSound(soundchip); } //sound chip soundchip.write(addr - 0x5000, data); break; case 0x5100: //prg mode select prgMode = data & 3; setupPRG(); break; case 0x5101: //chr mode select chrMode = data & 3; setupCHR(); break; case 0x5102: //wram write protect 1 wramWrite1 = data; break; case 0x5103: //wram write protect 2 wramWrite2 = data; break; case 0x5104: //exRAM mode - none of these are properly supported! exramMode = data & 3; break; case 0x5105: //mirror mode setMirroring(data, exram); break; case 0x5106: //fill tile Arrays.fill(fillnt, 0, 32 * 30, data); break; case 0x5107: //fill attribute Arrays.fill(fillnt, 32 * 30, fillnt.length, data & 0x3 + (data & 3) << 2 + (data & 3) << 4 + (data & 3) << 6); break; case 0x5113: //PRG RAM register wrambank = data & 7; break; case 0x5114: //prg reg 1 prgregs[0] = data & 0x7f; romHere[0] = ((data & (utils.BIT7)) != 0); setupPRG(); break; case 0x5115: //prg reg 2 prgregs[1] = data & 0x7f; romHere[1] = ((data & (utils.BIT7)) != 0); setupPRG(); break; case 0x5116: //prg reg 3 prgregs[2] = data & 0x7f; romHere[2] = ((data & (utils.BIT7)) != 0); setupPRG(); break; case 0x5117: //prg reg 4 prgregs[3] = data & 0x7f; setupPRG(); break; case 0x5120: chrregsA[0] = data | chrOr; setupCHR(); break; case 0x5121: chrregsA[1] = data | chrOr; setupCHR(); break; case 0x5122: chrregsA[2] = data | chrOr; setupCHR(); break; case 0x5123: chrregsA[3] = data | chrOr; setupCHR(); break; case 0x5124: chrregsA[4] = data | chrOr; setupCHR(); break; case 0x5125: chrregsA[5] = data | chrOr; setupCHR(); break; case 0x5126: chrregsA[6] = data | chrOr; setupCHR(); break; case 0x5127: chrregsA[7] = data | chrOr; setupCHR(); break; //chr regs A case 0x5128: chrregsB[0] = data | chrOr; setupCHR(); break; case 0x5129: chrregsB[1] = data | chrOr; setupCHR(); break; case 0x512a: chrregsB[2] = data | chrOr; setupCHR(); break; case 0x512b: chrregsB[3] = data | chrOr; setupCHR(); break; //chr regs b case 0x5130: //chr bank high bits (CHR_OR) //System.err.println(data); chrOr = (data & 3) << 8; break; case 0x5200: //splitscreen control if (((data & (utils.BIT7)) != 0)) { System.err.println("Split screen mode not supported yet"); } break; case 0x5201: //splitscreen scroll break; case 0x5202: //splitscreen chr page break; case 0x5203: //irq trigger scanctrLine = data; break; case 0x5204: //irq control scanctrEnable = ((data & (utils.BIT7)) != 0); break; case 0x5205: multiplier1 = data; break; case 0x5206: multiplier2 = data; break; default: break; } } else if (addr < 0x6000) { //exram exram[addr - 0x5c00] = data; } else if (addr < 0x8000) { final int wramaddr = wrambank * 8192 + (addr - 0x6000); //System.err.println("wrote wram " + utils.hex(wramaddr)); prgram[wramaddr] = data; } else if (addr < 0xA000 && !romHere[0] && prgMode == 3) { System.err.println("RAM write to 0x8000 area"); prgram[((prgregs[0] & 7) * 8192) + (addr - 0x8000)] = data; } else if (addr < 0xC000 && !romHere[1]) { int subaddr = (prgMode == 3) ? 0xA000 : 0x8000; int prgbank = (prgMode == 3) ? (prgregs[1] & 7) : ((prgregs[1] & 7) >> 1); int ramaddr = (prgbank * ((prgMode == 3) ? 8192 : 16384)) + (addr - subaddr); ////System.err.println("RAM write to 0xA000 area " + utils.hex(addr) + " " + prgbank); //System.err.println(utils.hex(ramaddr)); prgram[ramaddr] = data; } else if (addr < 0xE000 && !romHere[2]) { System.err.println("RAM write to 0xC000 area " + utils.hex(addr)); prgram[((prgregs[2] & 7) * 8192) + (addr - 0xc000)] = data; } else { System.err.println("unsupported mmc5 write " + utils.hex(addr) + romHere[0] + romHere[1] + romHere[2] + prgMode); } } @Override public final int cartRead(final int addr) { //hook for turning off PPU in frame flag since idk how the real thing works if (!ppu.renderingOn() || ppu.scanline > 241) { inFrame = false; } if (addr >= 0x8000) { //rom or maybe wram if (prgMode == 0 || ((prgMode == 1) && (addr >= 0xc000 || romHere[1])) || ((prgMode == 2) && ((addr >= 0xe000 || (addr >= 0xc000 && romHere[2]) || romHere[1])) || ((prgMode == 3) && (addr >= 0xe000 || (addr >= 0xc000 && romHere[2]) || (addr >= 0xa000 && romHere[1]) || romHere[0])))) { return prg[prg_map[((addr & 0x7fff)) >> 10] + (addr & 1023)]; } else { //don't know quite how to deal with this yet System.err.println("MMC5 wants RAM at " + utils.hex(addr)); return 0xffff; } } else if (addr >= 0x6000) { //wram int ramaddr = wrambank * 8192 + (addr - 0x6000); //System.err.println("reading prgram from " + utils.hex(ramaddr)); return prgram[ramaddr]; } else if (addr >= 0x5c00) { //exram return exram[addr - 0x5c00]; } else { switch (addr) { case 0x5015: //sound status if (soundchip != null) { return soundchip.status(); } return addr >> 8; case 0x5204: //irq status int stat = (irqPend ? 0x80 : 0) + (inFrame ? 0x40 : 0); if (irqPend) { irqPend = false; --cpu.interrupt; } return stat; case 0x5205: return (multiplier1 * multiplier2) & 0xff; case 0x5206: //multiplier return ((multiplier1 * multiplier2) >> 8) & 0xff; default: return addr >> 8; } } } public void setupPRG() { //does NOT support mapping RAM in yet! switch (prgMode) { default: case 0: setcpubank(32, 0, (prgregs[3] & 0x7f) >> 2); break; case 1: setcpubank(16, 16, (prgregs[3] & 0x7f) >> 1); setcpubank(16, 0, (prgregs[1] & 0x7f) >> 1); break; case 2: setcpubank(8, 24, prgregs[3] & 0x7f); setcpubank(8, 16, prgregs[2] & 0x7f); setcpubank(8, 8, (prgregs[1] & 0x7f) | 1); setcpubank(8, 0, (prgregs[1] & 0x7e)); break; case 3: setcpubank(8, 24, prgregs[3] & 0x7f); setcpubank(8, 16, prgregs[2] & 0x7f); setcpubank(8, 8, prgregs[1] & 0x7f); setcpubank(8, 0, prgregs[0] & 0x7f); break; } // System.err.println(prgMode); // utils.printarray(prgregs); // utils.printarray(prg_map); } public void setupCHR() { switch (chrMode) { default: case 0: setppubank(8, 0, chrregsA[7]); setppubankB(4, 0, chrregsB[3]); break; case 1: setppubank(4, 4, chrregsA[7]); setppubank(4, 0, chrregsA[3]); setppubankB(4, 0, chrregsB[3]); break; case 2: setppubank(2, 6, chrregsA[7]); setppubank(2, 4, chrregsA[5]); setppubank(2, 2, chrregsA[3]); setppubank(2, 0, chrregsA[1]); setppubankB(2, 2, chrregsB[3]); setppubankB(2, 0, chrregsB[1]); break; case 3: setppubank(1, 7, chrregsA[7]); setppubank(1, 6, chrregsA[6]); setppubank(1, 5, chrregsA[5]); setppubank(1, 4, chrregsA[4]); setppubank(1, 3, chrregsA[3]); setppubank(1, 2, chrregsA[2]); setppubank(1, 1, chrregsA[1]); setppubank(1, 0, chrregsA[0]); setppubankB(1, 3, chrregsB[3]); setppubankB(1, 2, chrregsB[2]); setppubankB(1, 1, chrregsB[1]); setppubankB(1, 0, chrregsB[0]); break; } } private void setppubank(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } } private void setppubankB(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { chrmapB[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } } private void setcpubank(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { prg_map[i + bankpos] = (1024 * ((banknum * banksize) + i)) & (prgsize - 1); } } private int fetchcount, exlatch, lastfetch, prevfetch, prevprevfetch; private boolean spritemode = false; @Override public int ppuRead(final int addr) { //so how DO we detect which reads are which without //seeing the nametable reads? //well, as it turns out in the real NES, the MMC5 can in fact see everything //put on the PPU bus, whether or not the CS line is asserted for it. //must be something to do with 8x16 sprites, and with //the 34 reads per scanline of background //it reads 34 bg tiles (68 bytes) then 16 sprite tiles (32 bytes) if (addr < 0x2000) { // System.err.print("p"); //pattern table read if (++fetchcount == 3) { spritemode = true; //System.err.println(" sprites"); } if (spritemode) { return chr[chr_map[addr >> 10] + (addr & 1023)]; } else { //bg mode //System.err.print("t"); if (exramMode == 1) { if (exlatch == 2) { //fetch 3: tile bitmap a ++exlatch; return chr[((chrOr * 1024) | ((exram[lastfetch] & 0x3f) * 4096) | (addr & 4095)) % chr.length]; } else if (exlatch == 3) { //fetch 4: tile bitmap b (+ 8 bytes from tile bitmap a) exlatch = 0; return chr[((chrOr * 1024) | ((exram[lastfetch] & 0x3f) * 4096) | (addr & 4095)) % chr.length]; } } return chr[chrmapB[(addr >> 10) & 3] + (addr & 1023)]; } } else { // System.err.print("n"); //nametable read if (prevfetch == prevprevfetch && prevprevfetch == addr) { //last 3 fetches are the same and that's the signal //to increment the scan line counter //unfortunately I don't know how the MMC5 resets the counter when PPU is off yet incScanline(); exlatch = 0; } prevprevfetch = prevfetch; prevfetch = addr; spritemode = false; fetchcount = 0; // System.err.println(" bg"); if (exramMode == 1) { if (exlatch == 0) { //fetch 1: nametable fetch ++exlatch; lastfetch = addr & 0x3ff; } else if (exlatch == 1) { ++exlatch; //fetch 2: attribute table fetch int theone = exram[lastfetch]; return ((theone & 0xc0) >> 6) | ((theone & 0xc0) >> 4) | ((theone & 0xc0) >> 2) | (theone & 0xc0); } } return super.ppuRead(addr); } } public void incScanline() { if (!inFrame) { inFrame = true; irqCounter = 0; if (irqPend) { irqPend = false; --cpu.interrupt; } } else { if (irqCounter++ == scanctrLine) { irqPend = true; } if (irqPend && scanctrEnable) { ++cpu.interrupt; } } } public void setMirroring(int ntsetup, int[] exram) { //hook for the MMC5 switch (ntsetup & 3) { case 0: default: nt0 = pput0; break; case 1: nt0 = pput1; break; case 2: nt0 = exram; break; case 3: nt0 = fillnt; } ntsetup >>= 2; switch (ntsetup & 3) { case 0: default: nt1 = pput0; break; case 1: nt1 = pput1; break; case 2: nt1 = exram; break; case 3: nt1 = fillnt; break; } ntsetup >>= 2; switch (ntsetup & 3) { case 0: default: nt2 = pput0; break; case 1: nt2 = pput1; break; case 2: nt2 = exram; break; case 3: nt2 = fillnt; break; } ntsetup >>= 2; switch (ntsetup & 3) { case 0: default: nt3 = pput0; break; case 1: nt3 = pput1; break; case 2: nt3 = exram; break; case 3: nt3 = fillnt; break; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; import com.grapeshot.halfnes.PPU; import java.util.Arrays; import java.util.prefs.Preferences; import java.util.zip.CRC32; public abstract class Mapper { protected ROMLoader loader; protected int mappertype, submapper, prgsize, prgoff, chroff, chrsize; public CPU cpu; public CPURAM cpuram; public PPU ppu; protected int[] prg, chr, chr_map, prg_map, prgram = new int[8192]; protected MirrorType scrolltype; protected boolean haschrram = false, hasprgram = true, savesram = false; // PPU nametables protected final int[] pput0 = new int[0x400], pput1 = new int[0x400], pput2 = new int[0x400], pput3 = new int[0x400]; //99% of games only use 2 of these, but we have to create 4 and use ptrs to them //for those with extra RAM for 4 screen mirror protected int[] nt0, nt1, nt2, nt3; //and these are pointers to the nametables, so for singlescreen when we switch //and then switch back the data in the other singlescreen NT isn't gone. long crc; TVType region; Preferences prefs = PrefsSingleton.get(); public boolean supportsSaves() { return savesram; } public void destroy() { cpu = null; cpuram = null; ppu = null; } public static enum MirrorType { H_MIRROR, V_MIRROR, SS_MIRROR0, SS_MIRROR1, FOUR_SCREEN_MIRROR }; public static enum TVType { NTSC, PAL, DENDY; } public static long crc32(int[] array) { CRC32 c = new CRC32(); for (int i : array) { c.update(i); } return c.getValue(); } public void loadrom() throws BadMapperException { loader.parseHeader(); prgsize = loader.prgsize; mappertype = loader.mappertype; prgoff = loader.prgoff; chroff = loader.chroff; chrsize = loader.chrsize; scrolltype = loader.scrolltype; savesram = loader.savesram; prg = loader.load(prgsize, prgoff); region = loader.tvtype; submapper = loader.submapper; crc = crc32(prg); //System.err.println(utils.hex(crc)); //crc "database" for certain impossible-to-recognize games if ((crc == 0x41243492L) //low g man (u) || (crc == 0x98CCD385L)//low g man (e) ) { hasprgram = false; } chr = loader.load(chrsize, chroff); if (chrsize == 0) {//chr ram haschrram = true; chrsize = 8192; chr = new int[8192]; } prg_map = new int[32]; for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } chr_map = new int[8]; for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } cpuram = new CPURAM(this); cpu = new CPU(cpuram); ppu = new PPU(this); Arrays.fill(pput0, 0xa0); Arrays.fill(pput1, 0xb0); Arrays.fill(pput2, 0xc0); Arrays.fill(pput3, 0xd0); setmirroring(scrolltype); } public void reset() { //this is empty so that mappers w/o some specific instructions //on soft reset need not implement this } //write into the cartridge's address space public void cartWrite(final int addr, final int data) { //default no-mapper operation just writes if in PRG RAM range if (addr >= 0x6000 && addr < 0x8000) { prgram[addr & 0x1fff] = data; } } public int cartRead(final int addr) { // by default has wram at 0x6000 and cartridge at 0x8000-0xfff // but some mappers have different so override for those if (addr >= 0x8000) { return prg[prg_map[((addr & 0x7fff)) >> 10] + (addr & 1023)]; } else if (addr >= 0x6000 && hasprgram) { return prgram[addr & 0x1fff]; } return addr >> 8; //open bus } public int ppuRead(int addr) { if (addr < 0x2000) { return chr[chr_map[addr >> 10] + (addr & 1023)]; } else { switch (addr & 0xc00) { case 0: return nt0[addr & 0x3ff]; case 0x400: return nt1[addr & 0x3ff]; case 0x800: return nt2[addr & 0x3ff]; case 0xc00: default: if (addr >= 0x3f00) { addr &= 0x1f; if (addr >= 0x10 && ((addr & 3) == 0)) { addr -= 0x10; } return ppu.pal[addr]; } else { return nt3[addr & 0x3ff]; } } } } public void ppuWrite(int addr, final int data) { addr &= 0x3fff; if (addr < 0x2000) { if (haschrram) { // Shame on you, Milon's Secret Castle. What possible // reason could you have to write to your own chr rom? chr[chr_map[addr >> 10] + (addr & 1023)] = data; // anyway, only allowing writes when there's actual ram here. } } else { switch (addr & 0xc00) { case 0x0: nt0[addr & 0x3ff] = data; break; case 0x400: nt1[addr & 0x3ff] = data; break; case 0x800: nt2[addr & 0x3ff] = data; break; case 0xc00: if (addr >= 0x3f00 && addr <= 0x3fff) { addr &= 0x1f; //System.err.println("wrote "+utils.hex(data)+" to palette index " + utils.hex(addr)); if (addr >= 0x10 && ((addr & 3) == 0)) { //0x10,0x14,0x18 etc are mirrors of 0x0, 0x4,0x8 etc addr -= 0x10; } ppu.pal[addr] = (data & 0x3f); } else { nt3[addr & 0x3ff] = data; } break; default: System.err.println("where?"); } } } public void notifyscanline(final int scanline) { //this is empty so that mappers w/o a scanline counter need not implement } public void cpucycle(int cycles) { //do it right for once } public static Mapper getCorrectMapper(final ROMLoader l) throws BadMapperException { int type = l.mappertype; boolean haschr = (l.chrsize == 0); switch (type) { case -1: return new NSFMapper(); case 0: return new NromMapper(); case 1: return new MMC1Mapper(); case 2: return new UnromMapper(); case 3: return new CnromMapper(); case 4: return new MMC3Mapper(); case 5: return new MMC5Mapper(); case 7: return new AnromMapper(); case 9: return new MMC2Mapper(); case 10: return new MMC4Mapper(); case 11: return new ColorDreamsMapper(); case 15: case 169: return new Mapper15(); case 19: return new NamcoMapper(); case 21: case 23: case 25: //VRC4 has three different mapper numbers for six different address line layouts //some of which really should be VRC2 //but they're all handled in the same file //there's a proposal for submapper #s in iNES 2.0 return new VRC4Mapper(type); case 22: return new VRC2Mapper(); case 24: case 26: return new VRC6Mapper(type); case 31: return new Mapper31(); case 33: return new Mapper33(); case 34: if (haschr) { return new BnromMapper(); } else { return new NINA_001_Mapper(); } case 36: return new Mapper36(); case 38: return new CrimeBustersMapper(); case 41: return new CaltronMapper(); case 47: return new Mapper47(); case 48: return new Mapper48(); case 58: return new Mapper58(); case 60: return new Mapper60(); case 61: return new Mapper61(); case 62: return new Mapper62(); case 64: return new TengenRamboMapper(); case 65: return new IremH3001Mapper(); case 66: return new GnromMapper(); case 67: return new Sunsoft03Mapper(); case 68: return new AfterburnerMapper(); case 69: return new FME7Mapper(); case 70: return new Mapper70(); case 71: return new CodemastersMapper(); case 72: return new Mapper72(); case 73: return new VRC3Mapper(); case 75: return new VRC1Mapper(); case 76: return new Mapper76(); case 78: return new Mapper78(); case 79: case 113: return new NINA_003_006_Mapper(type); case 85: return new VRC7Mapper(); case 86: return new Mapper86(); case 87: return new Mapper87(); case 88: case 154: return new Namcot34x3Mapper(type); case 89: case 93: return new Sunsoft02Mapper(type); case 92: return new Mapper92(); case 94: return new Mapper94(); case 97: return new Mapper97(); case 107: return new Mapper107(); case 112: return new Mapper112(); case 119: return new Mapper119(); case 140: return new Mapper140(); case 152: return new Mapper152(); case 180: return new CrazyClimberMapper(); case 182: return new Mapper182(); case 184: return new Sunsoft01Mapper(); case 185: return new Mapper185(); case 200: return new Mapper200(); case 201: return new Mapper201(); case 203: return new Mapper203(); case 206: return new MIMICMapper(); case 212: return new Mapper212(); case 213: return new Mapper213(); case 214: return new Mapper214(); case 225: return new Mapper225(); case 226: return new Mapper226(); case 228: return new Action52Mapper(); case 229: return new Mapper229(); case 231: return new Mapper231(); case 240: return new Mapper240(); case 241: return new Mapper241(); case 242: return new Mapper242(); case 244: return new Mapper244(); case 246: return new Mapper246(); case 255: return new Mapper255(); default: System.err.println("unsupported mapper # " + type); throw new BadMapperException("Unsupported mapper: " + type); } } public String getrominfo() { return ("ROM INFO: \n" + "Filename: " + loader.name + "\n" + "Mapper: " + mappertype + "\n" + "PRG Size: " + prgsize / 1024 + " K\n" + "CHR Size: " + (haschrram ? 0 : chrsize / 1024) + " K\n" + "Mirroring: " + scrolltype.toString() + "\n" + "Battery Save: " + ((savesram) ? "Yes" : "No")) + "\n" + "CRC: " + utils.hex(this.crc); } public boolean hasSRAM() { return savesram; } public void setLoader(final ROMLoader l) { loader = l; } public CPURAM getCPURAM() { return cpuram; } public void checkA12(int addr) { //needed for mmc3 irq counter } public void setPRGRAM(final int[] newprgram) { prgram = newprgram.clone(); } public int[] getPRGRam() { return prgram.clone(); } public final void setmirroring(final Mapper.MirrorType type) { switch (type) { case H_MIRROR: nt0 = pput0; nt1 = pput0; nt2 = pput1; nt3 = pput1; break; case V_MIRROR: nt0 = pput0; nt1 = pput1; nt2 = pput0; nt3 = pput1; break; case SS_MIRROR0: nt0 = pput0; nt1 = pput0; nt2 = pput0; nt3 = pput0; break; case SS_MIRROR1: nt0 = pput1; nt1 = pput1; nt2 = pput1; nt3 = pput1; break; case FOUR_SCREEN_MIRROR: default: nt0 = pput0; nt1 = pput1; nt2 = pput2; nt3 = pput3; break; } } public TVType getTVType() { int prefsregion = prefs.getInt("region", 0); switch (prefsregion) { case 0: default://auto detect return region; case 1: //ntsc return TVType.NTSC; case 2: //pal return TVType.PAL; case 3: //dendy return TVType.DENDY; } } public void init() { } //needed for NSF initialization } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper107.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper107 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int prgselect = data >> 1; //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * data)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper112.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper112 extends Mapper { //Chinese variant of MIMIC mapper private int whichbank = 0; private int[] chrreg = {0, 0, 0, 0, 0, 0, 0, 0}; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //bankswitches here //System.err.println(utils.hex(addr) + " " + utils.hex(data)); if (addr == 0xA000) { if (whichbank >= 2) { chrreg[whichbank - 2] = data; setupchr(); } else if (whichbank == 0) { for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + (data * 8))) % prgsize; } } else if (whichbank == 1) { //System.err.println(data * 8); //bank 7 always swappable, always in same place for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + (data * 8))) % prgsize; } } } else if (addr == 0x8000) { //bank select whichbank = data & 7; } else if (addr == 0xE000) { setmirroring(((data & (utils.BIT0)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } private void setupchr() { setppubank(1, 4, chrreg[2]); setppubank(1, 5, chrreg[3]); setppubank(1, 6, chrreg[4]); setppubank(1, 7, chrreg[5]); setppubank(2, 0, (chrreg[0] >> 1) << 1); setppubank(2, 2, (chrreg[1] >> 1) << 1); } private void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper119.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ //TQROM mapper //mmc3 derivative with chr ram and rom public class Mapper119 extends MMC3Mapper { int[] chrRam = new int[8192]; @Override public int ppuRead(final int addr) { if (addr < 0x2000) { checkA12(addr); return (chr_map[addr >> 10] > 65535) ? chrRam[(chr_map[addr >> 10] + (addr & 1023)) & 8191] : chr[(chr_map[addr >> 10] & 65535) + (addr & 1023)]; } else { return super.ppuRead(addr); } } @Override public void ppuWrite(final int addr, final int data) { if (addr < 0x2000) { checkA12(addr); if (chr_map[addr >> 10] > 63) { chrRam[(chr_map[addr >> 10] + (addr & 1023)) & 8191] = data; } } else { super.ppuWrite(addr, data); } } @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //on startup: for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * i); prg_map[i + 8] = (1024 * i); //yes this actually matters; MMC3 does NOT start up in a random state //(at least Smash TV and TMNT3 expect certain banks w/o even setting up mapper) } for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } setbank6(); //cpuram.setPrgRAMEnable(false); } protected void setppubank(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper140.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper140 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x6000 || addr > 0x7fff) { super.cartWrite(addr, data); return; } int prgselect = (data >> 4) & 3; int chrselect = data & 0xF; //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper15.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper15 extends Mapper { @Override public void loadrom() throws BadMapperException { // needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int prgbank = (data << 1) & 0xFE; int prgflip = data >> 7; setmirroring(((data & (utils.BIT6)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); switch (addr & 0xFFF) { case 0x000: for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * (prgbank | 0 ^ prgflip))) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[8 + i] = (1024 * (i + 8 * (prgbank | 1 ^ prgflip))) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[16 + i] = (1024 * (i + 8 * (prgbank | 2 ^ prgflip))) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[24 + i] = (1024 * (i + 8 * (prgbank | 3 ^ prgflip))) & (prgsize - 1); } break; case 0x001: for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * (prgbank | (0 ^ prgflip)))) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[8 + i] = (1024 * (i + 8 * (prgbank | (1 ^ prgflip)))) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[16 + i] = (1024 * (i + 8 * (0x7E | (0 ^ prgflip)))) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[24 + i] = (1024 * (i + 8 * (0x7F | (1 ^ prgflip)))) & (prgsize - 1); } break; case 0x002: prgbank |= prgflip; for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * prgbank)) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[8 + i] = (1024 * (i + 8 * prgbank)) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[16 + i] = (1024 * (i + 8 * prgbank)) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[24 + i] = (1024 * (i + 8 * prgbank)) & (prgsize - 1); } break; case 0x003: prgbank |= prgflip; for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * prgbank)) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[8 + i] = (1024 * (i + 8 * (prgbank + 1))) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[16 + i] = (1024 * (i + 8 * (prgbank + (~addr >> 1 & 1)))) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { prg_map[24 + i] = (1024 * (i + 8 * (prgbank + 1))) & (prgsize - 1); } break; default: break; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper152.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper152 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int prgselect = (byte) ((data >> 4) & 0xF); int chrselect = (data & 0xF); //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } setmirroring(((data & (utils.BIT7)) != 0) ? MirrorType.SS_MIRROR1 : MirrorType.SS_MIRROR0); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper182.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper182 extends Mapper { //Pirate MMC3 clone with scrambled registers private int whichbank = 0; private boolean prgconfig = false; private boolean chrconfig = false; private int irqctrreload = 0; private int irqctr = 0; private boolean irqenable = false; private boolean irqreload = false; private int bank6 = 0; private int[] chrreg = {0, 0, 0, 0, 0, 0}; private boolean interrupted = false; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } setbank6(); //cpuram.setPrgRAMEnable(false); } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //bankswitches here //different register for even/odd writes if (((addr & (utils.BIT0)) != 0)) { //odd registers if ((addr >= 0x8000) && (addr <= 0x9fff)) { //mirroring setup setmirroring(((data & (utils.BIT0)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } else if ((addr >= 0xA000) && (addr <= 0xBFFF)) { //prg ram write protect //cpuram.setPrgRAMEnable(!utils.getbit(data, 7)); } else if ((addr >= 0xC000) && (addr <= 0xDFFF)) { //any value here reloads irq counter _@ end of scanline_ irqreload = true; irqctrreload = data; } else if ((addr >= 0xE000) && (addr <= 0xFFFF)) { //any value here enables interrupts irqenable = true; } } else { //even registers if ((addr >= 0xA000) && (addr <= 0xBFFF)) { //bank select whichbank = data & 7; prgconfig = ((data & (utils.BIT4)) != 0); //if bit is false, 8000-9fff swappable and c000-dfff fixed to 2nd to last bank //if bit is true, c000-dfff swappable and 8000-9fff fixed to 2nd to last bank chrconfig = ((data & (utils.BIT5)) != 0); //if false: 2 2k banks @ 0000-0fff, 4 1k banks in 1000-1fff //if true: 4 1k banks @ 0000-0fff, 2 2k banks @ 1000-1fff setupchr(); setbank6(); //OOPS FORGOT THIS I GUESS } else if ((addr >= 0xC000) && (addr <= 0xDFFF)) { //bank select switch (whichbank) { case 0: chrreg[0] = data; setupchr(); break; case 1: chrreg[3] = data; setupchr(); break; case 2: chrreg[1] = data; setupchr(); break; case 3: chrreg[5] = data; setupchr(); break; case 4: bank6 = data; setbank6(); break; case 5: //bank 5 always swappable, always in same place for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + (data * 8))) % prgsize; } break; case 6: chrreg[2] = data; setupchr(); break; case 7: chrreg[4] = data; setupchr(); break; } } else if ((addr >= 0xE000) && (addr <= 0xFFFF)) { //any value here disables IRQ and acknowledges if (interrupted) { --cpu.interrupt; } interrupted = false; irqenable = false; irqctr = irqctrreload; } } } private void setupchr() { if (chrconfig) { setppubank(1, 0, chrreg[2]); setppubank(1, 1, chrreg[3]); setppubank(1, 2, chrreg[4]); setppubank(1, 3, chrreg[5]); //Lowest bit of bank number IS IGNORED for the 2k banks setppubank(2, 4, (chrreg[0] >> 1) << 1); setppubank(2, 6, (chrreg[1] >> 1) << 1); } else { setppubank(1, 4, chrreg[2]); setppubank(1, 5, chrreg[3]); setppubank(1, 6, chrreg[4]); setppubank(1, 7, chrreg[5]); setppubank(2, 0, (chrreg[0] >> 1) << 1); setppubank(2, 2, (chrreg[1] >> 1) << 1); } } private void setbank6() { if (!prgconfig) { //map c000-dfff to last bank, 8000-9fff to selected bank for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + (bank6 * 8))) % prgsize; prg_map[i + 16] = ((prgsize - 16384) + 1024 * i); } } else { //map 8000-9fff to last bank, c000 to dfff to selected bank for (int i = 0; i < 8; ++i) { prg_map[i] = ((prgsize - 16384) + 1024 * i); prg_map[i + 16] = (1024 * (i + (bank6 * 8))) % prgsize; } } } @Override public void notifyscanline(int scanline) { //Scanline counter if (scanline > 239 && scanline != 261) { //clocked on LAST line of vblank and all lines of frame. Not on 240. return; } if (!ppu.mmc3CounterClocking()) { return; } if (irqreload) { irqreload = false; irqctr = irqctrreload; } if (irqctr-- <= 0) { if (irqctrreload == 0) { return; //irqs stop being generated if reload set to zero } if (irqenable && !interrupted) { ++cpu.interrupt; interrupted = true; } irqctr = irqctrreload; } } private void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper185.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; //CNROM with copy protection public class Mapper185 extends Mapper { boolean chr_enabled = true; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public int ppuRead(int addr) { if (!chr_enabled) { chr_enabled = true; return 0x12; } if (addr < 0x2000) { return chr[chr_map[addr >> 10] + (addr & 1023)]; } else { return super.ppuRead(addr); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * (data & 3))) & (chrsize - 1); //copy protection chr_enabled = ((chr_map[i] & 0xF) > 0 && (chr_map[i] != 0x13)); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper200.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper200 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public int cartRead(final int addr) { // by default has wram at 0x6000 and cartridge at 0x8000-0xfff // but some mappers have different so override for those if (addr < 0x4000) { return prg[prg_map[((addr & 0x3fff)) >> 10] + (addr & 1023)]; } else { return prg[prg_map[((addr & 0x3fff)) >> 10] + ((addr - 0x4000) & 1023)]; } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int reg = addr & 7; setmirroring(((data & (utils.BIT3)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * reg)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * reg)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper201.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper201 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * addr)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * addr)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper203.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper203 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public int cartRead(final int addr) { return prg[prg_map[((addr & 0x3fff)) >> 10] + ((addr & 0x3fff) & 1023)]; } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int prgselect = data >> 2; int chrselect = data & 3; //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper212.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper212 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 16; ++i) { prg_map[16 + i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } else if (addr >= 0x8000 && addr <= 0xBFFF) { //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * addr)) & (prgsize - 1); } for (int i = 0; i < 16; ++i) { prg_map[i + 16] = (1024 * (i + 16 * addr)) & (prgsize - 1); } } else if (addr >= 0xC000 && addr <= 0xFFFF) { //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * (addr >> 1))) & (prgsize - 1); } } //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * addr)) & (chrsize - 1); } setmirroring(((addr & (utils.BIT4)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper213.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper213 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * (addr >> 3))) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * (addr >> 1))) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper214.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper214 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * addr)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * (addr >> 2))) & (prgsize - 1); } for (int i = 0; i < 16; ++i) { prg_map[i + 16] = (1024 * (i + 16 * (addr >> 2))) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper225.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper225 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } setmirroring( ((addr & (0xD)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); int bank = addr >> 7 & 0x1F; if ((addr & 0x1000) != 0) { bank = (bank << 1) | (addr >> 6 & 1); for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * bank)) & (prgsize - 1); } for (int i = 0; i < 16; ++i) { prg_map[i + 16] = (1024 * (i + 16 * bank)) & (prgsize - 1); } } else { for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * bank)) & (prgsize - 1); } } //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * addr)) & (chrsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper226.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper226 extends Mapper { int[] reg = {0, 0}; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xFFFF) { super.cartWrite(addr, data); return; } reg[addr & 1] = data; int bank = ((reg[0] >> 1 & 0x0F) | (reg[0] >> 3 & 0x10) | (reg[1] << 5 & 0x20)); setmirroring(((reg[0] & (utils.BIT6)) != 0) ? MirrorType.V_MIRROR : MirrorType.H_MIRROR); if ((reg[0] & 0x20) != 0) { bank = (bank << 1) | (reg[0] & 1); for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * bank)) & (prgsize - 1); } for (int i = 0; i < 16; ++i) { prg_map[i + 16] = (1024 * (i + 16 * bank)) & (prgsize - 1); } } else { for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * bank)) & (prgsize - 1); } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper229.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper229 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * addr)) & (chrsize - 1); } //remap PRG bank int bank = (addr & 0x1E) != 0 ? (addr & 0x1F) : 0; for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * bank)) & (prgsize - 1); } bank = (addr & 0x1E) != 0 ? (addr & 0x1F) : 1; for (int i = 0; i < 16; ++i) { prg_map[i + 16] = (1024 * (i + 16 * bank)) & (prgsize - 1); } setmirroring(((addr & (utils.BIT5)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper231.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper231 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } setmirroring(((addr & (utils.BIT7)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); int prg = addr & 0x1E; //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * prg)) & (prgsize - 1); } for (int i = 0; i < 16; ++i) { prg_map[i + 16] = (1024 * (i + 16 * (prg | (addr >> 5 & 1)))) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper240.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper240 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x4020 || addr > 0x5fff) { super.cartWrite(addr, data); return; } int prgselect = (data >> 4) & 0xF; int chrselect = data & 0xF; //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper241.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper241 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * data)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper242.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper242 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xFFFF) { super.cartWrite(addr, data); return; } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * (addr >> 3))) & (prgsize - 1); } setmirroring(((addr & (utils.BIT1)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper244.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper244 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8065 || addr > 0x80E4) { super.cartWrite(addr, data); return; } if (addr < 0x80A5) { //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * ((addr - 0x8065) & 3))) & (prgsize - 1); } } else { //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * ((addr - 0x80A5) & 7))) & (chrsize - 1); } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper246.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper246 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 24; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 8; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x6000 || addr > 0x67ff) { super.cartWrite(addr, data); return; } switch (addr & 7) { case 0: for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * data)) & (prgsize - 1); } break; case 1: for (int i = 0; i < 8; ++i) { prg_map[8 + i] = (1024 * (i + 8 * data)) & (prgsize - 1); } break; case 2: for (int i = 0; i < 8; ++i) { prg_map[16 + i] = (1024 * (i + 8 * data)) & (prgsize - 1); } break; case 3: for (int i = 0; i < 8; ++i) { prg_map[24 + i] = (1024 * (i + 8 * data)) & (prgsize - 1); } break; case 4: for (int i = 0; i < 2; ++i) { chr_map[i] = (1024 * (i + 2 * data)) & (chrsize - 1); } break; case 5: for (int i = 0; i < 2; ++i) { chr_map[2 + i] = (1024 * (i + 2 * data)) & (chrsize - 1); } break; case 6: for (int i = 0; i < 2; ++i) { chr_map[4 + i] = (1024 * (i + 2 * data)) & (chrsize - 1); } break; case 7: for (int i = 0; i < 2; ++i) { chr_map[6 + i] = (1024 * (i + 2 * data)) & (chrsize - 1); } break; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper255.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper255 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } final int mode = (~addr >> 12 & 1); final int bank = (addr >> 8 & 0x40) | (addr >> 6 & 0x3F); setmirroring(((addr & 0x2000) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * ((addr >> 8 & 0x40) | (addr & 0x3F)))) & (chrsize - 1); } //remap PRG banks for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * (bank & ~mode))) & (prgsize - 1); } for (int i = 0; i < 16; ++i) { prg_map[16 + i] = (1024 * (i + 16 * (bank | mode))) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper31.java ================================================ /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ public class Mapper31 extends Mapper { //mapper for NSF compilations, based on BNROM with NSF type bankswitch //written in about 20mins so i could listen to 2a03puritans public boolean nsfBanking; public int[] nsfBanks = {00, 00, 00, 00, 00, 00, 00, 0xff}; @Override public void loadrom() throws BadMapperException { // needs to be in every mapper. Fill with initial cfg super.loadrom(); setBanks(); } @Override public void cartWrite(final int addr, final int data) { if (addr >= 0x6000 && addr < 0x8000) { //default no-mapper operation just writes if in PRG RAM range prgram[addr & 0x1fff] = data; } else if ((addr >= 0x5000) && (addr < 0x6000)) { nsfBanks[addr & 7] = data; //System.err.println(addr - 0x5ff8 + " " + data); setBanks(); } else { System.err.println("write to " + utils.hex(addr) + " goes nowhere"); } } @Override public int cartRead(final int addr) { // by default has wram at 0x6000 and cartridge at 0x8000-0xfff // but some mappers have different so override for those if (addr >= 0x8000) { int fuuu = prg_map[((addr & 0x7fff)) >> 10] + (addr & 1023); return prg[fuuu]; } else if (addr >= 0x6000 && hasprgram) { return prgram[addr & 0x1fff]; } else if ((addr >= 0x5000)) { return nsfBanks[addr & 7]; } System.err.println("reading open bus " + utils.hex(addr)); return addr >> 8; //open bus } private void setBanks() { for (int i = 0; i < prg_map.length; ++i) { prg_map[i] = (4096 * nsfBanks[i / 4]) + (1024 * (i % 4)); if ((prg_map[i]) >= prg.length) { // System.err.println("broken banks"); prg_map[i] &= ((this.prgsize) - 1); } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper33.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper33 extends Mapper { int prgbank0, prgbank1 = 0; int[] chrbank = {0, 0, 0, 0, 0, 0}; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xBFFF) { super.cartWrite(addr, data); } else if (addr <= 0x9FFF) { switch (addr & 3) { case 0: prgbank0 = data; setmirroring(((data & (utils.BIT6)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); setbanks(); break; case 1: prgbank1 = data; setbanks(); break; case 2: chrbank[0] = data; setbanks(); break; case 3: chrbank[1] = data; setbanks(); break; } } else if (addr <= 0xBFFF) { switch (addr & 3) { case 0: chrbank[2] = data; setbanks(); break; case 1: chrbank[3] = data; setbanks(); break; case 2: chrbank[4] = data; setbanks(); break; case 3: chrbank[5] = data; setbanks(); break; } } } private void setbanks() { //map prg banks //last two banks fixed to the last two banks in ROM for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } //first bank set to prg0 register for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * prgbank0)) & (prgsize - 1); } //second bank set to prg1 register for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + 8 * prgbank1)) & (prgsize - 1); } //map chr banks setppubank(1, 4, chrbank[2]); setppubank(1, 5, chrbank[3]); setppubank(1, 6, chrbank[4]); setppubank(1, 7, chrbank[5]); setppubank(2, 0, chrbank[0]); setppubank(2, 2, chrbank[1]); } private void setppubank(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * (i + (banksize * banknum))) & (chrsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper36.java ================================================ package com.grapeshot.halfnes.mappers; public class Mapper36 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 1; i <= 8; ++i) { chr_map[8 - i] = chrsize - (1024 * i); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8400 || addr > 0xfffe) { super.cartWrite(addr, data); return; } //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * data)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * (data >> 4))) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper47.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; /** * * @author Andrew */ public class Mapper47 extends MMC3Mapper { //official Nintendo multicart mapper, mmc3 variant //used for super spike vball, nintendo world cup private int multibank = 1; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } setbank6(); } @Override public void cartWrite(int addr, int data) { if (addr < 0x6000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //multicart bankswitches here if ((addr >= 0x6000) && (addr <= 0x7fff)) { multibank = data & 1; //setup all banks for (int i = 0; i < 8; ++i) { prg_map[i + 8] = ((1024 * (i + (data * 8))) % 131072) + multibank * 131072; } setbank6(); setupchr(); for (int i = 1; i <= 8; ++i) { prg_map[32 - i] = 131072 - (1024 * i) + multibank * 131072; } } //different register for even/odd writes if (((addr & (utils.BIT0)) != 0)) { //odd registers if ((addr >= 0x8000) && (addr <= 0x9fff)) { //bank change //System.err.println("setting " + whichbank + " " + data + " " + prgconfig); if (whichbank <= 5) { chrreg[whichbank] = data; setupchr(); } else if (whichbank == 6) { bank6 = data; setbank6(); } else if (whichbank == 7) { //bank 7 always swappable, always in same place for (int i = 0; i < 8; ++i) { prg_map[i + 8] = ((1024 * (i + (data * 8))) % 131072) + multibank * 131072; } } } else if ((addr >= 0xA000) && (addr <= 0xbfff)) { //prg ram write protect //cpuram.setPrgRAMEnable(!utils.getbit(data, 7)); } else if ((addr >= 0xc000) && (addr <= 0xdfff)) { //any value here reloads irq counter irqreload = true; } else if ((addr >= 0xe000) && (addr <= 0xffff)) { //iany value here enables interrupts irqenable = true; } } else { //even registers if ((addr >= 0x8000) && (addr <= 0x9fff)) { //bank select whichbank = data & 7; prgconfig = ((data & (utils.BIT6)) != 0); //if bit is false, 8000-9fff swappable and c000-dfff fixed to 2nd to last bank //if bit is true, c000-dfff swappable and 8000-9fff fixed to 2nd to last bank chrconfig = ((data & (utils.BIT7)) != 0); //if false: 2 2k banks @ 0000-0fff, 4 1k banks in 1000-1fff //if true: 4 1k banks @ 0000-0fff, 2 2k banks @ 1000-1fff setupchr(); setbank6(); //OOPS FORGOT THIS I GUESS } else if ((addr >= 0xA000) && (addr <= 0xbfff)) { //mirroring setup if (scrolltype != MirrorType.FOUR_SCREEN_MIRROR) { setmirroring(((data & (utils.BIT0)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } else if ((addr >= 0xc000) && (addr <= 0xdfff)) { //value written here used to reload irq counter _@ end of scanline_ irqctrreload = data; } else if ((addr >= 0xe000) && (addr <= 0xffff)) { //any value here disables IRQ and acknowledges if (interrupted) { --cpu.interrupt; } interrupted = false; irqenable = false; } } } protected void setbank6() { if (!prgconfig) { //map c000-dfff to last bank, 8000-9fff to selected bank for (int i = 0; i < 8; ++i) { prg_map[i] = ((1024 * (i + (bank6 * 8))) % 131072) + multibank * 131072; prg_map[i + 16] = ((131072 - 16384) + 1024 * (i + multibank * 128)); } } else { //map 8000-9fff to last bank, c000 to dfff to selected bank for (int i = 0; i < 8; ++i) { prg_map[i] = ((131072 - 16384) + 1024 * (i + multibank * 128)); prg_map[i + 16] = ((1024 * (i + (bank6 * 8))) % 131072) + multibank * 131072; } } } protected void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = ((1024 * ((banknum) + i)) % (chrsize / 2)) + multibank * 131072; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper48.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper48 extends Mapper { int prgbank0, prgbank1 = 0; int[] chrbank = {0, 0, 0, 0, 0, 0}; private int irqctrreload = 0; private int irqctr = 0; private boolean irqenable = false; private boolean irqreload = false; private boolean interrupted = false; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xFFFF) { super.cartWrite(addr, data); return; } else if (addr <= 0x9FFF) { switch (addr & 3) { case 0: prgbank0 = data; setbanks(); break; case 1: prgbank1 = data; setbanks(); break; case 2: chrbank[0] = data; setbanks(); break; case 3: chrbank[1] = data; setbanks(); break; } } else if (addr <= 0xBFFF) { switch (addr & 3) { case 0: chrbank[2] = data; setbanks(); break; case 1: chrbank[3] = data; setbanks(); break; case 2: chrbank[4] = data; setbanks(); break; case 3: chrbank[5] = data; setbanks(); break; } } else if (addr <= 0xDFFF) { switch (addr & 3) { case 0: //value written here used to reload irq counter _@ end of scanline_ irqctrreload = data & 0xFF; irqreload = true; break; case 1: //any value here reloads irq counter irqctr = data; irqreload = true; break; case 2: //any value here enables interrupts irqenable = true; break; case 3: //any value here disables IRQ and acknowledges if (interrupted) { --cpu.interrupt; } interrupted = false; irqenable = false; irqctr = irqctrreload; break; } } else if (addr <= 0xFFFF) { switch (addr & 3) { case 0: setmirroring(((data & (utils.BIT6)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); break; } } } private void setbanks() { //map prg banks //last two banks fixed to the last two banks in ROM for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } //first bank set to prg0 register for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * prgbank0)) & (prgsize - 1); } //second bank set to prg1 register for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + 8 * prgbank1)) & (prgsize - 1); } //map chr banks setppubank(1, 4, chrbank[2]); setppubank(1, 5, chrbank[3]); setppubank(1, 6, chrbank[4]); setppubank(1, 7, chrbank[5]); setppubank(2, 0, chrbank[0]); setppubank(2, 2, chrbank[1]); } private void setppubank(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * (i + (banksize * banknum))) & (chrsize - 1); } } @Override public void notifyscanline(int scanline) { //Scanline counter if (scanline > 239 && scanline != 261) { //clocked on LAST line of vblank and all lines of frame. Not on 240. return; } if (!ppu.mmc3CounterClocking()) { return; } if (irqreload) { irqreload = false; irqctr = irqctrreload; } if (irqctr-- <= 0) { if (irqctrreload == 0) { return; //irqs stop being generated if reload set to zero } if (irqenable && !interrupted) { ++cpu.interrupt; interrupted = true; } irqctr = irqctrreload; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper58.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper58 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void reset() { cartWrite(0x8000, cartRead(0x8000)); } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } setmirroring(((addr & (utils.BIT7)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * (addr >> 3))) & (chrsize - 1); } int prgselect = addr & ~(~addr >> 6 & 1); //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } prgselect = addr | (~addr >> 6 & 1); for (int i = 0; i < 16; ++i) { prg_map[16 + i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper60.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper60 extends Mapper { int reg = 0; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 16; ++i) { prg_map[i + 16] = (1024 * i) & (prgsize - 1); } } @Override public void reset() { reg = (reg + 1) & 3; //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * reg)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * reg)) & (prgsize - 1); } for (int i = 0; i < 16; ++i) { prg_map[i + 16] = (1024 * (i + 16 * reg)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper61.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper61 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public void reset() { cartWrite(0x8000, cartRead(0x8000)); } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } switch (addr & 0x30) { case 0x00: case 0x30: for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * (addr & 0xF))) & (prgsize - 1); } break; case 0x10: case 0x20: int prgselect = (addr << 1 & 0x1E) | (addr >> 4 & 2); for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 32 * prgselect)) & (prgsize - 1); } for (int i = 0; i < 16; ++i) { prg_map[i + 16] = (1024 * (i + 32 * prgselect)) & (prgsize - 1); } } setmirroring(((addr & (utils.BIT7)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper62.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper62 extends Mapper { boolean prg_mode; int prgselect, chrselect; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } prg_mode = ((addr & (utils.BIT5)) != 0); prgselect = (addr & 0x40) | ((addr >> 8) & 0x3F); chrselect = (addr << 2) | (data & 3); //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank if (prg_mode) { for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } for (int i = 0; i < 16; ++i) { prg_map[16 + i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } } else { for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * (prgselect >> 1))) & (prgsize - 1); } } setmirroring( ((addr & (utils.BIT7)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper70.java ================================================ package com.grapeshot.halfnes.mappers; public class Mapper70 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int prgselect = (byte) ((data >> 4) & 0xF); int chrselect = (data & 0xF); //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper72.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper72 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } if ((data & 0x40) != 0) { //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * (data & 0xF))) & (chrsize - 1); } } if ((data & 0x80) != 0) { //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * (data & 0xF))) & (prgsize - 1); } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper76.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; /** * * @author Andrew */ public class Mapper76 extends Mapper { //a stripped down mmc3 clone for namco/tengen games. //almost everything using this is marked as mapper 4 and works fine like that private int whichbank = 0; private int[] chrreg = {0, 0, 0, 0, 0, 0}; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //bankswitches here if (addr == 0x8001) { if (whichbank <= 5) { chrreg[whichbank] = data; setupchr(); } else if (whichbank == 6) { for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + (data * 8))) % prgsize; } } else if (whichbank == 7) { //bank 7 always swappable, always in same place for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + (data * 8))) % prgsize; } } } else if (addr == 0x8000) { //bank select whichbank = data & 7; } } private void setupchr() { setppubank(2, 0, (chrreg[2]) << 1); setppubank(2, 2, (chrreg[3]) << 1); setppubank(2, 4, (chrreg[4]) << 1); setppubank(2, 6, (chrreg[5]) << 1); } private void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) & (chrsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper78.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; /** * * @author Andrew */ public class Mapper78 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 1; i <= 8; ++i) { chr_map[8 - i] = chrsize - (1024 * i); } } @Override public final void cartWrite(final int addr, final int data) { //System.out.println(data); if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int prgselect = data & 7; int chrselect = (data >> 4) & 0xf; if (crc == 0x42392440) //Cosmo Carrier { setmirroring(((data & (utils.BIT3)) != 0) ? MirrorType.SS_MIRROR1 : MirrorType.SS_MIRROR0); } else { setmirroring(((data & (utils.BIT3)) != 0) ? MirrorType.V_MIRROR : MirrorType.H_MIRROR); } //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper86.java ================================================ package com.grapeshot.halfnes.mappers; public class Mapper86 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr >= 0x6000 && addr <= 0x6FFF) { int prgselect = (data >> 4) & 3; int chrselect = (data & 3) | ((data & 0x40) >> 4); //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * prgselect)) & (prgsize - 1); } } else if (addr >= 0x7000 && addr <= 0x7FFF) { if ((data & 0x30) != 0x20) { return; } //TODO: add sound control by using external sound files switch (data & 0x1F) { case 0: System.out.println("\"Strike!\""); break; case 1: System.out.println("\"Ball!\""); break; case 2: System.out.println("\"Time!\""); break; case 3: System.out.println("\"Out!\""); break; case 4: System.out.println("\"Safe!\""); break; case 5: System.out.println("\"Foul!\""); break; case 6: System.out.println("\"Fair!\""); break; case 7: System.out.println("\"You're out!\""); break; case 8: System.out.println("\"Play ball!\""); break; case 9: System.out.println("\"Ball 4!\""); break; case 10: System.out.println("\"Home run!\""); break; case 11: System.out.println("\"New pitcher\""); break; case 12: System.out.println("\"Ouch!\""); break; case 13: System.out.println("\"Dummy!\""); break; case 14: System.out.println("*crack*"); break; case 15: System.out.println("*cheer*"); break; } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper87.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ public class Mapper87 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr >= 0x6000 && addr < 0x8000) { //remap CHR bank int bit0 = (data >> 1) & 1; int bit1 = data & 1; for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * ((bit1 << 1) + bit0))) & (chrsize - 1); } } else { super.cartWrite(addr, data); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper92.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper92 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 16; ++i) { prg_map[16 + i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } if ((data & 0x40) != 0) { //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * (data & 0xF))) & (chrsize - 1); } } if ((data & 0x80) != 0) { //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[16 + i] = (1024 * (i + 16 * (data & 0xF))) & (prgsize - 1); } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper94.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; public class Mapper94 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int prgselect = (byte) ((data >> 2) & 7); //remap PRG bank (1st bank switchable, 2nd bank mapped to LAST bank) for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Mapper97.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Mapper97 extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[16 - i] = prgsize - (1024 * i); } //swappable bank for (int i = 0; i < 16; ++i) { prg_map[16 + i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } int prgselect = (byte) (data & 0xF); //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[16 + i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } int mirroring = data >> 6; switch (mirroring) { case 0: setmirroring(MirrorType.SS_MIRROR0); break; case 1: setmirroring(MirrorType.H_MIRROR); break; case 2: setmirroring(MirrorType.V_MIRROR); break; case 3: setmirroring(MirrorType.SS_MIRROR1); break; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/NINA_001_Mapper.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class NINA_001_Mapper extends Mapper { @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x7ffd || addr > 0x7fff) { super.cartWrite(addr, data); return; } switch (addr) { case 0x7FFD: for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * data)) & (prgsize - 1); } break; case 0x7FFE: for (int i = 0; i < 4; ++i) { chr_map[i] = (1024 * (i + 4 * data)) & (chrsize - 1); } break; case 0x7FFF: for (int i = 0; i < 4; ++i) { chr_map[4 + i] = (1024 * (i + 4 * data)) & (chrsize - 1); } break; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/NINA_003_006_Mapper.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class NINA_003_006_Mapper extends Mapper { boolean m113 = true; public NINA_003_006_Mapper(int mappernum) { super(); switch (mappernum) { //mappers 79 and 113 differ mainly on whether they can control mirroring or not case 79: m113 = false; break; case 113: m113 = true; break; } } @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void reset() { for (int i = 0x4100; i < 0x6000; i += 0x200) { cartWrite(i, i + 0xFF); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x4100 || addr > 0x5fff) { super.cartWrite(addr, data); return; } if (m113) { setmirroring(((data & (utils.BIT7)) != 0) ? MirrorType.V_MIRROR : MirrorType.H_MIRROR); //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * ((data >> 3 & 8) | (data & 7)))) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * (data >> 3 & 7))) & (prgsize - 1); } } else { //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * data)) & (chrsize - 1); } //remap PRG bank for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * (i + 32 * (data >> 3))) & (prgsize - 1); } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/NSFMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; import com.grapeshot.halfnes.audio.*; import java.util.Arrays; /** * * @author Andrew */ public class NSFMapper extends Mapper { //a nsf playing mapper //TODO: add the extra bankswitches required when playing FDS private int load, init, play, song, numSongs; public boolean nsfBanking; public int[] nsfStartBanks = new int[10], nsfBanks = new int[10]; private int sndchip; boolean vrc6 = false, vrc7 = false, mmc5 = false, n163 = false, s5b = false, hasInitSound = false, fds = false; private boolean n163autoincrement = false; private int n163soundAddr = 0; private int mmc5multiplier1, mmc5multiplier2; private int vrc7regaddr = 0; private int s5bSoundCommand = 0; private Namco163SoundChip n163Audio; private VRC6SoundChip vrc6Audio; private VRC7SoundChip vrc7Audio; private Sunsoft5BSoundChip s5bAudio; private MMC5SoundChip mmc5Audio; private static final String trackstr = "Track --- / --- <-B A->"; private FDSSoundChip fdsAudio; @Override public void loadrom() throws BadMapperException { loader.parseHeader(); prgsize = loader.prgsize; mappertype = loader.mappertype; prgoff = loader.prgoff; for (int i = 0x70; i < 0x78; ++i) { if (loader.header[i] != 0) { nsfBanking = true; nsfStartBanks[i - 0x70] = loader.header[i]; } } prgoff = 0; load = loader.header[0x08] + (loader.header[0x09] << 8); init = loader.header[0x0a] + (loader.header[0x0b] << 8); play = loader.header[0x0c] + (loader.header[0x0d] << 8); numSongs = loader.header[6] - 1; song = loader.header[7] - 1; if (loader.header[0x7a] == 1) { //pal only tune this.region = TVType.PAL; //System.err.println("pal only tune"); } else { this.region = TVType.NTSC; } chroff = 0; chrsize = 0; scrolltype = MirrorType.V_MIRROR; sndchip = loader.header[0x7B]; if (!nsfBanking && load < 0x8000) { //no banking //System.err.println("What do I do with this???"); throw new BadMapperException("NSF with no banking loading low"); } // pad to 4k bank size and copy in starting //from where the load addr is in a 4k bank //to the end of the file, padding the end to a 4k bank as well //so total number of banks can be 2 more than # of 4k //chunks in the file. int paddingLen = (nsfBanking) ? load & 0x0fff : load - 0x8000; prg = new int[1024 * 1024]; System.arraycopy(loader.load(loader.romlen(), prgoff), 0, prg, paddingLen, loader.romlen()); crc = crc32(prg); haschrram = true; chrsize = 8192; chr = new int[8192]; prg_map = new int[(((sndchip & (utils.BIT2)) != 0)) ? 40 : 32]; if (!nsfBanking) { //identity mapping from 1st loaded bank for (int i = 0; i < 8; ++i) { nsfStartBanks[i] = i; } } //additional headache for NSFs with FDS: if (((sndchip & (utils.BIT2)) != 0)) { //got to copy some stuff into 6000 - 7fff just because nsfStartBanks[8] = nsfStartBanks[6]; nsfStartBanks[9] = nsfStartBanks[7]; } chr_map = new int[8]; for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } cpuram = new CPURAM(this); cpu = new CPU(cpuram); ppu = new PPU(this); Arrays.fill(pput0, 0x00); setmirroring(scrolltype); //System.out.println(sndchip); //set up the PPU to display titles //pick a random color based on the tune's crc (why not?) ppu.pal[0] = 0x3f; ppu.pal[1] = 0x20 + (int) (crc % 12); ppu.pal[2] = 0x20 + (int) (crc % 12); ppu.pal[3] = 0x20 + (int) (crc % 12); chr = NSFPlayerFont.font; } @Override public void init() { //now that we've set up the initial CPU state, do it all over again //in order to match the NSF spec. //set banks back to the way they were originally nsfBanks = nsfStartBanks.clone(); setBanks(); //clear all ram to 0 for (int i = 0; i <= 0x7ff; ++i) { cpuram.write(i, 0); } //initialize sound registers for (int i = 0x4000; i <= 0x4013; ++i) { cpuram.write(i, 0); } cpuram.write(0x4015, 0x0f); //disable frame counter on APU cpuram.write(0x4017, 0x40); //simulate a jump to the play address cpu.push(0xff); cpu.push(0xfa); cpu.setPC(init); cpu.interrupt = -99999; //no interrupts for you cpu.setRegA(song); if (this.region == TVType.PAL) { cpu.setRegX(0x01); } else { cpu.setRegX(0x00); } //copy titles to ppu nametable for (int i = 0; i < 32 * 24; ++i) { //random pattern from basic one liner pput0[i] = (Math.random() > 0.5) ? 0x2f : 0x5c; } for (int i = 0; i < 96; ++i) { pput0[i + (32 * 25)] = loader.header[i + 0xe]; } for (int i = 0; i < trackstr.length(); ++i) { pput0[i + (32 * 28)] = trackstr.charAt(i); } if (!hasInitSound) { setSoundChip(); hasInitSound = true; } if (!fds) { //DON'T CLEAR THIS WHEN STUFF LOADS HERE for (int i = 0x6000; i <= 0x7fff; ++i) { cpuram.write(i, 0); } } } @Override public void reset() { song = loader.header[7] - 1; init(); cpu.setPC(init); } //write into the cartridge's address space @Override public void cartWrite(final int addr, final int data) { if (n163 && addr == 0xF800) { n163autoincrement = ((data & (utils.BIT7)) != 0); n163soundAddr = data & 0x7f; } else if (n163 && addr == 0x4800) { n163Audio.write(n163soundAddr, data); if (n163autoincrement) { n163soundAddr = ++n163soundAddr & 0x7f; } } else if (s5b && addr == 0xE000) { s5bAudio.write(s5bSoundCommand, data); } else if (s5b && addr == 0xC000) { s5bSoundCommand = data & 0xF; } else if (vrc6 && addr >= 0xB000 && addr <= 0xB002) { vrc6Audio.write((addr & 0xf000) + (addr & 3), data); } else if (vrc6 && addr >= 0xA000 && addr <= 0xA002) { vrc6Audio.write((addr & 0xf000) + (addr & 3), data); } else if (vrc7 && addr == 0x9030) { vrc7Audio.write(vrc7regaddr, data); } else if (vrc7 && addr == 0x9010) { vrc7regaddr = data; } else if (vrc6 && addr >= 0x9000 && addr <= 0x9002) { vrc6Audio.write((addr & 0xf000) + (addr & 3), data); } else if (fds && nsfBanking && addr >= 0x6000) { if (addr < 0x8000) { int fuuu = prg_map[((addr - 0x6000) >> 10) + 32] + (addr & 1023); prg[fuuu] = data; } else { int fuuu = prg_map[((addr & 0x7fff)) >> 10] + (addr & 1023); prg[fuuu] = data; } } else if (fds && !nsfBanking && addr >= 0x6000) { if (addr < 0x8000) { prgram[addr - 0x6000] = data; } else { int fuuu = prg_map[((addr & 0x7fff)) >> 10] + (addr & 1023); prg[fuuu] = data; } } else if (addr >= 0x6000 && addr < 0x8000) { //default no-mapper operation just writes if in PRG RAM range prgram[addr & 0x1fff] = data; } else if ((addr >= 0x5ff8) && (addr < 0x6000)) { nsfBanks[addr - 0x5ff8] = data; //System.err.println(addr - 0x5ff8 + " " + data); setBanks(); } else if (fds && nsfBanking && (addr == 0x5ff6)) { //System.err.println("fds request bank " + data + " in ram0"); nsfBanks[8] = data; setBanks(); } else if (fds && nsfBanking && (addr >= 0x5ff7)) { //System.err.println("fds request bank " + data + " in ram1"); nsfBanks[9] = data; setBanks(); } else if (mmc5 && (addr >= 0x5C00) && (addr <= 0x5FF5)) { prgram[addr - 0x5C00] = data; //RAM emulates ExRAM here } else if (mmc5 && (addr == 0x5206)) { mmc5multiplier2 = data; } else if (mmc5 && (addr == 0x5205)) { mmc5multiplier1 = data; } else if (mmc5 && (addr >= 0x5000) && (addr <= 0x5015)) { mmc5Audio.write(addr - 0x5000, data); } else if (fds && (addr >= 0x4040) && (addr <= 0x4092)) { fdsAudio.write(addr, data); } else { //System.err.println("write to " + utils.hex(addr) + " goes nowhere"); } } @Override public int cartRead(final int addr) { // by default has wram at 0x6000 and cartridge at 0x8000-0xfff // but some mappers have different so override for those if (addr >= 0x8000) { if (addr > 0xfffa) { //reads of last part of RAM should always //give the reset vectors here, no matter what //NSF bank is mapped there. switch (addr) { case 0xfffb: return 0x4c; case 0xfffc: return 0xfb; case 0xfffd: return 0xff; default: return 0x00; } } int fuuu = prg_map[((addr & 0x7fff)) >> 10] + (addr & 1023); return prg[fuuu]; } else if (addr >= 0x6000 && hasprgram) { if (fds && nsfBanking) { int fuuu = prg_map[((addr - 0x6000) >> 10) + 32] + (addr & 1023); return prg[fuuu]; } else { return prgram[addr & 0x1fff]; } } else if ((addr >= 0x5ff8)) { return nsfBanks[addr - 0x5ff8]; } else if (fds && nsfBanking && (addr == 0x5ff6)) { return nsfBanks[8]; } else if (fds && nsfBanking && (addr == 0x5ff7)) { return nsfBanks[9]; } else if (mmc5 && addr >= 0x5C00) { return prgram[addr - 0x5C00]; //RAM emulates ExRAM here } else if (mmc5 && addr == 0x5206) { return ((mmc5multiplier1 * mmc5multiplier2) >> 8) & 0xff; } else if (mmc5 && addr == 0x5205) { return (mmc5multiplier1 * mmc5multiplier2) & 0xff; } else if (mmc5 && addr == 0x5015) { return mmc5Audio.status(); } else if (n163 && addr == 0x4800) { //System.err.println("readback"); int retval = n163Audio.read(n163soundAddr); if (n163autoincrement) { n163soundAddr = ++n163soundAddr & 0x7f; } return retval; } else if (fds && (addr >= 0x4040) && (addr < 0x4093)) { return fdsAudio.read(addr); } //System.err.println("reading open bus " + utils.hex(addr)); return addr >> 8; //open bus } @Override public void ppuWrite(int addr, final int data) { } int control, prevcontrol; int unfinishedcounter = 0; int time = 4; @Override public void notifyscanline(final int scanline) { if (scanline == 240) { //make sure init isn't still running if (cpu.PC != 0xFFFB) { //if not in idle loop if (unfinishedcounter < time) { ++unfinishedcounter; /*System.err.println("Init routine hasn't returned in " + unfinishedcounter + " frames"); */ return; } else if (unfinishedcounter == time) { ++unfinishedcounter; //System.err.println("giving up"); } //if we've given it a few frames //and it still hasn't returned from init, then it probably //isn't going to (supernsf) //so we move blithely forward. } else { unfinishedcounter = 0; } //set PPU registers to enable rendering ppu.write(6, 0); ppu.write(6, 0); ppu.write(5, 0); ppu.write(0, 0); ppu.write(1, utils.BIT1 | utils.BIT3 | utils.BIT4); //write track number to screen writeTracks(); //todo: visualization effects //read the controller prevcontrol = control; control = 0; //strobe cpuram.write(0x4016, 1); cpuram.write(0x4016, 0); //read each button out for (int i = 0; i < 8; ++i) { control = (control << 1) + (((cpuram.read(0x4016) & 3) != 0) ? 1 : 0); } //change song number if we get a button press if (((control & 0x80) != 0) && ((prevcontrol & 0x80) == 0)) { ++song; if (song > numSongs) { song = 0; } //System.err.println("next song"); init(); } else if (((control & 0x40) != 0) && ((prevcontrol & 0x40) == 0)) { --song; if (song < 0) { song = numSongs; } //System.err.println("previous song"); init(); } else //fake a jsr to the play address from wherever //unless this is a supernsf if (unfinishedcounter <= time) { cpu.push((cpu.PC - 1) >> 8); cpu.push((cpu.PC - 1) & 0xff); cpu.setPC(play); } } } @Override public String getrominfo() { return "NSF INFO: \n" + "Filename: " + loader.name + "\n" + "Size: " + loader.romlen() / 1024 + " K\n" + "Expansion Sound: " + expSound() + "\n" + "Track: " + (song + 1) + " / " + (numSongs + 1) + "\n" + "Load Address: " + utils.hex(load) + "\n" + "Init Address: " + utils.hex(init) + "\n" + "Play Address: " + utils.hex(play) + "\n" + "Banking? " + (nsfBanking ? "Yes" : "No") + "\n" + "CRC: " + utils.hex(this.crc); } private String expSound() { String chips = ""; if (vrc6) { chips += "VRC6 "; } if (vrc7) { chips += "VRC7 "; } if (n163) { chips += "Namco 163 "; } if (mmc5) { chips += "MMC5 "; } if (s5b) { chips += "Sunsoft 5B "; } if (fds) { chips += "FDS "; } return ((chips.length() > 0) ? chips : "None"); } private void setBanks() { for (int i = 0; i < prg_map.length; ++i) { prg_map[i] = (4096 * nsfBanks[i / 4]) + (1024 * (i % 4)); if ((prg_map[i]) >= prg.length) { //System.err.println("broken banks"); prg_map[i] %= prg.length; //probably a bad idea in general though //but who knows what a NSF wants when it tries //to switch a bank not in the file? //there's no "alias it to a power of 2" for nsfs since the file //size doesn't need to be a power of 2 and you can start loading //the file halfway into a bank. } } //utils.printarray(prg_map); //utils.printarray(nsfStartBanks); } private void setSoundChip() { if (((sndchip & (utils.BIT0)) != 0)) { //VRC6 audio vrc6 = true; vrc6Audio = new VRC6SoundChip(); cpuram.apu.addExpnSound(vrc6Audio); } if (((sndchip & (utils.BIT1)) != 0)) { //VRC7 audio vrc7 = true; vrc7Audio = new VRC7SoundChip(); cpuram.apu.addExpnSound(vrc7Audio); } if (((sndchip & (utils.BIT2)) != 0)) { //FDS audio, not yet implemented fds = true; fdsAudio = new FDSSoundChip(); cpuram.apu.addExpnSound(fdsAudio); } if (((sndchip & (utils.BIT3)) != 0)) { //MMC5 audio mmc5 = true; mmc5Audio = new MMC5SoundChip(); cpuram.apu.addExpnSound(mmc5Audio); } if (((sndchip & (utils.BIT4)) != 0)) { //Namco 163 audio n163 = true; n163Audio = new Namco163SoundChip(); cpuram.apu.addExpnSound(n163Audio); } if (((sndchip & (utils.BIT5)) != 0)) { //Sunsoft 5B audio s5b = true; s5bAudio = new Sunsoft5BSoundChip(); cpuram.apu.addExpnSound(s5bAudio); } } private void writeTracks() { String cur = String.format("%3d / %-3d", song + 1, numSongs + 1); for (int i = 0; i < cur.length(); ++i) { pput0[i + (32 * 28) + 6] = cur.charAt(i); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/NSFPlayerFont.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; /** * * @author Andrew */ public class NSFPlayerFont { private NSFPlayerFont() {} //file auto-generated from Dwedit's ascii.chr by bin2h.exe public final static int[] font = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x7C, 0xC0, 0x78, 0x0C, 0xF8, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x4C, 0xC6, 0xC6, 0xC6, 0x64, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x0E, 0x3C, 0x78, 0xE0, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x0C, 0x18, 0x3C, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xC0, 0xFC, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x60, 0xC0, 0xFC, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC6, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x7C, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xCC, 0x0C, 0x18, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xDE, 0xDE, 0xDE, 0xC0, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xC6, 0xC6, 0xFC, 0xC6, 0xC6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xCC, 0xC6, 0xC6, 0xC6, 0xCC, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xFC, 0xC0, 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xFC, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x60, 0xC0, 0xCE, 0xC6, 0x66, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x06, 0x06, 0x06, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCC, 0xD8, 0xF0, 0xF8, 0xDC, 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xC6, 0xC6, 0xC6, 0xFC, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xDE, 0xCC, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xC6, 0xC6, 0xCE, 0xF8, 0xDC, 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xCC, 0xC0, 0x7C, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xEE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0xFE, 0xEE, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xEE, 0x7C, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0E, 0x1C, 0x38, 0x70, 0xE0, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x60, 0x60, 0x60, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x62, 0x64, 0x68, 0x7C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x6B, 0x6B, 0x6B, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x70, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x40, 0x3C, 0x06, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, 0x6B, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x2C, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,}; } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/NamcoMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.audio.*; import com.grapeshot.halfnes.utils; import java.util.Arrays; /** * * @author Andrew */ public class NamcoMapper extends Mapper { private int soundAddr = 0; private boolean autoincrement = false, irqenable = false, interrupted = false, chrramenable0 = false, chrramenable1 = false; Namco163SoundChip sound = new Namco163SoundChip(); private boolean hasInitSound = false; private int irqcounter = 0x3fff; private int[] chrbanks = new int[8], chr_ram = new int[16384]; @Override public void loadrom() throws BadMapperException { super.loadrom(); // needs to be in every mapper. Fill with initial cfg for (int i = 1; i <= 32; ++i) { //map last banks in to start off prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public int cartRead(final int addr) { if (addr >= 0x4800 && addr < 0x5000) { //read sound ram if (!hasInitSound) { cpuram.apu.addExpnSound((ExpansionSoundChip) sound); hasInitSound = true; } int retval = sound.read(soundAddr); if (autoincrement) { soundAddr = ++soundAddr & 0x7f; } return retval; } else if (addr < 0x5800) { irqack(); return irqcounter & 0xff; } else if (addr < 0x6000) { //read high bits of irq ctr and enable bit and ack irqs irqack(); return ((irqcounter >> 8) & 0x7f) | (irqenable ? 0x80 : 0); } else if (addr >= 0x8000) { return prg[prg_map[((addr & 0x7fff)) >> 10] + (addr & 1023)]; } else if (addr >= 0x6000 && hasprgram) { return prgram[addr & 0x1fff]; } return addr >> 8; //open bus } public final void cartWrite(final int addr, final int data) { if (addr < 0x4800 || ((addr >= 0x6000) && (addr < 0x8000)) || addr > 0xffff) { //need to add WRAM protection here super.cartWrite(addr, data); return; } else if (addr <= 0x4fff) { //write to sound chip if (!hasInitSound) { cpuram.apu.addExpnSound((ExpansionSoundChip) sound); hasInitSound = true; } sound.write(soundAddr, data); if (autoincrement) { soundAddr = ++soundAddr & 0x7f; } } else if (addr <= 0x57ff) { //irq counter low bits irqcounter &= 0x7f00; irqcounter |= data; irqack(); } else if (addr <= 0x5fff) { //irq counter high 7 bits irqcounter &= 0xff; irqcounter |= ((data & 0x7f) << 8); irqenable = ((data & (utils.BIT7)) != 0); irqack(); //and bit 7 is irq enable } else if (addr <= 0xbfff) { //select chr pages int bank = (addr >> 11) & 7; setppubank(1, bank, data); chrbanks[bank] = data; //note: pages E0-FF are chr ram if a bit is set } else if (addr <= 0xc7ff) { //nametable select (can map chr rom in: how?) //on namco 175 this is PRG RAM enable instead? if (data < 0xe0) { //use chr rom as the nametable //i hope it doesnt try to write while it's chr rom nt0 = Arrays.copyOfRange(chr, (data * 1024), (data + 1) * 1024); } else { nt0 = (((data & (utils.BIT0)) != 0) ? pput1 : pput0); } } else if (addr <= 0xc8ff) { //nametable select 2 if (data < 0xe0) { nt1 = Arrays.copyOfRange(chr, (data * 1024), (data + 1) * 1024); } else { nt1 = (((data & (utils.BIT0)) != 0) ? pput1 : pput0); } } else if (addr <= 0xd7ff) { //nametable select 3 if (data < 0xe0) { nt2 = Arrays.copyOfRange(chr, (data * 1024), (data + 1) * 1024); } else { nt2 = (((data & (utils.BIT0)) != 0) ? pput1 : pput0); } } else if (addr <= 0xdfff) { //nametable select 4 if (data < 0xe0) { nt3 = Arrays.copyOfRange(chr, (data * 1024), (data + 1) * 1024); } else { nt3 = (((data & (utils.BIT0)) != 0) ? pput1 : pput0); } } else if (addr <= 0xe7ff) { //prg select 1 (1st 6 bits) and mirroring for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * (data & 63))) % prgsize; } } else if (addr <= 0xefff) { //prg select 2 (1st 6 bits) and CHR RAM enable for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + 8 * (data & 63))) % prgsize; } chrramenable0 = !((data & (utils.BIT6)) != 0); chrramenable1 = !((data & (utils.BIT7)) != 0); } else if (addr <= 0xf7ff) { for (int i = 0; i < 8; ++i) { prg_map[i + 16] = (1024 * (i + 8 * (data & 63))) % prgsize; } //prg select 3 (1st 6 bits) } else if (addr <= 0xffff) { //write protect for prg ram on namco 163 //also sound address port (7 bits) autoincrement = ((data & (utils.BIT7)) != 0); soundAddr = data & 0x7f; } } private void irqack() { if (interrupted) { --cpu.interrupt; interrupted = false; } } @Override public void cpucycle(int cycles) { irqcounter += cycles; if (irqcounter > 0x7fff) { irqcounter = 0x7fff; } if (irqcounter == 0x7fff && irqenable && !interrupted) { ++cpu.interrupt; interrupted = true; } } private void setppubank(final int banksize, final int bankpos, final int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) & (chrsize - 1); } // utils.printarray(chr_map); } @Override public int ppuRead(int addr) { //i can't find any games that use this additional chr ram //so who knows if this works? if (addr < 0x1000) { if (chrramenable0 && chrbanks[addr >> 10] > 0xe0) { return chr_ram[chr_map[addr >> 10] + (addr & 1023)]; } else { return chr[chr_map[addr >> 10] + (addr & 1023)]; } } else if (addr < 0x2000) { if (chrramenable1 && chrbanks[addr >> 10] > 0xe0) { return chr_ram[chr_map[addr >> 10] - (0xe0 << 10) + (addr & 1023)]; } else { return chr[chr_map[addr >> 10] + (addr & 1023)]; } } else { return super.ppuRead(addr); } } @Override public void ppuWrite(int addr, final int data) { addr &= 0x3fff; if (addr < 0x1000) { if (chrramenable0 && chrbanks[addr >> 10] > 0xe0) { chr_ram[chr_map[addr >> 10] - (0xe0 << 10) + (addr & 1023)] = data; } else { chr[chr_map[addr >> 10] + (addr & 1023)] = data; } } else if (addr < 0x2000) { if (chrramenable1 && chrbanks[addr >> 10] > 0xe0) { chr_ram[chr_map[addr >> 10] - (0xe0 << 10) + (addr & 1023)] = data; } else { chr[chr_map[addr >> 10] + (addr & 1023)] = data; } } else { super.ppuWrite(addr, data); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Namcot34x3Mapper.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Namcot34x3Mapper extends Mapper { //MIMIC variant with increased support for CHR up to 128 kB //NAMCOT-3433 / NAMCOT-3443 (mapper 88) - no mirroring //NAMCOT-3453 (mapper 154) - single-screen mirroring private boolean mirroring = false; private int whichbank = 0; private int[] chrreg = {0, 0, 0, 0, 0, 0}; public Namcot34x3Mapper(int mappernum) { super(); mirroring = (mappernum == 154); } @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //bankswitches here //System.err.println(utils.hex(addr) + " " + utils.hex(data)); if (addr == 0x8001) { if (whichbank <= 5) { chrreg[whichbank] = data & 0x3f; setupchr(); } else if (whichbank == 6) { for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + (data * 8))) % prgsize; } } else if (whichbank == 7) { //System.err.println(data * 8); //bank 7 always swappable, always in same place for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + (data * 8))) % prgsize; } } } else if (addr == 0x8000) { //bank select whichbank = data & 7; } if (mirroring) { setmirroring(((data & (utils.BIT6)) != 0) ? MirrorType.SS_MIRROR1 : MirrorType.SS_MIRROR0); } } private void setupchr() { setppubank(1, 4, (chrreg[2] | 0x40)); setppubank(1, 5, (chrreg[3] | 0x40)); setppubank(1, 6, (chrreg[4] | 0x40)); setppubank(1, 7, (chrreg[5] | 0x40)); setppubank(2, 0, (chrreg[0] >> 1) << 1); setppubank(2, 2, (chrreg[1] >> 1) << 1); } private void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * (banknum + i)) % chrsize; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/NromMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; /** * Speed optimization for NROM games: copy everything to linear mapping and * don't use the bankswitching capability at all * * thanks to Stephen Chin - steveonjava@gmail.com */ public class NromMapper extends Mapper { @Override public void loadrom() throws BadMapperException { super.loadrom(); //copy the whole rom around so we need to do less math int[] shiftedprg = new int[65536]; System.arraycopy(prg, 0, shiftedprg, 0x8000, prg.length); if (prgsize <= 16384) { //double up the rom if 16k System.arraycopy(prg, 0, shiftedprg, 0xc000, prg.length); } prg = shiftedprg; } @Override public int cartRead(final int addr) { if (addr >= 0x8000) { return prg[addr]; } else if (addr >= 0x6000 && hasprgram) { return prgram[addr & 0x1fff]; } return addr >> 8; //open bus } @Override public int ppuRead(int addr) { if (addr < 0x2000) { //math is hard let's go shopping return chr[addr]; } else { switch (addr & 0xc00) { case 0: return nt0[addr & 0x3ff]; case 0x400: return nt1[addr & 0x3ff]; case 0x800: return nt2[addr & 0x3ff]; case 0xc00: default: if (addr >= 0x3f00) { addr &= 0x1f; if (addr >= 0x10 && ((addr & 3) == 0)) { addr -= 0x10; } return ppu.pal[addr]; } else { return nt3[addr & 0x3ff]; } } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Sunsoft01Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; public class Sunsoft01Mapper extends Mapper { private int lowBank = 0; private int highBank = 0; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 0; i < 32; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr >= 0x6000 && addr < 0x8000) { lowBank = data & 7; highBank = (data >> 4) & 7; //remap CHR bank 0 for (int i = 0; i < 4; ++i) { chr_map[i] = (1024 * (i + lowBank * 4)) % chrsize; } //remap CHR bank 1 for (int i = 0; i < 4; ++i) { chr_map[4 + i] = (1024 * (i + highBank * 4)) % chrsize; } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Sunsoft02Mapper.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Sunsoft02Mapper extends Mapper { boolean m93; public Sunsoft02Mapper(int mappernum) { super(); m93 = (mappernum == 93); } @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { int prgselect; if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } if (m93) { prgselect = (data >> 4) & 15; } else { prgselect = (data >> 4) & 7; setmirroring(((data & (utils.BIT3)) != 0) ? MirrorType.SS_MIRROR1 : MirrorType.SS_MIRROR0); int chrselect = ((data & 7) | (data >> 7) * 8); //remap CHR bank for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * (i + 8 * chrselect)) & (chrsize - 1); } } //remap PRG bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * prgselect)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/Sunsoft03Mapper.java ================================================ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class Sunsoft03Mapper extends Mapper { int[] chrbank = {0, 0, 0, 0}; private int irqctr = 0; private boolean irqenable = false; private boolean interrupted = false; private boolean irqtoggle = false; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr >= 0x8800 && addr <= 0x8FFF) { chrbank[0] = data; setupchr(); } else if (addr >= 0x9800 && addr <= 0x9FFF) { chrbank[1] = data; setupchr(); } else if (addr >= 0xA800 && addr <= 0xAFFF) { chrbank[2] = data; setupchr(); } else if (addr >= 0xB800 && addr <= 0xBFFF) { chrbank[3] = data; setupchr(); } else if (addr >= 0xC800 && addr <= 0xCFFF) { if (!irqtoggle) { //first write irqctr = (irqctr & 0xFF) | (data << 8); irqtoggle = true; } else { //second write irqctr = (irqctr & 0xFF00) | (data & 0xFF); irqtoggle = false; } } else if (addr >= 0xD800 && addr <= 0xDFFF) { if (interrupted) { --cpu.interrupt; interrupted = false; } irqenable = ((data & (utils.BIT4)) != 0); irqtoggle = false; } else if (addr >= 0xE800 && addr <= 0xEFFF) { switch (data & 3) { case 0: setmirroring(MirrorType.V_MIRROR); break; case 1: setmirroring(MirrorType.H_MIRROR); break; case 2: setmirroring(MirrorType.SS_MIRROR0); break; case 3: setmirroring(MirrorType.SS_MIRROR1); break; } } else if (addr >= 0xF800 && addr <= 0xFFFF) { for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * data)) & (prgsize - 1); } } } @Override public void cpucycle(final int cycles) { if (irqenable) { if (irqctr <= 0) { irqctr = 0xFFFF; if (!interrupted) { ++cpu.interrupt; interrupted = true; } irqenable = false; } else { irqctr -= cycles; } } } private void setupchr() { setppubank(2, 0, chrbank[0]); setppubank(2, 2, chrbank[1]); setppubank(2, 4, chrbank[2]); setppubank(2, 6, chrbank[3]); } private void setppubank(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * (i + 2 * banknum)) % chrsize; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/TengenRamboMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; /** * * @author Andrew */ public class TengenRamboMapper extends Mapper { private int whichbank = 0; private boolean prgconfig = false, chrconfig = false, chrmode1k = false, irqmode = false; private int irqctrreload = 0; private int irqctr = 0; private boolean irqenable = false; private boolean irqreload = false; private int prgreg0 = 0, prgreg1 = 0, prgreg2 = 0; private int[] chrreg = new int[8]; private boolean interrupted = false; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //on startup: for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * i); prg_map[i + 8] = (1024 * i); //yes this actually matters; MMC3 does NOT start up in a random state //(at least Smash TV and TMNT3 expect certain banks w/o even setting up mapper) } for (int i = 1; i <= 32; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = 0; } setprgregs(); //cpuram.setPrgRAMEnable(false); } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } //bankswitches here //different register for even/odd writes if (((addr & (utils.BIT0)) != 0)) { //odd registers if ((addr >= 0x8000) && (addr <= 0x9fff)) { //bank change //System.err.println("setting " + whichbank + " " + data + " " + prgconfig); switch (whichbank) { case 0: case 1: case 2: case 3: case 4: case 5: chrreg[whichbank] = data; setupchr(); break; case 6: prgreg0 = data; setprgregs(); break; case 7: //bank 7 always swappable, always in same place prgreg1 = data; setprgregs(); break; case 8: case 9: //setup extra chr banks; chrreg[whichbank - 2] = data; break; case 0xf: prgreg2 = data; setprgregs(); break; } } else if ((addr >= 0xA000) && (addr <= 0xbfff)) { //prg ram write protect //cpuram.setPrgRAMEnable(!utils.getbit(data, 7)); } else if ((addr >= 0xc000) && (addr <= 0xdfff)) { //any value here reloads irq counter irqreload = true; irqmode = ((data & (utils.BIT0)) != 0); } else if ((addr >= 0xe000) && (addr <= 0xffff)) { //iany value here enables interrupts irqenable = true; } } else { //even registers if ((addr >= 0x8000) && (addr <= 0x9fff)) { //bank select whichbank = data & 0xf; chrmode1k = ((data & (utils.BIT5)) != 0); prgconfig = ((data & (utils.BIT6)) != 0); //if bit is false, 8000-9fff swappable and c000-dfff fixed to 2nd to last bank //if bit is true, c000-dfff swappable and 8000-9fff fixed to 2nd to last bank chrconfig = ((data & (utils.BIT7)) != 0); //if false: 2 2k banks @ 0000-0fff, 4 1k banks in 1000-1fff //if true: 4 1k banks @ 0000-0fff, 2 2k banks @ 1000-1fff setupchr(); setprgregs(); } else if ((addr >= 0xA000) && (addr <= 0xbfff)) { //mirroring setup if (scrolltype != MirrorType.FOUR_SCREEN_MIRROR) { setmirroring(((data & (utils.BIT0)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); } } else if ((addr >= 0xc000) && (addr <= 0xdfff)) { //value written here used to reload irq counter _@ end of scanline_ irqctrreload = data; irqreload = true; } else if ((addr >= 0xe000) && (addr <= 0xffff)) { //any value here disables IRQ and acknowledges if (interrupted) { --cpu.interrupt; } interrupted = false; irqenable = false; irqctr = irqctrreload; } } } private void setupchr() { if (chrconfig) { if (chrmode1k) { setppubank(1, 0, chrreg[2]); setppubank(1, 1, chrreg[3]); setppubank(1, 2, chrreg[4]); setppubank(1, 3, chrreg[5]); setppubank(1, 4, chrreg[0]); setppubank(1, 5, chrreg[6]); setppubank(1, 6, chrreg[1]); setppubank(1, 7, chrreg[7]); } else { setppubank(1, 0, chrreg[2]); setppubank(1, 1, chrreg[3]); setppubank(1, 2, chrreg[4]); setppubank(1, 3, chrreg[5]); //Lowest bit of bank number IS IGNORED for the 2k banks setppubank(2, 4, (chrreg[0] >> 1) << 1); setppubank(2, 6, (chrreg[1] >> 1) << 1); } } else { if (chrmode1k) { setppubank(1, 0, chrreg[0]); setppubank(1, 1, chrreg[6]); setppubank(1, 2, chrreg[1]); setppubank(1, 3, chrreg[7]); setppubank(1, 4, chrreg[2]); setppubank(1, 5, chrreg[3]); setppubank(1, 6, chrreg[4]); setppubank(1, 7, chrreg[5]); } else { setppubank(1, 4, chrreg[2]); setppubank(1, 5, chrreg[3]); setppubank(1, 6, chrreg[4]); setppubank(1, 7, chrreg[5]); setppubank(2, 0, (chrreg[0] >> 1) << 1); setppubank(2, 2, (chrreg[1] >> 1) << 1); } } } private void setprgregs() { //no matter what, c000-dfff is last bank if (!prgconfig) { //map r6 to first 8k, r7 to 2nd, rf to 3rd for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + (prgreg0 * 8))) % prgsize; prg_map[i + 8] = (1024 * (i + (prgreg1 * 8))) % prgsize; prg_map[i + 16] = (1024 * (i + (prgreg2 * 8))) % prgsize; } } else { //map rf to 1st 8k, r6 to 2nd, r7 to 3rd for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + (prgreg2 * 8))) % prgsize; prg_map[i + 8] = (1024 * (i + (prgreg0 * 8))) % prgsize; prg_map[i + 16] = (1024 * (i + (prgreg1 * 8))) % prgsize; } } } @Override public void notifyscanline(int scanline) { if (irqmode) { return; } //Scanline counter if (scanline > 239 && scanline != 261) { //clocked on LAST line of vblank and all lines of frame. Not on 240. return; } if (!ppu.mmc3CounterClocking()) { return; } clockscanlinecounter(); } int remainder; boolean intnextcycle = false; @Override public void cpucycle(int cycles) { if (intnextcycle) { intnextcycle = false; if (!interrupted) { ++cpu.interrupt; interrupted = true; } } if (!irqmode) { return; } remainder += cycles; for (int i = 0; i < remainder; ++i) { if ((i & 3) == 0) { clockscanlinecounter(); } } remainder %= 4; } public void clockscanlinecounter() { if (irqreload) { irqreload = false; irqctr = irqctrreload + 1; } else if (irqctr == 0) { irqctr = irqctrreload; } else { if (--irqctr == 0 && irqenable) { intnextcycle = true; } } } private void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/UnromMapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; public class UnromMapper extends Mapper { private int bank = 0x0; @Override public void loadrom() throws BadMapperException { //needs to be in every mapper. Fill with initial cfg super.loadrom(); //movable bank, should really be random. eh, effort for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } bank = data & 0xf; //remap PRG bank (1st bank switchable, 2nd bank mapped to LAST bank) for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * bank)) & (prgsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/VRC1Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class VRC1Mapper extends Mapper { int prgbank0, prgbank1, prgbank2 = 0; int[] chrbank = {0, 0}; @Override public void loadrom() throws BadMapperException { // needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 24; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 8; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } switch (addr >> 12) { case 0x8: prgbank0 = data & 0xf; setbanks(); break; case 0x9: setmirroring(((data & (utils.BIT0)) != 0) ? MirrorType.H_MIRROR : MirrorType.V_MIRROR); chrbank[0] = (chrbank[0] & 0xf) | ((data << 3) & 0x10); chrbank[1] = (chrbank[1] & 0xf) | ((data << 2) & 0x10); setbanks(); break; case 0xA: prgbank1 = data & 0xf; setbanks(); break; case 0xC: prgbank2 = data & 0xf; setbanks(); break; case 0xE: chrbank[0] = (chrbank[0] & 0x10) | (data & 0xf); setbanks(); break; case 0xF: chrbank[1] = (chrbank[1] & 0x10) | (data & 0xf); setbanks(); break; } } private void setbanks() { //map prg banks //last bank fixed to the last bank in ROM for (int i = 1; i <= 8; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } //first bank set to prg0 register for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * prgbank0)) % (prgsize - 1); } //second bank set to prg1 register for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + 8 * prgbank1)) % (prgsize - 1); } //third bank set to prg2 register for (int i = 0; i < 8; ++i) { prg_map[i + 16] = (1024 * (i + 8 * prgbank2)) % (prgsize - 1); } //map chr banks setppubank(4, 0, chrbank[0]); setppubank(4, 4, chrbank[1]); } private void setppubank(int banksize, int bankpos, int banknum) { for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * (i + 4 * banknum)) % (chrsize - 1); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/VRC2Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class VRC2Mapper extends Mapper { //vrc2a mapper(INES #22); vrc2b is mapped to 23 along with the one form of vrc4 int prgbank0, prgbank1 = 0; int[] chrbank = {0, 0, 0, 0, 0, 0, 0, 0}; @Override public void loadrom() throws BadMapperException { // needs to be in every mapper. Fill with initial cfg super.loadrom(); for (int i = 1; i <= 32; ++i) { //map last banks in to start off prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } boolean bit0 = ((addr & (utils.BIT1)) != 0); boolean bit1 = ((addr & (utils.BIT0)) != 0); switch (addr >> 12) { case 0x8: prgbank0 = data & 0xf; break; case 0x9: //mirroring switch (data & 1) { case 0: setmirroring(Mapper.MirrorType.V_MIRROR); break; case 1: setmirroring(Mapper.MirrorType.H_MIRROR); break; } //4-4-2016: seems VRC2 only has 1 mirroring bit break; case 0xa: prgbank1 = data & 0xf; break; case 0xb: case 0xc: case 0xd: case 0xe: //chr bank select. black magic data &= 0xf; int whichreg = ((addr - 0xb000) >> 11) + ((bit1) ? 1 : 0); int oldval = chrbank[whichreg]; if (!bit0) { oldval &= 0xf0; oldval |= data; } else { oldval &= 0xf; oldval |= (data << 4); } chrbank[whichreg] = oldval; break; } if (addr < 0xf000) { setbanks(); } } private void setbanks() { //map prg banks //last 2 banks fixed to last two in rom for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } //first bank set to prg0 register for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * prgbank0)) % prgsize; } //second bank set to prg1 register for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + 8 * prgbank1)) % prgsize; } //map chr banks for (int i = 0; i < 8; ++i) { setppubank(1, i, chrbank[i] >> 1); } } private void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } // utils.printarray(chr_map); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/VRC3Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class VRC3Mapper extends Mapper { private int irqctr, irqreload = 0; private boolean irqmode, irqenable, irqackenable, interrupted = false; @Override public void loadrom() throws BadMapperException { // needs to be in every mapper. Fill with initial cfg super.loadrom(); //swappable bank for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * i) & (prgsize - 1); } //fixed bank for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } switch (addr >> 12) { case 0x8: //Bits 0-3 of IRQ reload value irqreload = (irqreload & 0xFFF0) | (data & 0xF); break; case 0x9: //Bits 4-7 of IRQ reload value irqreload = (irqreload & 0xFF0F) | (data & 0xF) << 4; break; case 0xA: //Bits 8-11 of IRQ reload value irqreload = (irqreload & 0xF0FF) | (data & 0xF) << 8; break; case 0xB: //Bits 12-15 of IRQ reload value irqreload = (irqreload & 0x0FFF) | (data & 0xF) << 12; break; case 0xC: //IRQ Control irqmode = ((data & (utils.BIT2)) != 0); irqackenable = ((data & (utils.BIT0)) != 0); irqenable = ((data & (utils.BIT1)) != 0); if (irqenable) { if (irqmode) { irqctr &= 0xFF00; irqctr |= (irqreload & 0xFF); } else { irqctr = irqreload; } if (interrupted) { --cpu.interrupt; interrupted = false; } } break; case 0xD: //IRQ Acknowledge irqenable = irqackenable; if (interrupted) { --cpu.interrupt; interrupted = false; } break; case 0xF: //PRG Select for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * (data & 0xF))) & (prgsize - 1); } break; } } @Override public void cpucycle(final int cycles) { if (irqenable) { if (irqmode) { //8-bit mode int temp = irqctr; irqctr &= 0xFF00; if (temp >= 0xFF) { irqctr = irqreload; irqctr |= (irqreload & 0xFF); if (!interrupted) { ++cpu.interrupt; interrupted = true; } } else { temp += cycles; irqctr |= temp; } } else { //16-bit mode if (irqctr >= 0xFFFF) { irqctr = irqreload; if (!interrupted) { ++cpu.interrupt; interrupted = true; } } else { irqctr += cycles; } } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/VRC4Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; public class VRC4Mapper extends Mapper { int[][][] registerselectbits = {{{1, 2}, {6, 7}}, {{2, 3}, {0, 1}}, {{3, 2}, {1, 0}}}; int[][] registers; int prgbank0, prgbank1 = 0; int[] chrbank = {0, 0, 0, 0, 0, 0, 0, 0}; boolean prgmode, irqmode, irqenable, irqack, firedinterrupt = false; int irqreload, irqcounter = 22; boolean vrc2mirror; public VRC4Mapper(int mappernum) { super(); switch (mappernum) { //vrc4 has 3 different mapper numbers, for 3 different ways to assign the registers case 21: registers = registerselectbits[0]; break; case 23: registers = registerselectbits[1]; break; case 25: registers = registerselectbits[2]; break; default: registers = registerselectbits[0]; break; } } @Override public void loadrom() throws BadMapperException { super.loadrom(); // needs to be in every mapper. Fill with initial cfg for (int i = 1; i <= 32; ++i) { //map last banks in to start off prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } //detect Konami Wai Wai World on VRC2 System.err.println(utils.hex(crc)); vrc2mirror = ((crc == 0xB790FF4CL) //ZnO trans (remember why it's a long...) || (crc == 0x2D953C3DL) //demiforce 3 || (crc == 0x64818FC5L) //(J) || (crc == 0x1E12AF8AL) //french trans || (crc == 0x3480F7DBL)); //demiforce 1? System.err.println(vrc2mirror); } @Override public final void cartWrite(int addr, int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } boolean bit0 = ((addr & (1 << registers[0][0])) != 0) || ((addr & (1 << registers[1][0])) != 0); boolean bit1 = ((addr & (1 << registers[0][1])) != 0) || ((addr & (1 << registers[1][1])) != 0); switch (addr >> 12) { case 0x8: prgbank0 = data & 0x1f; break; case 0x9: if (!bit1) { //mirroring select if (vrc2mirror) { //vrc2 doesn't have single screen mirroring option switch (data & 1) { case 0: setmirroring(Mapper.MirrorType.V_MIRROR); break; case 1: setmirroring(Mapper.MirrorType.H_MIRROR); break; } } else { switch (data & 3) { case 0: setmirroring(MirrorType.V_MIRROR); break; case 1: setmirroring(MirrorType.H_MIRROR); break; case 2: setmirroring(MirrorType.SS_MIRROR0); break; case 3: setmirroring(MirrorType.SS_MIRROR1); break; } } } else { prgmode = ((data & (utils.BIT1)) != 0); } break; case 0xa: prgbank1 = data & 0x1f; break; case 0xb: case 0xc: case 0xd: case 0xe: //chr bank select. black magic data &= 0xf; int whichreg = ((addr - 0xb000) >> 11) + ((bit1) ? 1 : 0); int oldval = chrbank[whichreg]; if (!bit0) { oldval &= 0xf0; oldval |= data; } else { oldval &= 0xf; oldval |= (data << 4); } chrbank[whichreg] = oldval; break; case 0xf: //irq registers. if (!bit1) { if (!bit0) { irqreload &= 0xf0; irqreload |= data & 0xf; } else { irqreload &= 0xf; irqreload |= (data & 0xf) << 4; } // System.err.println("reload set to " + irqreload); } else if (!bit0) { irqack = ((data & (utils.BIT0)) != 0); irqenable = ((data & (utils.BIT1)) != 0); irqmode = ((data & (utils.BIT2)) != 0); if (irqenable) { irqcounter = irqreload; prescaler = 341; } if (firedinterrupt) { --cpu.interrupt; } firedinterrupt = false; } else { irqenable = irqack; if (firedinterrupt) { --cpu.interrupt; } firedinterrupt = false; } } if (addr < 0xf000) { setbanks(); } } private void setbanks() { //map prg banks if (!prgmode) { //last 2 banks fixed to last two in rom for (int i = 1; i <= 16; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } //first bank set to prg0 register for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * prgbank0)) % prgsize; } //second bank set to prg1 register for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + 8 * prgbank1)) % prgsize; } } else { //fixed banks 1 and 4 for (int i = 1; i <= 8; ++i) { prg_map[8 - i] = prgsize - (1024 * i); } for (int i = 1; i <= 8; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } //second bank set to prg0 register for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + 8 * prgbank0)) % prgsize; } //third bank set to prg1 register for (int i = 0; i < 8; ++i) { prg_map[i + 16] = (1024 * (i + 8 * prgbank1)) % prgsize; } } //map chr banks for (int i = 0; i < 8; ++i) { setppubank(1, i, chrbank[i]); } } private void setppubank(int banksize, int bankpos, int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } // utils.printarray(chr_map); } int prescaler = 341; @Override public void cpucycle(int cycles) { if (irqenable) { if (irqmode) { scanlinecount(); //clock regardless of prescaler state } else { prescaler -= 3; if (prescaler <= 0) { prescaler += 341; scanlinecount(); } } } } public void scanlinecount() { if (irqenable) { if (irqcounter == 255) { irqcounter = irqreload; //System.err.println("Interrupt @ Scanline " + scanline + " reload " + irqreload); if (!firedinterrupt) { ++cpu.interrupt; } firedinterrupt = true; } else { ++irqcounter; } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/VRC6Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; import com.grapeshot.halfnes.audio.*; public class VRC6Mapper extends Mapper { int[][] registerselectbits = {{0, 1}, {1, 0}}; int[] registers; int prgbank0, prgbank1 = 0; int[] chrbank = {0, 0, 0, 0, 0, 0, 0, 0}; boolean irqmode, irqenable, irqack, firedinterrupt = false; int irqreload, irqcounter = 22; VRC6SoundChip sndchip; boolean hasInitSound = false; public VRC6Mapper(int mappernum) { super(); sndchip = new VRC6SoundChip(); switch (mappernum) { //vrc6 has 2 different mapper numbers, for 2 different ways to assign the registers case 24: registers = registerselectbits[0]; break; case 26: default: registers = registerselectbits[1]; break; } } @Override public void loadrom() throws BadMapperException { super.loadrom(); // needs to be in every mapper. Fill with initial cfg for (int i = 1; i <= 32; ++i) { //map last banks in to start off prg_map[32 - i] = prgsize - (1024 * i); } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } final boolean bit0 = ((addr & (1 << registers[0])) != 0); final boolean bit1 = ((addr & (1 << registers[1])) != 0); switch (addr >> 12) { case 0x8: //8000-8003: prg bank 0 select prgbank0 = data; setbanks(); break; case 0x9: case 0xa: //sound registers here sndchip.write((addr & 0xf000) + (bit1 ? 2 : 0) + (bit0 ? 1 : 0), data); break; case 0xc: //c000-c003: prg bank 1 select prgbank1 = data; setbanks(); break; case 0xb: if (bit0 && bit1) { //mirroring select switch ((data >> 2) & 3) { case 0: setmirroring(Mapper.MirrorType.V_MIRROR); break; case 1: setmirroring(Mapper.MirrorType.H_MIRROR); break; case 2: setmirroring(Mapper.MirrorType.SS_MIRROR0); break; case 3: setmirroring(Mapper.MirrorType.SS_MIRROR1); break; } } else { //expansion sound register here as well sndchip.write((addr & 0xf000) + (bit1 ? 2 : 0) + (bit0 ? 1 : 0), data); } break; case 0xd: //character bank selects chrbank[(bit1 ? 2 : 0) + (bit0 ? 1 : 0)] = data; setbanks(); break; case 0xe: chrbank[(bit1 ? 2 : 0) + (bit0 ? 1 : 0) + 4] = data; setbanks(); break; case 0xf: //irq control if (!bit1) { if (!bit0) { irqreload = data; } else { irqack = ((data & (utils.BIT0)) != 0); irqenable = ((data & (utils.BIT1)) != 0); irqmode = ((data & (utils.BIT2)) != 0); if (irqenable) { irqcounter = irqreload; prescaler = 341; } if (firedinterrupt) { --cpu.interrupt; } firedinterrupt = false; } } else { if (!bit0) { irqenable = irqack; if (firedinterrupt) { --cpu.interrupt; } firedinterrupt = false; } } } } private void setbanks() { //map prg banks //last 8k fixed to end of rom for (int i = 1; i <= 8; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } //first bank set to prg0 register for (int i = 0; i < 16; ++i) { prg_map[i] = (1024 * (i + 16 * prgbank0)) % prgsize; } //second bank set to prg1 register for (int i = 0; i < 8; ++i) { prg_map[i + 16] = (1024 * (i + 8 * prgbank1)) % prgsize; } //map chr banks for (int i = 0; i < 8; ++i) { setppubank(1, i, chrbank[i]); } } private void setppubank(final int banksize, final int bankpos, final int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } // utils.printarray(chr_map); } int prescaler = 341; @Override public void cpucycle(int cycles) { if (irqenable) { if (irqmode) { scanlinecount(); //clock regardless of prescaler state } else { prescaler -= 3; if (prescaler <= 0) { prescaler += 341; scanlinecount(); } } } } public void scanlinecount() { if (!hasInitSound) { //tiny hack, because the APU is not initialized until AFTER this happens //TODO: this really should not need to be here. cpuram.apu.addExpnSound(sndchip); hasInitSound = true; } if (irqenable) { if (irqcounter == 255) { irqcounter = irqreload; //System.err.println("Interrupt @ Scanline " + scanline + " reload " + irqreload); if (!firedinterrupt) { ++cpu.interrupt; } firedinterrupt = true; } else { ++irqcounter; } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/mappers/VRC7Mapper.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.mappers; import com.grapeshot.halfnes.*; import com.grapeshot.halfnes.audio.*; public class VRC7Mapper extends Mapper { //need to add extra audio still. int prgbank0, prgbank1, prgbank2; int[] chrbank = {0, 0, 0, 0, 0, 0, 0, 0}; boolean irqmode, irqenable, irqack, firedinterrupt = false; int irqreload, irqcounter = 22; int regaddr = 0; ExpansionSoundChip sndchip = new VRC7SoundChip(); boolean hasInitSound = false; @Override public void loadrom() throws BadMapperException { super.loadrom(); // needs to be in every mapper. Fill with initial cfg for (int i = 1; i <= 32; ++i) { //map last banks in to start off prg_map[32 - i] = (prgsize - (1024 * i)) % prgsize; } for (int i = 0; i < 8; ++i) { chr_map[i] = (1024 * i) & (chrsize - 1); } } @Override public final void cartWrite(final int addr, final int data) { if (addr < 0x8000 || addr > 0xffff) { super.cartWrite(addr, data); return; } final boolean bit0 = ((addr & (utils.BIT4)) != 0) | ((addr & (utils.BIT3)) != 0); final boolean bit1 = ((addr & (utils.BIT5)) != 0); switch (addr >> 12) { case 0x8: if (bit0) { //8010,8008: prg bank 1 select prgbank1 = data; } else { //8000: prg bank 0 select prgbank0 = data; } setbanks(); break; case 0x9: if (!bit0 && !bit1) { prgbank2 = data; setbanks(); } else if (bit0 && bit1) { //$9030: data write to sndchip if (!hasInitSound) { //tiny hack, because the APU is not initialized until AFTER this happens //TODO: this really should not need to be here. cpuram.apu.addExpnSound(sndchip); hasInitSound = true; } sndchip.write(regaddr, data); } else { //$9010: sndchip register select regaddr = data; } break; case 0xa: //character bank selects chrbank[(bit0 ? 1 : 0)] = data; setbanks(); break; case 0xb: //character bank selects chrbank[(bit0 ? 1 : 0) + 2] = data; setbanks(); break; case 0xc: //character bank selects chrbank[(bit0 ? 1 : 0) + 4] = data; setbanks(); break; case 0xd: //character bank selects chrbank[(bit0 ? 1 : 0) + 6] = data; setbanks(); break; case 0xe: if (bit0) { //irq latch irqreload = data; } else { //mirroring select switch (data & 3) { case 0: setmirroring(Mapper.MirrorType.V_MIRROR); break; case 1: setmirroring(Mapper.MirrorType.H_MIRROR); break; case 2: setmirroring(Mapper.MirrorType.SS_MIRROR0); break; case 3: setmirroring(Mapper.MirrorType.SS_MIRROR1); break; } } break; case 0xf: //irq control if (bit0) { //irq ack irqenable = irqack; if (firedinterrupt) { --cpu.interrupt; } firedinterrupt = false; } else { //irq control irqack = ((data & (utils.BIT0)) != 0); irqenable = ((data & (utils.BIT1)) != 0); irqmode = ((data & (utils.BIT2)) != 0); if (irqenable) { irqcounter = irqreload; prescaler = 341; } if (firedinterrupt) { --cpu.interrupt; } firedinterrupt = false; } } } private void setbanks() { //map prg banks //last 8k fixed to end of rom for (int i = 1; i <= 8; ++i) { prg_map[32 - i] = prgsize - (1024 * i); } //first bank set to prg0 register for (int i = 0; i < 8; ++i) { prg_map[i] = (1024 * (i + 8 * prgbank0)) % prgsize; } //second bank set to prg1 register for (int i = 0; i < 8; ++i) { prg_map[i + 8] = (1024 * (i + 8 * prgbank1)) % prgsize; } //third bank set to prg2 register for (int i = 0; i < 8; ++i) { prg_map[i + 16] = (1024 * (i + 8 * prgbank2)) % prgsize; } //map chr banks for (int i = 0; i < 8; ++i) { setppubank(1, i, chrbank[i]); } } private void setppubank(final int banksize, final int bankpos, final int banknum) { // System.err.println(banksize + ", " + bankpos + ", "+ banknum); for (int i = 0; i < banksize; ++i) { chr_map[i + bankpos] = (1024 * ((banknum) + i)) % chrsize; } // utils.printarray(chr_map); } int prescaler = 341; @Override public void cpucycle(int cycles) { if (irqenable) { if (irqmode) { scanlinecount(); //clock regardless of prescaler state } else { prescaler -= 3; if (prescaler <= 0) { prescaler += 341; scanlinecount(); } } } } public void scanlinecount() { if (irqenable) { if (irqcounter == 255) { irqcounter = irqreload; //System.err.println("Interrupt @ Scanline " + scanline + " reload " + irqreload); if (!firedinterrupt) { ++cpu.interrupt; } firedinterrupt = true; } else { ++irqcounter; } } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/ControllerImpl.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.ui; import com.grapeshot.halfnes.PrefsSingleton; import static com.grapeshot.halfnes.utils.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.prefs.Preferences; import javafx.scene.Scene; import net.java.games.input.Component; import net.java.games.input.Controller; import net.java.games.input.ControllerEnvironment; import net.java.games.input.Event; import net.java.games.input.EventQueue; /** * * @author Andrew, Zlika This class uses the JInput Java game controller API * (cf. http://java.net/projects/jinput). */ public class ControllerImpl implements ControllerInterface, KeyListener { //private final java.awt.Component parent; private Controller gameController; private Component[] buttons; private final ScheduledExecutorService thread = Executors.newSingleThreadScheduledExecutor(); private int latchbyte = 0, controllerbyte = 0, prevbyte = 0, outbyte = 0, gamepadbyte = 0; private final HashMap m = new HashMap<>(10); private final int controllernum; public ControllerImpl(final java.awt.Component parent, final int controllernum) { this(controllernum); //this.parent = parent; parent.addKeyListener(this); } public ControllerImpl(final Scene scene, final int controllernum) { this(controllernum); scene.addEventHandler(javafx.scene.input.KeyEvent.KEY_PRESSED, e -> pressKey(e.getCode().impl_getCode())); scene.addEventHandler(javafx.scene.input.KeyEvent.KEY_RELEASED, e -> releaseKey(e.getCode().impl_getCode())); } public ControllerImpl(final int controllernum) { if ((controllernum != 0) && (controllernum != 1)) { throw new IllegalArgumentException("controllerNum must be 0 or 1"); } this.controllernum = controllernum; setButtons(); } @Override public void keyPressed(final KeyEvent keyEvent) { pressKey(keyEvent.getKeyCode()); } private void pressKey(int keyCode) { //enable the byte of whatever is found prevbyte = controllerbyte; if (!m.containsKey(keyCode)) { return; } //enable the corresponding bit to the key controllerbyte |= m.get(keyCode); //special case: if up and down are pressed at once, use whichever was pressed previously if ((controllerbyte & (BIT4 | BIT5)) == (BIT4 | BIT5)) { controllerbyte &= ~(BIT4 | BIT5); controllerbyte |= (prevbyte & ~(BIT4 | BIT5)); } //same for left and right if ((controllerbyte & (BIT6 | BIT7)) == (BIT6 | BIT7)) { controllerbyte &= ~(BIT6 | BIT7); controllerbyte |= (prevbyte & ~(BIT6 | BIT7)); } } @Override public void keyReleased(final KeyEvent keyEvent) { releaseKey(keyEvent.getKeyCode()); } private void releaseKey(int keyCode) { prevbyte = controllerbyte; if (!m.containsKey(keyCode)) { return; } controllerbyte &= ~m.get(keyCode); } @Override public int getbyte() { return outbyte; } @Override public int peekOutput() { return latchbyte; } @Override public void keyTyped(final KeyEvent arg0) { // TODO Auto-generated method stub } public void strobe() { //shifts a byte out outbyte = latchbyte & 1; latchbyte = ((latchbyte >> 1) | 0x100); } public void output(final boolean state) { latchbyte = gamepadbyte | controllerbyte; } /** * Start in a separate thread the processing of the controller event queue. * Must be called after construction of the class to enable the processing * of the joystick / gamepad events. */ public void startEventQueue() { // if (System.getProperty("java.class.path").contains("jinput")) { thread.execute(eventQueueLoop()); // } } double threshold = 0.25; private Runnable eventQueueLoop() { return new Runnable() { @Override public void run() { if (gameController != null) { Event event = new Event(); while (!Thread.interrupted()) { gameController.poll(); EventQueue queue = gameController.getEventQueue(); while (queue.getNextEvent(event)) { Component component = event.getComponent(); if (component.getIdentifier() == Component.Identifier.Axis.X) { if (event.getValue() > threshold) { gamepadbyte |= BIT7;//left on, right off gamepadbyte &= ~BIT6; } else if (event.getValue() < -threshold) { gamepadbyte |= BIT6; gamepadbyte &= ~BIT7; } else { gamepadbyte &= ~(BIT7 | BIT6); } } else if (component.getIdentifier() == Component.Identifier.Axis.Y) { if (event.getValue() > threshold) { gamepadbyte |= BIT5;//up on, down off gamepadbyte &= ~BIT4; } else if (event.getValue() < -threshold) { gamepadbyte |= BIT4;//down on, up off gamepadbyte &= ~BIT5; } else { gamepadbyte &= ~(BIT4 | BIT5); } } else if (component == buttons[0]) { if (isPressed(event)) { gamepadbyte |= BIT0; } else { gamepadbyte &= ~BIT0; } } else if (component == buttons[1]) { if (isPressed(event)) { gamepadbyte |= BIT1; } else { gamepadbyte &= ~BIT1; } } else if (component == buttons[2]) { if (isPressed(event)) { gamepadbyte |= BIT2; } else { gamepadbyte &= ~BIT2; } } else if (component == buttons[3]) { if (isPressed(event)) { gamepadbyte |= BIT3; } else { gamepadbyte &= ~BIT3; } } } try { Thread.sleep(5); } catch (InterruptedException e) { // Preserve interrupt status Thread.currentThread().interrupt(); } } } } }; } private boolean isPressed(Event event) { Component component = event.getComponent(); if (component.isAnalog()) { if (Math.abs(event.getValue()) > 0.2f) { return true; } else { return false; } } else if (event.getValue() == 0) { return false; } else { return true; } } /** * Stop the controller event queue thread. Must be called before closing the * application. */ public void stopEventQueue() { thread.shutdownNow(); } /** * This method detects the available joysticks / gamepads on the computer * and return them in a list. * * @return List of available joysticks / gamepads connected to the computer */ private static Controller[] getAvailablePadControllers() { List gameControllers = new ArrayList<>(); // Get a list of the controllers JInput knows about and can interact // with Controller[] controllers = ControllerEnvironment.getDefaultEnvironment().getControllers(); // Check the useable controllers (gamepads or joysticks with at least 2 // axis and 2 buttons) for (Controller controller : controllers) { if ((controller.getType() == Controller.Type.GAMEPAD) || (controller.getType() == Controller.Type.STICK)) { int nbOfAxis = 0; // Get this controllers components (buttons and axis) Component[] components = controller.getComponents(); // Check the availability of X/Y axis and at least 2 buttons // (for A and B, because select and start can use the keyboard) for (Component component : components) { if ((component.getIdentifier() == Component.Identifier.Axis.X) || (component.getIdentifier() == Component.Identifier.Axis.Y)) { nbOfAxis++; } } if ((nbOfAxis >= 2) && (getButtons(controller).length >= 2)) { // Valid game controller gameControllers.add(controller); } } } return gameControllers.toArray(new Controller[0]); } /** * Return the available buttons on this controller (by priority order). */ private static Component[] getButtons(Controller controller) { List buttons = new ArrayList<>(); // Get this controllers components (buttons and axis) Component[] components = controller.getComponents(); for (Component component : components) { if (component.getIdentifier() instanceof Component.Identifier.Button) { buttons.add(component); } } return buttons.toArray(new Component[0]); } public final void setButtons() { Preferences prefs = PrefsSingleton.get(); //reset the buttons from prefs m.clear(); switch (controllernum) { case 0: m.put(prefs.getInt("keyUp1", KeyEvent.VK_UP), BIT4); m.put(prefs.getInt("keyDown1", KeyEvent.VK_DOWN), BIT5); m.put(prefs.getInt("keyLeft1", KeyEvent.VK_LEFT), BIT6); m.put(prefs.getInt("keyRight1", KeyEvent.VK_RIGHT), BIT7); m.put(prefs.getInt("keyA1", KeyEvent.VK_X), BIT0); m.put(prefs.getInt("keyB1", KeyEvent.VK_Z), BIT1); m.put(prefs.getInt("keySelect1", KeyEvent.VK_SHIFT), BIT2); m.put(prefs.getInt("keyStart1", KeyEvent.VK_ENTER), BIT3); break; case 1: default: m.put(prefs.getInt("keyUp2", KeyEvent.VK_W), BIT4); m.put(prefs.getInt("keyDown2", KeyEvent.VK_S), BIT5); m.put(prefs.getInt("keyLeft2", KeyEvent.VK_A), BIT6); m.put(prefs.getInt("keyRight2", KeyEvent.VK_D), BIT7); m.put(prefs.getInt("keyA2", KeyEvent.VK_G), BIT0); m.put(prefs.getInt("keyB2", KeyEvent.VK_F), BIT1); m.put(prefs.getInt("keySelect2", KeyEvent.VK_R), BIT2); m.put(prefs.getInt("keyStart2", KeyEvent.VK_T), BIT3); break; } Controller[] controllers = getAvailablePadControllers(); if (controllers.length > controllernum) { this.gameController = controllers[controllernum]; PrefsSingleton.get().put("controller" + controllernum, gameController.getName()); System.err.println(controllernum + 1 + ". " + gameController.getName()); this.buttons = getButtons(controllers[controllernum]); } else { PrefsSingleton.get().put("controller" + controllernum, ""); this.gameController = null; this.buttons = null; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/ControllerInterface.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.ui; /** * * @author Andrew */ public interface ControllerInterface { public void strobe(); public void output(final boolean state); public int peekOutput(); public int getbyte(); } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/ControlsDialog.form ================================================
================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/ControlsDialog.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ /* * OptionsDialog.java * * Created on Jan 16, 2011, 4:21:43 PM */ package com.grapeshot.halfnes.ui; import com.grapeshot.halfnes.PrefsSingleton; import java.awt.event.KeyEvent; import java.util.logging.Level; import java.util.logging.Logger; import java.util.prefs.BackingStoreException; import java.util.prefs.Preferences; /** * * @author Andrew */ public class ControlsDialog extends javax.swing.JDialog { private int[][] keys; private boolean okClicked = false; /** * Creates new form ControlsDialog */ public ControlsDialog(java.awt.Frame parent) { super(parent, true); Preferences prefs = PrefsSingleton.get(); int[][] keys = {{prefs.getInt("keyUp1", KeyEvent.VK_UP), prefs.getInt("keyDown1", KeyEvent.VK_DOWN), prefs.getInt("keyLeft1", KeyEvent.VK_LEFT), prefs.getInt("keyRight1", KeyEvent.VK_RIGHT), prefs.getInt("keyA1", KeyEvent.VK_X), prefs.getInt("keyB1", KeyEvent.VK_Z), prefs.getInt("keySelect1", KeyEvent.VK_SHIFT), prefs.getInt("keyStart1", KeyEvent.VK_ENTER),}, { prefs.getInt("keyUp2", KeyEvent.VK_W), prefs.getInt("keyDown2", KeyEvent.VK_S), prefs.getInt("keyLeft2", KeyEvent.VK_A), prefs.getInt("keyRight2", KeyEvent.VK_D), prefs.getInt("keyA2", KeyEvent.VK_G), prefs.getInt("keyB2", KeyEvent.VK_F), prefs.getInt("keySelect2", KeyEvent.VK_R), prefs.getInt("keyStart2", KeyEvent.VK_T)}}; this.keys = keys; initComponents(); this.setTitle("HalfNES Controller Settings"); //set all of the text boxes jField1Up.setText(KeyEvent.getKeyText(keys[0][0])); jField1Down.setText(KeyEvent.getKeyText(keys[0][1])); jField1Left.setText(KeyEvent.getKeyText(keys[0][2])); jField1Right.setText(KeyEvent.getKeyText(keys[0][3])); jField1A.setText(KeyEvent.getKeyText(keys[0][4])); jField1B.setText(KeyEvent.getKeyText(keys[0][5])); jField1Select.setText(KeyEvent.getKeyText(keys[0][6])); jField1Start.setText(KeyEvent.getKeyText(keys[0][7])); jField2Up.setText(KeyEvent.getKeyText(keys[1][0])); jField2Down.setText(KeyEvent.getKeyText(keys[1][1])); jField2Left.setText(KeyEvent.getKeyText(keys[1][2])); jField2Right.setText(KeyEvent.getKeyText(keys[1][3])); jField2A.setText(KeyEvent.getKeyText(keys[1][4])); jField2B.setText(KeyEvent.getKeyText(keys[1][5])); jField2Select.setText(KeyEvent.getKeyText(keys[1][6])); jField2Start.setText(KeyEvent.getKeyText(keys[1][7])); //set the controller text if we've detected some String ctrl1 = prefs.get("controller0", ""); String ctrl2 = prefs.get("controller1", ""); if (!ctrl1.isEmpty()) { jLabelCtrl1.setText(ctrl1); } if (!ctrl2.isEmpty()) { jLabelCtrl2.setText(ctrl2); } jButtonOK.setActionCommand("OK"); jButtonCancel.setActionCommand("Cancel"); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); jLabel13 = new javax.swing.JLabel(); jField1Up = new javax.swing.JTextField(); jField1Down = new javax.swing.JTextField(); jField1Right = new javax.swing.JTextField(); jField1Left = new javax.swing.JTextField(); jField1Start = new javax.swing.JTextField(); jField1Select = new javax.swing.JTextField(); jField1B = new javax.swing.JTextField(); jField1A = new javax.swing.JTextField(); jField2Up = new javax.swing.JTextField(); jField2Down = new javax.swing.JTextField(); jField2Left = new javax.swing.JTextField(); jField2Right = new javax.swing.JTextField(); jField2A = new javax.swing.JTextField(); jField2B = new javax.swing.JTextField(); jField2Select = new javax.swing.JTextField(); jField2Start = new javax.swing.JTextField(); jButtonCancel = new javax.swing.JButton(); jButtonOK = new javax.swing.JButton(); jLabel16 = new javax.swing.JLabel(); jLabel1 = new javax.swing.JLabel(); jLabelCtrl1 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jLabelCtrl2 = new javax.swing.JLabel(); setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL); setName("ControlsDialog"); // NOI18N setResizable(false); jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N jLabel3.setText("Keybindings:"); // NOI18N jLabel4.setText("Controller 1"); // NOI18N jLabel5.setText("Controller 2"); // NOI18N jLabel6.setText("Up"); // NOI18N jLabel7.setText("Down"); // NOI18N jLabel8.setText("Left"); // NOI18N jLabel9.setText("Right"); // NOI18N jLabel10.setText("A"); // NOI18N jLabel11.setText("B"); // NOI18N jLabel12.setText("Select"); // NOI18N jLabel13.setText("Start"); // NOI18N jField1Up.setMinimumSize(new java.awt.Dimension(120, 20)); jField1Up.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jField2StartActionPerformed(evt); } }); jField1Up.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField1UpKeyReleased(evt); } }); jField1Down.setMinimumSize(new java.awt.Dimension(120, 20)); jField1Down.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jField2StartActionPerformed(evt); } }); jField1Down.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField1DownKeyReleased(evt); } }); jField1Right.setMinimumSize(new java.awt.Dimension(120, 20)); jField1Right.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jField2StartActionPerformed(evt); } }); jField1Right.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField1RightKeyReleased(evt); } }); jField1Left.setMinimumSize(new java.awt.Dimension(120, 20)); jField1Left.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jField2StartActionPerformed(evt); } }); jField1Left.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField1LeftKeyReleased(evt); } }); jField1Start.setMinimumSize(new java.awt.Dimension(120, 20)); jField1Start.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField1StartKeyReleased(evt); } }); jField1Select.setMinimumSize(new java.awt.Dimension(120, 20)); jField1Select.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField1SelectKeyReleased(evt); } }); jField1B.setMinimumSize(new java.awt.Dimension(120, 20)); jField1B.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField1BKeyReleased(evt); } }); jField1A.setMinimumSize(new java.awt.Dimension(120, 20)); jField1A.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField1AKeyReleased(evt); } }); jField2Up.setMinimumSize(new java.awt.Dimension(120, 20)); jField2Up.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField2UpKeyReleased(evt); } }); jField2Down.setMinimumSize(new java.awt.Dimension(120, 20)); jField2Down.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField2DownKeyReleased(evt); } }); jField2Left.setMinimumSize(new java.awt.Dimension(120, 20)); jField2Left.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField2LeftKeyReleased(evt); } }); jField2Right.setMinimumSize(new java.awt.Dimension(120, 20)); jField2Right.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField2RightKeyReleased(evt); } }); jField2A.setMinimumSize(new java.awt.Dimension(120, 20)); jField2A.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField2AKeyReleased(evt); } }); jField2B.setMinimumSize(new java.awt.Dimension(120, 20)); jField2B.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField2BKeyReleased(evt); } }); jField2Select.setMinimumSize(new java.awt.Dimension(120, 20)); jField2Select.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField2SelectKeyReleased(evt); } }); jField2Start.setMinimumSize(new java.awt.Dimension(120, 20)); jField2Start.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { jField2StartKeyReleased(evt); } }); jButtonCancel.setText("Cancel"); // NOI18N jButtonCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonCancelActionPerformed(evt); } }); jButtonOK.setText("OK"); // NOI18N jButtonOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonOKActionPerformed(evt); } }); jLabel16.setText(" Click in text box and type a key to change that binding."); // NOI18N jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N jLabel1.setText("Detected Game Controllers:"); jLabelCtrl1.setText("No Player 1 controller connected"); jLabelCtrl1.setEnabled(false); jButton1.setText("Set Buttons"); jButton1.setEnabled(false); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setText("Set Buttons"); jButton2.setEnabled(false); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jLabelCtrl2.setText("No Player 2 controller connected"); jLabelCtrl2.setEnabled(false); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) .addComponent(jLabel16) .addGroup(layout.createSequentialGroup() .addGap(49, 49, 49) .addComponent(jLabel4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel5)) .addComponent(jLabel3) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel7) .addComponent(jLabel8) .addComponent(jLabel9) .addComponent(jLabel10) .addComponent(jLabel11) .addComponent(jLabel13) .addComponent(jLabel6) .addComponent(jLabel12)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jField1Right, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField1Left, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField1B, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField1A, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField1Start, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField1Select, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField1Up, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField1Down, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jField2Select, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField2B, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField2Start, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField2A, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField2Right, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField2Up, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField2Down, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jField2Left, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() .addComponent(jButtonOK, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButtonCancel)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabelCtrl1) .addComponent(jLabelCtrl2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton2) .addComponent(jButton1)))))) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jField1A, jField1B, jField1Down, jField1Left, jField1Right, jField1Select, jField1Start, jField1Up, jField2A, jField2B, jField2Down, jField2Left, jField2Right, jField2Select, jField2Start, jField2Up}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(11, 11, 11) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel4) .addComponent(jLabel5)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jField2Up, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel6) .addComponent(jField1Up, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jField1Down, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jField1Left, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel8)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jField1Right, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel9) .addComponent(jField2Right, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jField1A, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel10) .addComponent(jField2A, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addGap(31, 31, 31) .addComponent(jField2Down, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jField2Left, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jField1B, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel11) .addComponent(jField2B, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jField1Select, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel12) .addComponent(jField2Select, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jField1Start, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel13) .addComponent(jField2Start, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelCtrl1) .addComponent(jButton2)) .addGap(12, 12, 12) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelCtrl2) .addComponent(jButton1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButtonOK) .addComponent(jButtonCancel)) .addGap(0, 8, Short.MAX_VALUE)) ); layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jField1A, jField1B, jField1Down, jField1Left, jField1Right, jField1Select, jField1Start, jField1Up, jField2A, jField2B, jField2Down, jField2Left, jField2Right, jField2Select, jField2Start, jField2Up}); pack(); }// //GEN-END:initComponents private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelActionPerformed if ("Cancel".equals(evt.getActionCommand())) { this.setVisible(false); } }//GEN-LAST:event_jButtonCancelActionPerformed private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOKActionPerformed // if ("OK".equals(evt.getActionCommand())) { //here we go... save everything and hide the window Preferences prefs = PrefsSingleton.get(); prefs.putInt("keyUp1", keys[0][0]); prefs.putInt("keyDown1", keys[0][1]); prefs.putInt("keyLeft1", keys[0][2]); prefs.putInt("keyRight1", keys[0][3]); prefs.putInt("keyA1", keys[0][4]); prefs.putInt("keyB1", keys[0][5]); prefs.putInt("keySelect1", keys[0][6]); prefs.putInt("keyStart1", keys[0][7]); prefs.putInt("keyUp2", keys[1][0]); prefs.putInt("keyDown2", keys[1][1]); prefs.putInt("keyLeft2", keys[1][2]); prefs.putInt("keyRight2", keys[1][3]); prefs.putInt("keyA2", keys[1][4]); prefs.putInt("keyB2", keys[1][5]); prefs.putInt("keySelect2", keys[1][6]); prefs.putInt("keyStart2", keys[1][7]); try { prefs.flush(); } catch (BackingStoreException ex) { Logger.getLogger(ControlsDialog.class.getName()).log(Level.SEVERE, null, ex); } okClicked = true; this.setVisible(false); // } }//GEN-LAST:event_jButtonOKActionPerformed public boolean okClicked() { return okClicked; } private void jField1UpKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField1UpKeyReleased int k = evt.getKeyCode(); jField1Up.setText(KeyEvent.getKeyText(k)); keys[0][0] = k; }//GEN-LAST:event_jField1UpKeyReleased private void jField1DownKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField1DownKeyReleased int k = evt.getKeyCode(); jField1Down.setText(KeyEvent.getKeyText(k)); keys[0][1] = k; }//GEN-LAST:event_jField1DownKeyReleased private void jField1LeftKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField1LeftKeyReleased int k = evt.getKeyCode(); jField1Left.setText(KeyEvent.getKeyText(k)); keys[0][2] = k; }//GEN-LAST:event_jField1LeftKeyReleased private void jField1RightKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField1RightKeyReleased int k = evt.getKeyCode(); jField1Right.setText(KeyEvent.getKeyText(k)); keys[0][3] = k; }//GEN-LAST:event_jField1RightKeyReleased private void jField2StartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jField2StartActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jField2StartActionPerformed private void jField1AKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField1AKeyReleased int k = evt.getKeyCode(); jField1A.setText(KeyEvent.getKeyText(k)); keys[0][4] = k; }//GEN-LAST:event_jField1AKeyReleased private void jField1BKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField1BKeyReleased int k = evt.getKeyCode(); jField1B.setText(KeyEvent.getKeyText(k)); keys[0][5] = k; }//GEN-LAST:event_jField1BKeyReleased private void jField1SelectKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField1SelectKeyReleased int k = evt.getKeyCode(); jField1Select.setText(KeyEvent.getKeyText(k)); keys[0][6] = k; }//GEN-LAST:event_jField1SelectKeyReleased private void jField1StartKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField1StartKeyReleased int k = evt.getKeyCode(); jField1Start.setText(KeyEvent.getKeyText(k)); keys[0][7] = k; }//GEN-LAST:event_jField1StartKeyReleased private void jField2UpKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField2UpKeyReleased int k = evt.getKeyCode(); jField2Up.setText(KeyEvent.getKeyText(k)); keys[1][0] = k; }//GEN-LAST:event_jField2UpKeyReleased private void jField2StartKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField2StartKeyReleased int k = evt.getKeyCode(); jField2Start.setText(KeyEvent.getKeyText(k)); keys[1][7] = k; }//GEN-LAST:event_jField2StartKeyReleased private void jField2DownKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField2DownKeyReleased int k = evt.getKeyCode(); jField2Down.setText(KeyEvent.getKeyText(k)); keys[1][1] = k; }//GEN-LAST:event_jField2DownKeyReleased private void jField2LeftKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField2LeftKeyReleased int k = evt.getKeyCode(); jField2Left.setText(KeyEvent.getKeyText(k)); keys[1][2] = k; }//GEN-LAST:event_jField2LeftKeyReleased private void jField2RightKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField2RightKeyReleased int k = evt.getKeyCode(); jField2Right.setText(KeyEvent.getKeyText(k)); keys[1][3] = k; }//GEN-LAST:event_jField2RightKeyReleased private void jField2AKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField2AKeyReleased int k = evt.getKeyCode(); jField2A.setText(KeyEvent.getKeyText(k)); keys[1][4] = k; }//GEN-LAST:event_jField2AKeyReleased private void jField2BKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField2BKeyReleased int k = evt.getKeyCode(); jField2B.setText(KeyEvent.getKeyText(k)); keys[1][5] = k; }//GEN-LAST:event_jField2BKeyReleased private void jField2SelectKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jField2SelectKeyReleased int k = evt.getKeyCode(); jField2Select.setText(KeyEvent.getKeyText(k)); keys[1][6] = k; }//GEN-LAST:event_jField2SelectKeyReleased private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jButton1ActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jButton2ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButtonCancel; private javax.swing.JButton jButtonOK; private javax.swing.JTextField jField1A; private javax.swing.JTextField jField1B; private javax.swing.JTextField jField1Down; private javax.swing.JTextField jField1Left; private javax.swing.JTextField jField1Right; private javax.swing.JTextField jField1Select; private javax.swing.JTextField jField1Start; private javax.swing.JTextField jField1Up; private javax.swing.JTextField jField2A; private javax.swing.JTextField jField2B; private javax.swing.JTextField jField2Down; private javax.swing.JTextField jField2Left; private javax.swing.JTextField jField2Right; private javax.swing.JTextField jField2Select; private javax.swing.JTextField jField2Start; private javax.swing.JTextField jField2Up; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JLabel jLabelCtrl1; private javax.swing.JLabel jLabelCtrl2; // End of variables declaration//GEN-END:variables } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/DebugUI.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.ui; import com.grapeshot.halfnes.NES; import java.awt.*; import java.awt.image.*; import javax.swing.*; public class DebugUI extends JFrame { // StrokeInformer aStrokeInformer = new StrokeInformer(); private ShowFrame fbuf; private int xsize, ysize; private Repainter painter = new Repainter(); public DebugUI(int height, int width) { this.xsize = height; this.ysize = width; fbuf = new ShowFrame(); fbuf.setIgnoreRepaint(true); } public void run() { this.setTitle("HalfNES Debug " + NES.VERSION); this.setResizable(false); this.setDefaultCloseOperation(HIDE_ON_CLOSE); this.setContentPane(fbuf); this.pack(); this.setVisible(true); } public void messageBox(String s) { JOptionPane.showMessageDialog(fbuf, s); } public void setFrame(BufferedImage b) { fbuf.nextFrame = b; java.awt.EventQueue.invokeLater(painter); //do the actual screen update on the event thread, basically all this does is blit the new frame } public class Repainter implements Runnable { public void run() { fbuf.repaint(); } } public class ShowFrame extends javax.swing.JPanel { public BufferedImage nextFrame; /** * */ public ShowFrame() { this.setBounds(0, 0, xsize, ysize); this.setPreferredSize(new Dimension(xsize, ysize)); } @Override public void paint(final Graphics g) { g.drawImage(nextFrame, 0, 0, xsize, ysize, null); } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/DummyController.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.ui; import java.util.HashMap; import static com.grapeshot.halfnes.utils.BIT0; import static com.grapeshot.halfnes.utils.BIT1; import static com.grapeshot.halfnes.utils.BIT2; import static com.grapeshot.halfnes.utils.BIT3; import static com.grapeshot.halfnes.utils.BIT4; import static com.grapeshot.halfnes.utils.BIT5; import static com.grapeshot.halfnes.utils.BIT6; import static com.grapeshot.halfnes.utils.BIT7; /** * @author Andrew */ public class DummyController implements ControllerInterface { //i wrote this to test a bug in the menu of one game. //if using this again, maybe a parser and some RLE would be appropriate? //or just make it load FCEUX movie files? int outbyte = 0; int latchbyte = 0; char[] input = ("000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000SSSSSSSSSSSSSS00000000000000000000000" + "00000000000000000000000000000AAAAAAAAAAAAAA00000000000000000000000" + "00000000000000000000000000000AAAAAAAAAAAAAA00000000000000000000000" + "00000000000000000000000000000AAAAAAAAAAAAAA00000000000000000000000" + "00000000000000000000000000000AAAAAAAAAAAAAA00000000000000000000000" + "00000000000000000000000000000AAAAAAAAAAAAAA00000000000000000000000" + "00000000000000000000000000000AAAAAAAAAAAAAA00000000000000000000000" + "00000000000000000000000000000AAAAAAAAAAAAAA00000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000000000000SSSSSSSSSSSSSS00000000000000000000000").toCharArray(); HashMap m = new HashMap<>(); int frame = 0; public DummyController(int controllernum) { m.put('0', 0x00); // Null m.put('U', BIT4); // Up m.put('D', BIT5); // Down m.put('L', BIT6); // Left m.put('R', BIT7); // Right m.put('A', BIT0); // A m.put('B', BIT1); // B m.put('s', BIT2); // Select m.put('S', BIT3); // Start } @Override public void strobe() { //shifts a byte out outbyte = latchbyte & 1; latchbyte = ((latchbyte >> 1) | 0x100); } @Override public void output(final boolean state) { if (frame < input.length) { latchbyte = m.get(input[frame]); } else { latchbyte = 0; } ++frame; } @Override public int peekOutput() { return latchbyte; } @Override public int getbyte() { return outbyte; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/FrameLimiterImpl.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.ui; import com.grapeshot.halfnes.NES; import com.grapeshot.halfnes.PrefsSingleton; /** * * @author Andrew */ public class FrameLimiterImpl implements FrameLimiterInterface { NES nes; private long sleepingtest = 0; public long FRAME_NS; public FrameLimiterImpl(NES nes, long framens) { this.nes = nes; FRAME_NS = framens; //forceHighResolutionTimer(); } public void setInterval(long ns) { FRAME_NS = ns; } @Override public void sleep() { //Frame Limiter if (!PrefsSingleton.get().getBoolean("Sleep", true)) { return; //skip frame limiter if pref set } final long timeleft = System.nanoTime() - nes.frameStartTime; if (timeleft < FRAME_NS) { final long sleepytime = (FRAME_NS - timeleft + sleepingtest); if (sleepytime < 0) { return; //don't sleep at all. } sleepingtest = System.nanoTime(); try { //System.err.println(sleepytime/ 1000000.); Thread.sleep(sleepytime / 1000000); // sleep for rest of the time until the next frame } catch (InterruptedException ex) { } sleepingtest = System.nanoTime() - sleepingtest; //now sleeping test has how many ns the sleep *actually* was sleepingtest = sleepytime - sleepingtest; //now sleepingtest has how much the next frame needs to be delayed by to make things match } } @Override public void sleepFixed() { try { //sleep for 16 ms Thread.sleep(16); } catch (InterruptedException ex) { } } public static void forceHighResolutionTimer() { //UGLY HACK ALERT: Just realized why sleep() rounds to nearest //multiple of 10: it's because no other program is using high resolution timer. //This should, hopefully, fix that. final Thread daemon = new Thread("ForceHighResolutionTimer") { @Override public void run() { while (true) { try { Thread.sleep(99999999999L); } catch (InterruptedException e) { break; } } } }; daemon.setDaemon(true); daemon.start(); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/FrameLimiterInterface.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.ui; /** * * @author Andrew */ public interface FrameLimiterInterface { public void sleep(); public void sleepFixed(); public void setInterval(long ns); } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/GUIInterface.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.ui; import com.grapeshot.halfnes.NES; /** * * @author Andrew */ public interface GUIInterface extends Runnable { public NES getNes(); public void setNES(NES nes); public void setFrame(int[] frame, int[] bgcolor, boolean dotcrawl); //Frame is now a 256x240 array with NES color numbers from 0-3F //plus the state of the 3 color emphasis bits in bits 7,8,9 public void messageBox(String message); @Override public void run(); public void render(); public void loadROMs(String path); } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/HeadlessUI.java ================================================ package com.grapeshot.halfnes.ui; import com.grapeshot.halfnes.CPURAM; import com.grapeshot.halfnes.NES; import com.grapeshot.halfnes.video.RGBRenderer; import com.grapeshot.halfnes.video.Renderer; import java.awt.image.BufferedImage; /** * @author Mitchell Skaggs */ public class HeadlessUI implements GUIInterface { private NES nes; private Renderer renderer; private boolean renderFrames; private BufferedImage lastFrame = null; private boolean updateImage; private PuppetController controller1, controller2; public HeadlessUI(String romToLoad, boolean renderFrames) { nes = new NES(this); this.loadROM(romToLoad); this.renderer = new RGBRenderer(); this.controller1 = new PuppetController(); this.controller2 = new PuppetController(); nes.setControllers(this.controller1, this.controller2); this.renderFrames = renderFrames; } public void loadROM(String romToLoad) { this.nes.loadROM(romToLoad); } public BufferedImage getLastFrame() { return lastFrame; } public PuppetController getController1() { return controller1; } public PuppetController getController2() { return controller2; } public synchronized void runFrame() { nes.frameAdvance(); } public CPURAM getNESCPURAM() { return nes.getCPURAM(); } @Override public NES getNes() { return nes; } @Override public void setNES(NES nes) { this.nes = nes; } @Override public void setFrame(int[] frame, int[] bgcolor, boolean dotcrawl) { if (renderFrames) { this.lastFrame = renderer.render(frame, bgcolor, dotcrawl); } } @Override public void messageBox(String message) { System.err.println(message); // Shouldn't get any messages except errors } @Override public void run() { // Null-op } @Override public void render() { } @Override public void loadROMs(String path) { } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/NESFileFilter.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.ui; import javax.swing.filechooser.FileFilter; import java.io.FilenameFilter; import java.io.File; /** * * @author Andrew */ public class NESFileFilter implements FilenameFilter { // public boolean accept(File f) { // if (f.isDirectory()) { // return true; // } // // String extension = utils.getExtension(f); // if (extension != null) { // if (extension.equalsIgnoreCase(".nes") // || extension.equalsIgnoreCase(".fds") // || extension.equalsIgnoreCase(".nsf")) { // return true; // } else { // return false; // } // } // return false; // } public String getDescription() { return ".NES, .FDS, .NSF, .ZIP"; } public boolean accept(File dir, String name) { if (name.endsWith(".nes") || name.endsWith(".fds") || name.endsWith(".nsf") || name.endsWith(".zip")) { return true; } else { return false; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/OnScreenMenu.java ================================================ package com.grapeshot.halfnes.ui; import com.grapeshot.halfnes.FileUtils; import static com.grapeshot.halfnes.utils.BIT8; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.control.ListView; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.layout.StackPane; /** * @author Stephen Chin - steveonjava@gmail.com */ public class OnScreenMenu extends StackPane { private GUIInterface gui; private ListView menu; private ListView gameMenu; private final ObservableList menuItems = FXCollections.observableArrayList( new MenuAction("Resume", this::resume), new MenuAction("Load Game", this::loadGame), new MenuAction("Reset", this::reset), new MenuAction("Exit", this::exit), new MenuAction("Power Off", this::powerOff)); private final ObservableList games = FXCollections.observableArrayList( new MenuAction("Back", () -> gameMenu.setVisible(false))); public OnScreenMenu(GUIInterface gui) { this.gui = gui; menu = new ListView<>(menuItems); gameMenu = new ListView(games); addMenuListeners(menu); addMenuListeners(gameMenu); getChildren().addAll(menu, gameMenu); gameMenu.setVisible(false); setVisible(false); } private void addMenuListeners(ListView menu) { menu.addEventHandler(javafx.scene.input.KeyEvent.KEY_RELEASED, e -> { if (e.getCode().equals(KeyCode.ENTER) || e.getCode().equals(KeyCode.SPACE)) { menu.getSelectionModel().getSelectedItem().run(); } }); menu.addEventHandler(javafx.scene.input.MouseEvent.MOUSE_CLICKED, e -> { if (e.getClickCount() == 2) { menu.getSelectionModel().getSelectedItem().run(); } }); } public void show() { gui.getNes().pause(); setVisible(true); } private void hide() { setVisible(false); } public void loadROMs(String path) { if (path.toLowerCase().endsWith(".zip")) { try { loadRomFromZip(path); } catch (IOException ex) { gui.messageBox("Could not load file:\nFile does not exist or is not a valid NES game.\n" + ex.getMessage()); } } else { games.add(new GameAction(new File(path))); runGame(path); } } private void loadRomFromZip(String zipName) throws IOException { listRomsInZip(zipName).stream().map(romName -> new GameAction(zipName, romName)).forEach(games::add); if (games.size() == 2) { games.get(1).run(); } else if (games.size() > 2) { Platform.runLater(() -> loadGame()); } } private List listRomsInZip(String zipName) throws IOException { final List romNames; try (ZipFile zipFile = new ZipFile(zipName)) { final Enumeration zipEntries = zipFile.entries(); romNames = new ArrayList<>(); while (zipEntries.hasMoreElements()) { final ZipEntry entry = zipEntries.nextElement(); if (!entry.isDirectory() && (entry.getName().endsWith(".nes") || entry.getName().endsWith(".fds") || entry.getName().endsWith(".nsf"))) { romNames.add(entry.getName()); } } } if (romNames.isEmpty()) { throw new IOException("No NES games found in ZIP file."); } return romNames; } private File extractRomFromZip(String zipName, String romName) throws IOException { final File outputFile; final FileOutputStream fos; try (ZipInputStream zipStream = new ZipInputStream(new FileInputStream(zipName))) { ZipEntry entry; do { entry = zipStream.getNextEntry(); } while ((entry != null) && (!entry.getName().equals(romName))); if (entry == null) { zipStream.close(); throw new IOException("Cannot find file " + romName + " inside archive " + zipName); } //name temp. extracted file after parent zip and file inside //note: here's the bug, when it saves the temp file if it's in a folder //in the zip it's trying to put it in the same folder outside the zip outputFile = new File(new File(zipName).getCanonicalFile().getParent() + File.separator + FileUtils.stripExtension(new File(zipName).getName()) + " - " + romName); if (outputFile.exists() && !outputFile.delete()) { gui.messageBox("Cannot extract file. File " + outputFile.getCanonicalPath() + " already exists."); zipStream.close(); return null; } final byte[] buf = new byte[4096]; fos = new FileOutputStream(outputFile); int numBytes; while ((numBytes = zipStream.read(buf, 0, buf.length)) != -1) { fos.write(buf, 0, numBytes); } } fos.close(); return outputFile; } private void resume() { gui.getNes().resume(); hide(); } private void loadGame() { gameMenu.setVisible(true); gameMenu.requestFocus(); } private void runGame(String path) { gui.getNes().loadROM(path); Platform.runLater(() -> { gameMenu.setVisible(false); hide(); }); } private void reset() { gui.getNes().reset(); hide(); } private void exit() { gui.getNes().quit(); Platform.exit(); } private void powerOff() { // try { // Runtime.getRuntime().exec("sudo shutdown -h now"); // } catch (IOException ex) { // Logger.getLogger(OnScreenMenu.class.getName()).log(Level.SEVERE, null, ex); // } } class MenuAction { String name; Runnable action; MenuAction() { } MenuAction(String name, Runnable action) { this.name = name; this.action = action; } public void run() { action.run(); } @Override public String toString() { return name; } } class GameAction extends MenuAction { GameAction(File game) { name = game.getName(); action = () -> { try { gui.getNes().loadROM(game.getCanonicalPath()); Platform.runLater(() -> { gameMenu.setVisible(false); menu.setVisible(false); }); } catch (IOException e) { gui.messageBox(e.getMessage()); } }; } GameAction(final String zipName, final String romName) { if (romName.toLowerCase().endsWith(".nes")) { name = romName.substring(0, romName.length() - 4); } else { name = romName; } action = () -> { try { final File extractedFile = extractRomFromZip(zipName, romName); if (extractedFile != null) { extractedFile.deleteOnExit(); } runGame(extractedFile.getCanonicalPath()); } catch (IOException e) { gui.messageBox(e.getMessage()); } }; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/Oscilloscope.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.ui; import com.grapeshot.halfnes.audio.AudioOutInterface; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; /** * * @author Andrew */ public class Oscilloscope implements AudioOutInterface { final private static int width = 400, length = 640; final private static int scf = 65536 / width / 2; DebugUI d; BufferedImage b; Graphics2D g; AudioOutInterface iface; int[] buffer = new int[length]; int buf_ptr = 0; int prevsample = 0; public Oscilloscope(AudioOutInterface i) { this.iface = i; d = new DebugUI(length, width); b = new BufferedImage(length, width, BufferedImage.TYPE_INT_ARGB_PRE); g = b.createGraphics(); g.setBackground(Color.black); g.setColor(Color.green); d.pack(); d.run(); } public Oscilloscope() { this.iface = null; d = new DebugUI(length, width); b = new BufferedImage(length, width, BufferedImage.TYPE_INT_ARGB_PRE); g = b.createGraphics(); g.setBackground(Color.black); g.setColor(Color.red); d.pack(); d.run(); } @Override public void outputSample(int sample) { if (buf_ptr > 0 || (prevsample <= 0 && sample >= 0)) { //start cap @ zero crossing if (buf_ptr < buffer.length) { buffer[buf_ptr++] = sample; } } prevsample = sample; if (!(iface == null)) { iface.outputSample(sample); } } @Override public void flushFrame(boolean waitIfBufferFull) { if (!(iface == null)) { iface.flushFrame(waitIfBufferFull); } g.clearRect(0, 0, length, width); for (int i = 1; i < buf_ptr; ++i) { g.drawLine(i - 1, (buffer[i - 1] / scf) + width / 2, i, (buffer[i] / scf) + width / 2); } g.drawLine(0, width / 2, length, width / 2); d.setFrame(b); buf_ptr = 0; } @Override public void pause() { if (!(iface == null)) { iface.pause(); } } @Override public void resume() { if (!(iface == null)) { iface.resume(); } } @Override public void destroy() { d.setVisible(false); d.dispose(); if (!(iface == null)) { iface.destroy(); } } @Override public boolean bufferHasLessThan(int samples) { if (!(iface == null)) { return iface.bufferHasLessThan(samples); } else { return false; } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/PreferencesDialog.form ================================================
================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/PreferencesDialog.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ /* * OptionsDialog.java * * Created on Jan 16, 2011, 4:21:43 PM */ package com.grapeshot.halfnes.ui; import com.grapeshot.halfnes.PrefsSingleton; import java.awt.event.KeyEvent; import java.util.logging.Level; import java.util.logging.Logger; import java.util.prefs.BackingStoreException; import java.util.prefs.Preferences; /** * * @author Andrew */ public class PreferencesDialog extends javax.swing.JDialog { private int screenScaling; private boolean okClicked = false; /** * Creates new form OptionsDialog */ public PreferencesDialog(java.awt.Frame parent) { super(parent, true); Preferences prefs = PrefsSingleton.get(); initComponents(); this.setTitle("HalfNES Preferences"); //set all of the text boxes //aand the sound enable checkbox. jCheckSoundEnable.setSelected(prefs.getBoolean("soundEnable", true)); jCheckSoundFiltering.setSelected(prefs.getBoolean("soundFiltering", true)); jCheckMaintainAspect.setSelected(prefs.getBoolean("maintainAspect", true)); jCheckBoxNTSC.setSelected(prefs.getBoolean("TVEmulation", false)); jCheckBoxNTView.setSelected(prefs.getBoolean("ntView", false)); jCheckBoxShowScope.setSelected(prefs.getBoolean("showScope", false)); jCheckBoxSleep.setSelected(prefs.getBoolean("Sleep", true)); jButtonOK.setActionCommand("OK"); jButtonCancel.setActionCommand("Cancel"); screenScaling = prefs.getInt("screenScaling", 2); jSpinnerScale.setValue(screenScaling); jSampleRateBox.setSelectedItem(Integer.toString(prefs.getInt("sampleRate", 44100))); jCheckBoxSmoothVideo.setSelected(prefs.getBoolean("smoothScaling", false)); volumeSlider.setValue(prefs.getInt("outputvol", 13107)); jRegionBox.setSelectedIndex(prefs.getInt("region", 0)); //0-> auto, 1-> NTSC, 2-> PAL, 3-> Dendy } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); jLabel1 = new javax.swing.JLabel(); jCheckSoundEnable = new javax.swing.JCheckBox(); jButtonCancel = new javax.swing.JButton(); jButtonOK = new javax.swing.JButton(); jSampleRateBox = new javax.swing.JComboBox(); jLabel2 = new javax.swing.JLabel(); jCheckMaintainAspect = new javax.swing.JCheckBox(); jLabel14 = new javax.swing.JLabel(); jCheckSoundFiltering = new javax.swing.JCheckBox(); jLabel15 = new javax.swing.JLabel(); volumeSlider = new javax.swing.JSlider(); jLabel17 = new javax.swing.JLabel(); jLabel18 = new javax.swing.JLabel(); jCheckBoxNTSC = new javax.swing.JCheckBox(); jLabel19 = new javax.swing.JLabel(); jSpinnerScale = new javax.swing.JSpinner(); jLabel20 = new javax.swing.JLabel(); jCheckBoxSmoothVideo = new javax.swing.JCheckBox(); jCheckBoxSleep = new javax.swing.JCheckBox(); jCheckBoxShowScope = new javax.swing.JCheckBox(); jCheckBoxNTView = new javax.swing.JCheckBox(); jLabel3 = new javax.swing.JLabel(); jRegionBox = new javax.swing.JComboBox(); setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL); setName("OptionsDialog"); // NOI18N setResizable(false); jLabel1.setText("Screen scaling: scale up "); // NOI18N jCheckSoundEnable.setText("Enable Sound"); // NOI18N jButtonCancel.setText("Cancel"); // NOI18N jButtonCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonCancelActionPerformed(evt); } }); jButtonOK.setText("OK"); // NOI18N jButtonOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonOKActionPerformed(evt); } }); jSampleRateBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "16000", "24000", "44100", "48000","96000" })); jSampleRateBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jSampleRateBoxActionPerformed(evt); } }); jLabel2.setText("Sample Rate:"); // NOI18N jCheckMaintainAspect.setText("Maintain Aspect Ratio"); // NOI18N jLabel14.setText("Sound:"); // NOI18N jCheckSoundFiltering.setText("Enable Filtering"); // NOI18N jCheckSoundFiltering.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckSoundFilteringActionPerformed(evt); } }); jLabel15.setText("Output Volume:"); // NOI18N volumeSlider.setMajorTickSpacing(8192); volumeSlider.setMaximum(16384); volumeSlider.setMinorTickSpacing(4096); volumeSlider.setPaintTicks(true); volumeSlider.setValue(80); jLabel17.setText("0"); // NOI18N jLabel18.setText("100"); // NOI18N jCheckBoxNTSC.setText("Use NTSC TV Filter (Experimental)"); jCheckBoxNTSC.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBoxNTSCActionPerformed(evt); } }); jLabel19.setText("Video options:"); // NOI18N jSpinnerScale.setModel(new javax.swing.SpinnerNumberModel(2, 1, 6, 1)); jLabel20.setText("times"); // NOI18N jCheckBoxSmoothVideo.setText("Use Smooth Scaling"); jCheckBoxSmoothVideo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBoxSmoothVideoActionPerformed(evt); } }); jCheckBoxSleep.setText("Sleep Between Frames"); jCheckBoxSleep.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBoxSleepActionPerformed(evt); } }); jCheckBoxShowScope.setText("Show Audio Output"); jCheckBoxNTView.setText("Show Nametable Viewer"); jLabel3.setText("Console Region:"); jRegionBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Auto Detect", "NTSC", "PAL", "Dendy (Hybrid)" })); jRegionBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jRegionBoxActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addComponent(jButtonOK) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButtonCancel)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jSpinnerScale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel20, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel19) .addComponent(jCheckBoxNTSC) .addComponent(jCheckMaintainAspect) .addComponent(jCheckBoxSmoothVideo) .addComponent(jCheckBoxSleep) .addComponent(jCheckBoxShowScope) .addComponent(jCheckBoxNTView)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(volumeSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel14) .addComponent(jCheckSoundEnable) .addComponent(jCheckSoundFiltering) .addGroup(layout.createSequentialGroup() .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jSampleRateBox, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel15) .addGroup(layout.createSequentialGroup() .addComponent(jLabel17) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel18)))) .addGroup(layout.createSequentialGroup() .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jRegionBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(6, 6, 6) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel14) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckSoundEnable) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckSoundFiltering) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(jSampleRateBox, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(3, 3, 3) .addComponent(jLabel15) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(volumeSlider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel17) .addComponent(jLabel18))) .addGroup(layout.createSequentialGroup() .addComponent(jLabel19) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(jSpinnerScale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel20)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckBoxSmoothVideo) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckMaintainAspect) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckBoxNTSC) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckBoxSleep) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckBoxShowScope) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckBoxNTView))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(jRegionBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 26, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButtonOK) .addComponent(jButtonCancel)) .addContainerGap()) ); pack(); }// //GEN-END:initComponents private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelActionPerformed if ("Cancel".equals(evt.getActionCommand())) { this.setVisible(false); } }//GEN-LAST:event_jButtonCancelActionPerformed private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOKActionPerformed // if ("OK".equals(evt.getActionCommand())) { //here we go... save everything and hide the window Preferences prefs = PrefsSingleton.get(); prefs.putBoolean("soundEnable", jCheckSoundEnable.isSelected()); prefs.putBoolean("soundFiltering", jCheckSoundFiltering.isSelected()); prefs.putBoolean("maintainAspect", jCheckMaintainAspect.isSelected()); prefs.putBoolean("TVEmulation", jCheckBoxNTSC.isSelected()); prefs.putBoolean("Sleep", jCheckBoxSleep.isSelected()); screenScaling = (Integer) (jSpinnerScale.getModel().getValue()); prefs.putBoolean("smoothScaling", jCheckBoxSmoothVideo.isSelected()); prefs.putBoolean("showScope", jCheckBoxShowScope.isSelected()); prefs.putBoolean("ntView", jCheckBoxNTView.isSelected()); prefs.putInt("screenScaling", screenScaling); prefs.putInt("sampleRate", Integer.parseInt(jSampleRateBox.getSelectedItem().toString())); prefs.putInt("outputvol", volumeSlider.getValue()); prefs.putInt("region", jRegionBox.getSelectedIndex()); try { prefs.flush(); } catch (BackingStoreException ex) { Logger.getLogger(PreferencesDialog.class.getName()).log(Level.SEVERE, null, ex); } okClicked = true; this.setVisible(false); // } }//GEN-LAST:event_jButtonOKActionPerformed public boolean okClicked() { return okClicked; } private void jSampleRateBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jSampleRateBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jSampleRateBoxActionPerformed private void jCheckSoundFilteringActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckSoundFilteringActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jCheckSoundFilteringActionPerformed private void jCheckBoxNTSCActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxNTSCActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jCheckBoxNTSCActionPerformed private void jCheckBoxSmoothVideoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxSmoothVideoActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jCheckBoxSmoothVideoActionPerformed private void jCheckBoxSleepActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxSleepActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jCheckBoxSleepActionPerformed private void jRegionBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRegionBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jRegionBoxActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JButton jButtonCancel; private javax.swing.JButton jButtonOK; private javax.swing.JCheckBox jCheckBoxNTSC; private javax.swing.JCheckBox jCheckBoxNTView; private javax.swing.JCheckBox jCheckBoxShowScope; private javax.swing.JCheckBox jCheckBoxSleep; private javax.swing.JCheckBox jCheckBoxSmoothVideo; private javax.swing.JCheckBox jCheckMaintainAspect; private javax.swing.JCheckBox jCheckSoundEnable; private javax.swing.JCheckBox jCheckSoundFiltering; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel17; private javax.swing.JLabel jLabel18; private javax.swing.JLabel jLabel19; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel3; private javax.swing.JComboBox jRegionBox; private javax.swing.JComboBox jSampleRateBox; private javax.swing.JSpinner jSpinnerScale; private javax.swing.JSlider volumeSlider; // End of variables declaration//GEN-END:variables } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/PuppetController.java ================================================ package com.grapeshot.halfnes.ui; import static com.grapeshot.halfnes.utils.BIT0; import static com.grapeshot.halfnes.utils.BIT1; import static com.grapeshot.halfnes.utils.BIT2; import static com.grapeshot.halfnes.utils.BIT3; import static com.grapeshot.halfnes.utils.BIT4; import static com.grapeshot.halfnes.utils.BIT5; import static com.grapeshot.halfnes.utils.BIT6; import static com.grapeshot.halfnes.utils.BIT7; /** * Created by skaggsm on 12/5/15. */ public class PuppetController implements ControllerInterface { private int latchbyte = 0, controllerbyte = 0, outbyte = 0; @Override public void strobe() { //shifts a byte out outbyte = latchbyte & 1; latchbyte = ((latchbyte >> 1) | 0x100); } @Override public void output(boolean state) { latchbyte = controllerbyte; } @Override public int peekOutput() { return latchbyte; } @Override public int getbyte() { return outbyte; } public void resetButtons() { controllerbyte = 0; } public void releaseButton(Button button) { switch (button) { case UP: controllerbyte &= ~BIT4; break; case DOWN: controllerbyte &= ~BIT5; break; case LEFT: controllerbyte &= ~BIT6; break; case RIGHT: controllerbyte &= ~BIT7; break; case A: controllerbyte &= ~BIT0; break; case B: controllerbyte &= ~BIT1; break; case SELECT: controllerbyte &= ~BIT2; break; case START: controllerbyte &= ~BIT3; break; } } public void pressButton(Button button) { switch (button) { case UP: controllerbyte |= BIT4; break; case DOWN: controllerbyte |= BIT5; break; case LEFT: controllerbyte |= BIT6; break; case RIGHT: controllerbyte |= BIT7; break; case A: controllerbyte |= BIT0; break; case B: controllerbyte |= BIT1; break; case SELECT: controllerbyte |= BIT2; break; case START: controllerbyte |= BIT3; break; } } public enum Button { UP, DOWN, LEFT, RIGHT, A, B, SELECT, START } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/ui/SwingUI.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.ui; import com.grapeshot.halfnes.FileUtils; import com.grapeshot.halfnes.NES; import com.grapeshot.halfnes.PrefsSingleton; import com.grapeshot.halfnes.video.RGBRenderer; import com.grapeshot.halfnes.cheats.ActionReplay; import com.grapeshot.halfnes.cheats.ActionReplayGui; import com.grapeshot.halfnes.video.NTSCRenderer; import com.grapeshot.halfnes.video.Renderer; import java.awt.*; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.event.*; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; import javax.swing.*; public class SwingUI extends JFrame implements GUIInterface { private Canvas canvas; private BufferStrategy buffer; private NES nes; private static final long serialVersionUID = 6411494245530679723L; private final AL listener = new AL(); private int screenScaleFactor; private final long[] frametimes = new long[60]; private int frametimeptr = 0; private boolean smoothScale, inFullScreen = false; private GraphicsDevice gd; private int NES_HEIGHT, NES_WIDTH; private Renderer renderer; private final ControllerImpl padController1, padController2; public SwingUI() { nes = new NES(this); screenScaleFactor = PrefsSingleton.get().getInt("screenScaling", 2); padController1 = new ControllerImpl(this, 0); padController2 = new ControllerImpl(this, 1); nes.setControllers(padController1, padController2); padController1.startEventQueue(); padController2.startEventQueue(); } @Override public NES getNes() { return nes; } @Override public void setNES(NES nes) { this.nes = nes; } public synchronized void setRenderOptions() { if (canvas != null) { this.remove(canvas); } screenScaleFactor = PrefsSingleton.get().getInt("screenScaling", 2); smoothScale = PrefsSingleton.get().getBoolean("smoothScaling", false); if (PrefsSingleton.get().getBoolean("TVEmulation", false)) { renderer = new NTSCRenderer(); NES_WIDTH = 302; } else { renderer = new RGBRenderer(); NES_WIDTH = 256; } if (PrefsSingleton.get().getInt("region", 0) > 1) { NES_HEIGHT = 240; renderer.setClip(0); } else { NES_HEIGHT = 224; renderer.setClip(8); } // Create canvas for painting canvas = new Canvas(); canvas.setSize(NES_WIDTH * screenScaleFactor, NES_HEIGHT * screenScaleFactor); canvas.setEnabled(false); //otherwise it steals input events. // Add canvas to game window this.add(canvas); this.pack(); canvas.createBufferStrategy(2); buffer = canvas.getBufferStrategy(); } public void start(String[] args) { if (args == null || args.length < 1 || args[0] == null) { nes.run(); } else { nes.run(args[0]); } } @Override public synchronized void run() { //construct window this.setTitle("HalfNES " + NES.VERSION); this.setResizable(false); buildMenus(); setRenderOptions(); this.getRootPane().registerKeyboardAction(listener, "Escape", KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); this.getRootPane().registerKeyboardAction(listener, "Toggle Fullscreen", KeyStroke.getKeyStroke(KeyEvent.VK_F11, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); this.getRootPane().registerKeyboardAction(listener, "Quit", KeyStroke.getKeyStroke(KeyEvent.VK_F4, KeyEvent.ALT_DOWN_MASK), JComponent.WHEN_IN_FOCUSED_WINDOW); this.setLocation(PrefsSingleton.get().getInt("windowX", 0), PrefsSingleton.get().getInt("windowY", 0)); this.addWindowListener(listener); this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); this.setVisible(true); // Create BackBuffer //now add the drag and drop handler. TransferHandler handler = new TransferHandler() { @Override public boolean canImport(final TransferHandler.TransferSupport support) { if (!support.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) { return false; } return true; } @Override public boolean importData(final TransferHandler.TransferSupport support) { if (!canImport(support)) { return false; } Transferable t = support.getTransferable(); try { //holy typecasting batman (this interface predates generics) File toload = (File) ((java.util.List) t.getTransferData(DataFlavor.javaFileListFlavor)).get(0); loadROM(toload.getCanonicalPath()); } catch (UnsupportedFlavorException e) { return false; } catch (IOException e) { return false; } return true; } }; this.setTransferHandler(handler); } public void buildMenus() { JMenuBar menus = new JMenuBar(); JMenu file = new JMenu("File"); JMenuItem item; file.add(item = new JMenuItem("Open ROM")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); file.addSeparator(); file.add(item = new JMenuItem("Preferences")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); file.addSeparator(); file.add(item = new JMenuItem("Toggle Fullscreen")); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F11, 0)); item.addActionListener(listener); menus.add(file); file.add(item = new JMenuItem("Quit")); item.addActionListener(listener); menus.add(file); JMenu nesmenu = new JMenu("NES"); nesmenu.add(item = new JMenuItem("Reset")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); nesmenu.add(item = new JMenuItem("Hard Reset")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); nesmenu.add(item = new JMenuItem("Pause")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F7, 0)); nesmenu.add(item = new JMenuItem("Resume")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F8, 0)); nesmenu.add(item = new JMenuItem("Fast Forward")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); nesmenu.add(item = new JMenuItem("Frame Advance")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PERIOD, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); nesmenu.addSeparator(); nesmenu.add(item = new JMenuItem("Controller Settings")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); nesmenu.add(item = new JMenuItem("Cheat Codes")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F10, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); nesmenu.addSeparator(); nesmenu.add(item = new JMenuItem("ROM Info")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); menus.add(nesmenu); JMenu help = new JMenu("Help"); help.add(item = new JMenuItem("About")); item.addActionListener(listener); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0)); menus.add(help); this.setJMenuBar(menus); } public void loadROM() { FileDialog fileDialog = new FileDialog(this); fileDialog.setMode(FileDialog.LOAD); fileDialog.setTitle("Select a ROM to load"); //should open last folder used, and if that doesn't exist, the folder it's running in final String path = PrefsSingleton.get().get("filePath", System.getProperty("user.dir", "")); final File startDirectory = new File(path); if (startDirectory.isDirectory()) { fileDialog.setDirectory(path); } //and if the last path used doesn't exist don't set the directory at all //and hopefully the jFileChooser will open somewhere usable //on Windows it does - on Mac probably not. fileDialog.setFilenameFilter(new NESFileFilter()); boolean wasInFullScreen = false; if (inFullScreen) { wasInFullScreen = true; //load dialog won't show if we are in full screen, so this fixes for now. toggleFullScreen(); } fileDialog.setVisible(true); if (fileDialog.getFile() != null) { PrefsSingleton.get().put("filePath", fileDialog.getDirectory()); loadROM(fileDialog.getDirectory() + fileDialog.getFile()); } if (wasInFullScreen) { toggleFullScreen(); } } private void loadROM(String path) { if (path.endsWith(".zip") || path.endsWith(".ZIP")) { try { loadRomFromZip(path); } catch (IOException ex) { this.messageBox("Could not load file:\nFile does not exist or is not a valid NES game.\n" + ex.getMessage()); } } else { nes.loadROM(path); } } private void loadRomFromZip(String zipName) throws IOException { final String romName = selectRomInZip(listRomsInZip(zipName)); if (romName != null) { final File extractedFile = extractRomFromZip(zipName, romName); if (extractedFile != null) { extractedFile.deleteOnExit(); nes.loadROM(extractedFile.getCanonicalPath()); } } } private List listRomsInZip(String zipName) throws IOException { final ZipFile zipFile = new ZipFile(zipName); final Enumeration zipEntries = zipFile.entries(); final List romNames = new ArrayList<>(); while (zipEntries.hasMoreElements()) { final ZipEntry entry = zipEntries.nextElement(); if (!entry.isDirectory() && (entry.getName().endsWith(".nes") || entry.getName().endsWith(".fds") || entry.getName().endsWith(".nsf"))) { romNames.add(entry.getName()); } } zipFile.close(); if (romNames.isEmpty()) { throw new IOException("No NES games found in ZIP file."); } return romNames; } private String selectRomInZip(List romNames) { if (romNames.size() > 1) { return (String) JOptionPane.showInputDialog(this, "Select ROM to load", "Select ROM to load", JOptionPane.PLAIN_MESSAGE, null, romNames.toArray(), romNames.get(0)); } else if (romNames.size() == 1) { return romNames.get(0); } return null; } private File extractRomFromZip(String zipName, String romName) throws IOException { final ZipInputStream zipStream = new ZipInputStream(new FileInputStream(zipName)); ZipEntry entry; do { entry = zipStream.getNextEntry(); } while ((entry != null) && (!entry.getName().equals(romName))); if (entry == null) { zipStream.close(); throw new IOException("Cannot find file " + romName + " inside archive " + zipName); } //name temp. extracted file after parent zip and file inside //note: here's the bug, when it saves the temp file if it's in a folder //in the zip it's trying to put it in the same folder outside the zip final File outputFile = new File(new File(zipName).getParent() + File.separator + FileUtils.stripExtension(new File(zipName).getName()) + " - " + romName); if (outputFile.exists()) { this.messageBox("Cannot extract file. File " + outputFile.getCanonicalPath() + " already exists."); zipStream.close(); return null; } final byte[] buf = new byte[4096]; final FileOutputStream fos = new FileOutputStream(outputFile); int numBytes; while ((numBytes = zipStream.read(buf, 0, buf.length)) != -1) { fos.write(buf, 0, numBytes); } zipStream.close(); fos.close(); return outputFile; } public synchronized void toggleFullScreen() { if (inFullScreen) { // disable this.dispose(); gd.setFullScreenWindow(null); canvas.setSize(NES_HEIGHT * screenScaleFactor, NES_WIDTH * screenScaleFactor); this.setUndecorated(false); this.setVisible(true); inFullScreen = false; buildMenus(); // nes.resume(); } else { // enable setJMenuBar(null); gd = getGraphicsConfiguration().getDevice(); if (!gd.isFullScreenSupported()) { //then fullscreen will give a window the size of the screen instead messageBox("Fullscreen is not supported by your OS or version of Java."); return; } this.dispose(); this.setUndecorated(true); gd.setFullScreenWindow(this); this.setVisible(true); DisplayMode dm = gd.getDisplayMode(); canvas.setSize(dm.getWidth(), dm.getHeight()); inFullScreen = true; } } @Override public void messageBox(final String message) { JOptionPane.showMessageDialog(this, message); } int bgcolor; BufferedImage frame; double fps; int frameskip = 0; @Override public final synchronized void setFrame(final int[] nextframe, final int[] bgcolors, boolean dotcrawl) { //todo: stop running video filters while paused! //also move video filters into a worker thread because they //don't really depend on emulation state at all. Yes this is going to //cause more lag but it will hopefully get back up to playable speed with NTSC filter frametimes[frametimeptr] = nes.getFrameTime(); ++frametimeptr; frametimeptr %= frametimes.length; if (frametimeptr == 0) { long averageframes = 0; for (long l : frametimes) { averageframes += l; } averageframes /= frametimes.length; fps = 1E9 / averageframes; this.setTitle(String.format("HalfNES %s - %s, %2.2f fps" + ((frameskip > 0) ? " frameskip " + frameskip : ""), NES.VERSION, nes.getCurrentRomName(), fps)); } if (nes.framecount % (frameskip + 1) == 0) { frame = renderer.render(nextframe, bgcolors, dotcrawl); render(); } } @Override public final synchronized void render() { final Graphics graphics = buffer.getDrawGraphics(); if (smoothScale) { ((Graphics2D) graphics).setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); } if (inFullScreen) { graphics.setColor(Color.BLACK); DisplayMode dm = gd.getDisplayMode(); int scrnheight = dm.getHeight(); int scrnwidth = dm.getWidth(); graphics.fillRect(0, 0, scrnwidth, scrnheight); if (PrefsSingleton.get().getBoolean("maintainAspect", true)) { double scalefactor = getmaxscale(scrnwidth, scrnheight); int height = (int) (NES_HEIGHT * scalefactor); int width = (int) (256 * scalefactor * 1.1666667); graphics.drawImage(frame, ((scrnwidth / 2) - (width / 2)), ((scrnheight / 2) - (height / 2)), width, height, null); } else { graphics.drawImage(frame, 0, 0, scrnwidth, scrnheight, null); } graphics.setColor(Color.DARK_GRAY); graphics.drawString(this.getTitle(), 16, 16); } else { graphics.drawImage(frame, 0, 0, NES_WIDTH * screenScaleFactor, NES_HEIGHT * screenScaleFactor, null); } graphics.dispose(); buffer.show(); } private void showOptions() { final PreferencesDialog dialog = new PreferencesDialog(this); dialog.setVisible(true); if (dialog.okClicked()) { setRenderOptions(); nes.setParameters(); } } private void showControlsDialog() { final ControlsDialog dialog = new ControlsDialog(this); dialog.setVisible(true); if (dialog.okClicked()) { padController1.setButtons(); padController2.setButtons(); } } private void showActionReplayDialog() { nes.pause(); final ActionReplay actionReplay = nes.getActionReplay(); if (actionReplay != null) { final ActionReplayGui dialog = new ActionReplayGui(this, false, actionReplay); dialog.setVisible(true); } else { JOptionPane.showMessageDialog(this, "You have to load a game first.", "No ROM", JOptionPane.ERROR_MESSAGE); } nes.resume(); } public void savewindowposition() { PrefsSingleton.get().putInt("windowX", this.getX()); PrefsSingleton.get().putInt("windowY", this.getY()); } private double getmaxscale(final int width, final int height) { return Math.min(height / (double) NES_HEIGHT, width / (double) NES_WIDTH); } @Override public void loadROMs(String path) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } public class AL implements ActionListener, WindowListener { @Override public void actionPerformed(final ActionEvent arg0) { // placeholder for more robust handler if (arg0.getActionCommand().equals("Quit")) { close(); } else if (arg0.getActionCommand().equals("Reset")) { nes.reset(); } else if (arg0.getActionCommand().equals("Hard Reset")) { nes.reloadROM(); } else if (arg0.getActionCommand().equals("Pause")) { nes.pause(); } else if (arg0.getActionCommand().equals("Resume")) { nes.resume(); } else if (arg0.getActionCommand().equals("Preferences")) { showOptions(); } else if (arg0.getActionCommand().equals("Fast Forward")) { nes.toggleFrameLimiter(); } else if (arg0.getActionCommand().equals("About")) { messageBox("HalfNES " + NES.VERSION + "\n" + "Get the latest version and report any bugs at " + NES.URL + " \n" + "\n" + "This program is free software licensed under the GPL version 3, and comes with \n" + "NO WARRANTY of any kind. (but if something's broken, please report it). \n" + "See the license.txt file for details."); } else if (arg0.getActionCommand().equals("ROM Info")) { String info = nes.getrominfo(); if (info != null) { messageBox(info); } } else if (arg0.getActionCommand().equals("Open ROM")) { loadROM(); } else if (arg0.getActionCommand().equals("Toggle Fullscreen")) { toggleFullScreen(); } else if (arg0.getActionCommand().equals("Frame Advance")) { nes.frameAdvance(); } else if (arg0.getActionCommand().equals("Escape")) { if (inFullScreen) { toggleFullScreen(); } else { close(); } } else if (arg0.getActionCommand().equals("Controller Settings")) { showControlsDialog(); } else if (arg0.getActionCommand().equals("Cheat Codes")) { showActionReplayDialog(); } } @Override public void windowOpened(WindowEvent e) { } @Override public void windowClosing(WindowEvent e) { close(); } private void close() { dispose(); savewindowposition(); padController1.stopEventQueue(); padController2.stopEventQueue(); nes.quit(); } @Override public void windowClosed(WindowEvent e) { //we don't care about these events } @Override public void windowIconified(WindowEvent e) { //but java wants us to implement something for all of them } @Override public void windowDeiconified(WindowEvent e) { //so we can use the interface. } @Override public void windowActivated(WindowEvent e) { } @Override public void windowDeactivated(WindowEvent e) { } } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/utils.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes; import java.util.Locale; public class utils { private utils() {} public final static int BIT0 = 1, BIT1 = 2, BIT2 = 4, BIT3 = 8, BIT4 = 16, BIT5 = 32, BIT6 = 64, BIT7 = 128, BIT8 = 256, BIT9 = 512, BIT10 = 1024, BIT11 = 2048, BIT12 = 4096, BIT13 = 8192, BIT14 = 16384, BIT15 = 32768; public static int setbit(final int num, final int bitnum, final boolean state) { return (state) ? (num | (1 << bitnum)) : (num & ~(1 << bitnum)); } public static String hex(final int num) { String s = Integer.toHexString(num).toUpperCase(Locale.US); if ((s.length() & 1) == 1) { s = "0" + s; } return s; } public static String hex(final long num) { String s = Long.toHexString(num).toUpperCase(Locale.US); if ((s.length() & 1) == 1) { s = "0" + s; } return s; } public static int reverseByte(int nibble) { //reverses 8 bits packed into int. return (Integer.reverse(nibble) >> 24) & 0xff; } public static void printarray(final int[] a) { StringBuilder s = new StringBuilder(); for (int i : a) { s.append(i); s.append(", "); } if (s.length() >= 1) { s.deleteCharAt(s.length() - 1); } s.append("\n"); System.err.print(s.toString()); } public static void printarray(final boolean[] a) { StringBuilder s = new StringBuilder(); for (boolean i : a) { s.append(i); s.append(", "); } if (s.length() >= 1) { s.deleteCharAt(s.length() - 1); } s.append("\n"); System.err.print(s.toString()); } public static void printarray(final double[] a) { StringBuilder s = new StringBuilder(); for (double i : a) { s.append(i); s.append(", "); } if (s.length() >= 1) { s.deleteCharAt(s.length() - 1); } s.append("\n"); System.err.print(s.toString()); } public static void printarray(final float[] a) { StringBuilder s = new StringBuilder(); for (float i : a) { s.append(i); s.append(", "); } if (s.length() >= 1) { s.deleteCharAt(s.length() - 1); } s.append("\n"); System.err.print(s.toString()); } public static void printarray(final Object[] a) { StringBuilder s = new StringBuilder(); for (Object i : a) { s.append(i.toString()); s.append(", "); } if (s.length() >= 1) { s.deleteCharAt(s.length() - 1); } s.append("\n"); System.err.print(s.toString()); } public static int max(final int[] array) { int m = array[0]; for (Integer i : array) { if (i > m) { m = i; } } return m; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/video/AltNTSCRenderer.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.video; import java.awt.image.BufferedImage; import com.grapeshot.halfnes.utils; import com.grapeshot.halfnes.utils; /** * * @author Andrew */ //Direct port of Bisqwit's code on the wiki. (probably just as slow, we'll see.) //yep, it's WORSE //the expensive part is the Math function calls of course public class AltNTSCRenderer extends Renderer { public AltNTSCRenderer() { frame_width = 604; init_images(); // for (int i = 0; i < 12; ++i) { // System.err.println(inColorPhase( 3, i)); // }; } private final int[] frame = new int[width * 240]; private int frame_ptr = 0; private int frame_ctr; private int phase; private final static double attenuation = 0.746; private final static double[] levels = { -0.117f, 0.000f, 0.308f, 0.715f, 0.397f, 0.681f, 1.0f, 1.0f //0x00 0x10 0x20 0x30 }; private final static int SAMPLESPERPIXEL = 8; @Override public BufferedImage render(int[] nespixels, int[] bgcolors, boolean dotcrawl) { ++frame_ctr; if ((frame_ctr & 1) == 0) { phase = 0; } else { phase = 6; } for (int i = 0; i < 240; ++i) { double phi = (phase + 3.9 - 0.3) % 12; for (int j = 0; j < 256; ++j) { ntsc_render(nespixels[i * 256 + j]); } ntsc_decode(phi); ntsc_buf_ptr = 0; } frame_ptr = 0; return getBufferedImage(frame); } private void ntsc_render(int pixel) { int color = pixel & 0xf; int level = (pixel >> 4) & 3; int emphasis = (pixel >> 6); if (color > 13) { level = 1; } double low = levels[level]; double high = levels[4 + level]; if (color == 0) { low = high; } else if (color > 12) { high = low; } for (int i = 0; i < SAMPLESPERPIXEL; ++i, ++phase) { double signal = inColorPhase(color, phase) ? high : low; if (emphasis != 0) { if ((((emphasis & (utils.BIT0)) != 0) && inColorPhase(0, phase)) || (((emphasis & (utils.BIT1)) != 0) && inColorPhase(4, phase)) || (((emphasis & (utils.BIT2)) != 0) && inColorPhase(8, phase))) { signal *= attenuation; } } signal_levels[ntsc_buf_ptr++] = signal; } } private static boolean inColorPhase(final int color, final int phase) { return (color + phase) % 12 < 6; } private final double[] signal_levels = new double[256 * SAMPLESPERPIXEL]; private int ntsc_buf_ptr = 0; private final static int width = 604; private void ntsc_decode(final double phase) { for (int x = 0; x < width; ++x) { int center = x * (256 * SAMPLESPERPIXEL) / width + 0; int begin = center - 6; if (begin < 0) { begin = 0; } int end = center + 6; if (end > 256 * SAMPLESPERPIXEL) { end = (256 * SAMPLESPERPIXEL); } double y = 0, i = 0, q = 0; for (int p = begin; p < end; ++p) { double level = signal_levels[p] / 12.; y += level; i += level * Math.cos(Math.PI * (phase + p) / 6.); q += level * Math.sin(Math.PI * (phase + p) / 6.); } render_pixel(y, i, q); } } private void render_pixel(final double y, final double i, final double q) { final int rgb = 0xff000000 | 0x10000 * clamp(255.95 * gammafix(y + 0.946882f * i + 0.623557f * q)) + 0x00100 * clamp(255.95 * gammafix(y + -0.274788f * i + -0.635691f * q)) + 0x00001 * clamp(255.95 * gammafix(y + -1.108545f * i + 1.709007f * q)); frame[frame_ptr++] = rgb; } public static int clamp(final double a) { return (int) ((a < 0) ? 0 : ((a > 255) ? 255 : a)); } public static double gammafix(double luma) { final float gamma = 2.0f; // Assumed display gamma return luma <= 0.f ? 0.f : Math.pow(luma, 2.2f / gamma); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/video/NTSCRenderer.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.video; import java.awt.image.*; import java.util.*; import java.util.zip.CRC32; /** * * @author Andrew */ public class NTSCRenderer extends Renderer { private final static List lines; static { lines = new ArrayList<>(); for (int line = 0; line < 240; ++line) { lines.add(line); } } //hm, if I downsampled these perfectly to 4Fsc i could get rid of matrix decode //and the sine tables altogether... private final static int[][] colorphases = { //int for alignment reasons {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//0x00 {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1},//0x01 {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0},//0x02 {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0},//0x03 {0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0},//0x04 {0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},//0x05 {0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0},//0x06 {1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0},//0x07 {1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1},//0x08 {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1},//0x09 {1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1},//0x0A {1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1},//0x0B {1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1},//0x0C {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//0x0D {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},//0x0E {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};//0x0F //i would like to replace these tables with logic but it's a tricky shape //for a Karnaugh map private final static float[][][] lumas = genlumas(); private final static int[][] coloremph = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1},//X {0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0},//Y {1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1},//XY {1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1},//Z {1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1},//XZ {1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1},//YZ {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}};//XYZ //private final static float sync = -0.359f; private int frames = 0; private final float[] i_filter = new float[12], q_filter = new float[12]; private final static int[] colortbl = genColorCorrectTbl(); public NTSCRenderer() { frame_width = 704 * 3; init_images(); int hue = -512; double col_adjust = 1.2 / .707; for (int j = 0; j < 12; ++j) { float angle = (float) (Math.PI * ((hue + (j << 8)) / (12 * 128.0) - 33.0 / 180)); i_filter[j] = (float) (-col_adjust * Math.cos(angle)); q_filter[j] = (float) (col_adjust * Math.sin(angle)); } } public static int[] genColorCorrectTbl() { int[] corr = new int[256]; //float gamma = 1.2; float brightness = 20; float contrast = 1; for (int i = 0; i < 256; ++i) { float br = (i * contrast - (128 * contrast) + 128 + brightness) / 255.f; corr[i] = clamp((int) (255 * Math.pow(br, 1.3))); //convert tv gamma image (~2.2-2.5) to computer gamma (~1.8) } return corr; } public static float[][][] genlumas() { float[][] lumas = { {-0.117f, 0.000f, 0.308f, 0.715f}, //low phase //0x00 0x10 0x20 0x30 {0.397f, 0.681f, 1.0f, 1.0f} //high phase }; float[][][] premultlumas = new float[lumas.length][lumas[0].length][2]; for (int i = 0; i < lumas.length; ++i) { for (int j = 0; j < lumas[i].length; ++j) { premultlumas[i][j][0] = lumas[i][j]; premultlumas[i][j][1] = lumas[i][j] * 0.735f; } } return premultlumas; } public final float[] ntsc_encode(final int[] nescolors, final int offset, final int scanline, final int bgcolor) { //part one of the process. creates a 2728 pxl array of floats representing //ntsc version of scanline passed to it. Meant to be called 240x a frame //todo: //-make this encode an entire frame at a time //-reduce # of array lookups (precalc. what is necessary) int i, col = bgcolor & 0xf, lum = (bgcolor >> 4) & 3, emphasis = (bgcolor >> 6); //luminance portion of nes color is bits 4-6, chrominance part is bits 1-3 //they are both used as the index into various tables //the chroma generator chops between 2 different voltages from luma table //at a constant rate but shifted phase. //sync and front porch are not actually used by decoder so not implemented here //dot 0-200:sync //dot 200-232:black //dot 232-352:colorburst //dot 352-400:black //dot 520-2568:picture //dot 400-520 and 2568-2656: background color //dot 2656-2720:black //but then i'm going to chop off before dot 240 and after 2656 b/c it's not used //so after this comment, add 240 to any num. in this for dot # final float[] sample = new float[2728 - 240]; for (i = 400 - 240; i < 520 - 240; ++i) { //bg color at beginning final int phase = (i + offset) % 12; final int hue = colorphases[col][phase]; sample[i] = lumas[hue][lum][coloremph[emphasis][phase]]; } for (i = 2568 - 240; i < 2656 - 240; ++i) { //bg color at end of line final int phase = (i + offset) % 12; final int hue = colorphases[col][phase]; sample[i] = lumas[hue][lum][coloremph[emphasis][phase]]; } for (i = 520 - 240; i < 2568 - 240; ++i) { //picture if ((i & 7) == 0) { col = nescolors[(((i - (520 - 240)) >> 3))]; if ((col & 0xf) > 0xd) { col = 0x0f; } lum = (col >> 4) & 3; emphasis = (col >> 6); col &= 0xf; } final int phase = (i + offset) % 12; final int hue = colorphases[col][phase]; sample[i] = lumas[hue][lum][coloremph[emphasis][phase]]; } sample[2728 - 241] = offset; //hack to not have to deal with a tuple return sample; } public final static float chroma_filterfreq = 3579000.f, pixel_rate = 42950000.f; private final static int[] cbstphase = {240 - 240, 0, 250 - 240, 0, 248 - 240, 0, 246 - 240, 0, 244 - 240, 0, 242 - 240, 0}; //starting point for color burst (depends on offset of previous line, even values not used in a progressive signal) public final int[] ntsc_decode(final float[] ntsc, final int offset) { final float[] chroma = new float[2656 - 240]; final float[] luma = new float[2656 - 240]; final float[] eye = new float[2656 - 240]; final float[] queue = new float[2656 - 240]; final int[] line = new int[frame_w]; //decodes one scan line of ntsc video and outputs as rgb packed in int //uses the cheap TV method, which is filtering the chroma from the luma w/o //combing or buffering previous lines box_filter(ntsc, luma, chroma, 12); for (int cbst = cbstphase[offset], j = 0; cbst < 2656 - 240 - 50; ++cbst, ++j, j %= 12) { //matrix decode the color difference signals; eye[cbst] = i_filter[j] * chroma[cbst + 12]; queue[cbst] = q_filter[j] * chroma[cbst + 12]; //comment out for teal and orange filter } lowpass_filter(eye, 0.06f); lowpass_filter(queue, 0.05f); for (int i = 0, x = 492 - 240; i < frame_w; ++i, ++x) { line[i] = compose_col( ((luma[x] <= 0) ? 0 : colortbl[clamp((int) (iqm[0][0] * luma[x] + iqm[0][1] * eye[x] + iqm[0][2] * queue[x]))]), ((luma[x] <= 0) ? 0 : colortbl[clamp((int) (iqm[1][0] * luma[x] + iqm[1][1] * eye[x] + iqm[1][2] * queue[x]))]), ((luma[x] <= 0) ? 0 : colortbl[clamp((int) (iqm[2][0] * luma[x] + iqm[2][1] * eye[x] + iqm[2][2] * queue[x]))])); } return line; } public static void box_filter(final float[] in, final float[] lpout, final float[] hpout, final int order) { float accum = 0; for (int i = 12; i < 2656 - 240; ++i) { accum += in[i] - in[i - order]; lpout[i] = accum / order; hpout[i] = in[i] - lpout[i]; } } public static void lowpass_filter(final float[] arr, final float order) { float b = 0; for (int i = 0; i < 2656 - 240; ++i) { arr[i] -= b; b += arr[i] * order; arr[i] = b; } } private static int compose_col(int r, int g, int b) { return (r << 16) | (g << 8) | (b) | 0xff000000; } private final static int[][] iqm = {{255, -244, 158}, {255, 69, -165}, {255, 282, 434}}; public static int clamp(final int a) { return (a != (a & 0xff)) ? ((a < 0) ? 0 : 255) : a; } public final static int frame_w = 704 * 3; int[] frame = new int[frame_w * 240]; // Kernel kernel = new Kernel(3, 3, // new float[]{-.0625f, .125f, -.0625f, // .125f, .75f, .125f, // -.0625f, .125f, -.0625f}); // BufferedImageOp op = new ConvolveOp(kernel); @Override public BufferedImage render(final int[] nespixels, final int[] bgcolors, final boolean dotcrawl) { // multithreaded filter lines.parallelStream().forEach(line -> cacheRender(nespixels, line, bgcolors, dotcrawl)); BufferedImage i = getBufferedImage(frame); ++frames; //i = op.filter(i, null); //sharpen return i; } //ConcurrentHashMap cache = new ConcurrentHashMap(600); Map cache = Collections.synchronizedMap(new WeakHashMap(600)); //weak hash map allows things in it to be garbage collected private void cacheRender(final int[] nespixels, final int line, final int[] bgcolors, final boolean dotcrawl) { //first of all, increment scanline numbers and get the offset for this line. int offset = ((frames & 1) == 0 && dotcrawl) ? 0 : 6; offset = (4 * line + offset) % 12; //3 line dot crawl final int[] inpixels = new int[256]; System.arraycopy(nespixels, line << 8, inpixels, 0, 256); final long crc = crc32(inpixels, offset, bgcolors[line]); // //you'd think crc32 would have too many collisions but i haven't seen a one int[] outpixels; outpixels = (int[]) cache.get(crc); if (outpixels == null) { //not in cache //could do with hints from the PPU here: if the entire screen is //scrolling horizontally, the cache will be useless. outpixels = ntsc_decode(ntsc_encode(inpixels, offset, line, bgcolors[line]), offset); cache.put(crc, outpixels); } System.arraycopy(outpixels, 0, frame, line * frame_w, frame_w); } public static long crc32(int[] array, int offset, int bgcolor) { CRC32 c = new CRC32(); for (int i : array) { c.update(i); } //it's not immediately obvious, but this ONLY sets the CRC based on the //blue channel of the output. Still works well though. //You get some interesting compressiony effects if you only take the CRC //of every 20th pixel to see if your line is the same. //especially in sidescrolling things. c.update(offset); c.update(bgcolor); return c.getValue(); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/video/NesColors.java ================================================ /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.grapeshot.halfnes.video; /** * * @author Andrew */ public class NesColors { private NesColors() {} private final static double att = 0.7; public final static int[][] col = GetNESColors(); public final static byte[][][] colbytes = NESColorsToBytes(col); private static int[][] GetNESColors() { //just or's all the colors with opaque alpha and does the color emphasis calcs //This set of colors matches current version of ntsc filter output int[] colorarray = { 0x606060, 0x09268e, 0x1a11bd, 0x3409b6, 0x5e0982, 0x790939, 0x6f0c09, 0x511f09, 0x293709, 0x0d4809, 0x094e09, 0x094b17, 0x093a5a, 0x000000, 0x000000, 0x000000, 0xb1b1b1, 0x1658f7, 0x4433ff, 0x7d20ff, 0xb515d8, 0xcb1d73, 0xc62922, 0x954f09, 0x5f7209, 0x28ac09, 0x099c09, 0x099032, 0x0976a2, 0x090909, 0x000000, 0x000000, 0xffffff, 0x5dadff, 0x9d84ff, 0xd76aff, 0xff5dff, 0xff63c6, 0xff8150, 0xffa50d, 0xccc409, 0x74f009, 0x54fc1c, 0x33f881, 0x3fd4ff, 0x494949, 0x000000, 0x000000, 0xffffff, 0xc8eaff, 0xe1d8ff, 0xffccff, 0xffc6ff, 0xffcbfb, 0xffd7c2, 0xffe999, 0xf0f986, 0xd6ff90, 0xbdffaf, 0xb3ffd7, 0xb3ffff, 0xbcbcbc, 0x000000, 0x000000}; //the older rgb palette I was using, may make this switchable. // int[] rgbarray = {0x757575, 0x271B8F, 0x0000AB, // 0x47009F, 0x8F0077, 0xAB0013, 0xA70000, 0x7F0B00, 0x432F00, // 0x004700, 0x005100, 0x003F17, 0x1B3F5F, 0x000000, 0x000000, // 0x000000, 0xBCBCBC, 0x0073EF, 0x233BEF, 0x8300F3, 0xBF00BF, // 0xE7005B, 0xDB2B00, 0xCB4F0F, 0x8B7300, 0x009700, 0x00AB00, // 0x00933B, 0x00838B, 0x000000, 0x000000, 0x000000, 0xFFFFFF, // 0x3FBFFF, 0x5F97FF, 0xA78BFD, 0xF77BFF, 0xFF77B7, 0xFF7763, // 0xFF9B3B, 0xF3BF3F, 0x83D313, 0x4FDF4B, 0x58F898, 0x00EBDB, // 0x444444, 0x000000, 0x000000, 0xFFFFFF, 0xABE7FF, 0xC7D7FF, // 0xD7CBFF, 0xFFC7FF, 0xFFC7DB, 0xFFBFB3, 0xFFDBAB, 0xFFE7A3, // 0xE3FFA3, 0xABF3BF, 0xB3FFCF, 0x9FFFF3, 0xaaaaaa, 0x000000, // 0x000000}; for (int i = 0; i < colorarray.length; ++i) { colorarray[i] |= 0xff000000; } int[][] colors = new int[8][colorarray.length]; for (int j = 0; j < colorarray.length; ++j) { int col = colorarray[j]; int r = r(col); int b = b(col); int g = g(col); colors[0][j] = col; //emphasize red colors[1][j] = compose_col(r, g * att, b * att); //emphasize green colors[2][j] = compose_col(r * att, g, b * att); //emphasize yellow colors[3][j] = compose_col(r, g, b * att); //emphasize blue colors[4][j] = compose_col(r * att, g * att, b); //emphasize purple colors[5][j] = compose_col(r, g * att, b); //emphasize cyan? colors[6][j] = compose_col(r * att, g, b); //de-emph all 3 colors colors[7][j] = compose_col(r * att, g * att, b * att); } return colors; } private static byte[][][] NESColorsToBytes(int[][] col) { byte[][][] colbytes = new byte[col.length][][]; for (int i=0; i> 16) & 0xff; } private static int g(int col) { return (col >> 8) & 0xff; } private static int b(int col) { return col & 0xff; } private static int compose_col(double r, double g, double b) { return (((int) r & 0xff) << 16) + (((int) g & 0xff) << 8) + ((int) b & 0xff) + 0xff000000; } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/video/RGBRenderer.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.video; import com.grapeshot.halfnes.video.NesColors; import com.grapeshot.halfnes.video.Renderer; import java.awt.image.BufferedImage; /** * * @author Andrew */ public class RGBRenderer extends Renderer { public RGBRenderer() { frame_width = 256; init_images(); } @Override public BufferedImage render(int[] nespixels, int[] bgcolors, boolean dotcrawl) { //and now replace the nes color numbers with rgb colors (respecting color emph bits) for (int i = 0; i < nespixels.length; ++i) { nespixels[i] = NesColors.col[(nespixels[i] & 0x1c0) >> 6][nespixels[i] & 0x3f]; } return getBufferedImage(nespixels); } } ================================================ FILE: src/main/java/com/grapeshot/halfnes/video/Renderer.java ================================================ /* * HalfNES by Andrew Hoffman * Licensed under the GNU GPL Version 3. See LICENSE file */ package com.grapeshot.halfnes.video; import java.awt.image.BufferedImage; import java.awt.image.DataBufferInt; import java.awt.image.WritableRaster; /** * * @author Andrew */ public abstract class Renderer { int frame_width; /* there's stuff involving this variable that's much uglier than it needs to be because of me not really remembering how abstract classes work */ int clip = 8; int height = 240 - 2 * clip; BufferedImage[] imgs = {null, null, null, null}; int imgctr = 0; protected final void init_images() { for (int i = 0; i < imgs.length; ++i) { imgs[i] = new BufferedImage(frame_width, height, BufferedImage.TYPE_INT_ARGB_PRE); } } public abstract BufferedImage render(int[] nespixels, int[] bgcolors, boolean dotcrawl); public void setClip(int i) { //how many lines to clip from top + bottom clip = i; height = 240 - 2 * clip; } public BufferedImage getBufferedImage(int[] frame) { final BufferedImage image = imgs[++imgctr % imgs.length]; final WritableRaster raster = image.getRaster(); final int[] pixels = ((DataBufferInt) raster.getDataBuffer()).getData(); System.arraycopy(frame, frame_width * clip, pixels, 0, frame_width * height); return image; } } ================================================ FILE: src/main/java-templates/com/grapeshot/halfnes/ProjectInfo.java ================================================ package com.grapeshot.halfnes; /** * Specifies the version and url as defined in the POM * */ public interface ProjectInfo { String VERSION = "${project.version}"; String URL = "${project.url}"; } ================================================ FILE: src/main/resources/changelog.txt ================================================ HalfNES Version Notes: 062 (3/25/2018) -first release in 2 years -fixed temp file creation issue -fixed Micro Machines -NSF and APU improvements 061 (2/16/2016) -Minor speed improvements and code cleanups -Improved VRC7 Envelopes again with values properly calculated from docs -Audio output is done in stereo now (though no interface to pan channels) -Build system changed to Maven -Framework for unit tests is begun (incl work on headless mode) -JavaFX UI for the RetroPi is included but not used by default. (It needs more work for desktop use.) 060 (8/29/2015) -Fixed Battletoads and Battletoads: Double Dragon freezes on certain levels -Reduced jerkiness of scrolling in 50 fps games (not eliminated entirely unless your monitor is also set to 50 FPS) -Improved performance a bit, there was some slow cheat engine code constantly running 059 (7/28/2015) -Fixed certain FDS NSFs that wanted to write to bankswitched areas -Added PAL and Dendy (Hybrid PAL console that plays unmodified NTSC games) support -Fixed negative scroll values (Galaxian, TMNT) -Fixed envelope decay for VRC7 sound -Deal with games that read $2004 (OAM address) during rendering 058 (6/14/2015) -Added FDS sound chip support (NSFs only) -Made more scanline counters cycle accurate (everything except 4 multicart mappers) 057 (7/30/2014) -PPU is now pixel accurate. Meaning that many glitchy games are now completely fixed. However it also means that performance is worse. -MMC3 and MMC5 scanline counters have been rewritten to be more accurate. Fixed games: -Marble Madness -Laser Invasion -Mickey's Adventures in Letterland -Rad Racer -Slalom -Tiny Toon Adventures (the status bar was off by one scan line before) -Mega Man 3 (displays same glitchy lines as real hardware) -Every Namco 163 game (scanline counter was broken) Also passes several more of blargg's PPU and MMC3 tests. I haven't fixed all of the MMC3 based multicart mappers yet. 056 (7/17/2014) -Multithreaded NTSC filter for better performance -Rewrote CPU/PPU timing entirely (passes many timing tests that used to fail) -Fixed VRC7 feedback (Lagrange Point now sounds almost completely correct) -Fixed loading of large NSF files. -Many other minor fixes over the past year. 055(9/7/2013) -Added support for NSF music files. -Added mapper for Super Spike V'Ball/Nintendo World Cup combo cartridge -Changed sprite DMA timings (fixes Battle Chess again) 054 (8/13/2013) -Changed NES color palette to match NTSC filter colors -Fixed VRC 7 Vibrato, no longer crackles -Improved speed of NTSC filter some more -General code cleanups (more are still necessary) -Provided a more helpful error on stdout when the jInput lirary is missing 053 (2/10/2013) -Added Action Replay and Game Genie code support -Now turning on sound filtering by default 0.052 (10/14/2012) -Changed the APU timer code to run more efficiently (filtering now has very little performance penalty) -Fixed GI Joe, Burai Fighter -Fixed title screen of Brush Roller -Fixed intro of Lagrange Point 0.051 (9/17/2012) Many more mappers added for this release. Added Mappers: 15 (100 in 1 Contra Function 16) 33 and 48 (Taito TC0190FMC) 41 (Caltron/Myriad 6 in 1) 58 (Game Star multicart) 60 (reset based 4 in 1) 61 (super 42-in 1) 62 (700 in 1 Multicart) 65 (Irem H-3001) 67 (Sunsoft-3) 72 (Jaleco JF-17) 73 (VRC3) 75 (VRC1) 76 and 206 (Tengen MIMIC-1) 79 (NINA-3) 86 (Jaleco JF-13) 88 (NAMCOT-3433/3443) 92 (Jaleco JF-19) 112 (Chinese MIMIC-1 clone) 113 (NINA-6) 154 (NAMCOT-3453) 182 (Chinese MMC3 clone) 201 (8-in-1, 21-in-1 multicarts) 212 and 213 (9999999-in-1) 214 (Super Gun 20-in-1) 225 (58/64/72-in-1 multicarts) 226 (20-1n-1) 229 (31-in-1) 231 (20 in 1 multicart) 241 (Fan Kong Jing Ying) 242 (Wai Xing Zhan Shi / Dragon Quest VIII board) 244 (Decathlon) 255 (110/115 in 1 multicarts) Other Changes: -Changed decay after key off on VRC7 sound chip -Changed color settings on NTSC renderer and rewrote encoding portion for better speed (64 bit JVM also makes this faster) and no more horizontal bars. -Passes sprite overflow basics test -Fixed reset code to reset mapper before CPU -Rom loader handles games with unusual/incorrect headers more gracefully -APU square wave frequency is now correct (would go out of tune at higher frequencies before) -Full screen mode with maintain aspect ratio on now stretches to fill screen -Added .exe and .sh versions of HalfNES to the standard JAR file to work around systems where JAR files are difficult to make executable. 0.050 (8/9/2012) Lots of minor improvements for this release, and new mapper support as well. Thanks to Nawrot Kryzystof for many of these fixes. Added Mappers: Mapper 10 (Fire Emblem, Famicom Wars) Mapper 19 (Megami Tensei II, Rolling Thunder (J), etc.) with expansion sound Mapper 34 (Impossible Mission II) Mapper 38 (Crime Busters) Mapper 64 (Klax, Rolling Thunder (U)) Mapper 70 (Kamen Rider Club) Mapper 89 (Mito Koumon) Mapper 93 (Fantasy Zone (J)) Mapper 94 (Senjou no Ookami) Mapper 97 (Kaiketsu Yanchamaru) Mapper 107 (Magic Dragon) Mapper 140 (Bio Senshi Dan) Mapper 152 (Arkanoid 2) Mapper 180 (Crazy Climber) Mapper 185 (Spy Vs Spy (J) but NOT Banana) Mapper 200 (36-in-1 Multicart) Mapper 203 (35-in-1 Multicart) Mapper 240, 246 (More Chinese original games) Fixed: -Fixed DMC timing (passes DMC basics test and makes Bee 52 work better) -CPU interrupt is delayed so CLI+SEI only causes 1 interrupt after SEI (fixes Break Time, Hebereke) -Fixed APU frame counter reset to within 1 CPU opcode of correct timing -Fixed APU sweep behavior when clocked then immediately reset (Super Mario Bros. sound effects, Driar wrong notes in music) -Updated VRC7 sound to use new patch set from nesdev, changed the way modulator feedback works, increased envelope attack rate -Added CRC to options menu to make verifying dumps easier -Fixed Uchuusen - Cosmo Carrier mirroring -Fixed bug with file dialog where it wasn't clearing the old name when loading a ROM by double clicking Broke: - Lagrange Point intro was broken by the CPU interrupt change. Game is still playable. 0.049 (7/9/2012) -CPU core is much improved. All undocumented opcodes should now be implemented and cycle timing is more correct. -Fixed Low G Man crashing after the first boss -APU is now synchronized exactly with CPU (lowers performance, but fixes Dreamworld Pogie) -Made DMC sample channel timing more accurate, which fixed Bee 52 and several DPCM letterbox demos and made Fire Hawk at least show the titlescreen/intro. (Still crashes in game.) -Made the audio high pass filter more aggressive to eliminate clipping and noise -Fixed VRC7 audio envelopes (Rate was right but notes couldn't be turned off while in the decay phase. Now that works.) -Fixed PPU OAM reading to pass oam_stress test and used blargg's NES power up palette 0.048 (6/5/2012) You can now change all options without having to restart the emulator. Also changed the set of values used for the VRC7 registers and did some code cleanups in various places. Significant rewrite is needed to improve basic timing accuracy some time soon. 0.047 (5/12/2012) VRC7 channel volumes and modulation are correct now. Still not quite like the real thing because envelopes are based off info from the data sheet and not the actual implementation. (Plus, no one has ever read the presets for the built in instruments from the VRC7; I've tested several sets of approximations.) Releases will probably be coming much slower in the future. 0.046 (4/7/2012) -VRC7 audio (Lagrange Point) sounds much closer to the real thing -Fixed several UI bugs: -menu bar is no longer visible in fullscreen on some systems -no longer possible to load a ROM or open the preferences window in fullscreen as this could sometimes cause hangs -Full screen now defaults to maintain aspect ratio (doesn't stretch and look terrible on widescreen displays) -Now handles mising JInput library more gracefully -NTSC filter is somewhat faster (still not really real time) and disables dot crawl in Battletoads as it should. -Changed audio core so it shouldn't clip with sound filtering on any more -Found a solution to the packaging problem! Library folder is no longer necessary. Next version I will be switching to LWJGL for the interface as it should add a decent speed improvement and the NTSC filter will be MUCH faster if written as a shader. 0.045 (3/8/2012) -Fixed some undocumented opcodes to allow homebrew game Driar to run -Fixed bug with special characters in ROM filenames causing a crash -Added gamma correction to NTSC filter and changed filter parameters yet again. still not sure what looks best, and there are a few artifacts here that don't show up on the real thing unless you're using a cheap capture card. If you want to experiment, the brightness, contrast, and gamma correction is at the top of the NTSCFilter file in the code. Please use it with smoothing on or it'll look bad no matter what. -now change the aspect ratio when ntsc filter is used. -Added mapper 85 (VRC7) (Lagrange Point and Japanese Tiny Toons 2) -Partially implemented VRC7 sound (envelopes and vibrato are still missing) -Small speed improvements (except in the ntsc filter, that's just as slow). 0.044 joystick test (1/9/2012) - Added preliminary joystick support (thanks to Zlika) To use this, the lib folder must be extracted in the same location as halfnes, and also the program must be run from the "run.bat" file. The first detected gamepad will be used as Controller 1, and the second will be Controller 2. Currently the buttons used are not configurable. - Also improved the NTSC filter, color is perfect now and it looks better than Blargg's. (Sadly, the speed has taken another hit; I think the problem is cache churn due to the order I operate in?) 0.043 (12/27/2011) Last version for the year. -Fixed many more bugs and edge cases with the file loading, including a crash that only seemed to happen on Linux when loading a ROM from the command line -Made some changes to the sprite rendering code, now pass more of blargg's sprite hit tests and the Snake Pit level in Battletoads shouldn't flicker any more. (I haven't actually tested this since I can't get back there now.) 0.042 (12/12/2011) -Added "smooth video" option -Improved the NTSC filter (run it full screen with the video smoothing option on and it looks very nice. sadly it is still jut as slow as it was.) -Fixed bug in VRC6 audio that muted both expansion sound channels instead of just one -Fixed crash on loading a .nes file with a bad header 0.041(11/6/2011) -Added experimental NTSC graphics filter. Wriiten from scratch, not a port of Blargg's NTSC code. This looks quite a bit more like a real old terrible 80's TV. Unfortunately, it's still very slow. -Fixed Punch-Out, which was broken since version 0.039 0.040(10/17/2011) Added Mapper 68 (Afterburner and Afterburner II) Monkeyed around with the audio code, MMC5 sound channels had the wrong pitch and audio was clipping at full volume. Both of those should be fixed. Also fixed sound popping when pausing and unpausing. And in the time it took me to do that byuu made in a week what took me a year. eh. 0.039 (9/24/2011) Added mappers 5 and 119. Castlevania III works now and so do all other MMC5 games except for Laser Invasion and two Japanese exclusive ones. Also fixed one tiny almost unnoticeable bug with drum sounds cutting off a tiny bit early that has been there for months unnoticed. 0.038 (8/12/2011) -Added Action 52 mapper (228) -Improved audio quality some more -Made the screen repaint even when paused -Behind the scenes changes to make things easier to port -Some speed improvements as well If there is a game that you want to play that's broken or mapper unsupported, let me know! Otherwise I think I'm just going to port this to Android next. 0.037 (7/7/2011) -Fixed Guardian Legend, Dizzy's Adventure, others (APU interrupt bugs again) -Improved performance of sprite rendering code -Fixed broken Reset option in menu Current known broken games: Break Time, Big Nose Freaks Out, Bigfoot 0.036 (6/20/2011) -Added Mapper 9 (Punch-Out!!) -Fixed Teenage Mutant Ninja Turtles (leftover bug from last PPU rewrite) -Fixed Jurassic Park (same problem as Twin Cobra, changed the code so both worked) -Increased audio volume -Added greyscale and color emphasis to PPU (Noah's Ark is maybe the only game this is visible in) -Fixed off-by-one error causing scanline 261 to be run twice (fixed some timing issues, maybe caused a few more) -Completely changed the way the PPU renders sprites - broke some games (Guardian Legend and some Codemasters games that never looked right anyway) but fixed screen shaking and single scanline glitches in a LOT of games. -Also, sprite flicker is back from the old days. 0.035 (6/9/2011) -Now cropping off the top and bottom 8 pixels of the video output, since these are not visible on most TVs and a lot of games render garbage on those lines. -Added volume slider to options dialog (and rewrote the sound output code as well.) -Fixed a lot of sound bugs. Crystalis, Zombie Nation, A Boy And His Blob etc. all sound right now. -Fixed Twin Cobra 0.034 (5/22/11) -Fixed full screen code for people who still had flicker at bottom -Fixed Bill and Ted's Excellent Adventure -Rewrote some code to enable putting ROM @ $6000-7fff -Implemented Mapper 69 (Sunsoft FME-7) and the extra sound hardware for the Japanese version of Gimmick. (If you haven't ever played Gimmick, find the ROM and give it a go sometime. Great game.) -Also added mappers 78 (Holy Diver) and 87 (Twinbee). 0.033 (5/10/2011) -Improved MMC3 mapper (Fixed Teenage Mutant Ninja Turtles 3, Smash TV) -Improved audio code more, added an option to enable audio filtering so a separate compile isn't required -Tied expansion audio into the regular audio code -Made full screen support more robust (let me know if it's still broken on your XP machine, but it works on mine) 0.032 (4/26/2011) The most notable improvement is the audio. I'm compiling 2 versions this time - one uses a linear audio filter and the other uses point samples. The linear audio filter makes the whole code run about twice as slow (Java is really not very good at doing anything 2 million times a second), but it sounds SO much better I couldn't throw it out for performance reasons. However, it's still a bit buggy and completely breaks VRC6 audio for some reason. Also, added option for changing audio sample rate to the options dialog, tweaked the volumes of all the audio channels to be more balanced with each other, and probably cleaned up some things since last release that I've forgotten about now. 0.031 (4/3/2011) -Rewrote PPU to draw only 1 scanline at a time, instead of 8 scanlines like before. (should fix various glitchy raster effects and status bars in various games) Performance should actually be increased for most games. -removed the old tile caching system as it is no longer necessary. -Fixed the sprite priorities -improved VRC6 audio -made the VRC6 expansion audio work for the games other than Castlevania 3 0.030 (3/27/2011) -Rewrote the audio system to eliminate more unnecessary method calls -Added Mapper 24 and 26 (Japanese Castlevania III) including the expansion sound chips! -Added a full screen mode (still a bit buggy; fast forward doesn't work when in fullscreen for some reason.) -added ability to drag and drop ROM files into the window to load them -rearranged a couple of the keyboard shortcuts -added a frame advance key. 0.029 (3/8/2011) -Rewrote the CPU timing system, so the NES's timing is a lot more accurate (and faster as well; eliminated about 2 million unnecessary method calls per frame, which means that I get about 40 extra FPS.) -Added support for Mapper 11 (Color Dreams) -Mapper fixes to Mappers 1 and 4 (Fixed Dragon Warrior 3 + 4, Kickle Cubicle) -Added a proper error message for trying to load a UNIF file. 0.028 (3/2/2011) Rewrote/refactored a bunch of code to make things more object oriented. Also changed the display code to use Java's double buffering scheme instead of my own hackish method, which MAY have made things a bit faster but definitely fixed that occasional flicker that was there before. (Simplified the code, too!) Also made some changes to the sound engine, so Contra and a few other things sound closer to how they should. Next update will hopefully bring more visible improvements. 0.027.2 (2/12/2011) perhaps THIS will solve the problems with Windows XP. (Last version worked ok on the first XP machine I tried, but not the second.) 0.027.1 (2/11/2011) Switched back to the old frame limiter code, now things should hopefully work right on Windows XP again. Also fixed the crash when audio was disabled. 0.027 (2/4/2011) Since I'm trapped at home in a snowstorm with nothing else to do, might as well release. -Modified MMC3 scanline counter, which fixed Super Mario 3 and Silver Surfer -Made the APU counter count 4x a frame instead of 5 (off by one error) which makes music in a lot of older games sound closer to how it should be. 0.026.1 (2/1/2011) -Added support for Sunsoft-01 and Konami VRC2 and VRC4 mappers. VRC4 is still not quite correct... status bar flickers in Parodius, but Gradius II, the Japanese version of Contra, and Bio Miracle Bokutte Opa all work fine. -Made sound keep playing while fast forwarding -Rewrote all the frame limiter code again (need to test on a slower machine with XP) -Improved speed by making sure that I wasn't regenerating the entire tile cache every time the game wrote to the mapper, even if the tiles didn't change. 0.025 (1/25/2011) -Fixed the stupid stupid bug that would probably make the file dialog impossible to open on any system that hasn't had HalfNES on it before! (remember: if you haven't tested it, it does not work.) -Changed the file dialog to one that doesn't look terrible on a Mac (but now I can't filter files by extension on Windows. oh well.) -Added keyboard shortcuts to the menus and rearranged them a bit -Added a fast forward toggle -Fixed mapper 66 -Fixed controller reading for Paperboy and Captain Planet -the palette mirroring code passes blargg's test now -Background of Kirby's Adventure fixed... that one was because the first byte of expansion RAM was always write protected. Oops. -SMB3 has stopped working completely. I'll figure out why soon. 0.024 (1/16/2011) -Added proper options dialog for changing screen size and keymappings (but you need to restart the emulator to apply the new settings - will fix that sooner or later but I need to write code to completely rebuild the window first.) -Removed the old INI file - now settings are saved in your home folder -Now remembers the position of the window and the last folder you loaded a ROM from -Fixed a few more bugs in the graphics code so now the intros of Solstice and Ninja Gaiden look the way they should. 0.023 (1/4/2011) Bugfixes: -The Reset command didn't do anything, now it does. -Gradius and Devil World work properly again and Back to the Future works better (I used && when what I meant was ||). -I now realize that file loading doesn't work very well on a Mac (and the file dialog is terrible too!), so I'll work on that. 0.022 (1/3/2011) Wow, it's been a while. Added Player 2 controller support, can remap the buttons in the settings.txt file. Improved rendering: Gauntlet runs full speed on my computer when it didn't before, the status bars of Zelda II and Ninja Gaiden now look right, in general performance is about 20 percent better because the drawing code is more efficient. Back to the Future works but has random unexplained glitches. Made a few additional tweaks to the MMC3 code, now Might and Magic works but SMB3 is unchanged. Also eliminated a potential crash after attempting to load a game with an unsupported mapper. Changes to the audio code: Excitebike and a lot of other early games that used the sweep feature on the square wave channels should be correct now, Super Mario Brothers finally sounds right. Also, this works. http://kkfos.aspekt.fi/2010/11/14/4-bit-pcm-on-nes-using-the-pulse-channel/ 0.021 (12/15/2010) Added mappers 66 and 71 (SMB/Duck Hunt and Codemasters, respectively). Also made background sprites actually render behind the background, and fixed sprite priorities for 8x16 sprites (They were reversed before). If you're having trouble with SMB3, make sure that you have the PRG1 version of the ROM. Even then, it still freezes on the title screen half the time when you press Start... if it does this, reload the ROM and try it again. Once you start the game successfully though it should be playable. There's just something the title screen does that throws timing off. 0.020 (12/8/2010) Fixed the missing sprites bug and games with a status bar on the bottom. Super Mario 3, Tiny Toon Adventures, Marble Madness, Kirby's Adventure and Battletoads are playable. (Tiny Toons doesn't quite put the status bar in the right place, but it's not too far off.) Fixed 4-screen mirroring (Gauntlet) Also added mapper 34 support (Deadly Towers) Dragon Warrior 3 + 4 still won't start, Zelda II and Crystalis still have problems. 0.019 (12/1/2010) Fixed the worst of the scrolling bugs. Contra, Castlevania 2, Blaster Master, and many other games are now actually playable. Also, it seems that Yo Noid! crashed the emulator (because bitwise and is NOT the same thing as modulus when you don't have a power of 2!) so I very reluctantly fixed that as well. Known Issues: -Jump sound doesn't cut off in world 1-2 of SMB -Zelda II won't scroll correctly until real sprite 0 hit is implemented -Most games with a status bar on the bottom won't display that bar -Sprites missing in Tiny Toon Adventures, Little Nemo -DuckTales status bar uses wrong graphics -Mario's eyes are missing in SMB2 -Basically every racing game uses the same scrolling trick that won't look right -SMB3 and Marble Madness both crash and Silver Surfer resets itself 0.018 (11/24/2010) Timing fixes - Kid Icarus, Solomon's Key, Adventures of Lolo 2, Jackal are now playable. Fixed a couple issues with the audio as well. (Periodic noise works, and channels don't buzz when the periods are set to zero.) Mega Man 2 is where this improvement is most noticeable. The OS default look and feel is used instead of the Java default now, which means the Open dialog is improved. Saved games should always save on close now, no matter how the window is closed. 0.017 (11/21/2010) Mapper 7 (ANROM) and Mapper 4 (MMC3) are now supported. Unfortunately, most of those now supported games have graphical glitches because they change the scrolling in the middle of a frame and that isn't handled properly yet. Also made remapping keys from the INI file ACTUALLY work (sorry!) and prevented left and right from registering at the same time because that causes problems in some games. 0.016 (11/16/2010) Audio - Sweep and DMC channel supported. Also fixed the frame limiter. Added a way to change keybindings (if you can look up Swing keycodes) - see "settings.txt" file. Removed options dialog for the moment since it didn't do anything. 0.015 (Not Released) Fixes to MMC1, addition of battery save support, and some unfortunate frame limiter bugs that it took a while to track down. 0.014 (11/1) Completely rewrote the sound core, it's an order of magnitude better sounding than it was. Slower,too, but that was necessary. Now updates sound every time something changes. Envelopes are correct too. Can make it faster by moving the counters forward in larger increments since it doesn't generate samples at 2 Mhz anyway. Also added in frameworks for options dialog, about box, and command line args support. Missing still: Sweep unit, noise channel loop flag (MM2 Quickman stage), all of the DMC stuff, vertical scrolling, just about everything about the PPU,really. And half of MMC1 roms still don't boot,and if I want to make the options window et cetera work right I'm going to need to re-abstract the interface away from the actual emulation code. Why did I change that in the first place? Plus all the other older stuff. ================================================ FILE: src/main/resources/todo.txt ================================================ Todo List For HalfNES: - Add FDS support - Add rest of the expansion sound for MMC5 (PCM out is not working right) - Work on audio filtering (Yes it's better now, but could still use some work.) Need a FIR or IIR filter of some sort but also have to decimate by a non integer amount WITHOUT upsampling, because 2 million samples a second is too hard to process as is. Not sure how to write one of those. Best solution is probably FFT based somehow. Real NES uses very simple RC lowpass and highpass filters, that's mostly what I do now but the amt of filtering is sample rate dependent/other problems etc. -If run on my laptop while it's having the sound problem, the audio buffer write call blocks forever and nothing will run. Is there anything I can do about that? actually it looks like the bug is not in my own code See https://community.oracle.com/thread/2381571 - Fix occasional single scanline errors, random horizontal glitches in Slalom, Rad Racer, 3D World Runner etc. I did move to a pixel based renderer but the CPU is still only cycle accurate and plenty of other things are still only approximate. - Fix the frame limiter so that it won't underrun the audio buffer every time there's a lag spike - also deal with audio popping in fullscreen mode (I think this is caused by the framerate being fixed by the buffer waiting at 60.0 so not enough audio samples are generated but I'm not sure) This is dealt with by increasing the audio buffer size for now. - Deal better with non 60 hz display refresh rates (Every recent Intel laptop is set to 50 hz on battery by default.) - Add more graphics filters (HQ2x), develop an OpenGL rendering path, rewrite the NTSC shader in shader language for speed. Also try incl. scanlines and CRT phosphor decay effects. - Add Savestates, someday (once class structure is pretty much settled). - Also stuff with controller wiring and interrupts, and if there's a Zapper in use the controller ports need to have access to the display as it's being drawn, and all of this needs to support catch up operation in some way. - Some games freeze when reset with Ctrl+R (missing mapper reset function) Action 52 needed this. What else? - Use better synchronization with less method calls (options?) - Add a different key listener for some of the menu options (like Pause and Fast Forward) and also the toggles so they don't toggle on and off really quickly when I hold the key down. (why did you think fast forward was control - space?) Also fix inability to pause/single step in fullscreen nowadays - Fix DMC interrupt timing for Bee 52, Big Nose Freaks Out - Find out if the original ver StarsSE demo ever really worked on real hardware Maybe make a version of Chris Covell's Stars SE demo that uses the sweep workaround to change the high bits of the pitch during the arpeggios to get rid of the unwanted phasing effects? - Change all scanline counters to go off PPU clocks so i can deprecate NotifyScanline - Make the NTSC filter run on the GPU! Things I can't do without adding a CRC database: - implement the WRAM disable bit for Mapper 4 (three different implementations!) (fixed for now: Low G Man is special cased to have no PRG RAM on the board, since it never did anyway. Everything else is probably fine since the main reason for WRAM write protection, which is the CPU overwriting SRAM when jumping off somewhere strange due to a bad connection on the cartridge slot, can't happen on the emulator.) - Same for Mapper 1. Making SOROM work was hard enough. - Sorting out the mappers that are really multiple mappers in one number (codemasters one especially!) - Need to add iNES 2.0 submapper support - UNIF Things I probably can't fix at all: - DMC samples shouldn't always steal 4 cycles (depending on the current instruction being executed), and should only take 2 cycles during sprite DMA. (The belief used to be that it would read wrong data during sprite DMA, but it doesn't.) This is what's breaking The Guardian Legend when there are too many enemies on screen. (THINK I fixed the broken bit there when changing things to pass DMC test.) Broken Games To Fix: - Laser Invasion (white screen on scrolling sometimes. otherwise looks better than it was) - Metal Slader Glory - Batman:ROTJ title screen (FME - 7 now has accurate scanline counter but this remains) - Caltron 6 in 1 (Very slow text scroll in Cosmo Cop) this has to do with reading $2002 in a loop and the NMI. - Need to make the CPU cycle accurate to pass all of blargg's timing tests (as opposed to doing all reads and writes the opcode needs on the same cycle.) I have a hack in place for Battletoads, but it's not good long term. Need a coroutine library that doesn't break my workflow, or function templates Codemasters games broken by DMC IRQ: - Bee 52 - MIG - 29 Soviet Fighter (needs better dmc timing!) - Fire Hawk (maybe this is freezing on Sprite 0 now.) - Big Nose Freaks Out (glitchy in 035, completely broken in 036, back to glitchy in 049.) - Bandit Kings of Ancient China doesn't redraw map properly (broken ExGrafix?) no it needs to map RAM to 0x8000, there's a note in the mapper docs but I still can't get it working correctly. - Just Breed freezes during intro (fine if you skip it) - Metal Slader Glory is all iknds of messed up. - Huge Insect depends on obscure behavior of modifying OAM address during rendering - Region autodetect is not going to work on most iNES 1.0 ROMs unless I have a database - Until tonight I hadn't heard most of Strobe - Zberia or Strobe - Return to the Blip They break in Nestopia the way they do in my emu; in Nintendulator they are MUCH longer. Well that's because they have bad headers. And now I've catered to the brokenness. - Emulate obscure sprite overflow behaviors - Madara sound test doesn't work unless I get ingame and reset (forgotten initialization?) - At least 3 Codemasters games depend on $2004 reads tracking internal sprite eval state (Micro Machines, Dizzy the Adventurer, Bee 52, big nose freaks out) Big nose also uses DPCM IRQs and some godawful mess of sprite 0 hit and writing to 2007 while rendering. need to rewrite for Huge Insect anyway. Possibility of massive bugs when PC is zero (but how would you execute off the end of memory in any practical NES program?) ================================================ FILE: src/test/java/com/grapeshot/halfnes/JInputTest.java ================================================ package com.grapeshot.halfnes; import net.java.games.input.Controller; import net.java.games.input.ControllerEnvironment; import org.testng.annotations.Test; import java.util.Arrays; /** * Created by KlausH on 29.11.2015. */ public class JInputTest { static { JInputHelper.setupJInput(); } @Test public void testJInput() { ControllerEnvironment controllerEnvironment = ControllerEnvironment.getDefaultEnvironment(); Controller[] controllers = controllerEnvironment.getControllers(); System.out.println(String.format("%s controllers found.", controllers.length)); Arrays.asList(controllers).forEach(controller -> { System.out.println(String.format(" %s (%s)", controller, controller.getType())); }); } } ================================================ FILE: src/test/java/com/grapeshot/halfnes/nestest/NesTest.java ================================================ package com.grapeshot.halfnes.nestest; import com.grapeshot.halfnes.NES; import com.grapeshot.halfnes.mappers.BadMapperException; import com.grapeshot.halfnes.ui.ControllerInterface; import org.testng.annotations.Test; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; /** * Created by KlausH on 28.11.2015. */ public class NesTest { @Test public void nesTest() throws BadMapperException { NES nes = new NES(null); nes.loadROM("src/test/resources/nestest/nestest.nes", 0xC000); nes.setControllers(mock(ControllerInterface.class), mock(ControllerInterface.class)); //log all instructions executed to compare with real nestest.log nes.getCPU().startLog("src/test/resources/nestest/compare.log"); while (nes.runEmulation) { //runs until hits a KIL opcode which is a few instructions after the //official log finishes. nes.frameAdvance(); } //log should be at least 8992 lines //I don't actually compare the logs in this test yet. //check some bytes of RAM for successful test result values System.err.println(nes.getCPURAM().read(0)); System.err.println(nes.getCPURAM().read(1)); System.err.println(nes.getCPURAM().read(2)); System.err.println(nes.getCPURAM().read(3)); assertEquals(nes.getCPURAM().read(0), 0); assertEquals(nes.getCPURAM().read(1), 255); assertEquals(nes.getCPURAM().read(2), 255); assertEquals(nes.getCPURAM().read(3), 255); } } ================================================ FILE: src/test/resources/nestest/compare.log ================================================ C000 4C JMP $C5F5 PC:C001 A:00 X:00 Y:00 P:24 SP:FD CYC:0 SL:0 C5F5 A2 LDX #$00 PC:C5F6 A:00 X:00 Y:00 P:24 SP:FD CYC:9 SL:0 C5F7 86 STX $00 PC:C5F8 A:00 X:00 Y:00 P:26 SP:FD CYC:15 SL:0 C5F9 86 STX $10 PC:C5FA A:00 X:00 Y:00 P:26 SP:FD CYC:24 SL:0 C5FB 86 STX $11 PC:C5FC A:00 X:00 Y:00 P:26 SP:FD CYC:33 SL:0 C5FD 20 JSR $C72D PC:C5FE A:00 X:00 Y:00 P:26 SP:FD CYC:42 SL:0 C72D EA NOP PC:C72E A:00 X:00 Y:00 P:26 SP:FB CYC:60 SL:0 C72E 38 SEC PC:C72F A:00 X:00 Y:00 P:26 SP:FB CYC:66 SL:0 C72F B0 BCS $C735 PC:C730 A:00 X:00 Y:00 P:27 SP:FB CYC:72 SL:0 C735 EA NOP PC:C736 A:00 X:00 Y:00 P:27 SP:FB CYC:81 SL:0 C736 18 CLC PC:C737 A:00 X:00 Y:00 P:27 SP:FB CYC:87 SL:0 C737 B0 BCS $C73C PC:C738 A:00 X:00 Y:00 P:26 SP:FB CYC:93 SL:0 C739 4C JMP $C740 PC:C73A A:00 X:00 Y:00 P:26 SP:FB CYC:99 SL:0 C740 EA NOP PC:C741 A:00 X:00 Y:00 P:26 SP:FB CYC:108 SL:0 C741 38 SEC PC:C742 A:00 X:00 Y:00 P:26 SP:FB CYC:114 SL:0 C742 90 BCC $C747 PC:C743 A:00 X:00 Y:00 P:27 SP:FB CYC:120 SL:0 C744 4C JMP $C74B PC:C745 A:00 X:00 Y:00 P:27 SP:FB CYC:126 SL:0 C74B EA NOP PC:C74C A:00 X:00 Y:00 P:27 SP:FB CYC:135 SL:0 C74C 18 CLC PC:C74D A:00 X:00 Y:00 P:27 SP:FB CYC:141 SL:0 C74D 90 BCC $C753 PC:C74E A:00 X:00 Y:00 P:26 SP:FB CYC:147 SL:0 C753 EA NOP PC:C754 A:00 X:00 Y:00 P:26 SP:FB CYC:156 SL:0 C754 A9 LDA #$00 PC:C755 A:00 X:00 Y:00 P:26 SP:FB CYC:162 SL:0 C756 F0 BEQ $C75C PC:C757 A:00 X:00 Y:00 P:26 SP:FB CYC:168 SL:0 C75C EA NOP PC:C75D A:00 X:00 Y:00 P:26 SP:FB CYC:177 SL:0 C75D A9 LDA #$40 PC:C75E A:00 X:00 Y:00 P:26 SP:FB CYC:183 SL:0 C75F F0 BEQ $C764 PC:C760 A:40 X:00 Y:00 P:24 SP:FB CYC:189 SL:0 C761 4C JMP $C768 PC:C762 A:40 X:00 Y:00 P:24 SP:FB CYC:195 SL:0 C768 EA NOP PC:C769 A:40 X:00 Y:00 P:24 SP:FB CYC:204 SL:0 C769 A9 LDA #$40 PC:C76A A:40 X:00 Y:00 P:24 SP:FB CYC:210 SL:0 C76B D0 BNE $C771 PC:C76C A:40 X:00 Y:00 P:24 SP:FB CYC:216 SL:0 C771 EA NOP PC:C772 A:40 X:00 Y:00 P:24 SP:FB CYC:225 SL:0 C772 A9 LDA #$00 PC:C773 A:40 X:00 Y:00 P:24 SP:FB CYC:231 SL:0 C774 D0 BNE $C779 PC:C775 A:00 X:00 Y:00 P:26 SP:FB CYC:237 SL:0 C776 4C JMP $C77D PC:C777 A:00 X:00 Y:00 P:26 SP:FB CYC:243 SL:0 C77D EA NOP PC:C77E A:00 X:00 Y:00 P:26 SP:FB CYC:252 SL:0 C77E A9 LDA #$FF PC:C77F A:00 X:00 Y:00 P:26 SP:FB CYC:258 SL:0 C780 85 STA $01 PC:C781 A:FF X:00 Y:00 P:A4 SP:FB CYC:264 SL:0 C782 24 BIT $01 PC:C783 A:FF X:00 Y:00 P:A4 SP:FB CYC:273 SL:0 C784 70 BVS $C78A PC:C785 A:FF X:00 Y:00 P:E4 SP:FB CYC:282 SL:0 C78A EA NOP PC:C78B A:FF X:00 Y:00 P:E4 SP:FB CYC:291 SL:0 C78B 24 BIT $01 PC:C78C A:FF X:00 Y:00 P:E4 SP:FB CYC:297 SL:0 C78D 50 BVC $C792 PC:C78E A:FF X:00 Y:00 P:E4 SP:FB CYC:306 SL:0 C78F 4C JMP $C796 PC:C790 A:FF X:00 Y:00 P:E4 SP:FB CYC:312 SL:0 C796 EA NOP PC:C797 A:FF X:00 Y:00 P:E4 SP:FB CYC:321 SL:0 C797 A9 LDA #$00 PC:C798 A:FF X:00 Y:00 P:E4 SP:FB CYC:327 SL:0 C799 85 STA $01 PC:C79A A:00 X:00 Y:00 P:66 SP:FB CYC:333 SL:0 C79B 24 BIT $01 PC:C79C A:00 X:00 Y:00 P:66 SP:FB CYC:1 SL:1 C79D 50 BVC $C7A3 PC:C79E A:00 X:00 Y:00 P:26 SP:FB CYC:10 SL:1 C7A3 EA NOP PC:C7A4 A:00 X:00 Y:00 P:26 SP:FB CYC:19 SL:1 C7A4 24 BIT $01 PC:C7A5 A:00 X:00 Y:00 P:26 SP:FB CYC:25 SL:1 C7A6 70 BVS $C7AB PC:C7A7 A:00 X:00 Y:00 P:26 SP:FB CYC:34 SL:1 C7A8 4C JMP $C7AF PC:C7A9 A:00 X:00 Y:00 P:26 SP:FB CYC:40 SL:1 C7AF EA NOP PC:C7B0 A:00 X:00 Y:00 P:26 SP:FB CYC:49 SL:1 C7B0 A9 LDA #$00 PC:C7B1 A:00 X:00 Y:00 P:26 SP:FB CYC:55 SL:1 C7B2 10 BPL $C7B8 PC:C7B3 A:00 X:00 Y:00 P:26 SP:FB CYC:61 SL:1 C7B8 EA NOP PC:C7B9 A:00 X:00 Y:00 P:26 SP:FB CYC:70 SL:1 C7B9 A9 LDA #$80 PC:C7BA A:00 X:00 Y:00 P:26 SP:FB CYC:76 SL:1 C7BB 10 BPL $C7C0 PC:C7BC A:80 X:00 Y:00 P:A4 SP:FB CYC:82 SL:1 C7BD 4C JMP $C7D9 PC:C7BE A:80 X:00 Y:00 P:A4 SP:FB CYC:88 SL:1 C7D9 EA NOP PC:C7DA A:80 X:00 Y:00 P:A4 SP:FB CYC:97 SL:1 C7DA 60 RTS PC:C7DB A:80 X:00 Y:00 P:A4 SP:FB CYC:103 SL:1 C600 20 JSR $C7DB PC:C601 A:80 X:00 Y:00 P:A4 SP:FD CYC:121 SL:1 C7DB EA NOP PC:C7DC A:80 X:00 Y:00 P:A4 SP:FB CYC:139 SL:1 C7DC A9 LDA #$FF PC:C7DD A:80 X:00 Y:00 P:A4 SP:FB CYC:145 SL:1 C7DE 85 STA $01 PC:C7DF A:FF X:00 Y:00 P:A4 SP:FB CYC:151 SL:1 C7E0 24 BIT $01 PC:C7E1 A:FF X:00 Y:00 P:A4 SP:FB CYC:160 SL:1 C7E2 A9 LDA #$00 PC:C7E3 A:FF X:00 Y:00 P:E4 SP:FB CYC:169 SL:1 C7E4 38 SEC PC:C7E5 A:00 X:00 Y:00 P:66 SP:FB CYC:175 SL:1 C7E5 78 SEI PC:C7E6 A:00 X:00 Y:00 P:67 SP:FB CYC:181 SL:1 C7E6 F8 SED PC:C7E7 A:00 X:00 Y:00 P:67 SP:FB CYC:187 SL:1 C7E7 08 PHP PC:C7E8 A:00 X:00 Y:00 P:6F SP:FB CYC:193 SL:1 C7E8 68 PLA PC:C7E9 A:00 X:00 Y:00 P:6F SP:FA CYC:202 SL:1 C7E9 29 AND #$EF PC:C7EA A:7F X:00 Y:00 P:6D SP:FB CYC:214 SL:1 C7EB C9 CMP #$6F PC:C7EC A:6F X:00 Y:00 P:6D SP:FB CYC:220 SL:1 C7ED F0 BEQ $C7F3 PC:C7EE A:6F X:00 Y:00 P:6F SP:FB CYC:226 SL:1 C7F3 EA NOP PC:C7F4 A:6F X:00 Y:00 P:6F SP:FB CYC:235 SL:1 C7F4 A9 LDA #$40 PC:C7F5 A:6F X:00 Y:00 P:6F SP:FB CYC:241 SL:1 C7F6 85 STA $01 PC:C7F7 A:40 X:00 Y:00 P:6D SP:FB CYC:247 SL:1 C7F8 24 BIT $01 PC:C7F9 A:40 X:00 Y:00 P:6D SP:FB CYC:256 SL:1 C7FA D8 CLD PC:C7FB A:40 X:00 Y:00 P:6D SP:FB CYC:265 SL:1 C7FB A9 LDA #$10 PC:C7FC A:40 X:00 Y:00 P:65 SP:FB CYC:271 SL:1 C7FD 18 CLC PC:C7FE A:10 X:00 Y:00 P:65 SP:FB CYC:277 SL:1 C7FE 08 PHP PC:C7FF A:10 X:00 Y:00 P:64 SP:FB CYC:283 SL:1 C7FF 68 PLA PC:C800 A:10 X:00 Y:00 P:64 SP:FA CYC:292 SL:1 C800 29 AND #$EF PC:C801 A:74 X:00 Y:00 P:64 SP:FB CYC:304 SL:1 C802 C9 CMP #$64 PC:C803 A:64 X:00 Y:00 P:64 SP:FB CYC:310 SL:1 C804 F0 BEQ $C80A PC:C805 A:64 X:00 Y:00 P:67 SP:FB CYC:316 SL:1 C80A EA NOP PC:C80B A:64 X:00 Y:00 P:67 SP:FB CYC:325 SL:1 C80B A9 LDA #$80 PC:C80C A:64 X:00 Y:00 P:67 SP:FB CYC:331 SL:1 C80D 85 STA $01 PC:C80E A:80 X:00 Y:00 P:E5 SP:FB CYC:337 SL:1 C80F 24 BIT $01 PC:C810 A:80 X:00 Y:00 P:E5 SP:FB CYC:5 SL:2 C811 F8 SED PC:C812 A:80 X:00 Y:00 P:A5 SP:FB CYC:14 SL:2 C812 A9 LDA #$00 PC:C813 A:80 X:00 Y:00 P:AD SP:FB CYC:20 SL:2 C814 38 SEC PC:C815 A:00 X:00 Y:00 P:2F SP:FB CYC:26 SL:2 C815 08 PHP PC:C816 A:00 X:00 Y:00 P:2F SP:FB CYC:32 SL:2 C816 68 PLA PC:C817 A:00 X:00 Y:00 P:2F SP:FA CYC:41 SL:2 C817 29 AND #$EF PC:C818 A:3F X:00 Y:00 P:2D SP:FB CYC:53 SL:2 C819 C9 CMP #$2F PC:C81A A:2F X:00 Y:00 P:2D SP:FB CYC:59 SL:2 C81B F0 BEQ $C821 PC:C81C A:2F X:00 Y:00 P:2F SP:FB CYC:65 SL:2 C821 EA NOP PC:C822 A:2F X:00 Y:00 P:2F SP:FB CYC:74 SL:2 C822 A9 LDA #$FF PC:C823 A:2F X:00 Y:00 P:2F SP:FB CYC:80 SL:2 C824 48 PHA PC:C825 A:FF X:00 Y:00 P:AD SP:FB CYC:86 SL:2 C825 28 PLP PC:C826 A:FF X:00 Y:00 P:AD SP:FA CYC:95 SL:2 C826 D0 BNE $C831 PC:C827 A:FF X:00 Y:00 P:EF SP:FB CYC:107 SL:2 C828 10 BPL $C831 PC:C829 A:FF X:00 Y:00 P:EF SP:FB CYC:113 SL:2 C82A 50 BVC $C831 PC:C82B A:FF X:00 Y:00 P:EF SP:FB CYC:119 SL:2 C82C 90 BCC $C831 PC:C82D A:FF X:00 Y:00 P:EF SP:FB CYC:125 SL:2 C82E 4C JMP $C835 PC:C82F A:FF X:00 Y:00 P:EF SP:FB CYC:131 SL:2 C835 EA NOP PC:C836 A:FF X:00 Y:00 P:EF SP:FB CYC:140 SL:2 C836 A9 LDA #$04 PC:C837 A:FF X:00 Y:00 P:EF SP:FB CYC:146 SL:2 C838 48 PHA PC:C839 A:04 X:00 Y:00 P:6D SP:FB CYC:152 SL:2 C839 28 PLP PC:C83A A:04 X:00 Y:00 P:6D SP:FA CYC:161 SL:2 C83A F0 BEQ $C845 PC:C83B A:04 X:00 Y:00 P:24 SP:FB CYC:173 SL:2 C83C 30 BMI $C845 PC:C83D A:04 X:00 Y:00 P:24 SP:FB CYC:179 SL:2 C83E 70 BVS $C845 PC:C83F A:04 X:00 Y:00 P:24 SP:FB CYC:185 SL:2 C840 B0 BCS $C845 PC:C841 A:04 X:00 Y:00 P:24 SP:FB CYC:191 SL:2 C842 4C JMP $C849 PC:C843 A:04 X:00 Y:00 P:24 SP:FB CYC:197 SL:2 C849 EA NOP PC:C84A A:04 X:00 Y:00 P:24 SP:FB CYC:206 SL:2 C84A F8 SED PC:C84B A:04 X:00 Y:00 P:24 SP:FB CYC:212 SL:2 C84B A9 LDA #$FF PC:C84C A:04 X:00 Y:00 P:2C SP:FB CYC:218 SL:2 C84D 85 STA $01 PC:C84E A:FF X:00 Y:00 P:AC SP:FB CYC:224 SL:2 C84F 24 BIT $01 PC:C850 A:FF X:00 Y:00 P:AC SP:FB CYC:233 SL:2 C851 18 CLC PC:C852 A:FF X:00 Y:00 P:EC SP:FB CYC:242 SL:2 C852 A9 LDA #$00 PC:C853 A:FF X:00 Y:00 P:EC SP:FB CYC:248 SL:2 C854 48 PHA PC:C855 A:00 X:00 Y:00 P:6E SP:FB CYC:254 SL:2 C855 A9 LDA #$FF PC:C856 A:00 X:00 Y:00 P:6E SP:FA CYC:263 SL:2 C857 68 PLA PC:C858 A:FF X:00 Y:00 P:EC SP:FA CYC:269 SL:2 C858 D0 BNE $C863 PC:C859 A:00 X:00 Y:00 P:6E SP:FB CYC:281 SL:2 C85A 30 BMI $C863 PC:C85B A:00 X:00 Y:00 P:6E SP:FB CYC:287 SL:2 C85C 50 BVC $C863 PC:C85D A:00 X:00 Y:00 P:6E SP:FB CYC:293 SL:2 C85E B0 BCS $C863 PC:C85F A:00 X:00 Y:00 P:6E SP:FB CYC:299 SL:2 C860 4C JMP $C867 PC:C861 A:00 X:00 Y:00 P:6E SP:FB CYC:305 SL:2 C867 EA NOP PC:C868 A:00 X:00 Y:00 P:6E SP:FB CYC:314 SL:2 C868 A9 LDA #$00 PC:C869 A:00 X:00 Y:00 P:6E SP:FB CYC:320 SL:2 C86A 85 STA $01 PC:C86B A:00 X:00 Y:00 P:6E SP:FB CYC:326 SL:2 C86C 24 BIT $01 PC:C86D A:00 X:00 Y:00 P:6E SP:FB CYC:335 SL:2 C86E 38 SEC PC:C86F A:00 X:00 Y:00 P:2E SP:FB CYC:3 SL:3 C86F A9 LDA #$FF PC:C870 A:00 X:00 Y:00 P:2F SP:FB CYC:9 SL:3 C871 48 PHA PC:C872 A:FF X:00 Y:00 P:AD SP:FB CYC:15 SL:3 C872 A9 LDA #$00 PC:C873 A:FF X:00 Y:00 P:AD SP:FA CYC:24 SL:3 C874 68 PLA PC:C875 A:00 X:00 Y:00 P:2F SP:FA CYC:30 SL:3 C875 F0 BEQ $C880 PC:C876 A:FF X:00 Y:00 P:AD SP:FB CYC:42 SL:3 C877 10 BPL $C880 PC:C878 A:FF X:00 Y:00 P:AD SP:FB CYC:48 SL:3 C879 70 BVS $C880 PC:C87A A:FF X:00 Y:00 P:AD SP:FB CYC:54 SL:3 C87B 90 BCC $C880 PC:C87C A:FF X:00 Y:00 P:AD SP:FB CYC:60 SL:3 C87D 4C JMP $C884 PC:C87E A:FF X:00 Y:00 P:AD SP:FB CYC:66 SL:3 C884 60 RTS PC:C885 A:FF X:00 Y:00 P:AD SP:FB CYC:75 SL:3 C603 20 JSR $C885 PC:C604 A:FF X:00 Y:00 P:AD SP:FD CYC:93 SL:3 C885 EA NOP PC:C886 A:FF X:00 Y:00 P:AD SP:FB CYC:111 SL:3 C886 18 CLC PC:C887 A:FF X:00 Y:00 P:AD SP:FB CYC:117 SL:3 C887 A9 LDA #$FF PC:C888 A:FF X:00 Y:00 P:AC SP:FB CYC:123 SL:3 C889 85 STA $01 PC:C88A A:FF X:00 Y:00 P:AC SP:FB CYC:129 SL:3 C88B 24 BIT $01 PC:C88C A:FF X:00 Y:00 P:AC SP:FB CYC:138 SL:3 C88D A9 LDA #$55 PC:C88E A:FF X:00 Y:00 P:EC SP:FB CYC:147 SL:3 C88F 09 ORA #$AA PC:C890 A:55 X:00 Y:00 P:6C SP:FB CYC:153 SL:3 C891 B0 BCS $C89E PC:C892 A:FF X:00 Y:00 P:EC SP:FB CYC:159 SL:3 C893 10 BPL $C89E PC:C894 A:FF X:00 Y:00 P:EC SP:FB CYC:165 SL:3 C895 C9 CMP #$FF PC:C896 A:FF X:00 Y:00 P:EC SP:FB CYC:171 SL:3 C897 D0 BNE $C89E PC:C898 A:FF X:00 Y:00 P:6F SP:FB CYC:177 SL:3 C899 50 BVC $C89E PC:C89A A:FF X:00 Y:00 P:6F SP:FB CYC:183 SL:3 C89B 4C JMP $C8A2 PC:C89C A:FF X:00 Y:00 P:6F SP:FB CYC:189 SL:3 C8A2 EA NOP PC:C8A3 A:FF X:00 Y:00 P:6F SP:FB CYC:198 SL:3 C8A3 38 SEC PC:C8A4 A:FF X:00 Y:00 P:6F SP:FB CYC:204 SL:3 C8A4 B8 CLV PC:C8A5 A:FF X:00 Y:00 P:6F SP:FB CYC:210 SL:3 C8A5 A9 LDA #$00 PC:C8A6 A:FF X:00 Y:00 P:2F SP:FB CYC:216 SL:3 C8A7 09 ORA #$00 PC:C8A8 A:00 X:00 Y:00 P:2F SP:FB CYC:222 SL:3 C8A9 D0 BNE $C8B4 PC:C8AA A:00 X:00 Y:00 P:2F SP:FB CYC:228 SL:3 C8AB 70 BVS $C8B4 PC:C8AC A:00 X:00 Y:00 P:2F SP:FB CYC:234 SL:3 C8AD 90 BCC $C8B4 PC:C8AE A:00 X:00 Y:00 P:2F SP:FB CYC:240 SL:3 C8AF 30 BMI $C8B4 PC:C8B0 A:00 X:00 Y:00 P:2F SP:FB CYC:246 SL:3 C8B1 4C JMP $C8B8 PC:C8B2 A:00 X:00 Y:00 P:2F SP:FB CYC:252 SL:3 C8B8 EA NOP PC:C8B9 A:00 X:00 Y:00 P:2F SP:FB CYC:261 SL:3 C8B9 18 CLC PC:C8BA A:00 X:00 Y:00 P:2F SP:FB CYC:267 SL:3 C8BA 24 BIT $01 PC:C8BB A:00 X:00 Y:00 P:2E SP:FB CYC:273 SL:3 C8BC A9 LDA #$55 PC:C8BD A:00 X:00 Y:00 P:EE SP:FB CYC:282 SL:3 C8BE 29 AND #$AA PC:C8BF A:55 X:00 Y:00 P:6C SP:FB CYC:288 SL:3 C8C0 D0 BNE $C8CB PC:C8C1 A:00 X:00 Y:00 P:6E SP:FB CYC:294 SL:3 C8C2 50 BVC $C8CB PC:C8C3 A:00 X:00 Y:00 P:6E SP:FB CYC:300 SL:3 C8C4 B0 BCS $C8CB PC:C8C5 A:00 X:00 Y:00 P:6E SP:FB CYC:306 SL:3 C8C6 30 BMI $C8CB PC:C8C7 A:00 X:00 Y:00 P:6E SP:FB CYC:312 SL:3 C8C8 4C JMP $C8CF PC:C8C9 A:00 X:00 Y:00 P:6E SP:FB CYC:318 SL:3 C8CF EA NOP PC:C8D0 A:00 X:00 Y:00 P:6E SP:FB CYC:327 SL:3 C8D0 38 SEC PC:C8D1 A:00 X:00 Y:00 P:6E SP:FB CYC:333 SL:3 C8D1 B8 CLV PC:C8D2 A:00 X:00 Y:00 P:6F SP:FB CYC:339 SL:3 C8D2 A9 LDA #$F8 PC:C8D3 A:00 X:00 Y:00 P:2F SP:FB CYC:4 SL:4 C8D4 29 AND #$EF PC:C8D5 A:F8 X:00 Y:00 P:AD SP:FB CYC:10 SL:4 C8D6 90 BCC $C8E3 PC:C8D7 A:E8 X:00 Y:00 P:AD SP:FB CYC:16 SL:4 C8D8 10 BPL $C8E3 PC:C8D9 A:E8 X:00 Y:00 P:AD SP:FB CYC:22 SL:4 C8DA C9 CMP #$E8 PC:C8DB A:E8 X:00 Y:00 P:AD SP:FB CYC:28 SL:4 C8DC D0 BNE $C8E3 PC:C8DD A:E8 X:00 Y:00 P:2F SP:FB CYC:34 SL:4 C8DE 70 BVS $C8E3 PC:C8DF A:E8 X:00 Y:00 P:2F SP:FB CYC:40 SL:4 C8E0 4C JMP $C8E7 PC:C8E1 A:E8 X:00 Y:00 P:2F SP:FB CYC:46 SL:4 C8E7 EA NOP PC:C8E8 A:E8 X:00 Y:00 P:2F SP:FB CYC:55 SL:4 C8E8 18 CLC PC:C8E9 A:E8 X:00 Y:00 P:2F SP:FB CYC:61 SL:4 C8E9 24 BIT $01 PC:C8EA A:E8 X:00 Y:00 P:2E SP:FB CYC:67 SL:4 C8EB A9 LDA #$5F PC:C8EC A:E8 X:00 Y:00 P:EC SP:FB CYC:76 SL:4 C8ED 49 EOR #$AA PC:C8EE A:5F X:00 Y:00 P:6C SP:FB CYC:82 SL:4 C8EF B0 BCS $C8FC PC:C8F0 A:F5 X:00 Y:00 P:EC SP:FB CYC:88 SL:4 C8F1 10 BPL $C8FC PC:C8F2 A:F5 X:00 Y:00 P:EC SP:FB CYC:94 SL:4 C8F3 C9 CMP #$F5 PC:C8F4 A:F5 X:00 Y:00 P:EC SP:FB CYC:100 SL:4 C8F5 D0 BNE $C8FC PC:C8F6 A:F5 X:00 Y:00 P:6F SP:FB CYC:106 SL:4 C8F7 50 BVC $C8FC PC:C8F8 A:F5 X:00 Y:00 P:6F SP:FB CYC:112 SL:4 C8F9 4C JMP $C900 PC:C8FA A:F5 X:00 Y:00 P:6F SP:FB CYC:118 SL:4 C900 EA NOP PC:C901 A:F5 X:00 Y:00 P:6F SP:FB CYC:127 SL:4 C901 38 SEC PC:C902 A:F5 X:00 Y:00 P:6F SP:FB CYC:133 SL:4 C902 B8 CLV PC:C903 A:F5 X:00 Y:00 P:6F SP:FB CYC:139 SL:4 C903 A9 LDA #$70 PC:C904 A:F5 X:00 Y:00 P:2F SP:FB CYC:145 SL:4 C905 49 EOR #$70 PC:C906 A:70 X:00 Y:00 P:2D SP:FB CYC:151 SL:4 C907 D0 BNE $C912 PC:C908 A:00 X:00 Y:00 P:2F SP:FB CYC:157 SL:4 C909 70 BVS $C912 PC:C90A A:00 X:00 Y:00 P:2F SP:FB CYC:163 SL:4 C90B 90 BCC $C912 PC:C90C A:00 X:00 Y:00 P:2F SP:FB CYC:169 SL:4 C90D 30 BMI $C912 PC:C90E A:00 X:00 Y:00 P:2F SP:FB CYC:175 SL:4 C90F 4C JMP $C916 PC:C910 A:00 X:00 Y:00 P:2F SP:FB CYC:181 SL:4 C916 EA NOP PC:C917 A:00 X:00 Y:00 P:2F SP:FB CYC:190 SL:4 C917 18 CLC PC:C918 A:00 X:00 Y:00 P:2F SP:FB CYC:196 SL:4 C918 24 BIT $01 PC:C919 A:00 X:00 Y:00 P:2E SP:FB CYC:202 SL:4 C91A A9 LDA #$00 PC:C91B A:00 X:00 Y:00 P:EE SP:FB CYC:211 SL:4 C91C 69 ADC #$69 PC:C91D A:00 X:00 Y:00 P:6E SP:FB CYC:217 SL:4 C91E 30 BMI $C92B PC:C91F A:69 X:00 Y:00 P:2C SP:FB CYC:223 SL:4 C920 B0 BCS $C92B PC:C921 A:69 X:00 Y:00 P:2C SP:FB CYC:229 SL:4 C922 C9 CMP #$69 PC:C923 A:69 X:00 Y:00 P:2C SP:FB CYC:235 SL:4 C924 D0 BNE $C92B PC:C925 A:69 X:00 Y:00 P:2F SP:FB CYC:241 SL:4 C926 70 BVS $C92B PC:C927 A:69 X:00 Y:00 P:2F SP:FB CYC:247 SL:4 C928 4C JMP $C92F PC:C929 A:69 X:00 Y:00 P:2F SP:FB CYC:253 SL:4 C92F EA NOP PC:C930 A:69 X:00 Y:00 P:2F SP:FB CYC:262 SL:4 C930 38 SEC PC:C931 A:69 X:00 Y:00 P:2F SP:FB CYC:268 SL:4 C931 F8 SED PC:C932 A:69 X:00 Y:00 P:2F SP:FB CYC:274 SL:4 C932 24 BIT $01 PC:C933 A:69 X:00 Y:00 P:2F SP:FB CYC:280 SL:4 C934 A9 LDA #$01 PC:C935 A:69 X:00 Y:00 P:ED SP:FB CYC:289 SL:4 C936 69 ADC #$69 PC:C937 A:01 X:00 Y:00 P:6D SP:FB CYC:295 SL:4 C938 30 BMI $C945 PC:C939 A:6B X:00 Y:00 P:2C SP:FB CYC:301 SL:4 C93A B0 BCS $C945 PC:C93B A:6B X:00 Y:00 P:2C SP:FB CYC:307 SL:4 C93C C9 CMP #$6B PC:C93D A:6B X:00 Y:00 P:2C SP:FB CYC:313 SL:4 C93E D0 BNE $C945 PC:C93F A:6B X:00 Y:00 P:2F SP:FB CYC:319 SL:4 C940 70 BVS $C945 PC:C941 A:6B X:00 Y:00 P:2F SP:FB CYC:325 SL:4 C942 4C JMP $C949 PC:C943 A:6B X:00 Y:00 P:2F SP:FB CYC:331 SL:4 C949 EA NOP PC:C94A A:6B X:00 Y:00 P:2F SP:FB CYC:340 SL:4 C94A D8 CLD PC:C94B A:6B X:00 Y:00 P:2F SP:FB CYC:5 SL:5 C94B 38 SEC PC:C94C A:6B X:00 Y:00 P:27 SP:FB CYC:11 SL:5 C94C B8 CLV PC:C94D A:6B X:00 Y:00 P:27 SP:FB CYC:17 SL:5 C94D A9 LDA #$7F PC:C94E A:6B X:00 Y:00 P:27 SP:FB CYC:23 SL:5 C94F 69 ADC #$7F PC:C950 A:7F X:00 Y:00 P:25 SP:FB CYC:29 SL:5 C951 10 BPL $C95E PC:C952 A:FF X:00 Y:00 P:E4 SP:FB CYC:35 SL:5 C953 B0 BCS $C95E PC:C954 A:FF X:00 Y:00 P:E4 SP:FB CYC:41 SL:5 C955 C9 CMP #$FF PC:C956 A:FF X:00 Y:00 P:E4 SP:FB CYC:47 SL:5 C957 D0 BNE $C95E PC:C958 A:FF X:00 Y:00 P:67 SP:FB CYC:53 SL:5 C959 50 BVC $C95E PC:C95A A:FF X:00 Y:00 P:67 SP:FB CYC:59 SL:5 C95B 4C JMP $C962 PC:C95C A:FF X:00 Y:00 P:67 SP:FB CYC:65 SL:5 C962 EA NOP PC:C963 A:FF X:00 Y:00 P:67 SP:FB CYC:74 SL:5 C963 18 CLC PC:C964 A:FF X:00 Y:00 P:67 SP:FB CYC:80 SL:5 C964 24 BIT $01 PC:C965 A:FF X:00 Y:00 P:66 SP:FB CYC:86 SL:5 C966 A9 LDA #$7F PC:C967 A:FF X:00 Y:00 P:E4 SP:FB CYC:95 SL:5 C968 69 ADC #$80 PC:C969 A:7F X:00 Y:00 P:64 SP:FB CYC:101 SL:5 C96A 10 BPL $C977 PC:C96B A:FF X:00 Y:00 P:A4 SP:FB CYC:107 SL:5 C96C B0 BCS $C977 PC:C96D A:FF X:00 Y:00 P:A4 SP:FB CYC:113 SL:5 C96E C9 CMP #$FF PC:C96F A:FF X:00 Y:00 P:A4 SP:FB CYC:119 SL:5 C970 D0 BNE $C977 PC:C971 A:FF X:00 Y:00 P:27 SP:FB CYC:125 SL:5 C972 70 BVS $C977 PC:C973 A:FF X:00 Y:00 P:27 SP:FB CYC:131 SL:5 C974 4C JMP $C97B PC:C975 A:FF X:00 Y:00 P:27 SP:FB CYC:137 SL:5 C97B EA NOP PC:C97C A:FF X:00 Y:00 P:27 SP:FB CYC:146 SL:5 C97C 38 SEC PC:C97D A:FF X:00 Y:00 P:27 SP:FB CYC:152 SL:5 C97D B8 CLV PC:C97E A:FF X:00 Y:00 P:27 SP:FB CYC:158 SL:5 C97E A9 LDA #$7F PC:C97F A:FF X:00 Y:00 P:27 SP:FB CYC:164 SL:5 C980 69 ADC #$80 PC:C981 A:7F X:00 Y:00 P:25 SP:FB CYC:170 SL:5 C982 D0 BNE $C98D PC:C983 A:00 X:00 Y:00 P:27 SP:FB CYC:176 SL:5 C984 30 BMI $C98D PC:C985 A:00 X:00 Y:00 P:27 SP:FB CYC:182 SL:5 C986 70 BVS $C98D PC:C987 A:00 X:00 Y:00 P:27 SP:FB CYC:188 SL:5 C988 90 BCC $C98D PC:C989 A:00 X:00 Y:00 P:27 SP:FB CYC:194 SL:5 C98A 4C JMP $C991 PC:C98B A:00 X:00 Y:00 P:27 SP:FB CYC:200 SL:5 C991 EA NOP PC:C992 A:00 X:00 Y:00 P:27 SP:FB CYC:209 SL:5 C992 38 SEC PC:C993 A:00 X:00 Y:00 P:27 SP:FB CYC:215 SL:5 C993 B8 CLV PC:C994 A:00 X:00 Y:00 P:27 SP:FB CYC:221 SL:5 C994 A9 LDA #$9F PC:C995 A:00 X:00 Y:00 P:27 SP:FB CYC:227 SL:5 C996 F0 BEQ $C9A1 PC:C997 A:9F X:00 Y:00 P:A5 SP:FB CYC:233 SL:5 C998 10 BPL $C9A1 PC:C999 A:9F X:00 Y:00 P:A5 SP:FB CYC:239 SL:5 C99A 70 BVS $C9A1 PC:C99B A:9F X:00 Y:00 P:A5 SP:FB CYC:245 SL:5 C99C 90 BCC $C9A1 PC:C99D A:9F X:00 Y:00 P:A5 SP:FB CYC:251 SL:5 C99E 4C JMP $C9A5 PC:C99F A:9F X:00 Y:00 P:A5 SP:FB CYC:257 SL:5 C9A5 EA NOP PC:C9A6 A:9F X:00 Y:00 P:A5 SP:FB CYC:266 SL:5 C9A6 18 CLC PC:C9A7 A:9F X:00 Y:00 P:A5 SP:FB CYC:272 SL:5 C9A7 24 BIT $01 PC:C9A8 A:9F X:00 Y:00 P:A4 SP:FB CYC:278 SL:5 C9A9 A9 LDA #$00 PC:C9AA A:9F X:00 Y:00 P:E4 SP:FB CYC:287 SL:5 C9AB D0 BNE $C9B6 PC:C9AC A:00 X:00 Y:00 P:66 SP:FB CYC:293 SL:5 C9AD 30 BMI $C9B6 PC:C9AE A:00 X:00 Y:00 P:66 SP:FB CYC:299 SL:5 C9AF 50 BVC $C9B6 PC:C9B0 A:00 X:00 Y:00 P:66 SP:FB CYC:305 SL:5 C9B1 B0 BCS $C9B6 PC:C9B2 A:00 X:00 Y:00 P:66 SP:FB CYC:311 SL:5 C9B3 4C JMP $C9BA PC:C9B4 A:00 X:00 Y:00 P:66 SP:FB CYC:317 SL:5 C9BA EA NOP PC:C9BB A:00 X:00 Y:00 P:66 SP:FB CYC:326 SL:5 C9BB 24 BIT $01 PC:C9BC A:00 X:00 Y:00 P:66 SP:FB CYC:332 SL:5 C9BD A9 LDA #$40 PC:C9BE A:00 X:00 Y:00 P:E6 SP:FB CYC:0 SL:6 C9BF C9 CMP #$40 PC:C9C0 A:40 X:00 Y:00 P:64 SP:FB CYC:6 SL:6 C9C1 30 BMI $C9CC PC:C9C2 A:40 X:00 Y:00 P:67 SP:FB CYC:12 SL:6 C9C3 90 BCC $C9CC PC:C9C4 A:40 X:00 Y:00 P:67 SP:FB CYC:18 SL:6 C9C5 D0 BNE $C9CC PC:C9C6 A:40 X:00 Y:00 P:67 SP:FB CYC:24 SL:6 C9C7 50 BVC $C9CC PC:C9C8 A:40 X:00 Y:00 P:67 SP:FB CYC:30 SL:6 C9C9 4C JMP $C9D0 PC:C9CA A:40 X:00 Y:00 P:67 SP:FB CYC:36 SL:6 C9D0 EA NOP PC:C9D1 A:40 X:00 Y:00 P:67 SP:FB CYC:45 SL:6 C9D1 B8 CLV PC:C9D2 A:40 X:00 Y:00 P:67 SP:FB CYC:51 SL:6 C9D2 C9 CMP #$3F PC:C9D3 A:40 X:00 Y:00 P:27 SP:FB CYC:57 SL:6 C9D4 F0 BEQ $C9DF PC:C9D5 A:40 X:00 Y:00 P:25 SP:FB CYC:63 SL:6 C9D6 30 BMI $C9DF PC:C9D7 A:40 X:00 Y:00 P:25 SP:FB CYC:69 SL:6 C9D8 90 BCC $C9DF PC:C9D9 A:40 X:00 Y:00 P:25 SP:FB CYC:75 SL:6 C9DA 70 BVS $C9DF PC:C9DB A:40 X:00 Y:00 P:25 SP:FB CYC:81 SL:6 C9DC 4C JMP $C9E3 PC:C9DD A:40 X:00 Y:00 P:25 SP:FB CYC:87 SL:6 C9E3 EA NOP PC:C9E4 A:40 X:00 Y:00 P:25 SP:FB CYC:96 SL:6 C9E4 C9 CMP #$41 PC:C9E5 A:40 X:00 Y:00 P:25 SP:FB CYC:102 SL:6 C9E6 F0 BEQ $C9EF PC:C9E7 A:40 X:00 Y:00 P:A4 SP:FB CYC:108 SL:6 C9E8 10 BPL $C9EF PC:C9E9 A:40 X:00 Y:00 P:A4 SP:FB CYC:114 SL:6 C9EA 10 BPL $C9EF PC:C9EB A:40 X:00 Y:00 P:A4 SP:FB CYC:120 SL:6 C9EC 4C JMP $C9F3 PC:C9ED A:40 X:00 Y:00 P:A4 SP:FB CYC:126 SL:6 C9F3 EA NOP PC:C9F4 A:40 X:00 Y:00 P:A4 SP:FB CYC:135 SL:6 C9F4 A9 LDA #$80 PC:C9F5 A:40 X:00 Y:00 P:A4 SP:FB CYC:141 SL:6 C9F6 C9 CMP #$00 PC:C9F7 A:80 X:00 Y:00 P:A4 SP:FB CYC:147 SL:6 C9F8 F0 BEQ $CA01 PC:C9F9 A:80 X:00 Y:00 P:A5 SP:FB CYC:153 SL:6 C9FA 10 BPL $CA01 PC:C9FB A:80 X:00 Y:00 P:A5 SP:FB CYC:159 SL:6 C9FC 90 BCC $CA01 PC:C9FD A:80 X:00 Y:00 P:A5 SP:FB CYC:165 SL:6 C9FE 4C JMP $CA05 PC:C9FF A:80 X:00 Y:00 P:A5 SP:FB CYC:171 SL:6 CA05 EA NOP PC:CA06 A:80 X:00 Y:00 P:A5 SP:FB CYC:180 SL:6 CA06 C9 CMP #$80 PC:CA07 A:80 X:00 Y:00 P:A5 SP:FB CYC:186 SL:6 CA08 D0 BNE $CA11 PC:CA09 A:80 X:00 Y:00 P:27 SP:FB CYC:192 SL:6 CA0A 30 BMI $CA11 PC:CA0B A:80 X:00 Y:00 P:27 SP:FB CYC:198 SL:6 CA0C 90 BCC $CA11 PC:CA0D A:80 X:00 Y:00 P:27 SP:FB CYC:204 SL:6 CA0E 4C JMP $CA15 PC:CA0F A:80 X:00 Y:00 P:27 SP:FB CYC:210 SL:6 CA15 EA NOP PC:CA16 A:80 X:00 Y:00 P:27 SP:FB CYC:219 SL:6 CA16 C9 CMP #$81 PC:CA17 A:80 X:00 Y:00 P:27 SP:FB CYC:225 SL:6 CA18 B0 BCS $CA21 PC:CA19 A:80 X:00 Y:00 P:A4 SP:FB CYC:231 SL:6 CA1A F0 BEQ $CA21 PC:CA1B A:80 X:00 Y:00 P:A4 SP:FB CYC:237 SL:6 CA1C 10 BPL $CA21 PC:CA1D A:80 X:00 Y:00 P:A4 SP:FB CYC:243 SL:6 CA1E 4C JMP $CA25 PC:CA1F A:80 X:00 Y:00 P:A4 SP:FB CYC:249 SL:6 CA25 EA NOP PC:CA26 A:80 X:00 Y:00 P:A4 SP:FB CYC:258 SL:6 CA26 C9 CMP #$7F PC:CA27 A:80 X:00 Y:00 P:A4 SP:FB CYC:264 SL:6 CA28 90 BCC $CA31 PC:CA29 A:80 X:00 Y:00 P:25 SP:FB CYC:270 SL:6 CA2A F0 BEQ $CA31 PC:CA2B A:80 X:00 Y:00 P:25 SP:FB CYC:276 SL:6 CA2C 30 BMI $CA31 PC:CA2D A:80 X:00 Y:00 P:25 SP:FB CYC:282 SL:6 CA2E 4C JMP $CA35 PC:CA2F A:80 X:00 Y:00 P:25 SP:FB CYC:288 SL:6 CA35 EA NOP PC:CA36 A:80 X:00 Y:00 P:25 SP:FB CYC:297 SL:6 CA36 24 BIT $01 PC:CA37 A:80 X:00 Y:00 P:25 SP:FB CYC:303 SL:6 CA38 A0 LDY #$40 PC:CA39 A:80 X:00 Y:00 P:E5 SP:FB CYC:312 SL:6 CA3A C0 CPY #$40 PC:CA3B A:80 X:00 Y:40 P:65 SP:FB CYC:318 SL:6 CA3C D0 BNE $CA47 PC:CA3D A:80 X:00 Y:40 P:67 SP:FB CYC:324 SL:6 CA3E 30 BMI $CA47 PC:CA3F A:80 X:00 Y:40 P:67 SP:FB CYC:330 SL:6 CA40 90 BCC $CA47 PC:CA41 A:80 X:00 Y:40 P:67 SP:FB CYC:336 SL:6 CA42 50 BVC $CA47 PC:CA43 A:80 X:00 Y:40 P:67 SP:FB CYC:1 SL:7 CA44 4C JMP $CA4B PC:CA45 A:80 X:00 Y:40 P:67 SP:FB CYC:7 SL:7 CA4B EA NOP PC:CA4C A:80 X:00 Y:40 P:67 SP:FB CYC:16 SL:7 CA4C B8 CLV PC:CA4D A:80 X:00 Y:40 P:67 SP:FB CYC:22 SL:7 CA4D C0 CPY #$3F PC:CA4E A:80 X:00 Y:40 P:27 SP:FB CYC:28 SL:7 CA4F F0 BEQ $CA5A PC:CA50 A:80 X:00 Y:40 P:25 SP:FB CYC:34 SL:7 CA51 30 BMI $CA5A PC:CA52 A:80 X:00 Y:40 P:25 SP:FB CYC:40 SL:7 CA53 90 BCC $CA5A PC:CA54 A:80 X:00 Y:40 P:25 SP:FB CYC:46 SL:7 CA55 70 BVS $CA5A PC:CA56 A:80 X:00 Y:40 P:25 SP:FB CYC:52 SL:7 CA57 4C JMP $CA5E PC:CA58 A:80 X:00 Y:40 P:25 SP:FB CYC:58 SL:7 CA5E EA NOP PC:CA5F A:80 X:00 Y:40 P:25 SP:FB CYC:67 SL:7 CA5F C0 CPY #$41 PC:CA60 A:80 X:00 Y:40 P:25 SP:FB CYC:73 SL:7 CA61 F0 BEQ $CA6A PC:CA62 A:80 X:00 Y:40 P:A4 SP:FB CYC:79 SL:7 CA63 10 BPL $CA6A PC:CA64 A:80 X:00 Y:40 P:A4 SP:FB CYC:85 SL:7 CA65 10 BPL $CA6A PC:CA66 A:80 X:00 Y:40 P:A4 SP:FB CYC:91 SL:7 CA67 4C JMP $CA6E PC:CA68 A:80 X:00 Y:40 P:A4 SP:FB CYC:97 SL:7 CA6E EA NOP PC:CA6F A:80 X:00 Y:40 P:A4 SP:FB CYC:106 SL:7 CA6F A0 LDY #$80 PC:CA70 A:80 X:00 Y:40 P:A4 SP:FB CYC:112 SL:7 CA71 C0 CPY #$00 PC:CA72 A:80 X:00 Y:80 P:A4 SP:FB CYC:118 SL:7 CA73 F0 BEQ $CA7C PC:CA74 A:80 X:00 Y:80 P:A5 SP:FB CYC:124 SL:7 CA75 10 BPL $CA7C PC:CA76 A:80 X:00 Y:80 P:A5 SP:FB CYC:130 SL:7 CA77 90 BCC $CA7C PC:CA78 A:80 X:00 Y:80 P:A5 SP:FB CYC:136 SL:7 CA79 4C JMP $CA80 PC:CA7A A:80 X:00 Y:80 P:A5 SP:FB CYC:142 SL:7 CA80 EA NOP PC:CA81 A:80 X:00 Y:80 P:A5 SP:FB CYC:151 SL:7 CA81 C0 CPY #$80 PC:CA82 A:80 X:00 Y:80 P:A5 SP:FB CYC:157 SL:7 CA83 D0 BNE $CA8C PC:CA84 A:80 X:00 Y:80 P:27 SP:FB CYC:163 SL:7 CA85 30 BMI $CA8C PC:CA86 A:80 X:00 Y:80 P:27 SP:FB CYC:169 SL:7 CA87 90 BCC $CA8C PC:CA88 A:80 X:00 Y:80 P:27 SP:FB CYC:175 SL:7 CA89 4C JMP $CA90 PC:CA8A A:80 X:00 Y:80 P:27 SP:FB CYC:181 SL:7 CA90 EA NOP PC:CA91 A:80 X:00 Y:80 P:27 SP:FB CYC:190 SL:7 CA91 C0 CPY #$81 PC:CA92 A:80 X:00 Y:80 P:27 SP:FB CYC:196 SL:7 CA93 B0 BCS $CA9C PC:CA94 A:80 X:00 Y:80 P:A4 SP:FB CYC:202 SL:7 CA95 F0 BEQ $CA9C PC:CA96 A:80 X:00 Y:80 P:A4 SP:FB CYC:208 SL:7 CA97 10 BPL $CA9C PC:CA98 A:80 X:00 Y:80 P:A4 SP:FB CYC:214 SL:7 CA99 4C JMP $CAA0 PC:CA9A A:80 X:00 Y:80 P:A4 SP:FB CYC:220 SL:7 CAA0 EA NOP PC:CAA1 A:80 X:00 Y:80 P:A4 SP:FB CYC:229 SL:7 CAA1 C0 CPY #$7F PC:CAA2 A:80 X:00 Y:80 P:A4 SP:FB CYC:235 SL:7 CAA3 90 BCC $CAAC PC:CAA4 A:80 X:00 Y:80 P:25 SP:FB CYC:241 SL:7 CAA5 F0 BEQ $CAAC PC:CAA6 A:80 X:00 Y:80 P:25 SP:FB CYC:247 SL:7 CAA7 30 BMI $CAAC PC:CAA8 A:80 X:00 Y:80 P:25 SP:FB CYC:253 SL:7 CAA9 4C JMP $CAB0 PC:CAAA A:80 X:00 Y:80 P:25 SP:FB CYC:259 SL:7 CAB0 EA NOP PC:CAB1 A:80 X:00 Y:80 P:25 SP:FB CYC:268 SL:7 CAB1 24 BIT $01 PC:CAB2 A:80 X:00 Y:80 P:25 SP:FB CYC:274 SL:7 CAB3 A2 LDX #$40 PC:CAB4 A:80 X:00 Y:80 P:E5 SP:FB CYC:283 SL:7 CAB5 E0 CPX #$40 PC:CAB6 A:80 X:40 Y:80 P:65 SP:FB CYC:289 SL:7 CAB7 D0 BNE $CAC2 PC:CAB8 A:80 X:40 Y:80 P:67 SP:FB CYC:295 SL:7 CAB9 30 BMI $CAC2 PC:CABA A:80 X:40 Y:80 P:67 SP:FB CYC:301 SL:7 CABB 90 BCC $CAC2 PC:CABC A:80 X:40 Y:80 P:67 SP:FB CYC:307 SL:7 CABD 50 BVC $CAC2 PC:CABE A:80 X:40 Y:80 P:67 SP:FB CYC:313 SL:7 CABF 4C JMP $CAC6 PC:CAC0 A:80 X:40 Y:80 P:67 SP:FB CYC:319 SL:7 CAC6 EA NOP PC:CAC7 A:80 X:40 Y:80 P:67 SP:FB CYC:328 SL:7 CAC7 B8 CLV PC:CAC8 A:80 X:40 Y:80 P:67 SP:FB CYC:334 SL:7 CAC8 E0 CPX #$3F PC:CAC9 A:80 X:40 Y:80 P:27 SP:FB CYC:340 SL:7 CACA F0 BEQ $CAD5 PC:CACB A:80 X:40 Y:80 P:25 SP:FB CYC:5 SL:8 CACC 30 BMI $CAD5 PC:CACD A:80 X:40 Y:80 P:25 SP:FB CYC:11 SL:8 CACE 90 BCC $CAD5 PC:CACF A:80 X:40 Y:80 P:25 SP:FB CYC:17 SL:8 CAD0 70 BVS $CAD5 PC:CAD1 A:80 X:40 Y:80 P:25 SP:FB CYC:23 SL:8 CAD2 4C JMP $CAD9 PC:CAD3 A:80 X:40 Y:80 P:25 SP:FB CYC:29 SL:8 CAD9 EA NOP PC:CADA A:80 X:40 Y:80 P:25 SP:FB CYC:38 SL:8 CADA E0 CPX #$41 PC:CADB A:80 X:40 Y:80 P:25 SP:FB CYC:44 SL:8 CADC F0 BEQ $CAE5 PC:CADD A:80 X:40 Y:80 P:A4 SP:FB CYC:50 SL:8 CADE 10 BPL $CAE5 PC:CADF A:80 X:40 Y:80 P:A4 SP:FB CYC:56 SL:8 CAE0 10 BPL $CAE5 PC:CAE1 A:80 X:40 Y:80 P:A4 SP:FB CYC:62 SL:8 CAE2 4C JMP $CAE9 PC:CAE3 A:80 X:40 Y:80 P:A4 SP:FB CYC:68 SL:8 CAE9 EA NOP PC:CAEA A:80 X:40 Y:80 P:A4 SP:FB CYC:77 SL:8 CAEA A2 LDX #$80 PC:CAEB A:80 X:40 Y:80 P:A4 SP:FB CYC:83 SL:8 CAEC E0 CPX #$00 PC:CAED A:80 X:80 Y:80 P:A4 SP:FB CYC:89 SL:8 CAEE F0 BEQ $CAF7 PC:CAEF A:80 X:80 Y:80 P:A5 SP:FB CYC:95 SL:8 CAF0 10 BPL $CAF7 PC:CAF1 A:80 X:80 Y:80 P:A5 SP:FB CYC:101 SL:8 CAF2 90 BCC $CAF7 PC:CAF3 A:80 X:80 Y:80 P:A5 SP:FB CYC:107 SL:8 CAF4 4C JMP $CAFB PC:CAF5 A:80 X:80 Y:80 P:A5 SP:FB CYC:113 SL:8 CAFB EA NOP PC:CAFC A:80 X:80 Y:80 P:A5 SP:FB CYC:122 SL:8 CAFC E0 CPX #$80 PC:CAFD A:80 X:80 Y:80 P:A5 SP:FB CYC:128 SL:8 CAFE D0 BNE $CB07 PC:CAFF A:80 X:80 Y:80 P:27 SP:FB CYC:134 SL:8 CB00 30 BMI $CB07 PC:CB01 A:80 X:80 Y:80 P:27 SP:FB CYC:140 SL:8 CB02 90 BCC $CB07 PC:CB03 A:80 X:80 Y:80 P:27 SP:FB CYC:146 SL:8 CB04 4C JMP $CB0B PC:CB05 A:80 X:80 Y:80 P:27 SP:FB CYC:152 SL:8 CB0B EA NOP PC:CB0C A:80 X:80 Y:80 P:27 SP:FB CYC:161 SL:8 CB0C E0 CPX #$81 PC:CB0D A:80 X:80 Y:80 P:27 SP:FB CYC:167 SL:8 CB0E B0 BCS $CB17 PC:CB0F A:80 X:80 Y:80 P:A4 SP:FB CYC:173 SL:8 CB10 F0 BEQ $CB17 PC:CB11 A:80 X:80 Y:80 P:A4 SP:FB CYC:179 SL:8 CB12 10 BPL $CB17 PC:CB13 A:80 X:80 Y:80 P:A4 SP:FB CYC:185 SL:8 CB14 4C JMP $CB1B PC:CB15 A:80 X:80 Y:80 P:A4 SP:FB CYC:191 SL:8 CB1B EA NOP PC:CB1C A:80 X:80 Y:80 P:A4 SP:FB CYC:200 SL:8 CB1C E0 CPX #$7F PC:CB1D A:80 X:80 Y:80 P:A4 SP:FB CYC:206 SL:8 CB1E 90 BCC $CB27 PC:CB1F A:80 X:80 Y:80 P:25 SP:FB CYC:212 SL:8 CB20 F0 BEQ $CB27 PC:CB21 A:80 X:80 Y:80 P:25 SP:FB CYC:218 SL:8 CB22 30 BMI $CB27 PC:CB23 A:80 X:80 Y:80 P:25 SP:FB CYC:224 SL:8 CB24 4C JMP $CB2B PC:CB25 A:80 X:80 Y:80 P:25 SP:FB CYC:230 SL:8 CB2B EA NOP PC:CB2C A:80 X:80 Y:80 P:25 SP:FB CYC:239 SL:8 CB2C 38 SEC PC:CB2D A:80 X:80 Y:80 P:25 SP:FB CYC:245 SL:8 CB2D B8 CLV PC:CB2E A:80 X:80 Y:80 P:25 SP:FB CYC:251 SL:8 CB2E A2 LDX #$9F PC:CB2F A:80 X:80 Y:80 P:25 SP:FB CYC:257 SL:8 CB30 F0 BEQ $CB3B PC:CB31 A:80 X:9F Y:80 P:A5 SP:FB CYC:263 SL:8 CB32 10 BPL $CB3B PC:CB33 A:80 X:9F Y:80 P:A5 SP:FB CYC:269 SL:8 CB34 70 BVS $CB3B PC:CB35 A:80 X:9F Y:80 P:A5 SP:FB CYC:275 SL:8 CB36 90 BCC $CB3B PC:CB37 A:80 X:9F Y:80 P:A5 SP:FB CYC:281 SL:8 CB38 4C JMP $CB3F PC:CB39 A:80 X:9F Y:80 P:A5 SP:FB CYC:287 SL:8 CB3F EA NOP PC:CB40 A:80 X:9F Y:80 P:A5 SP:FB CYC:296 SL:8 CB40 18 CLC PC:CB41 A:80 X:9F Y:80 P:A5 SP:FB CYC:302 SL:8 CB41 24 BIT $01 PC:CB42 A:80 X:9F Y:80 P:A4 SP:FB CYC:308 SL:8 CB43 A2 LDX #$00 PC:CB44 A:80 X:9F Y:80 P:E4 SP:FB CYC:317 SL:8 CB45 D0 BNE $CB50 PC:CB46 A:80 X:00 Y:80 P:66 SP:FB CYC:323 SL:8 CB47 30 BMI $CB50 PC:CB48 A:80 X:00 Y:80 P:66 SP:FB CYC:329 SL:8 CB49 50 BVC $CB50 PC:CB4A A:80 X:00 Y:80 P:66 SP:FB CYC:335 SL:8 CB4B B0 BCS $CB50 PC:CB4C A:80 X:00 Y:80 P:66 SP:FB CYC:0 SL:9 CB4D 4C JMP $CB54 PC:CB4E A:80 X:00 Y:80 P:66 SP:FB CYC:6 SL:9 CB54 EA NOP PC:CB55 A:80 X:00 Y:80 P:66 SP:FB CYC:15 SL:9 CB55 38 SEC PC:CB56 A:80 X:00 Y:80 P:66 SP:FB CYC:21 SL:9 CB56 B8 CLV PC:CB57 A:80 X:00 Y:80 P:67 SP:FB CYC:27 SL:9 CB57 A0 LDY #$9F PC:CB58 A:80 X:00 Y:80 P:27 SP:FB CYC:33 SL:9 CB59 F0 BEQ $CB64 PC:CB5A A:80 X:00 Y:9F P:A5 SP:FB CYC:39 SL:9 CB5B 10 BPL $CB64 PC:CB5C A:80 X:00 Y:9F P:A5 SP:FB CYC:45 SL:9 CB5D 70 BVS $CB64 PC:CB5E A:80 X:00 Y:9F P:A5 SP:FB CYC:51 SL:9 CB5F 90 BCC $CB64 PC:CB60 A:80 X:00 Y:9F P:A5 SP:FB CYC:57 SL:9 CB61 4C JMP $CB68 PC:CB62 A:80 X:00 Y:9F P:A5 SP:FB CYC:63 SL:9 CB68 EA NOP PC:CB69 A:80 X:00 Y:9F P:A5 SP:FB CYC:72 SL:9 CB69 18 CLC PC:CB6A A:80 X:00 Y:9F P:A5 SP:FB CYC:78 SL:9 CB6A 24 BIT $01 PC:CB6B A:80 X:00 Y:9F P:A4 SP:FB CYC:84 SL:9 CB6C A0 LDY #$00 PC:CB6D A:80 X:00 Y:9F P:E4 SP:FB CYC:93 SL:9 CB6E D0 BNE $CB79 PC:CB6F A:80 X:00 Y:00 P:66 SP:FB CYC:99 SL:9 CB70 30 BMI $CB79 PC:CB71 A:80 X:00 Y:00 P:66 SP:FB CYC:105 SL:9 CB72 50 BVC $CB79 PC:CB73 A:80 X:00 Y:00 P:66 SP:FB CYC:111 SL:9 CB74 B0 BCS $CB79 PC:CB75 A:80 X:00 Y:00 P:66 SP:FB CYC:117 SL:9 CB76 4C JMP $CB7D PC:CB77 A:80 X:00 Y:00 P:66 SP:FB CYC:123 SL:9 CB7D EA NOP PC:CB7E A:80 X:00 Y:00 P:66 SP:FB CYC:132 SL:9 CB7E A9 LDA #$55 PC:CB7F A:80 X:00 Y:00 P:66 SP:FB CYC:138 SL:9 CB80 A2 LDX #$AA PC:CB81 A:55 X:00 Y:00 P:64 SP:FB CYC:144 SL:9 CB82 A0 LDY #$33 PC:CB83 A:55 X:AA Y:00 P:E4 SP:FB CYC:150 SL:9 CB84 C9 CMP #$55 PC:CB85 A:55 X:AA Y:33 P:64 SP:FB CYC:156 SL:9 CB86 D0 BNE $CBAB PC:CB87 A:55 X:AA Y:33 P:67 SP:FB CYC:162 SL:9 CB88 E0 CPX #$AA PC:CB89 A:55 X:AA Y:33 P:67 SP:FB CYC:168 SL:9 CB8A D0 BNE $CBAB PC:CB8B A:55 X:AA Y:33 P:67 SP:FB CYC:174 SL:9 CB8C C0 CPY #$33 PC:CB8D A:55 X:AA Y:33 P:67 SP:FB CYC:180 SL:9 CB8E D0 BNE $CBAB PC:CB8F A:55 X:AA Y:33 P:67 SP:FB CYC:186 SL:9 CB90 C9 CMP #$55 PC:CB91 A:55 X:AA Y:33 P:67 SP:FB CYC:192 SL:9 CB92 D0 BNE $CBAB PC:CB93 A:55 X:AA Y:33 P:67 SP:FB CYC:198 SL:9 CB94 E0 CPX #$AA PC:CB95 A:55 X:AA Y:33 P:67 SP:FB CYC:204 SL:9 CB96 D0 BNE $CBAB PC:CB97 A:55 X:AA Y:33 P:67 SP:FB CYC:210 SL:9 CB98 C0 CPY #$33 PC:CB99 A:55 X:AA Y:33 P:67 SP:FB CYC:216 SL:9 CB9A D0 BNE $CBAB PC:CB9B A:55 X:AA Y:33 P:67 SP:FB CYC:222 SL:9 CB9C C9 CMP #$56 PC:CB9D A:55 X:AA Y:33 P:67 SP:FB CYC:228 SL:9 CB9E F0 BEQ $CBAB PC:CB9F A:55 X:AA Y:33 P:E4 SP:FB CYC:234 SL:9 CBA0 E0 CPX #$AB PC:CBA1 A:55 X:AA Y:33 P:E4 SP:FB CYC:240 SL:9 CBA2 F0 BEQ $CBAB PC:CBA3 A:55 X:AA Y:33 P:E4 SP:FB CYC:246 SL:9 CBA4 C0 CPY #$34 PC:CBA5 A:55 X:AA Y:33 P:E4 SP:FB CYC:252 SL:9 CBA6 F0 BEQ $CBAB PC:CBA7 A:55 X:AA Y:33 P:E4 SP:FB CYC:258 SL:9 CBA8 4C JMP $CBAF PC:CBA9 A:55 X:AA Y:33 P:E4 SP:FB CYC:264 SL:9 CBAF A0 LDY #$71 PC:CBB0 A:55 X:AA Y:33 P:E4 SP:FB CYC:273 SL:9 CBB1 20 JSR $F931 PC:CBB2 A:55 X:AA Y:71 P:64 SP:FB CYC:279 SL:9 F931 24 BIT $01 PC:F932 A:55 X:AA Y:71 P:64 SP:F9 CYC:297 SL:9 F933 A9 LDA #$40 PC:F934 A:55 X:AA Y:71 P:E4 SP:F9 CYC:306 SL:9 F935 38 SEC PC:F936 A:40 X:AA Y:71 P:64 SP:F9 CYC:312 SL:9 F936 60 RTS PC:F937 A:40 X:AA Y:71 P:65 SP:F9 CYC:318 SL:9 CBB4 E9 SBC #$40 PC:CBB5 A:40 X:AA Y:71 P:65 SP:FB CYC:336 SL:9 CBB6 20 JSR $F937 PC:CBB7 A:00 X:AA Y:71 P:27 SP:FB CYC:1 SL:10 F937 30 BMI $F944 PC:F938 A:00 X:AA Y:71 P:27 SP:F9 CYC:19 SL:10 F939 90 BCC $F944 PC:F93A A:00 X:AA Y:71 P:27 SP:F9 CYC:25 SL:10 F93B D0 BNE $F944 PC:F93C A:00 X:AA Y:71 P:27 SP:F9 CYC:31 SL:10 F93D 70 BVS $F944 PC:F93E A:00 X:AA Y:71 P:27 SP:F9 CYC:37 SL:10 F93F C9 CMP #$00 PC:F940 A:00 X:AA Y:71 P:27 SP:F9 CYC:43 SL:10 F941 D0 BNE $F944 PC:F942 A:00 X:AA Y:71 P:27 SP:F9 CYC:49 SL:10 F943 60 RTS PC:F944 A:00 X:AA Y:71 P:27 SP:F9 CYC:55 SL:10 CBB9 C8 INY PC:CBBA A:00 X:AA Y:71 P:27 SP:FB CYC:73 SL:10 CBBA 20 JSR $F947 PC:CBBB A:00 X:AA Y:72 P:25 SP:FB CYC:79 SL:10 F947 B8 CLV PC:F948 A:00 X:AA Y:72 P:25 SP:F9 CYC:97 SL:10 F948 38 SEC PC:F949 A:00 X:AA Y:72 P:25 SP:F9 CYC:103 SL:10 F949 A9 LDA #$40 PC:F94A A:00 X:AA Y:72 P:25 SP:F9 CYC:109 SL:10 F94B 60 RTS PC:F94C A:40 X:AA Y:72 P:25 SP:F9 CYC:115 SL:10 CBBD E9 SBC #$3F PC:CBBE A:40 X:AA Y:72 P:25 SP:FB CYC:133 SL:10 CBBF 20 JSR $F94C PC:CBC0 A:01 X:AA Y:72 P:25 SP:FB CYC:139 SL:10 F94C F0 BEQ $F959 PC:F94D A:01 X:AA Y:72 P:25 SP:F9 CYC:157 SL:10 F94E 30 BMI $F959 PC:F94F A:01 X:AA Y:72 P:25 SP:F9 CYC:163 SL:10 F950 90 BCC $F959 PC:F951 A:01 X:AA Y:72 P:25 SP:F9 CYC:169 SL:10 F952 70 BVS $F959 PC:F953 A:01 X:AA Y:72 P:25 SP:F9 CYC:175 SL:10 F954 C9 CMP #$01 PC:F955 A:01 X:AA Y:72 P:25 SP:F9 CYC:181 SL:10 F956 D0 BNE $F959 PC:F957 A:01 X:AA Y:72 P:27 SP:F9 CYC:187 SL:10 F958 60 RTS PC:F959 A:01 X:AA Y:72 P:27 SP:F9 CYC:193 SL:10 CBC2 C8 INY PC:CBC3 A:01 X:AA Y:72 P:27 SP:FB CYC:211 SL:10 CBC3 20 JSR $F95C PC:CBC4 A:01 X:AA Y:73 P:25 SP:FB CYC:217 SL:10 F95C A9 LDA #$40 PC:F95D A:01 X:AA Y:73 P:25 SP:F9 CYC:235 SL:10 F95E 38 SEC PC:F95F A:40 X:AA Y:73 P:25 SP:F9 CYC:241 SL:10 F95F 24 BIT $01 PC:F960 A:40 X:AA Y:73 P:25 SP:F9 CYC:247 SL:10 F961 60 RTS PC:F962 A:40 X:AA Y:73 P:E5 SP:F9 CYC:256 SL:10 CBC6 E9 SBC #$41 PC:CBC7 A:40 X:AA Y:73 P:E5 SP:FB CYC:274 SL:10 CBC8 20 JSR $F962 PC:CBC9 A:FF X:AA Y:73 P:A4 SP:FB CYC:280 SL:10 F962 B0 BCS $F96F PC:F963 A:FF X:AA Y:73 P:A4 SP:F9 CYC:298 SL:10 F964 F0 BEQ $F96F PC:F965 A:FF X:AA Y:73 P:A4 SP:F9 CYC:304 SL:10 F966 10 BPL $F96F PC:F967 A:FF X:AA Y:73 P:A4 SP:F9 CYC:310 SL:10 F968 70 BVS $F96F PC:F969 A:FF X:AA Y:73 P:A4 SP:F9 CYC:316 SL:10 F96A C9 CMP #$FF PC:F96B A:FF X:AA Y:73 P:A4 SP:F9 CYC:322 SL:10 F96C D0 BNE $F96F PC:F96D A:FF X:AA Y:73 P:27 SP:F9 CYC:328 SL:10 F96E 60 RTS PC:F96F A:FF X:AA Y:73 P:27 SP:F9 CYC:334 SL:10 CBCB C8 INY PC:CBCC A:FF X:AA Y:73 P:27 SP:FB CYC:11 SL:11 CBCC 20 JSR $F972 PC:CBCD A:FF X:AA Y:74 P:25 SP:FB CYC:17 SL:11 F972 18 CLC PC:F973 A:FF X:AA Y:74 P:25 SP:F9 CYC:35 SL:11 F973 A9 LDA #$80 PC:F974 A:FF X:AA Y:74 P:24 SP:F9 CYC:41 SL:11 F975 60 RTS PC:F976 A:80 X:AA Y:74 P:A4 SP:F9 CYC:47 SL:11 CBCF E9 SBC #$00 PC:CBD0 A:80 X:AA Y:74 P:A4 SP:FB CYC:65 SL:11 CBD1 20 JSR $F976 PC:CBD2 A:7F X:AA Y:74 P:65 SP:FB CYC:71 SL:11 F976 90 BCC $F97D PC:F977 A:7F X:AA Y:74 P:65 SP:F9 CYC:89 SL:11 F978 C9 CMP #$7F PC:F979 A:7F X:AA Y:74 P:65 SP:F9 CYC:95 SL:11 F97A D0 BNE $F97D PC:F97B A:7F X:AA Y:74 P:67 SP:F9 CYC:101 SL:11 F97C 60 RTS PC:F97D A:7F X:AA Y:74 P:67 SP:F9 CYC:107 SL:11 CBD4 C8 INY PC:CBD5 A:7F X:AA Y:74 P:67 SP:FB CYC:125 SL:11 CBD5 20 JSR $F980 PC:CBD6 A:7F X:AA Y:75 P:65 SP:FB CYC:131 SL:11 F980 38 SEC PC:F981 A:7F X:AA Y:75 P:65 SP:F9 CYC:149 SL:11 F981 A9 LDA #$81 PC:F982 A:7F X:AA Y:75 P:65 SP:F9 CYC:155 SL:11 F983 60 RTS PC:F984 A:81 X:AA Y:75 P:E5 SP:F9 CYC:161 SL:11 CBD8 E9 SBC #$7F PC:CBD9 A:81 X:AA Y:75 P:E5 SP:FB CYC:179 SL:11 CBDA 20 JSR $F984 PC:CBDB A:02 X:AA Y:75 P:65 SP:FB CYC:185 SL:11 F984 50 BVC $F98D PC:F985 A:02 X:AA Y:75 P:65 SP:F9 CYC:203 SL:11 F986 90 BCC $F98D PC:F987 A:02 X:AA Y:75 P:65 SP:F9 CYC:209 SL:11 F988 C9 CMP #$02 PC:F989 A:02 X:AA Y:75 P:65 SP:F9 CYC:215 SL:11 F98A D0 BNE $F98D PC:F98B A:02 X:AA Y:75 P:67 SP:F9 CYC:221 SL:11 F98C 60 RTS PC:F98D A:02 X:AA Y:75 P:67 SP:F9 CYC:227 SL:11 CBDD 60 RTS PC:CBDE A:02 X:AA Y:75 P:67 SP:FB CYC:245 SL:11 C606 20 JSR $CBDE PC:C607 A:02 X:AA Y:75 P:67 SP:FD CYC:263 SL:11 CBDE EA NOP PC:CBDF A:02 X:AA Y:75 P:67 SP:FB CYC:281 SL:11 CBDF A9 LDA #$FF PC:CBE0 A:02 X:AA Y:75 P:67 SP:FB CYC:287 SL:11 CBE1 85 STA $01 PC:CBE2 A:FF X:AA Y:75 P:E5 SP:FB CYC:293 SL:11 CBE3 A9 LDA #$44 PC:CBE4 A:FF X:AA Y:75 P:E5 SP:FB CYC:302 SL:11 CBE5 A2 LDX #$55 PC:CBE6 A:44 X:AA Y:75 P:65 SP:FB CYC:308 SL:11 CBE7 A0 LDY #$66 PC:CBE8 A:44 X:55 Y:75 P:65 SP:FB CYC:314 SL:11 CBE9 E8 INX PC:CBEA A:44 X:55 Y:66 P:65 SP:FB CYC:320 SL:11 CBEA 88 DEY PC:CBEB A:44 X:56 Y:66 P:65 SP:FB CYC:326 SL:11 CBEB E0 CPX #$56 PC:CBEC A:44 X:56 Y:65 P:65 SP:FB CYC:332 SL:11 CBED D0 BNE $CC10 PC:CBEE A:44 X:56 Y:65 P:67 SP:FB CYC:338 SL:11 CBEF C0 CPY #$65 PC:CBF0 A:44 X:56 Y:65 P:67 SP:FB CYC:3 SL:12 CBF1 D0 BNE $CC10 PC:CBF2 A:44 X:56 Y:65 P:67 SP:FB CYC:9 SL:12 CBF3 E8 INX PC:CBF4 A:44 X:56 Y:65 P:67 SP:FB CYC:15 SL:12 CBF4 E8 INX PC:CBF5 A:44 X:57 Y:65 P:65 SP:FB CYC:21 SL:12 CBF5 88 DEY PC:CBF6 A:44 X:58 Y:65 P:65 SP:FB CYC:27 SL:12 CBF6 88 DEY PC:CBF7 A:44 X:58 Y:64 P:65 SP:FB CYC:33 SL:12 CBF7 E0 CPX #$58 PC:CBF8 A:44 X:58 Y:63 P:65 SP:FB CYC:39 SL:12 CBF9 D0 BNE $CC10 PC:CBFA A:44 X:58 Y:63 P:67 SP:FB CYC:45 SL:12 CBFB C0 CPY #$63 PC:CBFC A:44 X:58 Y:63 P:67 SP:FB CYC:51 SL:12 CBFD D0 BNE $CC10 PC:CBFE A:44 X:58 Y:63 P:67 SP:FB CYC:57 SL:12 CBFF CA DEX PC:CC00 A:44 X:58 Y:63 P:67 SP:FB CYC:63 SL:12 CC00 C8 INY PC:CC01 A:44 X:57 Y:63 P:65 SP:FB CYC:69 SL:12 CC01 E0 CPX #$57 PC:CC02 A:44 X:57 Y:64 P:65 SP:FB CYC:75 SL:12 CC03 D0 BNE $CC10 PC:CC04 A:44 X:57 Y:64 P:67 SP:FB CYC:81 SL:12 CC05 C0 CPY #$64 PC:CC06 A:44 X:57 Y:64 P:67 SP:FB CYC:87 SL:12 CC07 D0 BNE $CC10 PC:CC08 A:44 X:57 Y:64 P:67 SP:FB CYC:93 SL:12 CC09 C9 CMP #$44 PC:CC0A A:44 X:57 Y:64 P:67 SP:FB CYC:99 SL:12 CC0B D0 BNE $CC10 PC:CC0C A:44 X:57 Y:64 P:67 SP:FB CYC:105 SL:12 CC0D 4C JMP $CC14 PC:CC0E A:44 X:57 Y:64 P:67 SP:FB CYC:111 SL:12 CC14 EA NOP PC:CC15 A:44 X:57 Y:64 P:67 SP:FB CYC:120 SL:12 CC15 38 SEC PC:CC16 A:44 X:57 Y:64 P:67 SP:FB CYC:126 SL:12 CC16 A2 LDX #$69 PC:CC17 A:44 X:57 Y:64 P:67 SP:FB CYC:132 SL:12 CC18 A9 LDA #$96 PC:CC19 A:44 X:69 Y:64 P:65 SP:FB CYC:138 SL:12 CC1A 24 BIT $01 PC:CC1B A:96 X:69 Y:64 P:E5 SP:FB CYC:144 SL:12 CC1C A0 LDY #$FF PC:CC1D A:96 X:69 Y:64 P:E5 SP:FB CYC:153 SL:12 CC1E C8 INY PC:CC1F A:96 X:69 Y:FF P:E5 SP:FB CYC:159 SL:12 CC1F D0 BNE $CC5E PC:CC20 A:96 X:69 Y:00 P:67 SP:FB CYC:165 SL:12 CC21 30 BMI $CC5E PC:CC22 A:96 X:69 Y:00 P:67 SP:FB CYC:171 SL:12 CC23 90 BCC $CC5E PC:CC24 A:96 X:69 Y:00 P:67 SP:FB CYC:177 SL:12 CC25 50 BVC $CC5E PC:CC26 A:96 X:69 Y:00 P:67 SP:FB CYC:183 SL:12 CC27 C0 CPY #$00 PC:CC28 A:96 X:69 Y:00 P:67 SP:FB CYC:189 SL:12 CC29 D0 BNE $CC5E PC:CC2A A:96 X:69 Y:00 P:67 SP:FB CYC:195 SL:12 CC2B C8 INY PC:CC2C A:96 X:69 Y:00 P:67 SP:FB CYC:201 SL:12 CC2C F0 BEQ $CC5E PC:CC2D A:96 X:69 Y:01 P:65 SP:FB CYC:207 SL:12 CC2E 30 BMI $CC5E PC:CC2F A:96 X:69 Y:01 P:65 SP:FB CYC:213 SL:12 CC30 90 BCC $CC5E PC:CC31 A:96 X:69 Y:01 P:65 SP:FB CYC:219 SL:12 CC32 50 BVC $CC5E PC:CC33 A:96 X:69 Y:01 P:65 SP:FB CYC:225 SL:12 CC34 18 CLC PC:CC35 A:96 X:69 Y:01 P:65 SP:FB CYC:231 SL:12 CC35 B8 CLV PC:CC36 A:96 X:69 Y:01 P:64 SP:FB CYC:237 SL:12 CC36 A0 LDY #$00 PC:CC37 A:96 X:69 Y:01 P:24 SP:FB CYC:243 SL:12 CC38 88 DEY PC:CC39 A:96 X:69 Y:00 P:26 SP:FB CYC:249 SL:12 CC39 F0 BEQ $CC5E PC:CC3A A:96 X:69 Y:FF P:A4 SP:FB CYC:255 SL:12 CC3B 10 BPL $CC5E PC:CC3C A:96 X:69 Y:FF P:A4 SP:FB CYC:261 SL:12 CC3D B0 BCS $CC5E PC:CC3E A:96 X:69 Y:FF P:A4 SP:FB CYC:267 SL:12 CC3F 70 BVS $CC5E PC:CC40 A:96 X:69 Y:FF P:A4 SP:FB CYC:273 SL:12 CC41 C0 CPY #$FF PC:CC42 A:96 X:69 Y:FF P:A4 SP:FB CYC:279 SL:12 CC43 D0 BNE $CC5E PC:CC44 A:96 X:69 Y:FF P:27 SP:FB CYC:285 SL:12 CC45 18 CLC PC:CC46 A:96 X:69 Y:FF P:27 SP:FB CYC:291 SL:12 CC46 88 DEY PC:CC47 A:96 X:69 Y:FF P:26 SP:FB CYC:297 SL:12 CC47 F0 BEQ $CC5E PC:CC48 A:96 X:69 Y:FE P:A4 SP:FB CYC:303 SL:12 CC49 10 BPL $CC5E PC:CC4A A:96 X:69 Y:FE P:A4 SP:FB CYC:309 SL:12 CC4B B0 BCS $CC5E PC:CC4C A:96 X:69 Y:FE P:A4 SP:FB CYC:315 SL:12 CC4D 70 BVS $CC5E PC:CC4E A:96 X:69 Y:FE P:A4 SP:FB CYC:321 SL:12 CC4F C0 CPY #$FE PC:CC50 A:96 X:69 Y:FE P:A4 SP:FB CYC:327 SL:12 CC51 D0 BNE $CC5E PC:CC52 A:96 X:69 Y:FE P:27 SP:FB CYC:333 SL:12 CC53 C9 CMP #$96 PC:CC54 A:96 X:69 Y:FE P:27 SP:FB CYC:339 SL:12 CC55 D0 BNE $CC5E PC:CC56 A:96 X:69 Y:FE P:27 SP:FB CYC:4 SL:13 CC57 E0 CPX #$69 PC:CC58 A:96 X:69 Y:FE P:27 SP:FB CYC:10 SL:13 CC59 D0 BNE $CC5E PC:CC5A A:96 X:69 Y:FE P:27 SP:FB CYC:16 SL:13 CC5B 4C JMP $CC62 PC:CC5C A:96 X:69 Y:FE P:27 SP:FB CYC:22 SL:13 CC62 EA NOP PC:CC63 A:96 X:69 Y:FE P:27 SP:FB CYC:31 SL:13 CC63 38 SEC PC:CC64 A:96 X:69 Y:FE P:27 SP:FB CYC:37 SL:13 CC64 A0 LDY #$69 PC:CC65 A:96 X:69 Y:FE P:27 SP:FB CYC:43 SL:13 CC66 A9 LDA #$96 PC:CC67 A:96 X:69 Y:69 P:25 SP:FB CYC:49 SL:13 CC68 24 BIT $01 PC:CC69 A:96 X:69 Y:69 P:A5 SP:FB CYC:55 SL:13 CC6A A2 LDX #$FF PC:CC6B A:96 X:69 Y:69 P:E5 SP:FB CYC:64 SL:13 CC6C E8 INX PC:CC6D A:96 X:FF Y:69 P:E5 SP:FB CYC:70 SL:13 CC6D D0 BNE $CCAC PC:CC6E A:96 X:00 Y:69 P:67 SP:FB CYC:76 SL:13 CC6F 30 BMI $CCAC PC:CC70 A:96 X:00 Y:69 P:67 SP:FB CYC:82 SL:13 CC71 90 BCC $CCAC PC:CC72 A:96 X:00 Y:69 P:67 SP:FB CYC:88 SL:13 CC73 50 BVC $CCAC PC:CC74 A:96 X:00 Y:69 P:67 SP:FB CYC:94 SL:13 CC75 E0 CPX #$00 PC:CC76 A:96 X:00 Y:69 P:67 SP:FB CYC:100 SL:13 CC77 D0 BNE $CCAC PC:CC78 A:96 X:00 Y:69 P:67 SP:FB CYC:106 SL:13 CC79 E8 INX PC:CC7A A:96 X:00 Y:69 P:67 SP:FB CYC:112 SL:13 CC7A F0 BEQ $CCAC PC:CC7B A:96 X:01 Y:69 P:65 SP:FB CYC:118 SL:13 CC7C 30 BMI $CCAC PC:CC7D A:96 X:01 Y:69 P:65 SP:FB CYC:124 SL:13 CC7E 90 BCC $CCAC PC:CC7F A:96 X:01 Y:69 P:65 SP:FB CYC:130 SL:13 CC80 50 BVC $CCAC PC:CC81 A:96 X:01 Y:69 P:65 SP:FB CYC:136 SL:13 CC82 18 CLC PC:CC83 A:96 X:01 Y:69 P:65 SP:FB CYC:142 SL:13 CC83 B8 CLV PC:CC84 A:96 X:01 Y:69 P:64 SP:FB CYC:148 SL:13 CC84 A2 LDX #$00 PC:CC85 A:96 X:01 Y:69 P:24 SP:FB CYC:154 SL:13 CC86 CA DEX PC:CC87 A:96 X:00 Y:69 P:26 SP:FB CYC:160 SL:13 CC87 F0 BEQ $CCAC PC:CC88 A:96 X:FF Y:69 P:A4 SP:FB CYC:166 SL:13 CC89 10 BPL $CCAC PC:CC8A A:96 X:FF Y:69 P:A4 SP:FB CYC:172 SL:13 CC8B B0 BCS $CCAC PC:CC8C A:96 X:FF Y:69 P:A4 SP:FB CYC:178 SL:13 CC8D 70 BVS $CCAC PC:CC8E A:96 X:FF Y:69 P:A4 SP:FB CYC:184 SL:13 CC8F E0 CPX #$FF PC:CC90 A:96 X:FF Y:69 P:A4 SP:FB CYC:190 SL:13 CC91 D0 BNE $CCAC PC:CC92 A:96 X:FF Y:69 P:27 SP:FB CYC:196 SL:13 CC93 18 CLC PC:CC94 A:96 X:FF Y:69 P:27 SP:FB CYC:202 SL:13 CC94 CA DEX PC:CC95 A:96 X:FF Y:69 P:26 SP:FB CYC:208 SL:13 CC95 F0 BEQ $CCAC PC:CC96 A:96 X:FE Y:69 P:A4 SP:FB CYC:214 SL:13 CC97 10 BPL $CCAC PC:CC98 A:96 X:FE Y:69 P:A4 SP:FB CYC:220 SL:13 CC99 B0 BCS $CCAC PC:CC9A A:96 X:FE Y:69 P:A4 SP:FB CYC:226 SL:13 CC9B 70 BVS $CCAC PC:CC9C A:96 X:FE Y:69 P:A4 SP:FB CYC:232 SL:13 CC9D E0 CPX #$FE PC:CC9E A:96 X:FE Y:69 P:A4 SP:FB CYC:238 SL:13 CC9F D0 BNE $CCAC PC:CCA0 A:96 X:FE Y:69 P:27 SP:FB CYC:244 SL:13 CCA1 C9 CMP #$96 PC:CCA2 A:96 X:FE Y:69 P:27 SP:FB CYC:250 SL:13 CCA3 D0 BNE $CCAC PC:CCA4 A:96 X:FE Y:69 P:27 SP:FB CYC:256 SL:13 CCA5 C0 CPY #$69 PC:CCA6 A:96 X:FE Y:69 P:27 SP:FB CYC:262 SL:13 CCA7 D0 BNE $CCAC PC:CCA8 A:96 X:FE Y:69 P:27 SP:FB CYC:268 SL:13 CCA9 4C JMP $CCB0 PC:CCAA A:96 X:FE Y:69 P:27 SP:FB CYC:274 SL:13 CCB0 EA NOP PC:CCB1 A:96 X:FE Y:69 P:27 SP:FB CYC:283 SL:13 CCB1 A9 LDA #$85 PC:CCB2 A:96 X:FE Y:69 P:27 SP:FB CYC:289 SL:13 CCB3 A2 LDX #$34 PC:CCB4 A:85 X:FE Y:69 P:A5 SP:FB CYC:295 SL:13 CCB5 A0 LDY #$99 PC:CCB6 A:85 X:34 Y:69 P:25 SP:FB CYC:301 SL:13 CCB7 18 CLC PC:CCB8 A:85 X:34 Y:99 P:A5 SP:FB CYC:307 SL:13 CCB8 24 BIT $01 PC:CCB9 A:85 X:34 Y:99 P:A4 SP:FB CYC:313 SL:13 CCBA A8 TAY PC:CCBB A:85 X:34 Y:99 P:E4 SP:FB CYC:322 SL:13 CCBB F0 BEQ $CCEB PC:CCBC A:85 X:34 Y:85 P:E4 SP:FB CYC:328 SL:13 CCBD B0 BCS $CCEB PC:CCBE A:85 X:34 Y:85 P:E4 SP:FB CYC:334 SL:13 CCBF 50 BVC $CCEB PC:CCC0 A:85 X:34 Y:85 P:E4 SP:FB CYC:340 SL:13 CCC1 10 BPL $CCEB PC:CCC2 A:85 X:34 Y:85 P:E4 SP:FB CYC:5 SL:14 CCC3 C9 CMP #$85 PC:CCC4 A:85 X:34 Y:85 P:E4 SP:FB CYC:11 SL:14 CCC5 D0 BNE $CCEB PC:CCC6 A:85 X:34 Y:85 P:67 SP:FB CYC:17 SL:14 CCC7 E0 CPX #$34 PC:CCC8 A:85 X:34 Y:85 P:67 SP:FB CYC:23 SL:14 CCC9 D0 BNE $CCEB PC:CCCA A:85 X:34 Y:85 P:67 SP:FB CYC:29 SL:14 CCCB C0 CPY #$85 PC:CCCC A:85 X:34 Y:85 P:67 SP:FB CYC:35 SL:14 CCCD D0 BNE $CCEB PC:CCCE A:85 X:34 Y:85 P:67 SP:FB CYC:41 SL:14 CCCF A9 LDA #$00 PC:CCD0 A:85 X:34 Y:85 P:67 SP:FB CYC:47 SL:14 CCD1 38 SEC PC:CCD2 A:00 X:34 Y:85 P:67 SP:FB CYC:53 SL:14 CCD2 B8 CLV PC:CCD3 A:00 X:34 Y:85 P:67 SP:FB CYC:59 SL:14 CCD3 A8 TAY PC:CCD4 A:00 X:34 Y:85 P:27 SP:FB CYC:65 SL:14 CCD4 D0 BNE $CCEB PC:CCD5 A:00 X:34 Y:00 P:27 SP:FB CYC:71 SL:14 CCD6 90 BCC $CCEB PC:CCD7 A:00 X:34 Y:00 P:27 SP:FB CYC:77 SL:14 CCD8 70 BVS $CCEB PC:CCD9 A:00 X:34 Y:00 P:27 SP:FB CYC:83 SL:14 CCDA 30 BMI $CCEB PC:CCDB A:00 X:34 Y:00 P:27 SP:FB CYC:89 SL:14 CCDC C9 CMP #$00 PC:CCDD A:00 X:34 Y:00 P:27 SP:FB CYC:95 SL:14 CCDE D0 BNE $CCEB PC:CCDF A:00 X:34 Y:00 P:27 SP:FB CYC:101 SL:14 CCE0 E0 CPX #$34 PC:CCE1 A:00 X:34 Y:00 P:27 SP:FB CYC:107 SL:14 CCE2 D0 BNE $CCEB PC:CCE3 A:00 X:34 Y:00 P:27 SP:FB CYC:113 SL:14 CCE4 C0 CPY #$00 PC:CCE5 A:00 X:34 Y:00 P:27 SP:FB CYC:119 SL:14 CCE6 D0 BNE $CCEB PC:CCE7 A:00 X:34 Y:00 P:27 SP:FB CYC:125 SL:14 CCE8 4C JMP $CCEF PC:CCE9 A:00 X:34 Y:00 P:27 SP:FB CYC:131 SL:14 CCEF EA NOP PC:CCF0 A:00 X:34 Y:00 P:27 SP:FB CYC:140 SL:14 CCF0 A9 LDA #$85 PC:CCF1 A:00 X:34 Y:00 P:27 SP:FB CYC:146 SL:14 CCF2 A2 LDX #$34 PC:CCF3 A:85 X:34 Y:00 P:A5 SP:FB CYC:152 SL:14 CCF4 A0 LDY #$99 PC:CCF5 A:85 X:34 Y:00 P:25 SP:FB CYC:158 SL:14 CCF6 18 CLC PC:CCF7 A:85 X:34 Y:99 P:A5 SP:FB CYC:164 SL:14 CCF7 24 BIT $01 PC:CCF8 A:85 X:34 Y:99 P:A4 SP:FB CYC:170 SL:14 CCF9 AA TAX PC:CCFA A:85 X:34 Y:99 P:E4 SP:FB CYC:179 SL:14 CCFA F0 BEQ $CD2A PC:CCFB A:85 X:85 Y:99 P:E4 SP:FB CYC:185 SL:14 CCFC B0 BCS $CD2A PC:CCFD A:85 X:85 Y:99 P:E4 SP:FB CYC:191 SL:14 CCFE 50 BVC $CD2A PC:CCFF A:85 X:85 Y:99 P:E4 SP:FB CYC:197 SL:14 CD00 10 BPL $CD2A PC:CD01 A:85 X:85 Y:99 P:E4 SP:FB CYC:203 SL:14 CD02 C9 CMP #$85 PC:CD03 A:85 X:85 Y:99 P:E4 SP:FB CYC:209 SL:14 CD04 D0 BNE $CD2A PC:CD05 A:85 X:85 Y:99 P:67 SP:FB CYC:215 SL:14 CD06 E0 CPX #$85 PC:CD07 A:85 X:85 Y:99 P:67 SP:FB CYC:221 SL:14 CD08 D0 BNE $CD2A PC:CD09 A:85 X:85 Y:99 P:67 SP:FB CYC:227 SL:14 CD0A C0 CPY #$99 PC:CD0B A:85 X:85 Y:99 P:67 SP:FB CYC:233 SL:14 CD0C D0 BNE $CD2A PC:CD0D A:85 X:85 Y:99 P:67 SP:FB CYC:239 SL:14 CD0E A9 LDA #$00 PC:CD0F A:85 X:85 Y:99 P:67 SP:FB CYC:245 SL:14 CD10 38 SEC PC:CD11 A:00 X:85 Y:99 P:67 SP:FB CYC:251 SL:14 CD11 B8 CLV PC:CD12 A:00 X:85 Y:99 P:67 SP:FB CYC:257 SL:14 CD12 AA TAX PC:CD13 A:00 X:85 Y:99 P:27 SP:FB CYC:263 SL:14 CD13 D0 BNE $CD2A PC:CD14 A:00 X:00 Y:99 P:27 SP:FB CYC:269 SL:14 CD15 90 BCC $CD2A PC:CD16 A:00 X:00 Y:99 P:27 SP:FB CYC:275 SL:14 CD17 70 BVS $CD2A PC:CD18 A:00 X:00 Y:99 P:27 SP:FB CYC:281 SL:14 CD19 30 BMI $CD2A PC:CD1A A:00 X:00 Y:99 P:27 SP:FB CYC:287 SL:14 CD1B C9 CMP #$00 PC:CD1C A:00 X:00 Y:99 P:27 SP:FB CYC:293 SL:14 CD1D D0 BNE $CD2A PC:CD1E A:00 X:00 Y:99 P:27 SP:FB CYC:299 SL:14 CD1F E0 CPX #$00 PC:CD20 A:00 X:00 Y:99 P:27 SP:FB CYC:305 SL:14 CD21 D0 BNE $CD2A PC:CD22 A:00 X:00 Y:99 P:27 SP:FB CYC:311 SL:14 CD23 C0 CPY #$99 PC:CD24 A:00 X:00 Y:99 P:27 SP:FB CYC:317 SL:14 CD25 D0 BNE $CD2A PC:CD26 A:00 X:00 Y:99 P:27 SP:FB CYC:323 SL:14 CD27 4C JMP $CD2E PC:CD28 A:00 X:00 Y:99 P:27 SP:FB CYC:329 SL:14 CD2E EA NOP PC:CD2F A:00 X:00 Y:99 P:27 SP:FB CYC:338 SL:14 CD2F A9 LDA #$85 PC:CD30 A:00 X:00 Y:99 P:27 SP:FB CYC:3 SL:15 CD31 A2 LDX #$34 PC:CD32 A:85 X:00 Y:99 P:A5 SP:FB CYC:9 SL:15 CD33 A0 LDY #$99 PC:CD34 A:85 X:34 Y:99 P:25 SP:FB CYC:15 SL:15 CD35 18 CLC PC:CD36 A:85 X:34 Y:99 P:A5 SP:FB CYC:21 SL:15 CD36 24 BIT $01 PC:CD37 A:85 X:34 Y:99 P:A4 SP:FB CYC:27 SL:15 CD38 98 TYA PC:CD39 A:85 X:34 Y:99 P:E4 SP:FB CYC:36 SL:15 CD39 F0 BEQ $CD69 PC:CD3A A:99 X:34 Y:99 P:E4 SP:FB CYC:42 SL:15 CD3B B0 BCS $CD69 PC:CD3C A:99 X:34 Y:99 P:E4 SP:FB CYC:48 SL:15 CD3D 50 BVC $CD69 PC:CD3E A:99 X:34 Y:99 P:E4 SP:FB CYC:54 SL:15 CD3F 10 BPL $CD69 PC:CD40 A:99 X:34 Y:99 P:E4 SP:FB CYC:60 SL:15 CD41 C9 CMP #$99 PC:CD42 A:99 X:34 Y:99 P:E4 SP:FB CYC:66 SL:15 CD43 D0 BNE $CD69 PC:CD44 A:99 X:34 Y:99 P:67 SP:FB CYC:72 SL:15 CD45 E0 CPX #$34 PC:CD46 A:99 X:34 Y:99 P:67 SP:FB CYC:78 SL:15 CD47 D0 BNE $CD69 PC:CD48 A:99 X:34 Y:99 P:67 SP:FB CYC:84 SL:15 CD49 C0 CPY #$99 PC:CD4A A:99 X:34 Y:99 P:67 SP:FB CYC:90 SL:15 CD4B D0 BNE $CD69 PC:CD4C A:99 X:34 Y:99 P:67 SP:FB CYC:96 SL:15 CD4D A0 LDY #$00 PC:CD4E A:99 X:34 Y:99 P:67 SP:FB CYC:102 SL:15 CD4F 38 SEC PC:CD50 A:99 X:34 Y:00 P:67 SP:FB CYC:108 SL:15 CD50 B8 CLV PC:CD51 A:99 X:34 Y:00 P:67 SP:FB CYC:114 SL:15 CD51 98 TYA PC:CD52 A:99 X:34 Y:00 P:27 SP:FB CYC:120 SL:15 CD52 D0 BNE $CD69 PC:CD53 A:00 X:34 Y:00 P:27 SP:FB CYC:126 SL:15 CD54 90 BCC $CD69 PC:CD55 A:00 X:34 Y:00 P:27 SP:FB CYC:132 SL:15 CD56 70 BVS $CD69 PC:CD57 A:00 X:34 Y:00 P:27 SP:FB CYC:138 SL:15 CD58 30 BMI $CD69 PC:CD59 A:00 X:34 Y:00 P:27 SP:FB CYC:144 SL:15 CD5A C9 CMP #$00 PC:CD5B A:00 X:34 Y:00 P:27 SP:FB CYC:150 SL:15 CD5C D0 BNE $CD69 PC:CD5D A:00 X:34 Y:00 P:27 SP:FB CYC:156 SL:15 CD5E E0 CPX #$34 PC:CD5F A:00 X:34 Y:00 P:27 SP:FB CYC:162 SL:15 CD60 D0 BNE $CD69 PC:CD61 A:00 X:34 Y:00 P:27 SP:FB CYC:168 SL:15 CD62 C0 CPY #$00 PC:CD63 A:00 X:34 Y:00 P:27 SP:FB CYC:174 SL:15 CD64 D0 BNE $CD69 PC:CD65 A:00 X:34 Y:00 P:27 SP:FB CYC:180 SL:15 CD66 4C JMP $CD6D PC:CD67 A:00 X:34 Y:00 P:27 SP:FB CYC:186 SL:15 CD6D EA NOP PC:CD6E A:00 X:34 Y:00 P:27 SP:FB CYC:195 SL:15 CD6E A9 LDA #$85 PC:CD6F A:00 X:34 Y:00 P:27 SP:FB CYC:201 SL:15 CD70 A2 LDX #$34 PC:CD71 A:85 X:34 Y:00 P:A5 SP:FB CYC:207 SL:15 CD72 A0 LDY #$99 PC:CD73 A:85 X:34 Y:00 P:25 SP:FB CYC:213 SL:15 CD74 18 CLC PC:CD75 A:85 X:34 Y:99 P:A5 SP:FB CYC:219 SL:15 CD75 24 BIT $01 PC:CD76 A:85 X:34 Y:99 P:A4 SP:FB CYC:225 SL:15 CD77 8A TXA PC:CD78 A:85 X:34 Y:99 P:E4 SP:FB CYC:234 SL:15 CD78 F0 BEQ $CDA8 PC:CD79 A:34 X:34 Y:99 P:64 SP:FB CYC:240 SL:15 CD7A B0 BCS $CDA8 PC:CD7B A:34 X:34 Y:99 P:64 SP:FB CYC:246 SL:15 CD7C 50 BVC $CDA8 PC:CD7D A:34 X:34 Y:99 P:64 SP:FB CYC:252 SL:15 CD7E 30 BMI $CDA8 PC:CD7F A:34 X:34 Y:99 P:64 SP:FB CYC:258 SL:15 CD80 C9 CMP #$34 PC:CD81 A:34 X:34 Y:99 P:64 SP:FB CYC:264 SL:15 CD82 D0 BNE $CDA8 PC:CD83 A:34 X:34 Y:99 P:67 SP:FB CYC:270 SL:15 CD84 E0 CPX #$34 PC:CD85 A:34 X:34 Y:99 P:67 SP:FB CYC:276 SL:15 CD86 D0 BNE $CDA8 PC:CD87 A:34 X:34 Y:99 P:67 SP:FB CYC:282 SL:15 CD88 C0 CPY #$99 PC:CD89 A:34 X:34 Y:99 P:67 SP:FB CYC:288 SL:15 CD8A D0 BNE $CDA8 PC:CD8B A:34 X:34 Y:99 P:67 SP:FB CYC:294 SL:15 CD8C A2 LDX #$00 PC:CD8D A:34 X:34 Y:99 P:67 SP:FB CYC:300 SL:15 CD8E 38 SEC PC:CD8F A:34 X:00 Y:99 P:67 SP:FB CYC:306 SL:15 CD8F B8 CLV PC:CD90 A:34 X:00 Y:99 P:67 SP:FB CYC:312 SL:15 CD90 8A TXA PC:CD91 A:34 X:00 Y:99 P:27 SP:FB CYC:318 SL:15 CD91 D0 BNE $CDA8 PC:CD92 A:00 X:00 Y:99 P:27 SP:FB CYC:324 SL:15 CD93 90 BCC $CDA8 PC:CD94 A:00 X:00 Y:99 P:27 SP:FB CYC:330 SL:15 CD95 70 BVS $CDA8 PC:CD96 A:00 X:00 Y:99 P:27 SP:FB CYC:336 SL:15 CD97 30 BMI $CDA8 PC:CD98 A:00 X:00 Y:99 P:27 SP:FB CYC:1 SL:16 CD99 C9 CMP #$00 PC:CD9A A:00 X:00 Y:99 P:27 SP:FB CYC:7 SL:16 CD9B D0 BNE $CDA8 PC:CD9C A:00 X:00 Y:99 P:27 SP:FB CYC:13 SL:16 CD9D E0 CPX #$00 PC:CD9E A:00 X:00 Y:99 P:27 SP:FB CYC:19 SL:16 CD9F D0 BNE $CDA8 PC:CDA0 A:00 X:00 Y:99 P:27 SP:FB CYC:25 SL:16 CDA1 C0 CPY #$99 PC:CDA2 A:00 X:00 Y:99 P:27 SP:FB CYC:31 SL:16 CDA3 D0 BNE $CDA8 PC:CDA4 A:00 X:00 Y:99 P:27 SP:FB CYC:37 SL:16 CDA5 4C JMP $CDAC PC:CDA6 A:00 X:00 Y:99 P:27 SP:FB CYC:43 SL:16 CDAC EA NOP PC:CDAD A:00 X:00 Y:99 P:27 SP:FB CYC:52 SL:16 CDAD BA TSX PC:CDAE A:00 X:00 Y:99 P:27 SP:FB CYC:58 SL:16 CDAE 8E STX $07FF PC:CDAF A:00 X:FB Y:99 P:A5 SP:FB CYC:64 SL:16 CDB1 A0 LDY #$33 PC:CDB2 A:00 X:FB Y:99 P:A5 SP:FB CYC:76 SL:16 CDB3 A2 LDX #$69 PC:CDB4 A:00 X:FB Y:33 P:25 SP:FB CYC:82 SL:16 CDB5 A9 LDA #$84 PC:CDB6 A:00 X:69 Y:33 P:25 SP:FB CYC:88 SL:16 CDB7 18 CLC PC:CDB8 A:84 X:69 Y:33 P:A5 SP:FB CYC:94 SL:16 CDB8 24 BIT $01 PC:CDB9 A:84 X:69 Y:33 P:A4 SP:FB CYC:100 SL:16 CDBA 9A TXS PC:CDBB A:84 X:69 Y:33 P:E4 SP:FB CYC:109 SL:16 CDBB F0 BEQ $CDEF PC:CDBC A:84 X:69 Y:33 P:E4 SP:69 CYC:115 SL:16 CDBD 10 BPL $CDEF PC:CDBE A:84 X:69 Y:33 P:E4 SP:69 CYC:121 SL:16 CDBF B0 BCS $CDEF PC:CDC0 A:84 X:69 Y:33 P:E4 SP:69 CYC:127 SL:16 CDC1 50 BVC $CDEF PC:CDC2 A:84 X:69 Y:33 P:E4 SP:69 CYC:133 SL:16 CDC3 C9 CMP #$84 PC:CDC4 A:84 X:69 Y:33 P:E4 SP:69 CYC:139 SL:16 CDC5 D0 BNE $CDEF PC:CDC6 A:84 X:69 Y:33 P:67 SP:69 CYC:145 SL:16 CDC7 E0 CPX #$69 PC:CDC8 A:84 X:69 Y:33 P:67 SP:69 CYC:151 SL:16 CDC9 D0 BNE $CDEF PC:CDCA A:84 X:69 Y:33 P:67 SP:69 CYC:157 SL:16 CDCB C0 CPY #$33 PC:CDCC A:84 X:69 Y:33 P:67 SP:69 CYC:163 SL:16 CDCD D0 BNE $CDEF PC:CDCE A:84 X:69 Y:33 P:67 SP:69 CYC:169 SL:16 CDCF A0 LDY #$01 PC:CDD0 A:84 X:69 Y:33 P:67 SP:69 CYC:175 SL:16 CDD1 A9 LDA #$04 PC:CDD2 A:84 X:69 Y:01 P:65 SP:69 CYC:181 SL:16 CDD3 38 SEC PC:CDD4 A:04 X:69 Y:01 P:65 SP:69 CYC:187 SL:16 CDD4 B8 CLV PC:CDD5 A:04 X:69 Y:01 P:65 SP:69 CYC:193 SL:16 CDD5 A2 LDX #$00 PC:CDD6 A:04 X:69 Y:01 P:25 SP:69 CYC:199 SL:16 CDD7 BA TSX PC:CDD8 A:04 X:00 Y:01 P:27 SP:69 CYC:205 SL:16 CDD8 F0 BEQ $CDEF PC:CDD9 A:04 X:69 Y:01 P:25 SP:69 CYC:211 SL:16 CDDA 30 BMI $CDEF PC:CDDB A:04 X:69 Y:01 P:25 SP:69 CYC:217 SL:16 CDDC 90 BCC $CDEF PC:CDDD A:04 X:69 Y:01 P:25 SP:69 CYC:223 SL:16 CDDE 70 BVS $CDEF PC:CDDF A:04 X:69 Y:01 P:25 SP:69 CYC:229 SL:16 CDE0 E0 CPX #$69 PC:CDE1 A:04 X:69 Y:01 P:25 SP:69 CYC:235 SL:16 CDE2 D0 BNE $CDEF PC:CDE3 A:04 X:69 Y:01 P:27 SP:69 CYC:241 SL:16 CDE4 C9 CMP #$04 PC:CDE5 A:04 X:69 Y:01 P:27 SP:69 CYC:247 SL:16 CDE6 D0 BNE $CDEF PC:CDE7 A:04 X:69 Y:01 P:27 SP:69 CYC:253 SL:16 CDE8 C0 CPY #$01 PC:CDE9 A:04 X:69 Y:01 P:27 SP:69 CYC:259 SL:16 CDEA D0 BNE $CDEF PC:CDEB A:04 X:69 Y:01 P:27 SP:69 CYC:265 SL:16 CDEC 4C JMP $CDF3 PC:CDED A:04 X:69 Y:01 P:27 SP:69 CYC:271 SL:16 CDF3 AE LDX $07FF PC:CDF4 A:04 X:69 Y:01 P:27 SP:69 CYC:280 SL:16 CDF6 9A TXS PC:CDF7 A:04 X:FB Y:01 P:A5 SP:69 CYC:292 SL:16 CDF7 60 RTS PC:CDF8 A:04 X:FB Y:01 P:A5 SP:FB CYC:298 SL:16 C609 20 JSR $CDF8 PC:C60A A:04 X:FB Y:01 P:A5 SP:FD CYC:316 SL:16 CDF8 A9 LDA #$FF PC:CDF9 A:04 X:FB Y:01 P:A5 SP:FB CYC:334 SL:16 CDFA 85 STA $01 PC:CDFB A:FF X:FB Y:01 P:A5 SP:FB CYC:340 SL:16 CDFC BA TSX PC:CDFD A:FF X:FB Y:01 P:A5 SP:FB CYC:8 SL:17 CDFD 8E STX $07FF PC:CDFE A:FF X:FB Y:01 P:A5 SP:FB CYC:14 SL:17 CE00 EA NOP PC:CE01 A:FF X:FB Y:01 P:A5 SP:FB CYC:26 SL:17 CE01 A2 LDX #$80 PC:CE02 A:FF X:FB Y:01 P:A5 SP:FB CYC:32 SL:17 CE03 9A TXS PC:CE04 A:FF X:80 Y:01 P:A5 SP:FB CYC:38 SL:17 CE04 A9 LDA #$33 PC:CE05 A:FF X:80 Y:01 P:A5 SP:80 CYC:44 SL:17 CE06 48 PHA PC:CE07 A:33 X:80 Y:01 P:25 SP:80 CYC:50 SL:17 CE07 A9 LDA #$69 PC:CE08 A:33 X:80 Y:01 P:25 SP:7F CYC:59 SL:17 CE09 48 PHA PC:CE0A A:69 X:80 Y:01 P:25 SP:7F CYC:65 SL:17 CE0A BA TSX PC:CE0B A:69 X:80 Y:01 P:25 SP:7E CYC:74 SL:17 CE0B E0 CPX #$7E PC:CE0C A:69 X:7E Y:01 P:25 SP:7E CYC:80 SL:17 CE0D D0 BNE $CE2F PC:CE0E A:69 X:7E Y:01 P:27 SP:7E CYC:86 SL:17 CE0F 68 PLA PC:CE10 A:69 X:7E Y:01 P:27 SP:7E CYC:92 SL:17 CE10 C9 CMP #$69 PC:CE11 A:69 X:7E Y:01 P:25 SP:7F CYC:104 SL:17 CE12 D0 BNE $CE2F PC:CE13 A:69 X:7E Y:01 P:27 SP:7F CYC:110 SL:17 CE14 68 PLA PC:CE15 A:69 X:7E Y:01 P:27 SP:7F CYC:116 SL:17 CE15 C9 CMP #$33 PC:CE16 A:33 X:7E Y:01 P:25 SP:80 CYC:128 SL:17 CE17 D0 BNE $CE2F PC:CE18 A:33 X:7E Y:01 P:27 SP:80 CYC:134 SL:17 CE19 BA TSX PC:CE1A A:33 X:7E Y:01 P:27 SP:80 CYC:140 SL:17 CE1A E0 CPX #$80 PC:CE1B A:33 X:80 Y:01 P:A5 SP:80 CYC:146 SL:17 CE1C D0 BNE $CE2F PC:CE1D A:33 X:80 Y:01 P:27 SP:80 CYC:152 SL:17 CE1E AD LDA $0180 PC:CE1F A:33 X:80 Y:01 P:27 SP:80 CYC:158 SL:17 CE21 C9 CMP #$33 PC:CE22 A:33 X:80 Y:01 P:25 SP:80 CYC:170 SL:17 CE23 D0 BNE $CE2F PC:CE24 A:33 X:80 Y:01 P:27 SP:80 CYC:176 SL:17 CE25 AD LDA $017F PC:CE26 A:33 X:80 Y:01 P:27 SP:80 CYC:182 SL:17 CE28 C9 CMP #$69 PC:CE29 A:69 X:80 Y:01 P:25 SP:80 CYC:194 SL:17 CE2A D0 BNE $CE2F PC:CE2B A:69 X:80 Y:01 P:27 SP:80 CYC:200 SL:17 CE2C 4C JMP $CE33 PC:CE2D A:69 X:80 Y:01 P:27 SP:80 CYC:206 SL:17 CE33 EA NOP PC:CE34 A:69 X:80 Y:01 P:27 SP:80 CYC:215 SL:17 CE34 A2 LDX #$80 PC:CE35 A:69 X:80 Y:01 P:27 SP:80 CYC:221 SL:17 CE36 9A TXS PC:CE37 A:69 X:80 Y:01 P:A5 SP:80 CYC:227 SL:17 CE37 20 JSR $CE3D PC:CE38 A:69 X:80 Y:01 P:A5 SP:80 CYC:233 SL:17 CE3D BA TSX PC:CE3E A:69 X:80 Y:01 P:A5 SP:7E CYC:251 SL:17 CE3E E0 CPX #$7E PC:CE3F A:69 X:7E Y:01 P:25 SP:7E CYC:257 SL:17 CE40 D0 BNE $CE5B PC:CE41 A:69 X:7E Y:01 P:27 SP:7E CYC:263 SL:17 CE42 68 PLA PC:CE43 A:69 X:7E Y:01 P:27 SP:7E CYC:269 SL:17 CE43 68 PLA PC:CE44 A:39 X:7E Y:01 P:25 SP:7F CYC:281 SL:17 CE44 BA TSX PC:CE45 A:CE X:7E Y:01 P:A5 SP:80 CYC:293 SL:17 CE45 E0 CPX #$80 PC:CE46 A:CE X:80 Y:01 P:A5 SP:80 CYC:299 SL:17 CE47 D0 BNE $CE5B PC:CE48 A:CE X:80 Y:01 P:27 SP:80 CYC:305 SL:17 CE49 A9 LDA #$00 PC:CE4A A:CE X:80 Y:01 P:27 SP:80 CYC:311 SL:17 CE4B 20 JSR $CE4E PC:CE4C A:00 X:80 Y:01 P:27 SP:80 CYC:317 SL:17 CE4E 68 PLA PC:CE4F A:00 X:80 Y:01 P:27 SP:7E CYC:335 SL:17 CE4F C9 CMP #$4D PC:CE50 A:4D X:80 Y:01 P:25 SP:7F CYC:6 SL:18 CE51 D0 BNE $CE5B PC:CE52 A:4D X:80 Y:01 P:27 SP:7F CYC:12 SL:18 CE53 68 PLA PC:CE54 A:4D X:80 Y:01 P:27 SP:7F CYC:18 SL:18 CE54 C9 CMP #$CE PC:CE55 A:CE X:80 Y:01 P:A5 SP:80 CYC:30 SL:18 CE56 D0 BNE $CE5B PC:CE57 A:CE X:80 Y:01 P:27 SP:80 CYC:36 SL:18 CE58 4C JMP $CE5F PC:CE59 A:CE X:80 Y:01 P:27 SP:80 CYC:42 SL:18 CE5F EA NOP PC:CE60 A:CE X:80 Y:01 P:27 SP:80 CYC:51 SL:18 CE60 A9 LDA #$CE PC:CE61 A:CE X:80 Y:01 P:27 SP:80 CYC:57 SL:18 CE62 48 PHA PC:CE63 A:CE X:80 Y:01 P:A5 SP:80 CYC:63 SL:18 CE63 A9 LDA #$66 PC:CE64 A:CE X:80 Y:01 P:A5 SP:7F CYC:72 SL:18 CE65 48 PHA PC:CE66 A:66 X:80 Y:01 P:25 SP:7F CYC:78 SL:18 CE66 60 RTS PC:CE67 A:66 X:80 Y:01 P:25 SP:7E CYC:87 SL:18 CE67 A2 LDX #$77 PC:CE68 A:66 X:80 Y:01 P:25 SP:80 CYC:105 SL:18 CE69 A0 LDY #$69 PC:CE6A A:66 X:77 Y:01 P:25 SP:80 CYC:111 SL:18 CE6B 18 CLC PC:CE6C A:66 X:77 Y:69 P:25 SP:80 CYC:117 SL:18 CE6C 24 BIT $01 PC:CE6D A:66 X:77 Y:69 P:24 SP:80 CYC:123 SL:18 CE6E A9 LDA #$83 PC:CE6F A:66 X:77 Y:69 P:E4 SP:80 CYC:132 SL:18 CE70 20 JSR $CE66 PC:CE71 A:83 X:77 Y:69 P:E4 SP:80 CYC:138 SL:18 CE66 60 RTS PC:CE67 A:83 X:77 Y:69 P:E4 SP:7E CYC:156 SL:18 CE73 F0 BEQ $CE99 PC:CE74 A:83 X:77 Y:69 P:E4 SP:80 CYC:174 SL:18 CE75 10 BPL $CE99 PC:CE76 A:83 X:77 Y:69 P:E4 SP:80 CYC:180 SL:18 CE77 B0 BCS $CE99 PC:CE78 A:83 X:77 Y:69 P:E4 SP:80 CYC:186 SL:18 CE79 50 BVC $CE99 PC:CE7A A:83 X:77 Y:69 P:E4 SP:80 CYC:192 SL:18 CE7B C9 CMP #$83 PC:CE7C A:83 X:77 Y:69 P:E4 SP:80 CYC:198 SL:18 CE7D D0 BNE $CE99 PC:CE7E A:83 X:77 Y:69 P:67 SP:80 CYC:204 SL:18 CE7F C0 CPY #$69 PC:CE80 A:83 X:77 Y:69 P:67 SP:80 CYC:210 SL:18 CE81 D0 BNE $CE99 PC:CE82 A:83 X:77 Y:69 P:67 SP:80 CYC:216 SL:18 CE83 E0 CPX #$77 PC:CE84 A:83 X:77 Y:69 P:67 SP:80 CYC:222 SL:18 CE85 D0 BNE $CE99 PC:CE86 A:83 X:77 Y:69 P:67 SP:80 CYC:228 SL:18 CE87 38 SEC PC:CE88 A:83 X:77 Y:69 P:67 SP:80 CYC:234 SL:18 CE88 B8 CLV PC:CE89 A:83 X:77 Y:69 P:67 SP:80 CYC:240 SL:18 CE89 A9 LDA #$00 PC:CE8A A:83 X:77 Y:69 P:27 SP:80 CYC:246 SL:18 CE8B 20 JSR $CE66 PC:CE8C A:00 X:77 Y:69 P:27 SP:80 CYC:252 SL:18 CE66 60 RTS PC:CE67 A:00 X:77 Y:69 P:27 SP:7E CYC:270 SL:18 CE8E D0 BNE $CE99 PC:CE8F A:00 X:77 Y:69 P:27 SP:80 CYC:288 SL:18 CE90 30 BMI $CE99 PC:CE91 A:00 X:77 Y:69 P:27 SP:80 CYC:294 SL:18 CE92 90 BCC $CE99 PC:CE93 A:00 X:77 Y:69 P:27 SP:80 CYC:300 SL:18 CE94 70 BVS $CE99 PC:CE95 A:00 X:77 Y:69 P:27 SP:80 CYC:306 SL:18 CE96 4C JMP $CE9D PC:CE97 A:00 X:77 Y:69 P:27 SP:80 CYC:312 SL:18 CE9D EA NOP PC:CE9E A:00 X:77 Y:69 P:27 SP:80 CYC:321 SL:18 CE9E A9 LDA #$CE PC:CE9F A:00 X:77 Y:69 P:27 SP:80 CYC:327 SL:18 CEA0 48 PHA PC:CEA1 A:CE X:77 Y:69 P:A5 SP:80 CYC:333 SL:18 CEA1 A9 LDA #$AE PC:CEA2 A:CE X:77 Y:69 P:A5 SP:7F CYC:1 SL:19 CEA3 48 PHA PC:CEA4 A:AE X:77 Y:69 P:A5 SP:7F CYC:7 SL:19 CEA4 A9 LDA #$65 PC:CEA5 A:AE X:77 Y:69 P:A5 SP:7E CYC:16 SL:19 CEA6 48 PHA PC:CEA7 A:65 X:77 Y:69 P:25 SP:7E CYC:22 SL:19 CEA7 A9 LDA #$55 PC:CEA8 A:65 X:77 Y:69 P:25 SP:7D CYC:31 SL:19 CEA9 A0 LDY #$88 PC:CEAA A:55 X:77 Y:69 P:25 SP:7D CYC:37 SL:19 CEAB A2 LDX #$99 PC:CEAC A:55 X:77 Y:88 P:A5 SP:7D CYC:43 SL:19 CEAD 40 RTI PC:CEAE A:55 X:99 Y:88 P:A5 SP:7D CYC:49 SL:19 CEAE 30 BMI $CEE5 PC:CEAF A:55 X:99 Y:88 P:65 SP:80 CYC:67 SL:19 CEB0 50 BVC $CEE5 PC:CEB1 A:55 X:99 Y:88 P:65 SP:80 CYC:73 SL:19 CEB2 F0 BEQ $CEE5 PC:CEB3 A:55 X:99 Y:88 P:65 SP:80 CYC:79 SL:19 CEB4 90 BCC $CEE5 PC:CEB5 A:55 X:99 Y:88 P:65 SP:80 CYC:85 SL:19 CEB6 C9 CMP #$55 PC:CEB7 A:55 X:99 Y:88 P:65 SP:80 CYC:91 SL:19 CEB8 D0 BNE $CEE5 PC:CEB9 A:55 X:99 Y:88 P:67 SP:80 CYC:97 SL:19 CEBA C0 CPY #$88 PC:CEBB A:55 X:99 Y:88 P:67 SP:80 CYC:103 SL:19 CEBC D0 BNE $CEE5 PC:CEBD A:55 X:99 Y:88 P:67 SP:80 CYC:109 SL:19 CEBE E0 CPX #$99 PC:CEBF A:55 X:99 Y:88 P:67 SP:80 CYC:115 SL:19 CEC0 D0 BNE $CEE5 PC:CEC1 A:55 X:99 Y:88 P:67 SP:80 CYC:121 SL:19 CEC2 A9 LDA #$CE PC:CEC3 A:55 X:99 Y:88 P:67 SP:80 CYC:127 SL:19 CEC4 48 PHA PC:CEC5 A:CE X:99 Y:88 P:E5 SP:80 CYC:133 SL:19 CEC5 A9 LDA #$CE PC:CEC6 A:CE X:99 Y:88 P:E5 SP:7F CYC:142 SL:19 CEC7 48 PHA PC:CEC8 A:CE X:99 Y:88 P:E5 SP:7F CYC:148 SL:19 CEC8 A9 LDA #$87 PC:CEC9 A:CE X:99 Y:88 P:E5 SP:7E CYC:157 SL:19 CECA 48 PHA PC:CECB A:87 X:99 Y:88 P:E5 SP:7E CYC:163 SL:19 CECB A9 LDA #$55 PC:CECC A:87 X:99 Y:88 P:E5 SP:7D CYC:172 SL:19 CECD 40 RTI PC:CECE A:55 X:99 Y:88 P:65 SP:7D CYC:178 SL:19 CECE 10 BPL $CEE5 PC:CECF A:55 X:99 Y:88 P:A7 SP:80 CYC:196 SL:19 CED0 70 BVS $CEE5 PC:CED1 A:55 X:99 Y:88 P:A7 SP:80 CYC:202 SL:19 CED2 D0 BNE $CEE5 PC:CED3 A:55 X:99 Y:88 P:A7 SP:80 CYC:208 SL:19 CED4 90 BCC $CEE5 PC:CED5 A:55 X:99 Y:88 P:A7 SP:80 CYC:214 SL:19 CED6 C9 CMP #$55 PC:CED7 A:55 X:99 Y:88 P:A7 SP:80 CYC:220 SL:19 CED8 D0 BNE $CEE5 PC:CED9 A:55 X:99 Y:88 P:27 SP:80 CYC:226 SL:19 CEDA C0 CPY #$88 PC:CEDB A:55 X:99 Y:88 P:27 SP:80 CYC:232 SL:19 CEDC D0 BNE $CEE5 PC:CEDD A:55 X:99 Y:88 P:27 SP:80 CYC:238 SL:19 CEDE E0 CPX #$99 PC:CEDF A:55 X:99 Y:88 P:27 SP:80 CYC:244 SL:19 CEE0 D0 BNE $CEE5 PC:CEE1 A:55 X:99 Y:88 P:27 SP:80 CYC:250 SL:19 CEE2 4C JMP $CEE9 PC:CEE3 A:55 X:99 Y:88 P:27 SP:80 CYC:256 SL:19 CEE9 AE LDX $07FF PC:CEEA A:55 X:99 Y:88 P:27 SP:80 CYC:265 SL:19 CEEC 9A TXS PC:CEED A:55 X:FB Y:88 P:A5 SP:80 CYC:277 SL:19 CEED 60 RTS PC:CEEE A:55 X:FB Y:88 P:A5 SP:FB CYC:283 SL:19 C60C 20 JSR $CEEE PC:C60D A:55 X:FB Y:88 P:A5 SP:FD CYC:301 SL:19 CEEE A2 LDX #$55 PC:CEEF A:55 X:FB Y:88 P:A5 SP:FB CYC:319 SL:19 CEF0 A0 LDY #$69 PC:CEF1 A:55 X:55 Y:88 P:25 SP:FB CYC:325 SL:19 CEF2 A9 LDA #$FF PC:CEF3 A:55 X:55 Y:69 P:25 SP:FB CYC:331 SL:19 CEF4 85 STA $01 PC:CEF5 A:FF X:55 Y:69 P:A5 SP:FB CYC:337 SL:19 CEF6 EA NOP PC:CEF7 A:FF X:55 Y:69 P:A5 SP:FB CYC:5 SL:20 CEF7 24 BIT $01 PC:CEF8 A:FF X:55 Y:69 P:A5 SP:FB CYC:11 SL:20 CEF9 38 SEC PC:CEFA A:FF X:55 Y:69 P:E5 SP:FB CYC:20 SL:20 CEFA A9 LDA #$01 PC:CEFB A:FF X:55 Y:69 P:E5 SP:FB CYC:26 SL:20 CEFC 4A LSR PC:CEFD A:01 X:55 Y:69 P:65 SP:FB CYC:32 SL:20 CEFD 90 BCC $CF1C PC:CEFE A:00 X:55 Y:69 P:67 SP:FB CYC:38 SL:20 CEFF D0 BNE $CF1C PC:CF00 A:00 X:55 Y:69 P:67 SP:FB CYC:44 SL:20 CF01 30 BMI $CF1C PC:CF02 A:00 X:55 Y:69 P:67 SP:FB CYC:50 SL:20 CF03 50 BVC $CF1C PC:CF04 A:00 X:55 Y:69 P:67 SP:FB CYC:56 SL:20 CF05 C9 CMP #$00 PC:CF06 A:00 X:55 Y:69 P:67 SP:FB CYC:62 SL:20 CF07 D0 BNE $CF1C PC:CF08 A:00 X:55 Y:69 P:67 SP:FB CYC:68 SL:20 CF09 B8 CLV PC:CF0A A:00 X:55 Y:69 P:67 SP:FB CYC:74 SL:20 CF0A A9 LDA #$AA PC:CF0B A:00 X:55 Y:69 P:27 SP:FB CYC:80 SL:20 CF0C 4A LSR PC:CF0D A:AA X:55 Y:69 P:A5 SP:FB CYC:86 SL:20 CF0D B0 BCS $CF1C PC:CF0E A:55 X:55 Y:69 P:24 SP:FB CYC:92 SL:20 CF0F F0 BEQ $CF1C PC:CF10 A:55 X:55 Y:69 P:24 SP:FB CYC:98 SL:20 CF11 30 BMI $CF1C PC:CF12 A:55 X:55 Y:69 P:24 SP:FB CYC:104 SL:20 CF13 70 BVS $CF1C PC:CF14 A:55 X:55 Y:69 P:24 SP:FB CYC:110 SL:20 CF15 C9 CMP #$55 PC:CF16 A:55 X:55 Y:69 P:24 SP:FB CYC:116 SL:20 CF17 D0 BNE $CF1C PC:CF18 A:55 X:55 Y:69 P:27 SP:FB CYC:122 SL:20 CF19 4C JMP $CF20 PC:CF1A A:55 X:55 Y:69 P:27 SP:FB CYC:128 SL:20 CF20 EA NOP PC:CF21 A:55 X:55 Y:69 P:27 SP:FB CYC:137 SL:20 CF21 24 BIT $01 PC:CF22 A:55 X:55 Y:69 P:27 SP:FB CYC:143 SL:20 CF23 38 SEC PC:CF24 A:55 X:55 Y:69 P:E5 SP:FB CYC:152 SL:20 CF24 A9 LDA #$80 PC:CF25 A:55 X:55 Y:69 P:E5 SP:FB CYC:158 SL:20 CF26 0A ASL A PC:CF27 A:80 X:55 Y:69 P:E5 SP:FB CYC:164 SL:20 CF27 90 BCC $CF47 PC:CF28 A:00 X:55 Y:69 P:67 SP:FB CYC:170 SL:20 CF29 D0 BNE $CF47 PC:CF2A A:00 X:55 Y:69 P:67 SP:FB CYC:176 SL:20 CF2B 30 BMI $CF47 PC:CF2C A:00 X:55 Y:69 P:67 SP:FB CYC:182 SL:20 CF2D 50 BVC $CF47 PC:CF2E A:00 X:55 Y:69 P:67 SP:FB CYC:188 SL:20 CF2F C9 CMP #$00 PC:CF30 A:00 X:55 Y:69 P:67 SP:FB CYC:194 SL:20 CF31 D0 BNE $CF47 PC:CF32 A:00 X:55 Y:69 P:67 SP:FB CYC:200 SL:20 CF33 B8 CLV PC:CF34 A:00 X:55 Y:69 P:67 SP:FB CYC:206 SL:20 CF34 38 SEC PC:CF35 A:00 X:55 Y:69 P:27 SP:FB CYC:212 SL:20 CF35 A9 LDA #$55 PC:CF36 A:00 X:55 Y:69 P:27 SP:FB CYC:218 SL:20 CF37 0A ASL A PC:CF38 A:55 X:55 Y:69 P:25 SP:FB CYC:224 SL:20 CF38 B0 BCS $CF47 PC:CF39 A:AA X:55 Y:69 P:A4 SP:FB CYC:230 SL:20 CF3A F0 BEQ $CF47 PC:CF3B A:AA X:55 Y:69 P:A4 SP:FB CYC:236 SL:20 CF3C 10 BPL $CF47 PC:CF3D A:AA X:55 Y:69 P:A4 SP:FB CYC:242 SL:20 CF3E 70 BVS $CF47 PC:CF3F A:AA X:55 Y:69 P:A4 SP:FB CYC:248 SL:20 CF40 C9 CMP #$AA PC:CF41 A:AA X:55 Y:69 P:A4 SP:FB CYC:254 SL:20 CF42 D0 BNE $CF47 PC:CF43 A:AA X:55 Y:69 P:27 SP:FB CYC:260 SL:20 CF44 4C JMP $CF4B PC:CF45 A:AA X:55 Y:69 P:27 SP:FB CYC:266 SL:20 CF4B EA NOP PC:CF4C A:AA X:55 Y:69 P:27 SP:FB CYC:275 SL:20 CF4C 24 BIT $01 PC:CF4D A:AA X:55 Y:69 P:27 SP:FB CYC:281 SL:20 CF4E 38 SEC PC:CF4F A:AA X:55 Y:69 P:E5 SP:FB CYC:290 SL:20 CF4F A9 LDA #$01 PC:CF50 A:AA X:55 Y:69 P:E5 SP:FB CYC:296 SL:20 CF51 6A ROR PC:CF52 A:01 X:55 Y:69 P:65 SP:FB CYC:302 SL:20 CF52 90 BCC $CF72 PC:CF53 A:80 X:55 Y:69 P:E5 SP:FB CYC:308 SL:20 CF54 F0 BEQ $CF72 PC:CF55 A:80 X:55 Y:69 P:E5 SP:FB CYC:314 SL:20 CF56 10 BPL $CF72 PC:CF57 A:80 X:55 Y:69 P:E5 SP:FB CYC:320 SL:20 CF58 50 BVC $CF72 PC:CF59 A:80 X:55 Y:69 P:E5 SP:FB CYC:326 SL:20 CF5A C9 CMP #$80 PC:CF5B A:80 X:55 Y:69 P:E5 SP:FB CYC:332 SL:20 CF5C D0 BNE $CF72 PC:CF5D A:80 X:55 Y:69 P:67 SP:FB CYC:338 SL:20 CF5E B8 CLV PC:CF5F A:80 X:55 Y:69 P:67 SP:FB CYC:3 SL:21 CF5F 18 CLC PC:CF60 A:80 X:55 Y:69 P:27 SP:FB CYC:9 SL:21 CF60 A9 LDA #$55 PC:CF61 A:80 X:55 Y:69 P:26 SP:FB CYC:15 SL:21 CF62 6A ROR PC:CF63 A:55 X:55 Y:69 P:24 SP:FB CYC:21 SL:21 CF63 90 BCC $CF72 PC:CF64 A:2A X:55 Y:69 P:25 SP:FB CYC:27 SL:21 CF65 F0 BEQ $CF72 PC:CF66 A:2A X:55 Y:69 P:25 SP:FB CYC:33 SL:21 CF67 30 BMI $CF72 PC:CF68 A:2A X:55 Y:69 P:25 SP:FB CYC:39 SL:21 CF69 70 BVS $CF72 PC:CF6A A:2A X:55 Y:69 P:25 SP:FB CYC:45 SL:21 CF6B C9 CMP #$2A PC:CF6C A:2A X:55 Y:69 P:25 SP:FB CYC:51 SL:21 CF6D D0 BNE $CF72 PC:CF6E A:2A X:55 Y:69 P:27 SP:FB CYC:57 SL:21 CF6F 4C JMP $CF76 PC:CF70 A:2A X:55 Y:69 P:27 SP:FB CYC:63 SL:21 CF76 EA NOP PC:CF77 A:2A X:55 Y:69 P:27 SP:FB CYC:72 SL:21 CF77 24 BIT $01 PC:CF78 A:2A X:55 Y:69 P:27 SP:FB CYC:78 SL:21 CF79 38 SEC PC:CF7A A:2A X:55 Y:69 P:E5 SP:FB CYC:87 SL:21 CF7A A9 LDA #$80 PC:CF7B A:2A X:55 Y:69 P:E5 SP:FB CYC:93 SL:21 CF7C 2A ROL PC:CF7D A:80 X:55 Y:69 P:E5 SP:FB CYC:99 SL:21 CF7D 90 BCC $CF9D PC:CF7E A:01 X:55 Y:69 P:65 SP:FB CYC:105 SL:21 CF7F F0 BEQ $CF9D PC:CF80 A:01 X:55 Y:69 P:65 SP:FB CYC:111 SL:21 CF81 30 BMI $CF9D PC:CF82 A:01 X:55 Y:69 P:65 SP:FB CYC:117 SL:21 CF83 50 BVC $CF9D PC:CF84 A:01 X:55 Y:69 P:65 SP:FB CYC:123 SL:21 CF85 C9 CMP #$01 PC:CF86 A:01 X:55 Y:69 P:65 SP:FB CYC:129 SL:21 CF87 D0 BNE $CF9D PC:CF88 A:01 X:55 Y:69 P:67 SP:FB CYC:135 SL:21 CF89 B8 CLV PC:CF8A A:01 X:55 Y:69 P:67 SP:FB CYC:141 SL:21 CF8A 18 CLC PC:CF8B A:01 X:55 Y:69 P:27 SP:FB CYC:147 SL:21 CF8B A9 LDA #$55 PC:CF8C A:01 X:55 Y:69 P:26 SP:FB CYC:153 SL:21 CF8D 2A ROL PC:CF8E A:55 X:55 Y:69 P:24 SP:FB CYC:159 SL:21 CF8E B0 BCS $CF9D PC:CF8F A:AA X:55 Y:69 P:A4 SP:FB CYC:165 SL:21 CF90 F0 BEQ $CF9D PC:CF91 A:AA X:55 Y:69 P:A4 SP:FB CYC:171 SL:21 CF92 10 BPL $CF9D PC:CF93 A:AA X:55 Y:69 P:A4 SP:FB CYC:177 SL:21 CF94 70 BVS $CF9D PC:CF95 A:AA X:55 Y:69 P:A4 SP:FB CYC:183 SL:21 CF96 C9 CMP #$AA PC:CF97 A:AA X:55 Y:69 P:A4 SP:FB CYC:189 SL:21 CF98 D0 BNE $CF9D PC:CF99 A:AA X:55 Y:69 P:27 SP:FB CYC:195 SL:21 CF9A 4C JMP $CFA1 PC:CF9B A:AA X:55 Y:69 P:27 SP:FB CYC:201 SL:21 CFA1 60 RTS PC:CFA2 A:AA X:55 Y:69 P:27 SP:FB CYC:210 SL:21 C60F 20 JSR $CFA2 PC:C610 A:AA X:55 Y:69 P:27 SP:FD CYC:228 SL:21 CFA2 A5 LDA $00 PC:CFA3 A:AA X:55 Y:69 P:27 SP:FB CYC:246 SL:21 CFA4 8D STA $07FF PC:CFA5 A:00 X:55 Y:69 P:27 SP:FB CYC:255 SL:21 CFA7 A9 LDA #$00 PC:CFA8 A:00 X:55 Y:69 P:27 SP:FB CYC:267 SL:21 CFA9 85 STA $80 PC:CFAA A:00 X:55 Y:69 P:27 SP:FB CYC:273 SL:21 CFAB A9 LDA #$02 PC:CFAC A:00 X:55 Y:69 P:27 SP:FB CYC:282 SL:21 CFAD 85 STA $81 PC:CFAE A:02 X:55 Y:69 P:25 SP:FB CYC:288 SL:21 CFAF A9 LDA #$FF PC:CFB0 A:02 X:55 Y:69 P:25 SP:FB CYC:297 SL:21 CFB1 85 STA $01 PC:CFB2 A:FF X:55 Y:69 P:A5 SP:FB CYC:303 SL:21 CFB3 A9 LDA #$00 PC:CFB4 A:FF X:55 Y:69 P:A5 SP:FB CYC:312 SL:21 CFB5 85 STA $82 PC:CFB6 A:00 X:55 Y:69 P:27 SP:FB CYC:318 SL:21 CFB7 A9 LDA #$03 PC:CFB8 A:00 X:55 Y:69 P:27 SP:FB CYC:327 SL:21 CFB9 85 STA $83 PC:CFBA A:03 X:55 Y:69 P:25 SP:FB CYC:333 SL:21 CFBB 85 STA $84 PC:CFBC A:03 X:55 Y:69 P:25 SP:FB CYC:1 SL:22 CFBD A9 LDA #$00 PC:CFBE A:03 X:55 Y:69 P:25 SP:FB CYC:10 SL:22 CFBF 85 STA $FF PC:CFC0 A:00 X:55 Y:69 P:27 SP:FB CYC:16 SL:22 CFC1 A9 LDA #$04 PC:CFC2 A:00 X:55 Y:69 P:27 SP:FB CYC:25 SL:22 CFC3 85 STA $00 PC:CFC4 A:04 X:55 Y:69 P:25 SP:FB CYC:31 SL:22 CFC5 A9 LDA #$5A PC:CFC6 A:04 X:55 Y:69 P:25 SP:FB CYC:40 SL:22 CFC7 8D STA $0200 PC:CFC8 A:5A X:55 Y:69 P:25 SP:FB CYC:46 SL:22 CFCA A9 LDA #$5B PC:CFCB A:5A X:55 Y:69 P:25 SP:FB CYC:58 SL:22 CFCC 8D STA $0300 PC:CFCD A:5B X:55 Y:69 P:25 SP:FB CYC:64 SL:22 CFCF A9 LDA #$5C PC:CFD0 A:5B X:55 Y:69 P:25 SP:FB CYC:76 SL:22 CFD1 8D STA $0303 PC:CFD2 A:5C X:55 Y:69 P:25 SP:FB CYC:82 SL:22 CFD4 A9 LDA #$5D PC:CFD5 A:5C X:55 Y:69 P:25 SP:FB CYC:94 SL:22 CFD6 8D STA $0400 PC:CFD7 A:5D X:55 Y:69 P:25 SP:FB CYC:100 SL:22 CFD9 A2 LDX #$00 PC:CFDA A:5D X:55 Y:69 P:25 SP:FB CYC:112 SL:22 CFDB A1 LDA $(C980,x) PC:CFDC A:5D X:00 Y:69 P:27 SP:FB CYC:118 SL:22 CFDD C9 CMP #$5A PC:CFDE A:5A X:00 Y:69 P:25 SP:FB CYC:136 SL:22 CFDF D0 BNE $D000 PC:CFE0 A:5A X:00 Y:69 P:27 SP:FB CYC:142 SL:22 CFE1 E8 INX PC:CFE2 A:5A X:00 Y:69 P:27 SP:FB CYC:148 SL:22 CFE2 E8 INX PC:CFE3 A:5A X:01 Y:69 P:25 SP:FB CYC:154 SL:22 CFE3 A1 LDA $(C980,x) PC:CFE4 A:5A X:02 Y:69 P:25 SP:FB CYC:160 SL:22 CFE5 C9 CMP #$5B PC:CFE6 A:5B X:02 Y:69 P:25 SP:FB CYC:178 SL:22 CFE7 D0 BNE $D000 PC:CFE8 A:5B X:02 Y:69 P:27 SP:FB CYC:184 SL:22 CFE9 E8 INX PC:CFEA A:5B X:02 Y:69 P:27 SP:FB CYC:190 SL:22 CFEA A1 LDA $(C980,x) PC:CFEB A:5B X:03 Y:69 P:25 SP:FB CYC:196 SL:22 CFEC C9 CMP #$5C PC:CFED A:5C X:03 Y:69 P:25 SP:FB CYC:214 SL:22 CFEE D0 BNE $D000 PC:CFEF A:5C X:03 Y:69 P:27 SP:FB CYC:220 SL:22 CFF0 A2 LDX #$00 PC:CFF1 A:5C X:03 Y:69 P:27 SP:FB CYC:226 SL:22 CFF2 A1 LDA $(C9FF,x) PC:CFF3 A:5C X:00 Y:69 P:27 SP:FB CYC:232 SL:22 CFF4 C9 CMP #$5D PC:CFF5 A:5D X:00 Y:69 P:25 SP:FB CYC:250 SL:22 CFF6 D0 BNE $D000 PC:CFF7 A:5D X:00 Y:69 P:27 SP:FB CYC:256 SL:22 CFF8 A2 LDX #$81 PC:CFF9 A:5D X:00 Y:69 P:27 SP:FB CYC:262 SL:22 CFFA A1 LDA $(C9FF,x) PC:CFFB A:5D X:81 Y:69 P:A5 SP:FB CYC:268 SL:22 CFFC C9 CMP #$5A PC:CFFD A:5A X:81 Y:69 P:25 SP:FB CYC:286 SL:22 CFFE F0 BEQ $D005 PC:CFFF A:5A X:81 Y:69 P:27 SP:FB CYC:292 SL:22 D005 A9 LDA #$AA PC:D006 A:5A X:81 Y:69 P:27 SP:FB CYC:301 SL:22 D007 A2 LDX #$00 PC:D008 A:AA X:81 Y:69 P:A5 SP:FB CYC:307 SL:22 D009 81 STA $(E880,x) PC:D00A A:AA X:00 Y:69 P:27 SP:FB CYC:313 SL:22 D00B E8 INX PC:D00C A:AA X:00 Y:69 P:27 SP:FB CYC:331 SL:22 D00C E8 INX PC:D00D A:AA X:01 Y:69 P:25 SP:FB CYC:337 SL:22 D00D A9 LDA #$AB PC:D00E A:AA X:02 Y:69 P:25 SP:FB CYC:2 SL:23 D00F 81 STA $(E880,x) PC:D010 A:AB X:02 Y:69 P:A5 SP:FB CYC:8 SL:23 D011 E8 INX PC:D012 A:AB X:02 Y:69 P:A5 SP:FB CYC:26 SL:23 D012 A9 LDA #$AC PC:D013 A:AB X:03 Y:69 P:25 SP:FB CYC:32 SL:23 D014 81 STA $(A280,x) PC:D015 A:AC X:03 Y:69 P:A5 SP:FB CYC:38 SL:23 D016 A2 LDX #$00 PC:D017 A:AC X:03 Y:69 P:A5 SP:FB CYC:56 SL:23 D018 A9 LDA #$AD PC:D019 A:AC X:00 Y:69 P:27 SP:FB CYC:62 SL:23 D01A 81 STA $(ADFF,x) PC:D01B A:AD X:00 Y:69 P:A5 SP:FB CYC:68 SL:23 D01C AD LDA $0200 PC:D01D A:AD X:00 Y:69 P:A5 SP:FB CYC:86 SL:23 D01F C9 CMP #$AA PC:D020 A:AA X:00 Y:69 P:A5 SP:FB CYC:98 SL:23 D021 D0 BNE $D038 PC:D022 A:AA X:00 Y:69 P:27 SP:FB CYC:104 SL:23 D023 AD LDA $0300 PC:D024 A:AA X:00 Y:69 P:27 SP:FB CYC:110 SL:23 D026 C9 CMP #$AB PC:D027 A:AB X:00 Y:69 P:A5 SP:FB CYC:122 SL:23 D028 D0 BNE $D038 PC:D029 A:AB X:00 Y:69 P:27 SP:FB CYC:128 SL:23 D02A AD LDA $0303 PC:D02B A:AB X:00 Y:69 P:27 SP:FB CYC:134 SL:23 D02D C9 CMP #$AC PC:D02E A:AC X:00 Y:69 P:A5 SP:FB CYC:146 SL:23 D02F D0 BNE $D038 PC:D030 A:AC X:00 Y:69 P:27 SP:FB CYC:152 SL:23 D031 AD LDA $0400 PC:D032 A:AC X:00 Y:69 P:27 SP:FB CYC:158 SL:23 D034 C9 CMP #$AD PC:D035 A:AD X:00 Y:69 P:A5 SP:FB CYC:170 SL:23 D036 F0 BEQ $D03D PC:D037 A:AD X:00 Y:69 P:27 SP:FB CYC:176 SL:23 D03D AD LDA $07FF PC:D03E A:AD X:00 Y:69 P:27 SP:FB CYC:185 SL:23 D040 85 STA $00 PC:D041 A:00 X:00 Y:69 P:27 SP:FB CYC:197 SL:23 D042 A9 LDA #$00 PC:D043 A:00 X:00 Y:69 P:27 SP:FB CYC:206 SL:23 D044 8D STA $0300 PC:D045 A:00 X:00 Y:69 P:27 SP:FB CYC:212 SL:23 D047 A9 LDA #$AA PC:D048 A:00 X:00 Y:69 P:27 SP:FB CYC:224 SL:23 D049 8D STA $0200 PC:D04A A:AA X:00 Y:69 P:A5 SP:FB CYC:230 SL:23 D04C A2 LDX #$00 PC:D04D A:AA X:00 Y:69 P:A5 SP:FB CYC:242 SL:23 D04E A0 LDY #$5A PC:D04F A:AA X:00 Y:69 P:27 SP:FB CYC:248 SL:23 D050 20 JSR $F7B6 PC:D051 A:AA X:00 Y:5A P:25 SP:FB CYC:254 SL:23 F7B6 18 CLC PC:F7B7 A:AA X:00 Y:5A P:25 SP:F9 CYC:272 SL:23 F7B7 A9 LDA #$FF PC:F7B8 A:AA X:00 Y:5A P:24 SP:F9 CYC:278 SL:23 F7B9 85 STA $01 PC:F7BA A:FF X:00 Y:5A P:A4 SP:F9 CYC:284 SL:23 F7BB 24 BIT $01 PC:F7BC A:FF X:00 Y:5A P:A4 SP:F9 CYC:293 SL:23 F7BD A9 LDA #$55 PC:F7BE A:FF X:00 Y:5A P:E4 SP:F9 CYC:302 SL:23 F7BF 60 RTS PC:F7C0 A:55 X:00 Y:5A P:64 SP:F9 CYC:308 SL:23 D053 01 ORA $(2080,x) PC:D054 A:55 X:00 Y:5A P:64 SP:FB CYC:326 SL:23 D055 20 JSR $F7C0 PC:D056 A:FF X:00 Y:5A P:E4 SP:FB CYC:3 SL:24 F7C0 B0 BCS $F7CB PC:F7C1 A:FF X:00 Y:5A P:E4 SP:F9 CYC:21 SL:24 F7C2 10 BPL $F7CB PC:F7C3 A:FF X:00 Y:5A P:E4 SP:F9 CYC:27 SL:24 F7C4 C9 CMP #$FF PC:F7C5 A:FF X:00 Y:5A P:E4 SP:F9 CYC:33 SL:24 F7C6 D0 BNE $F7CB PC:F7C7 A:FF X:00 Y:5A P:67 SP:F9 CYC:39 SL:24 F7C8 50 BVC $F7CB PC:F7C9 A:FF X:00 Y:5A P:67 SP:F9 CYC:45 SL:24 F7CA 60 RTS PC:F7CB A:FF X:00 Y:5A P:67 SP:F9 CYC:51 SL:24 D058 C8 INY PC:D059 A:FF X:00 Y:5A P:67 SP:FB CYC:69 SL:24 D059 20 JSR $F7CE PC:D05A A:FF X:00 Y:5B P:65 SP:FB CYC:75 SL:24 F7CE 38 SEC PC:F7CF A:FF X:00 Y:5B P:65 SP:F9 CYC:93 SL:24 F7CF B8 CLV PC:F7D0 A:FF X:00 Y:5B P:65 SP:F9 CYC:99 SL:24 F7D0 A9 LDA #$00 PC:F7D1 A:FF X:00 Y:5B P:25 SP:F9 CYC:105 SL:24 F7D2 60 RTS PC:F7D3 A:00 X:00 Y:5B P:27 SP:F9 CYC:111 SL:24 D05C 01 ORA $(2082,x) PC:D05D A:00 X:00 Y:5B P:27 SP:FB CYC:129 SL:24 D05E 20 JSR $F7D3 PC:D05F A:00 X:00 Y:5B P:27 SP:FB CYC:147 SL:24 F7D3 D0 BNE $F7DC PC:F7D4 A:00 X:00 Y:5B P:27 SP:F9 CYC:165 SL:24 F7D5 70 BVS $F7DC PC:F7D6 A:00 X:00 Y:5B P:27 SP:F9 CYC:171 SL:24 F7D7 90 BCC $F7DC PC:F7D8 A:00 X:00 Y:5B P:27 SP:F9 CYC:177 SL:24 F7D9 30 BMI $F7DC PC:F7DA A:00 X:00 Y:5B P:27 SP:F9 CYC:183 SL:24 F7DB 60 RTS PC:F7DC A:00 X:00 Y:5B P:27 SP:F9 CYC:189 SL:24 D061 C8 INY PC:D062 A:00 X:00 Y:5B P:27 SP:FB CYC:207 SL:24 D062 20 JSR $F7DF PC:D063 A:00 X:00 Y:5C P:25 SP:FB CYC:213 SL:24 F7DF 18 CLC PC:F7E0 A:00 X:00 Y:5C P:25 SP:F9 CYC:231 SL:24 F7E0 24 BIT $01 PC:F7E1 A:00 X:00 Y:5C P:24 SP:F9 CYC:237 SL:24 F7E2 A9 LDA #$55 PC:F7E3 A:00 X:00 Y:5C P:E6 SP:F9 CYC:246 SL:24 F7E4 60 RTS PC:F7E5 A:55 X:00 Y:5C P:64 SP:F9 CYC:252 SL:24 D065 21 AND $(2080,x) PC:D066 A:55 X:00 Y:5C P:64 SP:FB CYC:270 SL:24 D067 20 JSR $F7E5 PC:D068 A:00 X:00 Y:5C P:66 SP:FB CYC:288 SL:24 F7E5 D0 BNE $F7EE PC:F7E6 A:00 X:00 Y:5C P:66 SP:F9 CYC:306 SL:24 F7E7 50 BVC $F7EE PC:F7E8 A:00 X:00 Y:5C P:66 SP:F9 CYC:312 SL:24 F7E9 B0 BCS $F7EE PC:F7EA A:00 X:00 Y:5C P:66 SP:F9 CYC:318 SL:24 F7EB 30 BMI $F7EE PC:F7EC A:00 X:00 Y:5C P:66 SP:F9 CYC:324 SL:24 F7ED 60 RTS PC:F7EE A:00 X:00 Y:5C P:66 SP:F9 CYC:330 SL:24 D06A C8 INY PC:D06B A:00 X:00 Y:5C P:66 SP:FB CYC:7 SL:25 D06B A9 LDA #$EF PC:D06C A:00 X:00 Y:5D P:64 SP:FB CYC:13 SL:25 D06D 8D STA $0300 PC:D06E A:EF X:00 Y:5D P:E4 SP:FB CYC:19 SL:25 D070 20 JSR $F7F1 PC:D071 A:EF X:00 Y:5D P:E4 SP:FB CYC:31 SL:25 F7F1 38 SEC PC:F7F2 A:EF X:00 Y:5D P:E4 SP:F9 CYC:49 SL:25 F7F2 B8 CLV PC:F7F3 A:EF X:00 Y:5D P:E5 SP:F9 CYC:55 SL:25 F7F3 A9 LDA #$F8 PC:F7F4 A:EF X:00 Y:5D P:A5 SP:F9 CYC:61 SL:25 F7F5 60 RTS PC:F7F6 A:F8 X:00 Y:5D P:A5 SP:F9 CYC:67 SL:25 D073 21 AND $(2082,x) PC:D074 A:F8 X:00 Y:5D P:A5 SP:FB CYC:85 SL:25 D075 20 JSR $F7F6 PC:D076 A:E8 X:00 Y:5D P:A5 SP:FB CYC:103 SL:25 F7F6 90 BCC $F801 PC:F7F7 A:E8 X:00 Y:5D P:A5 SP:F9 CYC:121 SL:25 F7F8 10 BPL $F801 PC:F7F9 A:E8 X:00 Y:5D P:A5 SP:F9 CYC:127 SL:25 F7FA C9 CMP #$E8 PC:F7FB A:E8 X:00 Y:5D P:A5 SP:F9 CYC:133 SL:25 F7FC D0 BNE $F801 PC:F7FD A:E8 X:00 Y:5D P:27 SP:F9 CYC:139 SL:25 F7FE 70 BVS $F801 PC:F7FF A:E8 X:00 Y:5D P:27 SP:F9 CYC:145 SL:25 F800 60 RTS PC:F801 A:E8 X:00 Y:5D P:27 SP:F9 CYC:151 SL:25 D078 C8 INY PC:D079 A:E8 X:00 Y:5D P:27 SP:FB CYC:169 SL:25 D079 20 JSR $F804 PC:D07A A:E8 X:00 Y:5E P:25 SP:FB CYC:175 SL:25 F804 18 CLC PC:F805 A:E8 X:00 Y:5E P:25 SP:F9 CYC:193 SL:25 F805 24 BIT $01 PC:F806 A:E8 X:00 Y:5E P:24 SP:F9 CYC:199 SL:25 F807 A9 LDA #$5F PC:F808 A:E8 X:00 Y:5E P:E4 SP:F9 CYC:208 SL:25 F809 60 RTS PC:F80A A:5F X:00 Y:5E P:64 SP:F9 CYC:214 SL:25 D07C 41 EOR $(2080,x) PC:D07D A:5F X:00 Y:5E P:64 SP:FB CYC:232 SL:25 D07E 20 JSR $F80A PC:D07F A:F5 X:00 Y:5E P:E4 SP:FB CYC:250 SL:25 F80A B0 BCS $F815 PC:F80B A:F5 X:00 Y:5E P:E4 SP:F9 CYC:268 SL:25 F80C 10 BPL $F815 PC:F80D A:F5 X:00 Y:5E P:E4 SP:F9 CYC:274 SL:25 F80E C9 CMP #$F5 PC:F80F A:F5 X:00 Y:5E P:E4 SP:F9 CYC:280 SL:25 F810 D0 BNE $F815 PC:F811 A:F5 X:00 Y:5E P:67 SP:F9 CYC:286 SL:25 F812 50 BVC $F815 PC:F813 A:F5 X:00 Y:5E P:67 SP:F9 CYC:292 SL:25 F814 60 RTS PC:F815 A:F5 X:00 Y:5E P:67 SP:F9 CYC:298 SL:25 D081 C8 INY PC:D082 A:F5 X:00 Y:5E P:67 SP:FB CYC:316 SL:25 D082 A9 LDA #$70 PC:D083 A:F5 X:00 Y:5F P:65 SP:FB CYC:322 SL:25 D084 8D STA $0300 PC:D085 A:70 X:00 Y:5F P:65 SP:FB CYC:328 SL:25 D087 20 JSR $F818 PC:D088 A:70 X:00 Y:5F P:65 SP:FB CYC:340 SL:25 F818 38 SEC PC:F819 A:70 X:00 Y:5F P:65 SP:F9 CYC:17 SL:26 F819 B8 CLV PC:F81A A:70 X:00 Y:5F P:65 SP:F9 CYC:23 SL:26 F81A A9 LDA #$70 PC:F81B A:70 X:00 Y:5F P:25 SP:F9 CYC:29 SL:26 F81C 60 RTS PC:F81D A:70 X:00 Y:5F P:25 SP:F9 CYC:35 SL:26 D08A 41 EOR $(2082,x) PC:D08B A:70 X:00 Y:5F P:25 SP:FB CYC:53 SL:26 D08C 20 JSR $F81D PC:D08D A:00 X:00 Y:5F P:27 SP:FB CYC:71 SL:26 F81D D0 BNE $F826 PC:F81E A:00 X:00 Y:5F P:27 SP:F9 CYC:89 SL:26 F81F 70 BVS $F826 PC:F820 A:00 X:00 Y:5F P:27 SP:F9 CYC:95 SL:26 F821 90 BCC $F826 PC:F822 A:00 X:00 Y:5F P:27 SP:F9 CYC:101 SL:26 F823 30 BMI $F826 PC:F824 A:00 X:00 Y:5F P:27 SP:F9 CYC:107 SL:26 F825 60 RTS PC:F826 A:00 X:00 Y:5F P:27 SP:F9 CYC:113 SL:26 D08F C8 INY PC:D090 A:00 X:00 Y:5F P:27 SP:FB CYC:131 SL:26 D090 A9 LDA #$69 PC:D091 A:00 X:00 Y:60 P:25 SP:FB CYC:137 SL:26 D092 8D STA $0200 PC:D093 A:69 X:00 Y:60 P:25 SP:FB CYC:143 SL:26 D095 20 JSR $F829 PC:D096 A:69 X:00 Y:60 P:25 SP:FB CYC:155 SL:26 F829 18 CLC PC:F82A A:69 X:00 Y:60 P:25 SP:F9 CYC:173 SL:26 F82A 24 BIT $01 PC:F82B A:69 X:00 Y:60 P:24 SP:F9 CYC:179 SL:26 F82C A9 LDA #$00 PC:F82D A:69 X:00 Y:60 P:E4 SP:F9 CYC:188 SL:26 F82E 60 RTS PC:F82F A:00 X:00 Y:60 P:66 SP:F9 CYC:194 SL:26 D098 61 ADC $(2080,x) PC:D099 A:00 X:00 Y:60 P:66 SP:FB CYC:212 SL:26 D09A 20 JSR $F82F PC:D09B A:69 X:00 Y:60 P:24 SP:FB CYC:230 SL:26 F82F 30 BMI $F83A PC:F830 A:69 X:00 Y:60 P:24 SP:F9 CYC:248 SL:26 F831 B0 BCS $F83A PC:F832 A:69 X:00 Y:60 P:24 SP:F9 CYC:254 SL:26 F833 C9 CMP #$69 PC:F834 A:69 X:00 Y:60 P:24 SP:F9 CYC:260 SL:26 F835 D0 BNE $F83A PC:F836 A:69 X:00 Y:60 P:27 SP:F9 CYC:266 SL:26 F837 70 BVS $F83A PC:F838 A:69 X:00 Y:60 P:27 SP:F9 CYC:272 SL:26 F839 60 RTS PC:F83A A:69 X:00 Y:60 P:27 SP:F9 CYC:278 SL:26 D09D C8 INY PC:D09E A:69 X:00 Y:60 P:27 SP:FB CYC:296 SL:26 D09E 20 JSR $F83D PC:D09F A:69 X:00 Y:61 P:25 SP:FB CYC:302 SL:26 F83D 38 SEC PC:F83E A:69 X:00 Y:61 P:25 SP:F9 CYC:320 SL:26 F83E 24 BIT $01 PC:F83F A:69 X:00 Y:61 P:25 SP:F9 CYC:326 SL:26 F840 A9 LDA #$00 PC:F841 A:69 X:00 Y:61 P:E5 SP:F9 CYC:335 SL:26 F842 60 RTS PC:F843 A:00 X:00 Y:61 P:67 SP:F9 CYC:0 SL:27 D0A1 61 ADC $(2080,x) PC:D0A2 A:00 X:00 Y:61 P:67 SP:FB CYC:18 SL:27 D0A3 20 JSR $F843 PC:D0A4 A:6A X:00 Y:61 P:24 SP:FB CYC:36 SL:27 F843 30 BMI $F84E PC:F844 A:6A X:00 Y:61 P:24 SP:F9 CYC:54 SL:27 F845 B0 BCS $F84E PC:F846 A:6A X:00 Y:61 P:24 SP:F9 CYC:60 SL:27 F847 C9 CMP #$6A PC:F848 A:6A X:00 Y:61 P:24 SP:F9 CYC:66 SL:27 F849 D0 BNE $F84E PC:F84A A:6A X:00 Y:61 P:27 SP:F9 CYC:72 SL:27 F84B 70 BVS $F84E PC:F84C A:6A X:00 Y:61 P:27 SP:F9 CYC:78 SL:27 F84D 60 RTS PC:F84E A:6A X:00 Y:61 P:27 SP:F9 CYC:84 SL:27 D0A6 C8 INY PC:D0A7 A:6A X:00 Y:61 P:27 SP:FB CYC:102 SL:27 D0A7 A9 LDA #$7F PC:D0A8 A:6A X:00 Y:62 P:25 SP:FB CYC:108 SL:27 D0A9 8D STA $0200 PC:D0AA A:7F X:00 Y:62 P:25 SP:FB CYC:114 SL:27 D0AC 20 JSR $F851 PC:D0AD A:7F X:00 Y:62 P:25 SP:FB CYC:126 SL:27 F851 38 SEC PC:F852 A:7F X:00 Y:62 P:25 SP:F9 CYC:144 SL:27 F852 B8 CLV PC:F853 A:7F X:00 Y:62 P:25 SP:F9 CYC:150 SL:27 F853 A9 LDA #$7F PC:F854 A:7F X:00 Y:62 P:25 SP:F9 CYC:156 SL:27 F855 60 RTS PC:F856 A:7F X:00 Y:62 P:25 SP:F9 CYC:162 SL:27 D0AF 61 ADC $(2080,x) PC:D0B0 A:7F X:00 Y:62 P:25 SP:FB CYC:180 SL:27 D0B1 20 JSR $F856 PC:D0B2 A:FF X:00 Y:62 P:E4 SP:FB CYC:198 SL:27 F856 10 BPL $F861 PC:F857 A:FF X:00 Y:62 P:E4 SP:F9 CYC:216 SL:27 F858 B0 BCS $F861 PC:F859 A:FF X:00 Y:62 P:E4 SP:F9 CYC:222 SL:27 F85A C9 CMP #$FF PC:F85B A:FF X:00 Y:62 P:E4 SP:F9 CYC:228 SL:27 F85C D0 BNE $F861 PC:F85D A:FF X:00 Y:62 P:67 SP:F9 CYC:234 SL:27 F85E 50 BVC $F861 PC:F85F A:FF X:00 Y:62 P:67 SP:F9 CYC:240 SL:27 F860 60 RTS PC:F861 A:FF X:00 Y:62 P:67 SP:F9 CYC:246 SL:27 D0B4 C8 INY PC:D0B5 A:FF X:00 Y:62 P:67 SP:FB CYC:264 SL:27 D0B5 A9 LDA #$80 PC:D0B6 A:FF X:00 Y:63 P:65 SP:FB CYC:270 SL:27 D0B7 8D STA $0200 PC:D0B8 A:80 X:00 Y:63 P:E5 SP:FB CYC:276 SL:27 D0BA 20 JSR $F864 PC:D0BB A:80 X:00 Y:63 P:E5 SP:FB CYC:288 SL:27 F864 18 CLC PC:F865 A:80 X:00 Y:63 P:E5 SP:F9 CYC:306 SL:27 F865 24 BIT $01 PC:F866 A:80 X:00 Y:63 P:E4 SP:F9 CYC:312 SL:27 F867 A9 LDA #$7F PC:F868 A:80 X:00 Y:63 P:E4 SP:F9 CYC:321 SL:27 F869 60 RTS PC:F86A A:7F X:00 Y:63 P:64 SP:F9 CYC:327 SL:27 D0BD 61 ADC $(2080,x) PC:D0BE A:7F X:00 Y:63 P:64 SP:FB CYC:4 SL:28 D0BF 20 JSR $F86A PC:D0C0 A:FF X:00 Y:63 P:A4 SP:FB CYC:22 SL:28 F86A 10 BPL $F875 PC:F86B A:FF X:00 Y:63 P:A4 SP:F9 CYC:40 SL:28 F86C B0 BCS $F875 PC:F86D A:FF X:00 Y:63 P:A4 SP:F9 CYC:46 SL:28 F86E C9 CMP #$FF PC:F86F A:FF X:00 Y:63 P:A4 SP:F9 CYC:52 SL:28 F870 D0 BNE $F875 PC:F871 A:FF X:00 Y:63 P:27 SP:F9 CYC:58 SL:28 F872 70 BVS $F875 PC:F873 A:FF X:00 Y:63 P:27 SP:F9 CYC:64 SL:28 F874 60 RTS PC:F875 A:FF X:00 Y:63 P:27 SP:F9 CYC:70 SL:28 D0C2 C8 INY PC:D0C3 A:FF X:00 Y:63 P:27 SP:FB CYC:88 SL:28 D0C3 20 JSR $F878 PC:D0C4 A:FF X:00 Y:64 P:25 SP:FB CYC:94 SL:28 F878 38 SEC PC:F879 A:FF X:00 Y:64 P:25 SP:F9 CYC:112 SL:28 F879 B8 CLV PC:F87A A:FF X:00 Y:64 P:25 SP:F9 CYC:118 SL:28 F87A A9 LDA #$7F PC:F87B A:FF X:00 Y:64 P:25 SP:F9 CYC:124 SL:28 F87C 60 RTS PC:F87D A:7F X:00 Y:64 P:25 SP:F9 CYC:130 SL:28 D0C6 61 ADC $(2080,x) PC:D0C7 A:7F X:00 Y:64 P:25 SP:FB CYC:148 SL:28 D0C8 20 JSR $F87D PC:D0C9 A:00 X:00 Y:64 P:27 SP:FB CYC:166 SL:28 F87D D0 BNE $F886 PC:F87E A:00 X:00 Y:64 P:27 SP:F9 CYC:184 SL:28 F87F 30 BMI $F886 PC:F880 A:00 X:00 Y:64 P:27 SP:F9 CYC:190 SL:28 F881 70 BVS $F886 PC:F882 A:00 X:00 Y:64 P:27 SP:F9 CYC:196 SL:28 F883 90 BCC $F886 PC:F884 A:00 X:00 Y:64 P:27 SP:F9 CYC:202 SL:28 F885 60 RTS PC:F886 A:00 X:00 Y:64 P:27 SP:F9 CYC:208 SL:28 D0CB C8 INY PC:D0CC A:00 X:00 Y:64 P:27 SP:FB CYC:226 SL:28 D0CC A9 LDA #$40 PC:D0CD A:00 X:00 Y:65 P:25 SP:FB CYC:232 SL:28 D0CE 8D STA $0200 PC:D0CF A:40 X:00 Y:65 P:25 SP:FB CYC:238 SL:28 D0D1 20 JSR $F889 PC:D0D2 A:40 X:00 Y:65 P:25 SP:FB CYC:250 SL:28 F889 24 BIT $01 PC:F88A A:40 X:00 Y:65 P:25 SP:F9 CYC:268 SL:28 F88B A9 LDA #$40 PC:F88C A:40 X:00 Y:65 P:E5 SP:F9 CYC:277 SL:28 F88D 60 RTS PC:F88E A:40 X:00 Y:65 P:65 SP:F9 CYC:283 SL:28 D0D4 C1 CMP $(2080,x) PC:D0D5 A:40 X:00 Y:65 P:65 SP:FB CYC:301 SL:28 D0D6 20 JSR $F88E PC:D0D7 A:40 X:00 Y:65 P:67 SP:FB CYC:319 SL:28 F88E 30 BMI $F897 PC:F88F A:40 X:00 Y:65 P:67 SP:F9 CYC:337 SL:28 F890 90 BCC $F897 PC:F891 A:40 X:00 Y:65 P:67 SP:F9 CYC:2 SL:29 F892 D0 BNE $F897 PC:F893 A:40 X:00 Y:65 P:67 SP:F9 CYC:8 SL:29 F894 50 BVC $F897 PC:F895 A:40 X:00 Y:65 P:67 SP:F9 CYC:14 SL:29 F896 60 RTS PC:F897 A:40 X:00 Y:65 P:67 SP:F9 CYC:20 SL:29 D0D9 C8 INY PC:D0DA A:40 X:00 Y:65 P:67 SP:FB CYC:38 SL:29 D0DA 48 PHA PC:D0DB A:40 X:00 Y:66 P:65 SP:FB CYC:44 SL:29 D0DB A9 LDA #$3F PC:D0DC A:40 X:00 Y:66 P:65 SP:FA CYC:53 SL:29 D0DD 8D STA $0200 PC:D0DE A:3F X:00 Y:66 P:65 SP:FA CYC:59 SL:29 D0E0 68 PLA PC:D0E1 A:3F X:00 Y:66 P:65 SP:FA CYC:71 SL:29 D0E1 20 JSR $F89A PC:D0E2 A:40 X:00 Y:66 P:65 SP:FB CYC:83 SL:29 F89A B8 CLV PC:F89B A:40 X:00 Y:66 P:65 SP:F9 CYC:101 SL:29 F89B 60 RTS PC:F89C A:40 X:00 Y:66 P:25 SP:F9 CYC:107 SL:29 D0E4 C1 CMP $(2080,x) PC:D0E5 A:40 X:00 Y:66 P:25 SP:FB CYC:125 SL:29 D0E6 20 JSR $F89C PC:D0E7 A:40 X:00 Y:66 P:25 SP:FB CYC:143 SL:29 F89C F0 BEQ $F8A5 PC:F89D A:40 X:00 Y:66 P:25 SP:F9 CYC:161 SL:29 F89E 30 BMI $F8A5 PC:F89F A:40 X:00 Y:66 P:25 SP:F9 CYC:167 SL:29 F8A0 90 BCC $F8A5 PC:F8A1 A:40 X:00 Y:66 P:25 SP:F9 CYC:173 SL:29 F8A2 70 BVS $F8A5 PC:F8A3 A:40 X:00 Y:66 P:25 SP:F9 CYC:179 SL:29 F8A4 60 RTS PC:F8A5 A:40 X:00 Y:66 P:25 SP:F9 CYC:185 SL:29 D0E9 C8 INY PC:D0EA A:40 X:00 Y:66 P:25 SP:FB CYC:203 SL:29 D0EA 48 PHA PC:D0EB A:40 X:00 Y:67 P:25 SP:FB CYC:209 SL:29 D0EB A9 LDA #$41 PC:D0EC A:40 X:00 Y:67 P:25 SP:FA CYC:218 SL:29 D0ED 8D STA $0200 PC:D0EE A:41 X:00 Y:67 P:25 SP:FA CYC:224 SL:29 D0F0 68 PLA PC:D0F1 A:41 X:00 Y:67 P:25 SP:FA CYC:236 SL:29 D0F1 C1 CMP $(2080,x) PC:D0F2 A:40 X:00 Y:67 P:25 SP:FB CYC:248 SL:29 D0F3 20 JSR $F8A8 PC:D0F4 A:40 X:00 Y:67 P:A4 SP:FB CYC:266 SL:29 F8A8 F0 BEQ $F8AF PC:F8A9 A:40 X:00 Y:67 P:A4 SP:F9 CYC:284 SL:29 F8AA 10 BPL $F8AF PC:F8AB A:40 X:00 Y:67 P:A4 SP:F9 CYC:290 SL:29 F8AC 10 BPL $F8AF PC:F8AD A:40 X:00 Y:67 P:A4 SP:F9 CYC:296 SL:29 F8AE 60 RTS PC:F8AF A:40 X:00 Y:67 P:A4 SP:F9 CYC:302 SL:29 D0F6 C8 INY PC:D0F7 A:40 X:00 Y:67 P:A4 SP:FB CYC:320 SL:29 D0F7 48 PHA PC:D0F8 A:40 X:00 Y:68 P:24 SP:FB CYC:326 SL:29 D0F8 A9 LDA #$00 PC:D0F9 A:40 X:00 Y:68 P:24 SP:FA CYC:335 SL:29 D0FA 8D STA $0200 PC:D0FB A:00 X:00 Y:68 P:26 SP:FA CYC:0 SL:30 D0FD 68 PLA PC:D0FE A:00 X:00 Y:68 P:26 SP:FA CYC:12 SL:30 D0FE 20 JSR $F8B2 PC:D0FF A:40 X:00 Y:68 P:24 SP:FB CYC:24 SL:30 F8B2 A9 LDA #$80 PC:F8B3 A:40 X:00 Y:68 P:24 SP:F9 CYC:42 SL:30 F8B4 60 RTS PC:F8B5 A:80 X:00 Y:68 P:A4 SP:F9 CYC:48 SL:30 D101 C1 CMP $(2080,x) PC:D102 A:80 X:00 Y:68 P:A4 SP:FB CYC:66 SL:30 D103 20 JSR $F8B5 PC:D104 A:80 X:00 Y:68 P:A5 SP:FB CYC:84 SL:30 F8B5 F0 BEQ $F8BC PC:F8B6 A:80 X:00 Y:68 P:A5 SP:F9 CYC:102 SL:30 F8B7 10 BPL $F8BC PC:F8B8 A:80 X:00 Y:68 P:A5 SP:F9 CYC:108 SL:30 F8B9 90 BCC $F8BC PC:F8BA A:80 X:00 Y:68 P:A5 SP:F9 CYC:114 SL:30 F8BB 60 RTS PC:F8BC A:80 X:00 Y:68 P:A5 SP:F9 CYC:120 SL:30 D106 C8 INY PC:D107 A:80 X:00 Y:68 P:A5 SP:FB CYC:138 SL:30 D107 48 PHA PC:D108 A:80 X:00 Y:69 P:25 SP:FB CYC:144 SL:30 D108 A9 LDA #$80 PC:D109 A:80 X:00 Y:69 P:25 SP:FA CYC:153 SL:30 D10A 8D STA $0200 PC:D10B A:80 X:00 Y:69 P:A5 SP:FA CYC:159 SL:30 D10D 68 PLA PC:D10E A:80 X:00 Y:69 P:A5 SP:FA CYC:171 SL:30 D10E C1 CMP $(2080,x) PC:D10F A:80 X:00 Y:69 P:A5 SP:FB CYC:183 SL:30 D110 20 JSR $F8BF PC:D111 A:80 X:00 Y:69 P:27 SP:FB CYC:201 SL:30 F8BF D0 BNE $F8C6 PC:F8C0 A:80 X:00 Y:69 P:27 SP:F9 CYC:219 SL:30 F8C1 30 BMI $F8C6 PC:F8C2 A:80 X:00 Y:69 P:27 SP:F9 CYC:225 SL:30 F8C3 90 BCC $F8C6 PC:F8C4 A:80 X:00 Y:69 P:27 SP:F9 CYC:231 SL:30 F8C5 60 RTS PC:F8C6 A:80 X:00 Y:69 P:27 SP:F9 CYC:237 SL:30 D113 C8 INY PC:D114 A:80 X:00 Y:69 P:27 SP:FB CYC:255 SL:30 D114 48 PHA PC:D115 A:80 X:00 Y:6A P:25 SP:FB CYC:261 SL:30 D115 A9 LDA #$81 PC:D116 A:80 X:00 Y:6A P:25 SP:FA CYC:270 SL:30 D117 8D STA $0200 PC:D118 A:81 X:00 Y:6A P:A5 SP:FA CYC:276 SL:30 D11A 68 PLA PC:D11B A:81 X:00 Y:6A P:A5 SP:FA CYC:288 SL:30 D11B C1 CMP $(2080,x) PC:D11C A:80 X:00 Y:6A P:A5 SP:FB CYC:300 SL:30 D11D 20 JSR $F8C9 PC:D11E A:80 X:00 Y:6A P:A4 SP:FB CYC:318 SL:30 F8C9 B0 BCS $F8D0 PC:F8CA A:80 X:00 Y:6A P:A4 SP:F9 CYC:336 SL:30 F8CB F0 BEQ $F8D0 PC:F8CC A:80 X:00 Y:6A P:A4 SP:F9 CYC:1 SL:31 F8CD 10 BPL $F8D0 PC:F8CE A:80 X:00 Y:6A P:A4 SP:F9 CYC:7 SL:31 F8CF 60 RTS PC:F8D0 A:80 X:00 Y:6A P:A4 SP:F9 CYC:13 SL:31 D120 C8 INY PC:D121 A:80 X:00 Y:6A P:A4 SP:FB CYC:31 SL:31 D121 48 PHA PC:D122 A:80 X:00 Y:6B P:24 SP:FB CYC:37 SL:31 D122 A9 LDA #$7F PC:D123 A:80 X:00 Y:6B P:24 SP:FA CYC:46 SL:31 D124 8D STA $0200 PC:D125 A:7F X:00 Y:6B P:24 SP:FA CYC:52 SL:31 D127 68 PLA PC:D128 A:7F X:00 Y:6B P:24 SP:FA CYC:64 SL:31 D128 C1 CMP $(2080,x) PC:D129 A:80 X:00 Y:6B P:A4 SP:FB CYC:76 SL:31 D12A 20 JSR $F8D3 PC:D12B A:80 X:00 Y:6B P:25 SP:FB CYC:94 SL:31 F8D3 90 BCC $F8DA PC:F8D4 A:80 X:00 Y:6B P:25 SP:F9 CYC:112 SL:31 F8D5 F0 BEQ $F8DA PC:F8D6 A:80 X:00 Y:6B P:25 SP:F9 CYC:118 SL:31 F8D7 30 BMI $F8DA PC:F8D8 A:80 X:00 Y:6B P:25 SP:F9 CYC:124 SL:31 F8D9 60 RTS PC:F8DA A:80 X:00 Y:6B P:25 SP:F9 CYC:130 SL:31 D12D C8 INY PC:D12E A:80 X:00 Y:6B P:25 SP:FB CYC:148 SL:31 D12E A9 LDA #$40 PC:D12F A:80 X:00 Y:6C P:25 SP:FB CYC:154 SL:31 D130 8D STA $0200 PC:D131 A:40 X:00 Y:6C P:25 SP:FB CYC:160 SL:31 D133 20 JSR $F931 PC:D134 A:40 X:00 Y:6C P:25 SP:FB CYC:172 SL:31 F931 24 BIT $01 PC:F932 A:40 X:00 Y:6C P:25 SP:F9 CYC:190 SL:31 F933 A9 LDA #$40 PC:F934 A:40 X:00 Y:6C P:E5 SP:F9 CYC:199 SL:31 F935 38 SEC PC:F936 A:40 X:00 Y:6C P:65 SP:F9 CYC:205 SL:31 F936 60 RTS PC:F937 A:40 X:00 Y:6C P:65 SP:F9 CYC:211 SL:31 D136 E1 SBC $(2080,x) PC:D137 A:40 X:00 Y:6C P:65 SP:FB CYC:229 SL:31 D138 20 JSR $F937 PC:D139 A:00 X:00 Y:6C P:27 SP:FB CYC:247 SL:31 F937 30 BMI $F944 PC:F938 A:00 X:00 Y:6C P:27 SP:F9 CYC:265 SL:31 F939 90 BCC $F944 PC:F93A A:00 X:00 Y:6C P:27 SP:F9 CYC:271 SL:31 F93B D0 BNE $F944 PC:F93C A:00 X:00 Y:6C P:27 SP:F9 CYC:277 SL:31 F93D 70 BVS $F944 PC:F93E A:00 X:00 Y:6C P:27 SP:F9 CYC:283 SL:31 F93F C9 CMP #$00 PC:F940 A:00 X:00 Y:6C P:27 SP:F9 CYC:289 SL:31 F941 D0 BNE $F944 PC:F942 A:00 X:00 Y:6C P:27 SP:F9 CYC:295 SL:31 F943 60 RTS PC:F944 A:00 X:00 Y:6C P:27 SP:F9 CYC:301 SL:31 D13B C8 INY PC:D13C A:00 X:00 Y:6C P:27 SP:FB CYC:319 SL:31 D13C A9 LDA #$3F PC:D13D A:00 X:00 Y:6D P:25 SP:FB CYC:325 SL:31 D13E 8D STA $0200 PC:D13F A:3F X:00 Y:6D P:25 SP:FB CYC:331 SL:31 D141 20 JSR $F947 PC:D142 A:3F X:00 Y:6D P:25 SP:FB CYC:2 SL:32 F947 B8 CLV PC:F948 A:3F X:00 Y:6D P:25 SP:F9 CYC:20 SL:32 F948 38 SEC PC:F949 A:3F X:00 Y:6D P:25 SP:F9 CYC:26 SL:32 F949 A9 LDA #$40 PC:F94A A:3F X:00 Y:6D P:25 SP:F9 CYC:32 SL:32 F94B 60 RTS PC:F94C A:40 X:00 Y:6D P:25 SP:F9 CYC:38 SL:32 D144 E1 SBC $(2080,x) PC:D145 A:40 X:00 Y:6D P:25 SP:FB CYC:56 SL:32 D146 20 JSR $F94C PC:D147 A:01 X:00 Y:6D P:25 SP:FB CYC:74 SL:32 F94C F0 BEQ $F959 PC:F94D A:01 X:00 Y:6D P:25 SP:F9 CYC:92 SL:32 F94E 30 BMI $F959 PC:F94F A:01 X:00 Y:6D P:25 SP:F9 CYC:98 SL:32 F950 90 BCC $F959 PC:F951 A:01 X:00 Y:6D P:25 SP:F9 CYC:104 SL:32 F952 70 BVS $F959 PC:F953 A:01 X:00 Y:6D P:25 SP:F9 CYC:110 SL:32 F954 C9 CMP #$01 PC:F955 A:01 X:00 Y:6D P:25 SP:F9 CYC:116 SL:32 F956 D0 BNE $F959 PC:F957 A:01 X:00 Y:6D P:27 SP:F9 CYC:122 SL:32 F958 60 RTS PC:F959 A:01 X:00 Y:6D P:27 SP:F9 CYC:128 SL:32 D149 C8 INY PC:D14A A:01 X:00 Y:6D P:27 SP:FB CYC:146 SL:32 D14A A9 LDA #$41 PC:D14B A:01 X:00 Y:6E P:25 SP:FB CYC:152 SL:32 D14C 8D STA $0200 PC:D14D A:41 X:00 Y:6E P:25 SP:FB CYC:158 SL:32 D14F 20 JSR $F95C PC:D150 A:41 X:00 Y:6E P:25 SP:FB CYC:170 SL:32 F95C A9 LDA #$40 PC:F95D A:41 X:00 Y:6E P:25 SP:F9 CYC:188 SL:32 F95E 38 SEC PC:F95F A:40 X:00 Y:6E P:25 SP:F9 CYC:194 SL:32 F95F 24 BIT $01 PC:F960 A:40 X:00 Y:6E P:25 SP:F9 CYC:200 SL:32 F961 60 RTS PC:F962 A:40 X:00 Y:6E P:E5 SP:F9 CYC:209 SL:32 D152 E1 SBC $(2080,x) PC:D153 A:40 X:00 Y:6E P:E5 SP:FB CYC:227 SL:32 D154 20 JSR $F962 PC:D155 A:FF X:00 Y:6E P:A4 SP:FB CYC:245 SL:32 F962 B0 BCS $F96F PC:F963 A:FF X:00 Y:6E P:A4 SP:F9 CYC:263 SL:32 F964 F0 BEQ $F96F PC:F965 A:FF X:00 Y:6E P:A4 SP:F9 CYC:269 SL:32 F966 10 BPL $F96F PC:F967 A:FF X:00 Y:6E P:A4 SP:F9 CYC:275 SL:32 F968 70 BVS $F96F PC:F969 A:FF X:00 Y:6E P:A4 SP:F9 CYC:281 SL:32 F96A C9 CMP #$FF PC:F96B A:FF X:00 Y:6E P:A4 SP:F9 CYC:287 SL:32 F96C D0 BNE $F96F PC:F96D A:FF X:00 Y:6E P:27 SP:F9 CYC:293 SL:32 F96E 60 RTS PC:F96F A:FF X:00 Y:6E P:27 SP:F9 CYC:299 SL:32 D157 C8 INY PC:D158 A:FF X:00 Y:6E P:27 SP:FB CYC:317 SL:32 D158 A9 LDA #$00 PC:D159 A:FF X:00 Y:6F P:25 SP:FB CYC:323 SL:32 D15A 8D STA $0200 PC:D15B A:00 X:00 Y:6F P:27 SP:FB CYC:329 SL:32 D15D 20 JSR $F972 PC:D15E A:00 X:00 Y:6F P:27 SP:FB CYC:0 SL:33 F972 18 CLC PC:F973 A:00 X:00 Y:6F P:27 SP:F9 CYC:18 SL:33 F973 A9 LDA #$80 PC:F974 A:00 X:00 Y:6F P:26 SP:F9 CYC:24 SL:33 F975 60 RTS PC:F976 A:80 X:00 Y:6F P:A4 SP:F9 CYC:30 SL:33 D160 E1 SBC $(2080,x) PC:D161 A:80 X:00 Y:6F P:A4 SP:FB CYC:48 SL:33 D162 20 JSR $F976 PC:D163 A:7F X:00 Y:6F P:65 SP:FB CYC:66 SL:33 F976 90 BCC $F97D PC:F977 A:7F X:00 Y:6F P:65 SP:F9 CYC:84 SL:33 F978 C9 CMP #$7F PC:F979 A:7F X:00 Y:6F P:65 SP:F9 CYC:90 SL:33 F97A D0 BNE $F97D PC:F97B A:7F X:00 Y:6F P:67 SP:F9 CYC:96 SL:33 F97C 60 RTS PC:F97D A:7F X:00 Y:6F P:67 SP:F9 CYC:102 SL:33 D165 C8 INY PC:D166 A:7F X:00 Y:6F P:67 SP:FB CYC:120 SL:33 D166 A9 LDA #$7F PC:D167 A:7F X:00 Y:70 P:65 SP:FB CYC:126 SL:33 D168 8D STA $0200 PC:D169 A:7F X:00 Y:70 P:65 SP:FB CYC:132 SL:33 D16B 20 JSR $F980 PC:D16C A:7F X:00 Y:70 P:65 SP:FB CYC:144 SL:33 F980 38 SEC PC:F981 A:7F X:00 Y:70 P:65 SP:F9 CYC:162 SL:33 F981 A9 LDA #$81 PC:F982 A:7F X:00 Y:70 P:65 SP:F9 CYC:168 SL:33 F983 60 RTS PC:F984 A:81 X:00 Y:70 P:E5 SP:F9 CYC:174 SL:33 D16E E1 SBC $(2080,x) PC:D16F A:81 X:00 Y:70 P:E5 SP:FB CYC:192 SL:33 D170 20 JSR $F984 PC:D171 A:02 X:00 Y:70 P:65 SP:FB CYC:210 SL:33 F984 50 BVC $F98D PC:F985 A:02 X:00 Y:70 P:65 SP:F9 CYC:228 SL:33 F986 90 BCC $F98D PC:F987 A:02 X:00 Y:70 P:65 SP:F9 CYC:234 SL:33 F988 C9 CMP #$02 PC:F989 A:02 X:00 Y:70 P:65 SP:F9 CYC:240 SL:33 F98A D0 BNE $F98D PC:F98B A:02 X:00 Y:70 P:67 SP:F9 CYC:246 SL:33 F98C 60 RTS PC:F98D A:02 X:00 Y:70 P:67 SP:F9 CYC:252 SL:33 D173 60 RTS PC:D174 A:02 X:00 Y:70 P:67 SP:FB CYC:270 SL:33 C612 20 JSR $D174 PC:C613 A:02 X:00 Y:70 P:67 SP:FD CYC:288 SL:33 D174 A9 LDA #$55 PC:D175 A:02 X:00 Y:70 P:67 SP:FB CYC:306 SL:33 D176 85 STA $78 PC:D177 A:55 X:00 Y:70 P:65 SP:FB CYC:312 SL:33 D178 A9 LDA #$FF PC:D179 A:55 X:00 Y:70 P:65 SP:FB CYC:321 SL:33 D17A 85 STA $01 PC:D17B A:FF X:00 Y:70 P:E5 SP:FB CYC:327 SL:33 D17C 24 BIT $01 PC:D17D A:FF X:00 Y:70 P:E5 SP:FB CYC:336 SL:33 D17E A0 LDY #$11 PC:D17F A:FF X:00 Y:70 P:E5 SP:FB CYC:4 SL:34 D180 A2 LDX #$23 PC:D181 A:FF X:00 Y:11 P:65 SP:FB CYC:10 SL:34 D182 A9 LDA #$00 PC:D183 A:FF X:23 Y:11 P:65 SP:FB CYC:16 SL:34 D184 A5 LDA $78 PC:D185 A:00 X:23 Y:11 P:67 SP:FB CYC:22 SL:34 D186 F0 BEQ $D198 PC:D187 A:55 X:23 Y:11 P:65 SP:FB CYC:31 SL:34 D188 30 BMI $D198 PC:D189 A:55 X:23 Y:11 P:65 SP:FB CYC:37 SL:34 D18A C9 CMP #$55 PC:D18B A:55 X:23 Y:11 P:65 SP:FB CYC:43 SL:34 D18C D0 BNE $D198 PC:D18D A:55 X:23 Y:11 P:67 SP:FB CYC:49 SL:34 D18E C0 CPY #$11 PC:D18F A:55 X:23 Y:11 P:67 SP:FB CYC:55 SL:34 D190 D0 BNE $D198 PC:D191 A:55 X:23 Y:11 P:67 SP:FB CYC:61 SL:34 D192 E0 CPX #$23 PC:D193 A:55 X:23 Y:11 P:67 SP:FB CYC:67 SL:34 D194 50 BVC $D198 PC:D195 A:55 X:23 Y:11 P:67 SP:FB CYC:73 SL:34 D196 F0 BEQ $D19C PC:D197 A:55 X:23 Y:11 P:67 SP:FB CYC:79 SL:34 D19C A9 LDA #$46 PC:D19D A:55 X:23 Y:11 P:67 SP:FB CYC:88 SL:34 D19E 24 BIT $01 PC:D19F A:46 X:23 Y:11 P:65 SP:FB CYC:94 SL:34 D1A0 85 STA $78 PC:D1A1 A:46 X:23 Y:11 P:E5 SP:FB CYC:103 SL:34 D1A2 F0 BEQ $D1AE PC:D1A3 A:46 X:23 Y:11 P:E5 SP:FB CYC:112 SL:34 D1A4 10 BPL $D1AE PC:D1A5 A:46 X:23 Y:11 P:E5 SP:FB CYC:118 SL:34 D1A6 50 BVC $D1AE PC:D1A7 A:46 X:23 Y:11 P:E5 SP:FB CYC:124 SL:34 D1A8 A5 LDA $78 PC:D1A9 A:46 X:23 Y:11 P:E5 SP:FB CYC:130 SL:34 D1AA C9 CMP #$46 PC:D1AB A:46 X:23 Y:11 P:65 SP:FB CYC:139 SL:34 D1AC F0 BEQ $D1B2 PC:D1AD A:46 X:23 Y:11 P:67 SP:FB CYC:145 SL:34 D1B2 A9 LDA #$55 PC:D1B3 A:46 X:23 Y:11 P:67 SP:FB CYC:154 SL:34 D1B4 85 STA $78 PC:D1B5 A:55 X:23 Y:11 P:65 SP:FB CYC:160 SL:34 D1B6 24 BIT $01 PC:D1B7 A:55 X:23 Y:11 P:65 SP:FB CYC:169 SL:34 D1B8 A9 LDA #$11 PC:D1B9 A:55 X:23 Y:11 P:E5 SP:FB CYC:178 SL:34 D1BA A2 LDX #$23 PC:D1BB A:11 X:23 Y:11 P:65 SP:FB CYC:184 SL:34 D1BC A0 LDY #$00 PC:D1BD A:11 X:23 Y:11 P:65 SP:FB CYC:190 SL:34 D1BE A4 LDY $78 PC:D1BF A:11 X:23 Y:00 P:67 SP:FB CYC:196 SL:34 D1C0 F0 BEQ $D1D2 PC:D1C1 A:11 X:23 Y:55 P:65 SP:FB CYC:205 SL:34 D1C2 30 BMI $D1D2 PC:D1C3 A:11 X:23 Y:55 P:65 SP:FB CYC:211 SL:34 D1C4 C0 CPY #$55 PC:D1C5 A:11 X:23 Y:55 P:65 SP:FB CYC:217 SL:34 D1C6 D0 BNE $D1D2 PC:D1C7 A:11 X:23 Y:55 P:67 SP:FB CYC:223 SL:34 D1C8 C9 CMP #$11 PC:D1C9 A:11 X:23 Y:55 P:67 SP:FB CYC:229 SL:34 D1CA D0 BNE $D1D2 PC:D1CB A:11 X:23 Y:55 P:67 SP:FB CYC:235 SL:34 D1CC E0 CPX #$23 PC:D1CD A:11 X:23 Y:55 P:67 SP:FB CYC:241 SL:34 D1CE 50 BVC $D1D2 PC:D1CF A:11 X:23 Y:55 P:67 SP:FB CYC:247 SL:34 D1D0 F0 BEQ $D1D6 PC:D1D1 A:11 X:23 Y:55 P:67 SP:FB CYC:253 SL:34 D1D6 A0 LDY #$46 PC:D1D7 A:11 X:23 Y:55 P:67 SP:FB CYC:262 SL:34 D1D8 24 BIT $01 PC:D1D9 A:11 X:23 Y:46 P:65 SP:FB CYC:268 SL:34 D1DA 84 STY $78 PC:D1DB A:11 X:23 Y:46 P:E5 SP:FB CYC:277 SL:34 D1DC F0 BEQ $D1E8 PC:D1DD A:11 X:23 Y:46 P:E5 SP:FB CYC:286 SL:34 D1DE 10 BPL $D1E8 PC:D1DF A:11 X:23 Y:46 P:E5 SP:FB CYC:292 SL:34 D1E0 50 BVC $D1E8 PC:D1E1 A:11 X:23 Y:46 P:E5 SP:FB CYC:298 SL:34 D1E2 A4 LDY $78 PC:D1E3 A:11 X:23 Y:46 P:E5 SP:FB CYC:304 SL:34 D1E4 C0 CPY #$46 PC:D1E5 A:11 X:23 Y:46 P:65 SP:FB CYC:313 SL:34 D1E6 F0 BEQ $D1EC PC:D1E7 A:11 X:23 Y:46 P:67 SP:FB CYC:319 SL:34 D1EC 24 BIT $01 PC:D1ED A:11 X:23 Y:46 P:67 SP:FB CYC:328 SL:34 D1EE A9 LDA #$55 PC:D1EF A:11 X:23 Y:46 P:E5 SP:FB CYC:337 SL:34 D1F0 85 STA $78 PC:D1F1 A:55 X:23 Y:46 P:65 SP:FB CYC:2 SL:35 D1F2 A0 LDY #$11 PC:D1F3 A:55 X:23 Y:46 P:65 SP:FB CYC:11 SL:35 D1F4 A9 LDA #$23 PC:D1F5 A:55 X:23 Y:11 P:65 SP:FB CYC:17 SL:35 D1F6 A2 LDX #$00 PC:D1F7 A:23 X:23 Y:11 P:65 SP:FB CYC:23 SL:35 D1F8 A6 LDX $78 PC:D1F9 A:23 X:00 Y:11 P:67 SP:FB CYC:29 SL:35 D1FA F0 BEQ $D20C PC:D1FB A:23 X:55 Y:11 P:65 SP:FB CYC:38 SL:35 D1FC 30 BMI $D20C PC:D1FD A:23 X:55 Y:11 P:65 SP:FB CYC:44 SL:35 D1FE E0 CPX #$55 PC:D1FF A:23 X:55 Y:11 P:65 SP:FB CYC:50 SL:35 D200 D0 BNE $D20C PC:D201 A:23 X:55 Y:11 P:67 SP:FB CYC:56 SL:35 D202 C0 CPY #$11 PC:D203 A:23 X:55 Y:11 P:67 SP:FB CYC:62 SL:35 D204 D0 BNE $D20C PC:D205 A:23 X:55 Y:11 P:67 SP:FB CYC:68 SL:35 D206 C9 CMP #$23 PC:D207 A:23 X:55 Y:11 P:67 SP:FB CYC:74 SL:35 D208 50 BVC $D20C PC:D209 A:23 X:55 Y:11 P:67 SP:FB CYC:80 SL:35 D20A F0 BEQ $D210 PC:D20B A:23 X:55 Y:11 P:67 SP:FB CYC:86 SL:35 D210 A2 LDX #$46 PC:D211 A:23 X:55 Y:11 P:67 SP:FB CYC:95 SL:35 D212 24 BIT $01 PC:D213 A:23 X:46 Y:11 P:65 SP:FB CYC:101 SL:35 D214 86 STX $78 PC:D215 A:23 X:46 Y:11 P:E5 SP:FB CYC:110 SL:35 D216 F0 BEQ $D222 PC:D217 A:23 X:46 Y:11 P:E5 SP:FB CYC:119 SL:35 D218 10 BPL $D222 PC:D219 A:23 X:46 Y:11 P:E5 SP:FB CYC:125 SL:35 D21A 50 BVC $D222 PC:D21B A:23 X:46 Y:11 P:E5 SP:FB CYC:131 SL:35 D21C A6 LDX $78 PC:D21D A:23 X:46 Y:11 P:E5 SP:FB CYC:137 SL:35 D21E E0 CPX #$46 PC:D21F A:23 X:46 Y:11 P:65 SP:FB CYC:146 SL:35 D220 F0 BEQ $D226 PC:D221 A:23 X:46 Y:11 P:67 SP:FB CYC:152 SL:35 D226 A9 LDA #$C0 PC:D227 A:23 X:46 Y:11 P:67 SP:FB CYC:161 SL:35 D228 85 STA $78 PC:D229 A:C0 X:46 Y:11 P:E5 SP:FB CYC:167 SL:35 D22A A2 LDX #$33 PC:D22B A:C0 X:46 Y:11 P:E5 SP:FB CYC:176 SL:35 D22C A0 LDY #$88 PC:D22D A:C0 X:33 Y:11 P:65 SP:FB CYC:182 SL:35 D22E A9 LDA #$05 PC:D22F A:C0 X:33 Y:88 P:E5 SP:FB CYC:188 SL:35 D230 24 BIT $78 PC:D231 A:05 X:33 Y:88 P:65 SP:FB CYC:194 SL:35 D232 10 BPL $D244 PC:D233 A:05 X:33 Y:88 P:E7 SP:FB CYC:203 SL:35 D234 50 BVC $D244 PC:D235 A:05 X:33 Y:88 P:E7 SP:FB CYC:209 SL:35 D236 D0 BNE $D244 PC:D237 A:05 X:33 Y:88 P:E7 SP:FB CYC:215 SL:35 D238 C9 CMP #$05 PC:D239 A:05 X:33 Y:88 P:E7 SP:FB CYC:221 SL:35 D23A D0 BNE $D244 PC:D23B A:05 X:33 Y:88 P:67 SP:FB CYC:227 SL:35 D23C E0 CPX #$33 PC:D23D A:05 X:33 Y:88 P:67 SP:FB CYC:233 SL:35 D23E D0 BNE $D244 PC:D23F A:05 X:33 Y:88 P:67 SP:FB CYC:239 SL:35 D240 C0 CPY #$88 PC:D241 A:05 X:33 Y:88 P:67 SP:FB CYC:245 SL:35 D242 F0 BEQ $D248 PC:D243 A:05 X:33 Y:88 P:67 SP:FB CYC:251 SL:35 D248 A9 LDA #$03 PC:D249 A:05 X:33 Y:88 P:67 SP:FB CYC:260 SL:35 D24A 85 STA $78 PC:D24B A:03 X:33 Y:88 P:65 SP:FB CYC:266 SL:35 D24C A9 LDA #$01 PC:D24D A:03 X:33 Y:88 P:65 SP:FB CYC:275 SL:35 D24E 24 BIT $78 PC:D24F A:01 X:33 Y:88 P:65 SP:FB CYC:281 SL:35 D250 30 BMI $D25A PC:D251 A:01 X:33 Y:88 P:25 SP:FB CYC:290 SL:35 D252 70 BVS $D25A PC:D253 A:01 X:33 Y:88 P:25 SP:FB CYC:296 SL:35 D254 F0 BEQ $D25A PC:D255 A:01 X:33 Y:88 P:25 SP:FB CYC:302 SL:35 D256 C9 CMP #$01 PC:D257 A:01 X:33 Y:88 P:25 SP:FB CYC:308 SL:35 D258 F0 BEQ $D25E PC:D259 A:01 X:33 Y:88 P:27 SP:FB CYC:314 SL:35 D25E A0 LDY #$7E PC:D25F A:01 X:33 Y:88 P:27 SP:FB CYC:323 SL:35 D260 A9 LDA #$AA PC:D261 A:01 X:33 Y:7E P:25 SP:FB CYC:329 SL:35 D262 85 STA $78 PC:D263 A:AA X:33 Y:7E P:A5 SP:FB CYC:335 SL:35 D264 20 JSR $F7B6 PC:D265 A:AA X:33 Y:7E P:A5 SP:FB CYC:3 SL:36 F7B6 18 CLC PC:F7B7 A:AA X:33 Y:7E P:A5 SP:F9 CYC:21 SL:36 F7B7 A9 LDA #$FF PC:F7B8 A:AA X:33 Y:7E P:A4 SP:F9 CYC:27 SL:36 F7B9 85 STA $01 PC:F7BA A:FF X:33 Y:7E P:A4 SP:F9 CYC:33 SL:36 F7BB 24 BIT $01 PC:F7BC A:FF X:33 Y:7E P:A4 SP:F9 CYC:42 SL:36 F7BD A9 LDA #$55 PC:F7BE A:FF X:33 Y:7E P:E4 SP:F9 CYC:51 SL:36 F7BF 60 RTS PC:F7C0 A:55 X:33 Y:7E P:64 SP:F9 CYC:57 SL:36 D267 05 ORA $78 PC:D268 A:55 X:33 Y:7E P:64 SP:FB CYC:75 SL:36 D269 20 JSR $F7C0 PC:D26A A:FF X:33 Y:7E P:E4 SP:FB CYC:84 SL:36 F7C0 B0 BCS $F7CB PC:F7C1 A:FF X:33 Y:7E P:E4 SP:F9 CYC:102 SL:36 F7C2 10 BPL $F7CB PC:F7C3 A:FF X:33 Y:7E P:E4 SP:F9 CYC:108 SL:36 F7C4 C9 CMP #$FF PC:F7C5 A:FF X:33 Y:7E P:E4 SP:F9 CYC:114 SL:36 F7C6 D0 BNE $F7CB PC:F7C7 A:FF X:33 Y:7E P:67 SP:F9 CYC:120 SL:36 F7C8 50 BVC $F7CB PC:F7C9 A:FF X:33 Y:7E P:67 SP:F9 CYC:126 SL:36 F7CA 60 RTS PC:F7CB A:FF X:33 Y:7E P:67 SP:F9 CYC:132 SL:36 D26C C8 INY PC:D26D A:FF X:33 Y:7E P:67 SP:FB CYC:150 SL:36 D26D A9 LDA #$00 PC:D26E A:FF X:33 Y:7F P:65 SP:FB CYC:156 SL:36 D26F 85 STA $78 PC:D270 A:00 X:33 Y:7F P:67 SP:FB CYC:162 SL:36 D271 20 JSR $F7CE PC:D272 A:00 X:33 Y:7F P:67 SP:FB CYC:171 SL:36 F7CE 38 SEC PC:F7CF A:00 X:33 Y:7F P:67 SP:F9 CYC:189 SL:36 F7CF B8 CLV PC:F7D0 A:00 X:33 Y:7F P:67 SP:F9 CYC:195 SL:36 F7D0 A9 LDA #$00 PC:F7D1 A:00 X:33 Y:7F P:27 SP:F9 CYC:201 SL:36 F7D2 60 RTS PC:F7D3 A:00 X:33 Y:7F P:27 SP:F9 CYC:207 SL:36 D274 05 ORA $78 PC:D275 A:00 X:33 Y:7F P:27 SP:FB CYC:225 SL:36 D276 20 JSR $F7D3 PC:D277 A:00 X:33 Y:7F P:27 SP:FB CYC:234 SL:36 F7D3 D0 BNE $F7DC PC:F7D4 A:00 X:33 Y:7F P:27 SP:F9 CYC:252 SL:36 F7D5 70 BVS $F7DC PC:F7D6 A:00 X:33 Y:7F P:27 SP:F9 CYC:258 SL:36 F7D7 90 BCC $F7DC PC:F7D8 A:00 X:33 Y:7F P:27 SP:F9 CYC:264 SL:36 F7D9 30 BMI $F7DC PC:F7DA A:00 X:33 Y:7F P:27 SP:F9 CYC:270 SL:36 F7DB 60 RTS PC:F7DC A:00 X:33 Y:7F P:27 SP:F9 CYC:276 SL:36 D279 C8 INY PC:D27A A:00 X:33 Y:7F P:27 SP:FB CYC:294 SL:36 D27A A9 LDA #$AA PC:D27B A:00 X:33 Y:80 P:A5 SP:FB CYC:300 SL:36 D27C 85 STA $78 PC:D27D A:AA X:33 Y:80 P:A5 SP:FB CYC:306 SL:36 D27E 20 JSR $F7DF PC:D27F A:AA X:33 Y:80 P:A5 SP:FB CYC:315 SL:36 F7DF 18 CLC PC:F7E0 A:AA X:33 Y:80 P:A5 SP:F9 CYC:333 SL:36 F7E0 24 BIT $01 PC:F7E1 A:AA X:33 Y:80 P:A4 SP:F9 CYC:339 SL:36 F7E2 A9 LDA #$55 PC:F7E3 A:AA X:33 Y:80 P:E4 SP:F9 CYC:7 SL:37 F7E4 60 RTS PC:F7E5 A:55 X:33 Y:80 P:64 SP:F9 CYC:13 SL:37 D281 25 AND $78 PC:D282 A:55 X:33 Y:80 P:64 SP:FB CYC:31 SL:37 D283 20 JSR $F7E5 PC:D284 A:00 X:33 Y:80 P:66 SP:FB CYC:40 SL:37 F7E5 D0 BNE $F7EE PC:F7E6 A:00 X:33 Y:80 P:66 SP:F9 CYC:58 SL:37 F7E7 50 BVC $F7EE PC:F7E8 A:00 X:33 Y:80 P:66 SP:F9 CYC:64 SL:37 F7E9 B0 BCS $F7EE PC:F7EA A:00 X:33 Y:80 P:66 SP:F9 CYC:70 SL:37 F7EB 30 BMI $F7EE PC:F7EC A:00 X:33 Y:80 P:66 SP:F9 CYC:76 SL:37 F7ED 60 RTS PC:F7EE A:00 X:33 Y:80 P:66 SP:F9 CYC:82 SL:37 D286 C8 INY PC:D287 A:00 X:33 Y:80 P:66 SP:FB CYC:100 SL:37 D287 A9 LDA #$EF PC:D288 A:00 X:33 Y:81 P:E4 SP:FB CYC:106 SL:37 D289 85 STA $78 PC:D28A A:EF X:33 Y:81 P:E4 SP:FB CYC:112 SL:37 D28B 20 JSR $F7F1 PC:D28C A:EF X:33 Y:81 P:E4 SP:FB CYC:121 SL:37 F7F1 38 SEC PC:F7F2 A:EF X:33 Y:81 P:E4 SP:F9 CYC:139 SL:37 F7F2 B8 CLV PC:F7F3 A:EF X:33 Y:81 P:E5 SP:F9 CYC:145 SL:37 F7F3 A9 LDA #$F8 PC:F7F4 A:EF X:33 Y:81 P:A5 SP:F9 CYC:151 SL:37 F7F5 60 RTS PC:F7F6 A:F8 X:33 Y:81 P:A5 SP:F9 CYC:157 SL:37 D28E 25 AND $78 PC:D28F A:F8 X:33 Y:81 P:A5 SP:FB CYC:175 SL:37 D290 20 JSR $F7F6 PC:D291 A:E8 X:33 Y:81 P:A5 SP:FB CYC:184 SL:37 F7F6 90 BCC $F801 PC:F7F7 A:E8 X:33 Y:81 P:A5 SP:F9 CYC:202 SL:37 F7F8 10 BPL $F801 PC:F7F9 A:E8 X:33 Y:81 P:A5 SP:F9 CYC:208 SL:37 F7FA C9 CMP #$E8 PC:F7FB A:E8 X:33 Y:81 P:A5 SP:F9 CYC:214 SL:37 F7FC D0 BNE $F801 PC:F7FD A:E8 X:33 Y:81 P:27 SP:F9 CYC:220 SL:37 F7FE 70 BVS $F801 PC:F7FF A:E8 X:33 Y:81 P:27 SP:F9 CYC:226 SL:37 F800 60 RTS PC:F801 A:E8 X:33 Y:81 P:27 SP:F9 CYC:232 SL:37 D293 C8 INY PC:D294 A:E8 X:33 Y:81 P:27 SP:FB CYC:250 SL:37 D294 A9 LDA #$AA PC:D295 A:E8 X:33 Y:82 P:A5 SP:FB CYC:256 SL:37 D296 85 STA $78 PC:D297 A:AA X:33 Y:82 P:A5 SP:FB CYC:262 SL:37 D298 20 JSR $F804 PC:D299 A:AA X:33 Y:82 P:A5 SP:FB CYC:271 SL:37 F804 18 CLC PC:F805 A:AA X:33 Y:82 P:A5 SP:F9 CYC:289 SL:37 F805 24 BIT $01 PC:F806 A:AA X:33 Y:82 P:A4 SP:F9 CYC:295 SL:37 F807 A9 LDA #$5F PC:F808 A:AA X:33 Y:82 P:E4 SP:F9 CYC:304 SL:37 F809 60 RTS PC:F80A A:5F X:33 Y:82 P:64 SP:F9 CYC:310 SL:37 D29B 45 EOR $78 PC:D29C A:5F X:33 Y:82 P:64 SP:FB CYC:328 SL:37 D29D 20 JSR $F80A PC:D29E A:F5 X:33 Y:82 P:E4 SP:FB CYC:337 SL:37 F80A B0 BCS $F815 PC:F80B A:F5 X:33 Y:82 P:E4 SP:F9 CYC:14 SL:38 F80C 10 BPL $F815 PC:F80D A:F5 X:33 Y:82 P:E4 SP:F9 CYC:20 SL:38 F80E C9 CMP #$F5 PC:F80F A:F5 X:33 Y:82 P:E4 SP:F9 CYC:26 SL:38 F810 D0 BNE $F815 PC:F811 A:F5 X:33 Y:82 P:67 SP:F9 CYC:32 SL:38 F812 50 BVC $F815 PC:F813 A:F5 X:33 Y:82 P:67 SP:F9 CYC:38 SL:38 F814 60 RTS PC:F815 A:F5 X:33 Y:82 P:67 SP:F9 CYC:44 SL:38 D2A0 C8 INY PC:D2A1 A:F5 X:33 Y:82 P:67 SP:FB CYC:62 SL:38 D2A1 A9 LDA #$70 PC:D2A2 A:F5 X:33 Y:83 P:E5 SP:FB CYC:68 SL:38 D2A3 85 STA $78 PC:D2A4 A:70 X:33 Y:83 P:65 SP:FB CYC:74 SL:38 D2A5 20 JSR $F818 PC:D2A6 A:70 X:33 Y:83 P:65 SP:FB CYC:83 SL:38 F818 38 SEC PC:F819 A:70 X:33 Y:83 P:65 SP:F9 CYC:101 SL:38 F819 B8 CLV PC:F81A A:70 X:33 Y:83 P:65 SP:F9 CYC:107 SL:38 F81A A9 LDA #$70 PC:F81B A:70 X:33 Y:83 P:25 SP:F9 CYC:113 SL:38 F81C 60 RTS PC:F81D A:70 X:33 Y:83 P:25 SP:F9 CYC:119 SL:38 D2A8 45 EOR $78 PC:D2A9 A:70 X:33 Y:83 P:25 SP:FB CYC:137 SL:38 D2AA 20 JSR $F81D PC:D2AB A:00 X:33 Y:83 P:27 SP:FB CYC:146 SL:38 F81D D0 BNE $F826 PC:F81E A:00 X:33 Y:83 P:27 SP:F9 CYC:164 SL:38 F81F 70 BVS $F826 PC:F820 A:00 X:33 Y:83 P:27 SP:F9 CYC:170 SL:38 F821 90 BCC $F826 PC:F822 A:00 X:33 Y:83 P:27 SP:F9 CYC:176 SL:38 F823 30 BMI $F826 PC:F824 A:00 X:33 Y:83 P:27 SP:F9 CYC:182 SL:38 F825 60 RTS PC:F826 A:00 X:33 Y:83 P:27 SP:F9 CYC:188 SL:38 D2AD C8 INY PC:D2AE A:00 X:33 Y:83 P:27 SP:FB CYC:206 SL:38 D2AE A9 LDA #$69 PC:D2AF A:00 X:33 Y:84 P:A5 SP:FB CYC:212 SL:38 D2B0 85 STA $78 PC:D2B1 A:69 X:33 Y:84 P:25 SP:FB CYC:218 SL:38 D2B2 20 JSR $F829 PC:D2B3 A:69 X:33 Y:84 P:25 SP:FB CYC:227 SL:38 F829 18 CLC PC:F82A A:69 X:33 Y:84 P:25 SP:F9 CYC:245 SL:38 F82A 24 BIT $01 PC:F82B A:69 X:33 Y:84 P:24 SP:F9 CYC:251 SL:38 F82C A9 LDA #$00 PC:F82D A:69 X:33 Y:84 P:E4 SP:F9 CYC:260 SL:38 F82E 60 RTS PC:F82F A:00 X:33 Y:84 P:66 SP:F9 CYC:266 SL:38 D2B5 65 ADC $78 PC:D2B6 A:00 X:33 Y:84 P:66 SP:FB CYC:284 SL:38 D2B7 20 JSR $F82F PC:D2B8 A:69 X:33 Y:84 P:24 SP:FB CYC:293 SL:38 F82F 30 BMI $F83A PC:F830 A:69 X:33 Y:84 P:24 SP:F9 CYC:311 SL:38 F831 B0 BCS $F83A PC:F832 A:69 X:33 Y:84 P:24 SP:F9 CYC:317 SL:38 F833 C9 CMP #$69 PC:F834 A:69 X:33 Y:84 P:24 SP:F9 CYC:323 SL:38 F835 D0 BNE $F83A PC:F836 A:69 X:33 Y:84 P:27 SP:F9 CYC:329 SL:38 F837 70 BVS $F83A PC:F838 A:69 X:33 Y:84 P:27 SP:F9 CYC:335 SL:38 F839 60 RTS PC:F83A A:69 X:33 Y:84 P:27 SP:F9 CYC:0 SL:39 D2BA C8 INY PC:D2BB A:69 X:33 Y:84 P:27 SP:FB CYC:18 SL:39 D2BB 20 JSR $F83D PC:D2BC A:69 X:33 Y:85 P:A5 SP:FB CYC:24 SL:39 F83D 38 SEC PC:F83E A:69 X:33 Y:85 P:A5 SP:F9 CYC:42 SL:39 F83E 24 BIT $01 PC:F83F A:69 X:33 Y:85 P:A5 SP:F9 CYC:48 SL:39 F840 A9 LDA #$00 PC:F841 A:69 X:33 Y:85 P:E5 SP:F9 CYC:57 SL:39 F842 60 RTS PC:F843 A:00 X:33 Y:85 P:67 SP:F9 CYC:63 SL:39 D2BE 65 ADC $78 PC:D2BF A:00 X:33 Y:85 P:67 SP:FB CYC:81 SL:39 D2C0 20 JSR $F843 PC:D2C1 A:6A X:33 Y:85 P:24 SP:FB CYC:90 SL:39 F843 30 BMI $F84E PC:F844 A:6A X:33 Y:85 P:24 SP:F9 CYC:108 SL:39 F845 B0 BCS $F84E PC:F846 A:6A X:33 Y:85 P:24 SP:F9 CYC:114 SL:39 F847 C9 CMP #$6A PC:F848 A:6A X:33 Y:85 P:24 SP:F9 CYC:120 SL:39 F849 D0 BNE $F84E PC:F84A A:6A X:33 Y:85 P:27 SP:F9 CYC:126 SL:39 F84B 70 BVS $F84E PC:F84C A:6A X:33 Y:85 P:27 SP:F9 CYC:132 SL:39 F84D 60 RTS PC:F84E A:6A X:33 Y:85 P:27 SP:F9 CYC:138 SL:39 D2C3 C8 INY PC:D2C4 A:6A X:33 Y:85 P:27 SP:FB CYC:156 SL:39 D2C4 A9 LDA #$7F PC:D2C5 A:6A X:33 Y:86 P:A5 SP:FB CYC:162 SL:39 D2C6 85 STA $78 PC:D2C7 A:7F X:33 Y:86 P:25 SP:FB CYC:168 SL:39 D2C8 20 JSR $F851 PC:D2C9 A:7F X:33 Y:86 P:25 SP:FB CYC:177 SL:39 F851 38 SEC PC:F852 A:7F X:33 Y:86 P:25 SP:F9 CYC:195 SL:39 F852 B8 CLV PC:F853 A:7F X:33 Y:86 P:25 SP:F9 CYC:201 SL:39 F853 A9 LDA #$7F PC:F854 A:7F X:33 Y:86 P:25 SP:F9 CYC:207 SL:39 F855 60 RTS PC:F856 A:7F X:33 Y:86 P:25 SP:F9 CYC:213 SL:39 D2CB 65 ADC $78 PC:D2CC A:7F X:33 Y:86 P:25 SP:FB CYC:231 SL:39 D2CD 20 JSR $F856 PC:D2CE A:FF X:33 Y:86 P:E4 SP:FB CYC:240 SL:39 F856 10 BPL $F861 PC:F857 A:FF X:33 Y:86 P:E4 SP:F9 CYC:258 SL:39 F858 B0 BCS $F861 PC:F859 A:FF X:33 Y:86 P:E4 SP:F9 CYC:264 SL:39 F85A C9 CMP #$FF PC:F85B A:FF X:33 Y:86 P:E4 SP:F9 CYC:270 SL:39 F85C D0 BNE $F861 PC:F85D A:FF X:33 Y:86 P:67 SP:F9 CYC:276 SL:39 F85E 50 BVC $F861 PC:F85F A:FF X:33 Y:86 P:67 SP:F9 CYC:282 SL:39 F860 60 RTS PC:F861 A:FF X:33 Y:86 P:67 SP:F9 CYC:288 SL:39 D2D0 C8 INY PC:D2D1 A:FF X:33 Y:86 P:67 SP:FB CYC:306 SL:39 D2D1 A9 LDA #$80 PC:D2D2 A:FF X:33 Y:87 P:E5 SP:FB CYC:312 SL:39 D2D3 85 STA $78 PC:D2D4 A:80 X:33 Y:87 P:E5 SP:FB CYC:318 SL:39 D2D5 20 JSR $F864 PC:D2D6 A:80 X:33 Y:87 P:E5 SP:FB CYC:327 SL:39 F864 18 CLC PC:F865 A:80 X:33 Y:87 P:E5 SP:F9 CYC:4 SL:40 F865 24 BIT $01 PC:F866 A:80 X:33 Y:87 P:E4 SP:F9 CYC:10 SL:40 F867 A9 LDA #$7F PC:F868 A:80 X:33 Y:87 P:E4 SP:F9 CYC:19 SL:40 F869 60 RTS PC:F86A A:7F X:33 Y:87 P:64 SP:F9 CYC:25 SL:40 D2D8 65 ADC $78 PC:D2D9 A:7F X:33 Y:87 P:64 SP:FB CYC:43 SL:40 D2DA 20 JSR $F86A PC:D2DB A:FF X:33 Y:87 P:A4 SP:FB CYC:52 SL:40 F86A 10 BPL $F875 PC:F86B A:FF X:33 Y:87 P:A4 SP:F9 CYC:70 SL:40 F86C B0 BCS $F875 PC:F86D A:FF X:33 Y:87 P:A4 SP:F9 CYC:76 SL:40 F86E C9 CMP #$FF PC:F86F A:FF X:33 Y:87 P:A4 SP:F9 CYC:82 SL:40 F870 D0 BNE $F875 PC:F871 A:FF X:33 Y:87 P:27 SP:F9 CYC:88 SL:40 F872 70 BVS $F875 PC:F873 A:FF X:33 Y:87 P:27 SP:F9 CYC:94 SL:40 F874 60 RTS PC:F875 A:FF X:33 Y:87 P:27 SP:F9 CYC:100 SL:40 D2DD C8 INY PC:D2DE A:FF X:33 Y:87 P:27 SP:FB CYC:118 SL:40 D2DE 20 JSR $F878 PC:D2DF A:FF X:33 Y:88 P:A5 SP:FB CYC:124 SL:40 F878 38 SEC PC:F879 A:FF X:33 Y:88 P:A5 SP:F9 CYC:142 SL:40 F879 B8 CLV PC:F87A A:FF X:33 Y:88 P:A5 SP:F9 CYC:148 SL:40 F87A A9 LDA #$7F PC:F87B A:FF X:33 Y:88 P:A5 SP:F9 CYC:154 SL:40 F87C 60 RTS PC:F87D A:7F X:33 Y:88 P:25 SP:F9 CYC:160 SL:40 D2E1 65 ADC $78 PC:D2E2 A:7F X:33 Y:88 P:25 SP:FB CYC:178 SL:40 D2E3 20 JSR $F87D PC:D2E4 A:00 X:33 Y:88 P:27 SP:FB CYC:187 SL:40 F87D D0 BNE $F886 PC:F87E A:00 X:33 Y:88 P:27 SP:F9 CYC:205 SL:40 F87F 30 BMI $F886 PC:F880 A:00 X:33 Y:88 P:27 SP:F9 CYC:211 SL:40 F881 70 BVS $F886 PC:F882 A:00 X:33 Y:88 P:27 SP:F9 CYC:217 SL:40 F883 90 BCC $F886 PC:F884 A:00 X:33 Y:88 P:27 SP:F9 CYC:223 SL:40 F885 60 RTS PC:F886 A:00 X:33 Y:88 P:27 SP:F9 CYC:229 SL:40 D2E6 C8 INY PC:D2E7 A:00 X:33 Y:88 P:27 SP:FB CYC:247 SL:40 D2E7 A9 LDA #$40 PC:D2E8 A:00 X:33 Y:89 P:A5 SP:FB CYC:253 SL:40 D2E9 85 STA $78 PC:D2EA A:40 X:33 Y:89 P:25 SP:FB CYC:259 SL:40 D2EB 20 JSR $F889 PC:D2EC A:40 X:33 Y:89 P:25 SP:FB CYC:268 SL:40 F889 24 BIT $01 PC:F88A A:40 X:33 Y:89 P:25 SP:F9 CYC:286 SL:40 F88B A9 LDA #$40 PC:F88C A:40 X:33 Y:89 P:E5 SP:F9 CYC:295 SL:40 F88D 60 RTS PC:F88E A:40 X:33 Y:89 P:65 SP:F9 CYC:301 SL:40 D2EE C5 CMP $78 PC:D2EF A:40 X:33 Y:89 P:65 SP:FB CYC:319 SL:40 D2F0 20 JSR $F88E PC:D2F1 A:40 X:33 Y:89 P:67 SP:FB CYC:328 SL:40 F88E 30 BMI $F897 PC:F88F A:40 X:33 Y:89 P:67 SP:F9 CYC:5 SL:41 F890 90 BCC $F897 PC:F891 A:40 X:33 Y:89 P:67 SP:F9 CYC:11 SL:41 F892 D0 BNE $F897 PC:F893 A:40 X:33 Y:89 P:67 SP:F9 CYC:17 SL:41 F894 50 BVC $F897 PC:F895 A:40 X:33 Y:89 P:67 SP:F9 CYC:23 SL:41 F896 60 RTS PC:F897 A:40 X:33 Y:89 P:67 SP:F9 CYC:29 SL:41 D2F3 C8 INY PC:D2F4 A:40 X:33 Y:89 P:67 SP:FB CYC:47 SL:41 D2F4 48 PHA PC:D2F5 A:40 X:33 Y:8A P:E5 SP:FB CYC:53 SL:41 D2F5 A9 LDA #$3F PC:D2F6 A:40 X:33 Y:8A P:E5 SP:FA CYC:62 SL:41 D2F7 85 STA $78 PC:D2F8 A:3F X:33 Y:8A P:65 SP:FA CYC:68 SL:41 D2F9 68 PLA PC:D2FA A:3F X:33 Y:8A P:65 SP:FA CYC:77 SL:41 D2FA 20 JSR $F89A PC:D2FB A:40 X:33 Y:8A P:65 SP:FB CYC:89 SL:41 F89A B8 CLV PC:F89B A:40 X:33 Y:8A P:65 SP:F9 CYC:107 SL:41 F89B 60 RTS PC:F89C A:40 X:33 Y:8A P:25 SP:F9 CYC:113 SL:41 D2FD C5 CMP $78 PC:D2FE A:40 X:33 Y:8A P:25 SP:FB CYC:131 SL:41 D2FF 20 JSR $F89C PC:D300 A:40 X:33 Y:8A P:25 SP:FB CYC:140 SL:41 F89C F0 BEQ $F8A5 PC:F89D A:40 X:33 Y:8A P:25 SP:F9 CYC:158 SL:41 F89E 30 BMI $F8A5 PC:F89F A:40 X:33 Y:8A P:25 SP:F9 CYC:164 SL:41 F8A0 90 BCC $F8A5 PC:F8A1 A:40 X:33 Y:8A P:25 SP:F9 CYC:170 SL:41 F8A2 70 BVS $F8A5 PC:F8A3 A:40 X:33 Y:8A P:25 SP:F9 CYC:176 SL:41 F8A4 60 RTS PC:F8A5 A:40 X:33 Y:8A P:25 SP:F9 CYC:182 SL:41 D302 C8 INY PC:D303 A:40 X:33 Y:8A P:25 SP:FB CYC:200 SL:41 D303 48 PHA PC:D304 A:40 X:33 Y:8B P:A5 SP:FB CYC:206 SL:41 D304 A9 LDA #$41 PC:D305 A:40 X:33 Y:8B P:A5 SP:FA CYC:215 SL:41 D306 85 STA $78 PC:D307 A:41 X:33 Y:8B P:25 SP:FA CYC:221 SL:41 D308 68 PLA PC:D309 A:41 X:33 Y:8B P:25 SP:FA CYC:230 SL:41 D309 C5 CMP $78 PC:D30A A:40 X:33 Y:8B P:25 SP:FB CYC:242 SL:41 D30B 20 JSR $F8A8 PC:D30C A:40 X:33 Y:8B P:A4 SP:FB CYC:251 SL:41 F8A8 F0 BEQ $F8AF PC:F8A9 A:40 X:33 Y:8B P:A4 SP:F9 CYC:269 SL:41 F8AA 10 BPL $F8AF PC:F8AB A:40 X:33 Y:8B P:A4 SP:F9 CYC:275 SL:41 F8AC 10 BPL $F8AF PC:F8AD A:40 X:33 Y:8B P:A4 SP:F9 CYC:281 SL:41 F8AE 60 RTS PC:F8AF A:40 X:33 Y:8B P:A4 SP:F9 CYC:287 SL:41 D30E C8 INY PC:D30F A:40 X:33 Y:8B P:A4 SP:FB CYC:305 SL:41 D30F 48 PHA PC:D310 A:40 X:33 Y:8C P:A4 SP:FB CYC:311 SL:41 D310 A9 LDA #$00 PC:D311 A:40 X:33 Y:8C P:A4 SP:FA CYC:320 SL:41 D312 85 STA $78 PC:D313 A:00 X:33 Y:8C P:26 SP:FA CYC:326 SL:41 D314 68 PLA PC:D315 A:00 X:33 Y:8C P:26 SP:FA CYC:335 SL:41 D315 20 JSR $F8B2 PC:D316 A:40 X:33 Y:8C P:24 SP:FB CYC:6 SL:42 F8B2 A9 LDA #$80 PC:F8B3 A:40 X:33 Y:8C P:24 SP:F9 CYC:24 SL:42 F8B4 60 RTS PC:F8B5 A:80 X:33 Y:8C P:A4 SP:F9 CYC:30 SL:42 D318 C5 CMP $78 PC:D319 A:80 X:33 Y:8C P:A4 SP:FB CYC:48 SL:42 D31A 20 JSR $F8B5 PC:D31B A:80 X:33 Y:8C P:A5 SP:FB CYC:57 SL:42 F8B5 F0 BEQ $F8BC PC:F8B6 A:80 X:33 Y:8C P:A5 SP:F9 CYC:75 SL:42 F8B7 10 BPL $F8BC PC:F8B8 A:80 X:33 Y:8C P:A5 SP:F9 CYC:81 SL:42 F8B9 90 BCC $F8BC PC:F8BA A:80 X:33 Y:8C P:A5 SP:F9 CYC:87 SL:42 F8BB 60 RTS PC:F8BC A:80 X:33 Y:8C P:A5 SP:F9 CYC:93 SL:42 D31D C8 INY PC:D31E A:80 X:33 Y:8C P:A5 SP:FB CYC:111 SL:42 D31E 48 PHA PC:D31F A:80 X:33 Y:8D P:A5 SP:FB CYC:117 SL:42 D31F A9 LDA #$80 PC:D320 A:80 X:33 Y:8D P:A5 SP:FA CYC:126 SL:42 D321 85 STA $78 PC:D322 A:80 X:33 Y:8D P:A5 SP:FA CYC:132 SL:42 D323 68 PLA PC:D324 A:80 X:33 Y:8D P:A5 SP:FA CYC:141 SL:42 D324 C5 CMP $78 PC:D325 A:80 X:33 Y:8D P:A5 SP:FB CYC:153 SL:42 D326 20 JSR $F8BF PC:D327 A:80 X:33 Y:8D P:27 SP:FB CYC:162 SL:42 F8BF D0 BNE $F8C6 PC:F8C0 A:80 X:33 Y:8D P:27 SP:F9 CYC:180 SL:42 F8C1 30 BMI $F8C6 PC:F8C2 A:80 X:33 Y:8D P:27 SP:F9 CYC:186 SL:42 F8C3 90 BCC $F8C6 PC:F8C4 A:80 X:33 Y:8D P:27 SP:F9 CYC:192 SL:42 F8C5 60 RTS PC:F8C6 A:80 X:33 Y:8D P:27 SP:F9 CYC:198 SL:42 D329 C8 INY PC:D32A A:80 X:33 Y:8D P:27 SP:FB CYC:216 SL:42 D32A 48 PHA PC:D32B A:80 X:33 Y:8E P:A5 SP:FB CYC:222 SL:42 D32B A9 LDA #$81 PC:D32C A:80 X:33 Y:8E P:A5 SP:FA CYC:231 SL:42 D32D 85 STA $78 PC:D32E A:81 X:33 Y:8E P:A5 SP:FA CYC:237 SL:42 D32F 68 PLA PC:D330 A:81 X:33 Y:8E P:A5 SP:FA CYC:246 SL:42 D330 C5 CMP $78 PC:D331 A:80 X:33 Y:8E P:A5 SP:FB CYC:258 SL:42 D332 20 JSR $F8C9 PC:D333 A:80 X:33 Y:8E P:A4 SP:FB CYC:267 SL:42 F8C9 B0 BCS $F8D0 PC:F8CA A:80 X:33 Y:8E P:A4 SP:F9 CYC:285 SL:42 F8CB F0 BEQ $F8D0 PC:F8CC A:80 X:33 Y:8E P:A4 SP:F9 CYC:291 SL:42 F8CD 10 BPL $F8D0 PC:F8CE A:80 X:33 Y:8E P:A4 SP:F9 CYC:297 SL:42 F8CF 60 RTS PC:F8D0 A:80 X:33 Y:8E P:A4 SP:F9 CYC:303 SL:42 D335 C8 INY PC:D336 A:80 X:33 Y:8E P:A4 SP:FB CYC:321 SL:42 D336 48 PHA PC:D337 A:80 X:33 Y:8F P:A4 SP:FB CYC:327 SL:42 D337 A9 LDA #$7F PC:D338 A:80 X:33 Y:8F P:A4 SP:FA CYC:336 SL:42 D339 85 STA $78 PC:D33A A:7F X:33 Y:8F P:24 SP:FA CYC:1 SL:43 D33B 68 PLA PC:D33C A:7F X:33 Y:8F P:24 SP:FA CYC:10 SL:43 D33C C5 CMP $78 PC:D33D A:80 X:33 Y:8F P:A4 SP:FB CYC:22 SL:43 D33E 20 JSR $F8D3 PC:D33F A:80 X:33 Y:8F P:25 SP:FB CYC:31 SL:43 F8D3 90 BCC $F8DA PC:F8D4 A:80 X:33 Y:8F P:25 SP:F9 CYC:49 SL:43 F8D5 F0 BEQ $F8DA PC:F8D6 A:80 X:33 Y:8F P:25 SP:F9 CYC:55 SL:43 F8D7 30 BMI $F8DA PC:F8D8 A:80 X:33 Y:8F P:25 SP:F9 CYC:61 SL:43 F8D9 60 RTS PC:F8DA A:80 X:33 Y:8F P:25 SP:F9 CYC:67 SL:43 D341 C8 INY PC:D342 A:80 X:33 Y:8F P:25 SP:FB CYC:85 SL:43 D342 A9 LDA #$40 PC:D343 A:80 X:33 Y:90 P:A5 SP:FB CYC:91 SL:43 D344 85 STA $78 PC:D345 A:40 X:33 Y:90 P:25 SP:FB CYC:97 SL:43 D346 20 JSR $F931 PC:D347 A:40 X:33 Y:90 P:25 SP:FB CYC:106 SL:43 F931 24 BIT $01 PC:F932 A:40 X:33 Y:90 P:25 SP:F9 CYC:124 SL:43 F933 A9 LDA #$40 PC:F934 A:40 X:33 Y:90 P:E5 SP:F9 CYC:133 SL:43 F935 38 SEC PC:F936 A:40 X:33 Y:90 P:65 SP:F9 CYC:139 SL:43 F936 60 RTS PC:F937 A:40 X:33 Y:90 P:65 SP:F9 CYC:145 SL:43 D349 E5 SBC $78 PC:D34A A:40 X:33 Y:90 P:65 SP:FB CYC:163 SL:43 D34B 20 JSR $F937 PC:D34C A:00 X:33 Y:90 P:27 SP:FB CYC:172 SL:43 F937 30 BMI $F944 PC:F938 A:00 X:33 Y:90 P:27 SP:F9 CYC:190 SL:43 F939 90 BCC $F944 PC:F93A A:00 X:33 Y:90 P:27 SP:F9 CYC:196 SL:43 F93B D0 BNE $F944 PC:F93C A:00 X:33 Y:90 P:27 SP:F9 CYC:202 SL:43 F93D 70 BVS $F944 PC:F93E A:00 X:33 Y:90 P:27 SP:F9 CYC:208 SL:43 F93F C9 CMP #$00 PC:F940 A:00 X:33 Y:90 P:27 SP:F9 CYC:214 SL:43 F941 D0 BNE $F944 PC:F942 A:00 X:33 Y:90 P:27 SP:F9 CYC:220 SL:43 F943 60 RTS PC:F944 A:00 X:33 Y:90 P:27 SP:F9 CYC:226 SL:43 D34E C8 INY PC:D34F A:00 X:33 Y:90 P:27 SP:FB CYC:244 SL:43 D34F A9 LDA #$3F PC:D350 A:00 X:33 Y:91 P:A5 SP:FB CYC:250 SL:43 D351 85 STA $78 PC:D352 A:3F X:33 Y:91 P:25 SP:FB CYC:256 SL:43 D353 20 JSR $F947 PC:D354 A:3F X:33 Y:91 P:25 SP:FB CYC:265 SL:43 F947 B8 CLV PC:F948 A:3F X:33 Y:91 P:25 SP:F9 CYC:283 SL:43 F948 38 SEC PC:F949 A:3F X:33 Y:91 P:25 SP:F9 CYC:289 SL:43 F949 A9 LDA #$40 PC:F94A A:3F X:33 Y:91 P:25 SP:F9 CYC:295 SL:43 F94B 60 RTS PC:F94C A:40 X:33 Y:91 P:25 SP:F9 CYC:301 SL:43 D356 E5 SBC $78 PC:D357 A:40 X:33 Y:91 P:25 SP:FB CYC:319 SL:43 D358 20 JSR $F94C PC:D359 A:01 X:33 Y:91 P:25 SP:FB CYC:328 SL:43 F94C F0 BEQ $F959 PC:F94D A:01 X:33 Y:91 P:25 SP:F9 CYC:5 SL:44 F94E 30 BMI $F959 PC:F94F A:01 X:33 Y:91 P:25 SP:F9 CYC:11 SL:44 F950 90 BCC $F959 PC:F951 A:01 X:33 Y:91 P:25 SP:F9 CYC:17 SL:44 F952 70 BVS $F959 PC:F953 A:01 X:33 Y:91 P:25 SP:F9 CYC:23 SL:44 F954 C9 CMP #$01 PC:F955 A:01 X:33 Y:91 P:25 SP:F9 CYC:29 SL:44 F956 D0 BNE $F959 PC:F957 A:01 X:33 Y:91 P:27 SP:F9 CYC:35 SL:44 F958 60 RTS PC:F959 A:01 X:33 Y:91 P:27 SP:F9 CYC:41 SL:44 D35B C8 INY PC:D35C A:01 X:33 Y:91 P:27 SP:FB CYC:59 SL:44 D35C A9 LDA #$41 PC:D35D A:01 X:33 Y:92 P:A5 SP:FB CYC:65 SL:44 D35E 85 STA $78 PC:D35F A:41 X:33 Y:92 P:25 SP:FB CYC:71 SL:44 D360 20 JSR $F95C PC:D361 A:41 X:33 Y:92 P:25 SP:FB CYC:80 SL:44 F95C A9 LDA #$40 PC:F95D A:41 X:33 Y:92 P:25 SP:F9 CYC:98 SL:44 F95E 38 SEC PC:F95F A:40 X:33 Y:92 P:25 SP:F9 CYC:104 SL:44 F95F 24 BIT $01 PC:F960 A:40 X:33 Y:92 P:25 SP:F9 CYC:110 SL:44 F961 60 RTS PC:F962 A:40 X:33 Y:92 P:E5 SP:F9 CYC:119 SL:44 D363 E5 SBC $78 PC:D364 A:40 X:33 Y:92 P:E5 SP:FB CYC:137 SL:44 D365 20 JSR $F962 PC:D366 A:FF X:33 Y:92 P:A4 SP:FB CYC:146 SL:44 F962 B0 BCS $F96F PC:F963 A:FF X:33 Y:92 P:A4 SP:F9 CYC:164 SL:44 F964 F0 BEQ $F96F PC:F965 A:FF X:33 Y:92 P:A4 SP:F9 CYC:170 SL:44 F966 10 BPL $F96F PC:F967 A:FF X:33 Y:92 P:A4 SP:F9 CYC:176 SL:44 F968 70 BVS $F96F PC:F969 A:FF X:33 Y:92 P:A4 SP:F9 CYC:182 SL:44 F96A C9 CMP #$FF PC:F96B A:FF X:33 Y:92 P:A4 SP:F9 CYC:188 SL:44 F96C D0 BNE $F96F PC:F96D A:FF X:33 Y:92 P:27 SP:F9 CYC:194 SL:44 F96E 60 RTS PC:F96F A:FF X:33 Y:92 P:27 SP:F9 CYC:200 SL:44 D368 C8 INY PC:D369 A:FF X:33 Y:92 P:27 SP:FB CYC:218 SL:44 D369 A9 LDA #$00 PC:D36A A:FF X:33 Y:93 P:A5 SP:FB CYC:224 SL:44 D36B 85 STA $78 PC:D36C A:00 X:33 Y:93 P:27 SP:FB CYC:230 SL:44 D36D 20 JSR $F972 PC:D36E A:00 X:33 Y:93 P:27 SP:FB CYC:239 SL:44 F972 18 CLC PC:F973 A:00 X:33 Y:93 P:27 SP:F9 CYC:257 SL:44 F973 A9 LDA #$80 PC:F974 A:00 X:33 Y:93 P:26 SP:F9 CYC:263 SL:44 F975 60 RTS PC:F976 A:80 X:33 Y:93 P:A4 SP:F9 CYC:269 SL:44 D370 E5 SBC $78 PC:D371 A:80 X:33 Y:93 P:A4 SP:FB CYC:287 SL:44 D372 20 JSR $F976 PC:D373 A:7F X:33 Y:93 P:65 SP:FB CYC:296 SL:44 F976 90 BCC $F97D PC:F977 A:7F X:33 Y:93 P:65 SP:F9 CYC:314 SL:44 F978 C9 CMP #$7F PC:F979 A:7F X:33 Y:93 P:65 SP:F9 CYC:320 SL:44 F97A D0 BNE $F97D PC:F97B A:7F X:33 Y:93 P:67 SP:F9 CYC:326 SL:44 F97C 60 RTS PC:F97D A:7F X:33 Y:93 P:67 SP:F9 CYC:332 SL:44 D375 C8 INY PC:D376 A:7F X:33 Y:93 P:67 SP:FB CYC:9 SL:45 D376 A9 LDA #$7F PC:D377 A:7F X:33 Y:94 P:E5 SP:FB CYC:15 SL:45 D378 85 STA $78 PC:D379 A:7F X:33 Y:94 P:65 SP:FB CYC:21 SL:45 D37A 20 JSR $F980 PC:D37B A:7F X:33 Y:94 P:65 SP:FB CYC:30 SL:45 F980 38 SEC PC:F981 A:7F X:33 Y:94 P:65 SP:F9 CYC:48 SL:45 F981 A9 LDA #$81 PC:F982 A:7F X:33 Y:94 P:65 SP:F9 CYC:54 SL:45 F983 60 RTS PC:F984 A:81 X:33 Y:94 P:E5 SP:F9 CYC:60 SL:45 D37D E5 SBC $78 PC:D37E A:81 X:33 Y:94 P:E5 SP:FB CYC:78 SL:45 D37F 20 JSR $F984 PC:D380 A:02 X:33 Y:94 P:65 SP:FB CYC:87 SL:45 F984 50 BVC $F98D PC:F985 A:02 X:33 Y:94 P:65 SP:F9 CYC:105 SL:45 F986 90 BCC $F98D PC:F987 A:02 X:33 Y:94 P:65 SP:F9 CYC:111 SL:45 F988 C9 CMP #$02 PC:F989 A:02 X:33 Y:94 P:65 SP:F9 CYC:117 SL:45 F98A D0 BNE $F98D PC:F98B A:02 X:33 Y:94 P:67 SP:F9 CYC:123 SL:45 F98C 60 RTS PC:F98D A:02 X:33 Y:94 P:67 SP:F9 CYC:129 SL:45 D382 C8 INY PC:D383 A:02 X:33 Y:94 P:67 SP:FB CYC:147 SL:45 D383 A9 LDA #$40 PC:D384 A:02 X:33 Y:95 P:E5 SP:FB CYC:153 SL:45 D385 85 STA $78 PC:D386 A:40 X:33 Y:95 P:65 SP:FB CYC:159 SL:45 D387 20 JSR $F889 PC:D388 A:40 X:33 Y:95 P:65 SP:FB CYC:168 SL:45 F889 24 BIT $01 PC:F88A A:40 X:33 Y:95 P:65 SP:F9 CYC:186 SL:45 F88B A9 LDA #$40 PC:F88C A:40 X:33 Y:95 P:E5 SP:F9 CYC:195 SL:45 F88D 60 RTS PC:F88E A:40 X:33 Y:95 P:65 SP:F9 CYC:201 SL:45 D38A AA TAX PC:D38B A:40 X:33 Y:95 P:65 SP:FB CYC:219 SL:45 D38B E4 CPX $78 PC:D38C A:40 X:40 Y:95 P:65 SP:FB CYC:225 SL:45 D38D 20 JSR $F88E PC:D38E A:40 X:40 Y:95 P:67 SP:FB CYC:234 SL:45 F88E 30 BMI $F897 PC:F88F A:40 X:40 Y:95 P:67 SP:F9 CYC:252 SL:45 F890 90 BCC $F897 PC:F891 A:40 X:40 Y:95 P:67 SP:F9 CYC:258 SL:45 F892 D0 BNE $F897 PC:F893 A:40 X:40 Y:95 P:67 SP:F9 CYC:264 SL:45 F894 50 BVC $F897 PC:F895 A:40 X:40 Y:95 P:67 SP:F9 CYC:270 SL:45 F896 60 RTS PC:F897 A:40 X:40 Y:95 P:67 SP:F9 CYC:276 SL:45 D390 C8 INY PC:D391 A:40 X:40 Y:95 P:67 SP:FB CYC:294 SL:45 D391 A9 LDA #$3F PC:D392 A:40 X:40 Y:96 P:E5 SP:FB CYC:300 SL:45 D393 85 STA $78 PC:D394 A:3F X:40 Y:96 P:65 SP:FB CYC:306 SL:45 D395 20 JSR $F89A PC:D396 A:3F X:40 Y:96 P:65 SP:FB CYC:315 SL:45 F89A B8 CLV PC:F89B A:3F X:40 Y:96 P:65 SP:F9 CYC:333 SL:45 F89B 60 RTS PC:F89C A:3F X:40 Y:96 P:25 SP:F9 CYC:339 SL:45 D398 E4 CPX $78 PC:D399 A:3F X:40 Y:96 P:25 SP:FB CYC:16 SL:46 D39A 20 JSR $F89C PC:D39B A:3F X:40 Y:96 P:25 SP:FB CYC:25 SL:46 F89C F0 BEQ $F8A5 PC:F89D A:3F X:40 Y:96 P:25 SP:F9 CYC:43 SL:46 F89E 30 BMI $F8A5 PC:F89F A:3F X:40 Y:96 P:25 SP:F9 CYC:49 SL:46 F8A0 90 BCC $F8A5 PC:F8A1 A:3F X:40 Y:96 P:25 SP:F9 CYC:55 SL:46 F8A2 70 BVS $F8A5 PC:F8A3 A:3F X:40 Y:96 P:25 SP:F9 CYC:61 SL:46 F8A4 60 RTS PC:F8A5 A:3F X:40 Y:96 P:25 SP:F9 CYC:67 SL:46 D39D C8 INY PC:D39E A:3F X:40 Y:96 P:25 SP:FB CYC:85 SL:46 D39E A9 LDA #$41 PC:D39F A:3F X:40 Y:97 P:A5 SP:FB CYC:91 SL:46 D3A0 85 STA $78 PC:D3A1 A:41 X:40 Y:97 P:25 SP:FB CYC:97 SL:46 D3A2 E4 CPX $78 PC:D3A3 A:41 X:40 Y:97 P:25 SP:FB CYC:106 SL:46 D3A4 20 JSR $F8A8 PC:D3A5 A:41 X:40 Y:97 P:A4 SP:FB CYC:115 SL:46 F8A8 F0 BEQ $F8AF PC:F8A9 A:41 X:40 Y:97 P:A4 SP:F9 CYC:133 SL:46 F8AA 10 BPL $F8AF PC:F8AB A:41 X:40 Y:97 P:A4 SP:F9 CYC:139 SL:46 F8AC 10 BPL $F8AF PC:F8AD A:41 X:40 Y:97 P:A4 SP:F9 CYC:145 SL:46 F8AE 60 RTS PC:F8AF A:41 X:40 Y:97 P:A4 SP:F9 CYC:151 SL:46 D3A7 C8 INY PC:D3A8 A:41 X:40 Y:97 P:A4 SP:FB CYC:169 SL:46 D3A8 A9 LDA #$00 PC:D3A9 A:41 X:40 Y:98 P:A4 SP:FB CYC:175 SL:46 D3AA 85 STA $78 PC:D3AB A:00 X:40 Y:98 P:26 SP:FB CYC:181 SL:46 D3AC 20 JSR $F8B2 PC:D3AD A:00 X:40 Y:98 P:26 SP:FB CYC:190 SL:46 F8B2 A9 LDA #$80 PC:F8B3 A:00 X:40 Y:98 P:26 SP:F9 CYC:208 SL:46 F8B4 60 RTS PC:F8B5 A:80 X:40 Y:98 P:A4 SP:F9 CYC:214 SL:46 D3AF AA TAX PC:D3B0 A:80 X:40 Y:98 P:A4 SP:FB CYC:232 SL:46 D3B0 E4 CPX $78 PC:D3B1 A:80 X:80 Y:98 P:A4 SP:FB CYC:238 SL:46 D3B2 20 JSR $F8B5 PC:D3B3 A:80 X:80 Y:98 P:A5 SP:FB CYC:247 SL:46 F8B5 F0 BEQ $F8BC PC:F8B6 A:80 X:80 Y:98 P:A5 SP:F9 CYC:265 SL:46 F8B7 10 BPL $F8BC PC:F8B8 A:80 X:80 Y:98 P:A5 SP:F9 CYC:271 SL:46 F8B9 90 BCC $F8BC PC:F8BA A:80 X:80 Y:98 P:A5 SP:F9 CYC:277 SL:46 F8BB 60 RTS PC:F8BC A:80 X:80 Y:98 P:A5 SP:F9 CYC:283 SL:46 D3B5 C8 INY PC:D3B6 A:80 X:80 Y:98 P:A5 SP:FB CYC:301 SL:46 D3B6 A9 LDA #$80 PC:D3B7 A:80 X:80 Y:99 P:A5 SP:FB CYC:307 SL:46 D3B8 85 STA $78 PC:D3B9 A:80 X:80 Y:99 P:A5 SP:FB CYC:313 SL:46 D3BA E4 CPX $78 PC:D3BB A:80 X:80 Y:99 P:A5 SP:FB CYC:322 SL:46 D3BC 20 JSR $F8BF PC:D3BD A:80 X:80 Y:99 P:27 SP:FB CYC:331 SL:46 F8BF D0 BNE $F8C6 PC:F8C0 A:80 X:80 Y:99 P:27 SP:F9 CYC:8 SL:47 F8C1 30 BMI $F8C6 PC:F8C2 A:80 X:80 Y:99 P:27 SP:F9 CYC:14 SL:47 F8C3 90 BCC $F8C6 PC:F8C4 A:80 X:80 Y:99 P:27 SP:F9 CYC:20 SL:47 F8C5 60 RTS PC:F8C6 A:80 X:80 Y:99 P:27 SP:F9 CYC:26 SL:47 D3BF C8 INY PC:D3C0 A:80 X:80 Y:99 P:27 SP:FB CYC:44 SL:47 D3C0 A9 LDA #$81 PC:D3C1 A:80 X:80 Y:9A P:A5 SP:FB CYC:50 SL:47 D3C2 85 STA $78 PC:D3C3 A:81 X:80 Y:9A P:A5 SP:FB CYC:56 SL:47 D3C4 E4 CPX $78 PC:D3C5 A:81 X:80 Y:9A P:A5 SP:FB CYC:65 SL:47 D3C6 20 JSR $F8C9 PC:D3C7 A:81 X:80 Y:9A P:A4 SP:FB CYC:74 SL:47 F8C9 B0 BCS $F8D0 PC:F8CA A:81 X:80 Y:9A P:A4 SP:F9 CYC:92 SL:47 F8CB F0 BEQ $F8D0 PC:F8CC A:81 X:80 Y:9A P:A4 SP:F9 CYC:98 SL:47 F8CD 10 BPL $F8D0 PC:F8CE A:81 X:80 Y:9A P:A4 SP:F9 CYC:104 SL:47 F8CF 60 RTS PC:F8D0 A:81 X:80 Y:9A P:A4 SP:F9 CYC:110 SL:47 D3C9 C8 INY PC:D3CA A:81 X:80 Y:9A P:A4 SP:FB CYC:128 SL:47 D3CA A9 LDA #$7F PC:D3CB A:81 X:80 Y:9B P:A4 SP:FB CYC:134 SL:47 D3CC 85 STA $78 PC:D3CD A:7F X:80 Y:9B P:24 SP:FB CYC:140 SL:47 D3CE E4 CPX $78 PC:D3CF A:7F X:80 Y:9B P:24 SP:FB CYC:149 SL:47 D3D0 20 JSR $F8D3 PC:D3D1 A:7F X:80 Y:9B P:25 SP:FB CYC:158 SL:47 F8D3 90 BCC $F8DA PC:F8D4 A:7F X:80 Y:9B P:25 SP:F9 CYC:176 SL:47 F8D5 F0 BEQ $F8DA PC:F8D6 A:7F X:80 Y:9B P:25 SP:F9 CYC:182 SL:47 F8D7 30 BMI $F8DA PC:F8D8 A:7F X:80 Y:9B P:25 SP:F9 CYC:188 SL:47 F8D9 60 RTS PC:F8DA A:7F X:80 Y:9B P:25 SP:F9 CYC:194 SL:47 D3D3 C8 INY PC:D3D4 A:7F X:80 Y:9B P:25 SP:FB CYC:212 SL:47 D3D4 98 TYA PC:D3D5 A:7F X:80 Y:9C P:A5 SP:FB CYC:218 SL:47 D3D5 AA TAX PC:D3D6 A:9C X:80 Y:9C P:A5 SP:FB CYC:224 SL:47 D3D6 A9 LDA #$40 PC:D3D7 A:9C X:9C Y:9C P:A5 SP:FB CYC:230 SL:47 D3D8 85 STA $78 PC:D3D9 A:40 X:9C Y:9C P:25 SP:FB CYC:236 SL:47 D3DA 20 JSR $F8DD PC:D3DB A:40 X:9C Y:9C P:25 SP:FB CYC:245 SL:47 F8DD 24 BIT $01 PC:F8DE A:40 X:9C Y:9C P:25 SP:F9 CYC:263 SL:47 F8DF A0 LDY #$40 PC:F8E0 A:40 X:9C Y:9C P:E5 SP:F9 CYC:272 SL:47 F8E1 60 RTS PC:F8E2 A:40 X:9C Y:40 P:65 SP:F9 CYC:278 SL:47 D3DD C4 CPY $78 PC:D3DE A:40 X:9C Y:40 P:65 SP:FB CYC:296 SL:47 D3DF 20 JSR $F8E2 PC:D3E0 A:40 X:9C Y:40 P:67 SP:FB CYC:305 SL:47 F8E2 30 BMI $F8EB PC:F8E3 A:40 X:9C Y:40 P:67 SP:F9 CYC:323 SL:47 F8E4 90 BCC $F8EB PC:F8E5 A:40 X:9C Y:40 P:67 SP:F9 CYC:329 SL:47 F8E6 D0 BNE $F8EB PC:F8E7 A:40 X:9C Y:40 P:67 SP:F9 CYC:335 SL:47 F8E8 50 BVC $F8EB PC:F8E9 A:40 X:9C Y:40 P:67 SP:F9 CYC:0 SL:48 F8EA 60 RTS PC:F8EB A:40 X:9C Y:40 P:67 SP:F9 CYC:6 SL:48 D3E2 E8 INX PC:D3E3 A:40 X:9C Y:40 P:67 SP:FB CYC:24 SL:48 D3E3 A9 LDA #$3F PC:D3E4 A:40 X:9D Y:40 P:E5 SP:FB CYC:30 SL:48 D3E5 85 STA $78 PC:D3E6 A:3F X:9D Y:40 P:65 SP:FB CYC:36 SL:48 D3E7 20 JSR $F8EE PC:D3E8 A:3F X:9D Y:40 P:65 SP:FB CYC:45 SL:48 F8EE B8 CLV PC:F8EF A:3F X:9D Y:40 P:65 SP:F9 CYC:63 SL:48 F8EF 60 RTS PC:F8F0 A:3F X:9D Y:40 P:25 SP:F9 CYC:69 SL:48 D3EA C4 CPY $78 PC:D3EB A:3F X:9D Y:40 P:25 SP:FB CYC:87 SL:48 D3EC 20 JSR $F8F0 PC:D3ED A:3F X:9D Y:40 P:25 SP:FB CYC:96 SL:48 F8F0 F0 BEQ $F8F9 PC:F8F1 A:3F X:9D Y:40 P:25 SP:F9 CYC:114 SL:48 F8F2 30 BMI $F8F9 PC:F8F3 A:3F X:9D Y:40 P:25 SP:F9 CYC:120 SL:48 F8F4 90 BCC $F8F9 PC:F8F5 A:3F X:9D Y:40 P:25 SP:F9 CYC:126 SL:48 F8F6 70 BVS $F8F9 PC:F8F7 A:3F X:9D Y:40 P:25 SP:F9 CYC:132 SL:48 F8F8 60 RTS PC:F8F9 A:3F X:9D Y:40 P:25 SP:F9 CYC:138 SL:48 D3EF E8 INX PC:D3F0 A:3F X:9D Y:40 P:25 SP:FB CYC:156 SL:48 D3F0 A9 LDA #$41 PC:D3F1 A:3F X:9E Y:40 P:A5 SP:FB CYC:162 SL:48 D3F2 85 STA $78 PC:D3F3 A:41 X:9E Y:40 P:25 SP:FB CYC:168 SL:48 D3F4 C4 CPY $78 PC:D3F5 A:41 X:9E Y:40 P:25 SP:FB CYC:177 SL:48 D3F6 20 JSR $F8FC PC:D3F7 A:41 X:9E Y:40 P:A4 SP:FB CYC:186 SL:48 F8FC F0 BEQ $F903 PC:F8FD A:41 X:9E Y:40 P:A4 SP:F9 CYC:204 SL:48 F8FE 10 BPL $F903 PC:F8FF A:41 X:9E Y:40 P:A4 SP:F9 CYC:210 SL:48 F900 10 BPL $F903 PC:F901 A:41 X:9E Y:40 P:A4 SP:F9 CYC:216 SL:48 F902 60 RTS PC:F903 A:41 X:9E Y:40 P:A4 SP:F9 CYC:222 SL:48 D3F9 E8 INX PC:D3FA A:41 X:9E Y:40 P:A4 SP:FB CYC:240 SL:48 D3FA A9 LDA #$00 PC:D3FB A:41 X:9F Y:40 P:A4 SP:FB CYC:246 SL:48 D3FC 85 STA $78 PC:D3FD A:00 X:9F Y:40 P:26 SP:FB CYC:252 SL:48 D3FE 20 JSR $F906 PC:D3FF A:00 X:9F Y:40 P:26 SP:FB CYC:261 SL:48 F906 A0 LDY #$80 PC:F907 A:00 X:9F Y:40 P:26 SP:F9 CYC:279 SL:48 F908 60 RTS PC:F909 A:00 X:9F Y:80 P:A4 SP:F9 CYC:285 SL:48 D401 C4 CPY $78 PC:D402 A:00 X:9F Y:80 P:A4 SP:FB CYC:303 SL:48 D403 20 JSR $F909 PC:D404 A:00 X:9F Y:80 P:A5 SP:FB CYC:312 SL:48 F909 F0 BEQ $F910 PC:F90A A:00 X:9F Y:80 P:A5 SP:F9 CYC:330 SL:48 F90B 10 BPL $F910 PC:F90C A:00 X:9F Y:80 P:A5 SP:F9 CYC:336 SL:48 F90D 90 BCC $F910 PC:F90E A:00 X:9F Y:80 P:A5 SP:F9 CYC:1 SL:49 F90F 60 RTS PC:F910 A:00 X:9F Y:80 P:A5 SP:F9 CYC:7 SL:49 D406 E8 INX PC:D407 A:00 X:9F Y:80 P:A5 SP:FB CYC:25 SL:49 D407 A9 LDA #$80 PC:D408 A:00 X:A0 Y:80 P:A5 SP:FB CYC:31 SL:49 D409 85 STA $78 PC:D40A A:80 X:A0 Y:80 P:A5 SP:FB CYC:37 SL:49 D40B C4 CPY $78 PC:D40C A:80 X:A0 Y:80 P:A5 SP:FB CYC:46 SL:49 D40D 20 JSR $F913 PC:D40E A:80 X:A0 Y:80 P:27 SP:FB CYC:55 SL:49 F913 D0 BNE $F91A PC:F914 A:80 X:A0 Y:80 P:27 SP:F9 CYC:73 SL:49 F915 30 BMI $F91A PC:F916 A:80 X:A0 Y:80 P:27 SP:F9 CYC:79 SL:49 F917 90 BCC $F91A PC:F918 A:80 X:A0 Y:80 P:27 SP:F9 CYC:85 SL:49 F919 60 RTS PC:F91A A:80 X:A0 Y:80 P:27 SP:F9 CYC:91 SL:49 D410 E8 INX PC:D411 A:80 X:A0 Y:80 P:27 SP:FB CYC:109 SL:49 D411 A9 LDA #$81 PC:D412 A:80 X:A1 Y:80 P:A5 SP:FB CYC:115 SL:49 D413 85 STA $78 PC:D414 A:81 X:A1 Y:80 P:A5 SP:FB CYC:121 SL:49 D415 C4 CPY $78 PC:D416 A:81 X:A1 Y:80 P:A5 SP:FB CYC:130 SL:49 D417 20 JSR $F91D PC:D418 A:81 X:A1 Y:80 P:A4 SP:FB CYC:139 SL:49 F91D B0 BCS $F924 PC:F91E A:81 X:A1 Y:80 P:A4 SP:F9 CYC:157 SL:49 F91F F0 BEQ $F924 PC:F920 A:81 X:A1 Y:80 P:A4 SP:F9 CYC:163 SL:49 F921 10 BPL $F924 PC:F922 A:81 X:A1 Y:80 P:A4 SP:F9 CYC:169 SL:49 F923 60 RTS PC:F924 A:81 X:A1 Y:80 P:A4 SP:F9 CYC:175 SL:49 D41A E8 INX PC:D41B A:81 X:A1 Y:80 P:A4 SP:FB CYC:193 SL:49 D41B A9 LDA #$7F PC:D41C A:81 X:A2 Y:80 P:A4 SP:FB CYC:199 SL:49 D41D 85 STA $78 PC:D41E A:7F X:A2 Y:80 P:24 SP:FB CYC:205 SL:49 D41F C4 CPY $78 PC:D420 A:7F X:A2 Y:80 P:24 SP:FB CYC:214 SL:49 D421 20 JSR $F927 PC:D422 A:7F X:A2 Y:80 P:25 SP:FB CYC:223 SL:49 F927 90 BCC $F92E PC:F928 A:7F X:A2 Y:80 P:25 SP:F9 CYC:241 SL:49 F929 F0 BEQ $F92E PC:F92A A:7F X:A2 Y:80 P:25 SP:F9 CYC:247 SL:49 F92B 30 BMI $F92E PC:F92C A:7F X:A2 Y:80 P:25 SP:F9 CYC:253 SL:49 F92D 60 RTS PC:F92E A:7F X:A2 Y:80 P:25 SP:F9 CYC:259 SL:49 D424 E8 INX PC:D425 A:7F X:A2 Y:80 P:25 SP:FB CYC:277 SL:49 D425 8A TXA PC:D426 A:7F X:A3 Y:80 P:A5 SP:FB CYC:283 SL:49 D426 A8 TAY PC:D427 A:A3 X:A3 Y:80 P:A5 SP:FB CYC:289 SL:49 D427 20 JSR $F990 PC:D428 A:A3 X:A3 Y:A3 P:A5 SP:FB CYC:295 SL:49 F990 A2 LDX #$55 PC:F991 A:A3 X:A3 Y:A3 P:A5 SP:F9 CYC:313 SL:49 F992 A9 LDA #$FF PC:F993 A:A3 X:55 Y:A3 P:25 SP:F9 CYC:319 SL:49 F994 85 STA $01 PC:F995 A:FF X:55 Y:A3 P:A5 SP:F9 CYC:325 SL:49 F996 EA NOP PC:F997 A:FF X:55 Y:A3 P:A5 SP:F9 CYC:334 SL:49 F997 24 BIT $01 PC:F998 A:FF X:55 Y:A3 P:A5 SP:F9 CYC:340 SL:49 F999 38 SEC PC:F99A A:FF X:55 Y:A3 P:E5 SP:F9 CYC:8 SL:50 F99A A9 LDA #$01 PC:F99B A:FF X:55 Y:A3 P:E5 SP:F9 CYC:14 SL:50 F99C 60 RTS PC:F99D A:01 X:55 Y:A3 P:65 SP:F9 CYC:20 SL:50 D42A 85 STA $78 PC:D42B A:01 X:55 Y:A3 P:65 SP:FB CYC:38 SL:50 D42C 46 LSR $78 PC:D42D A:01 X:55 Y:A3 P:65 SP:FB CYC:47 SL:50 D42E A5 LDA $78 PC:D42F A:01 X:55 Y:A3 P:67 SP:FB CYC:62 SL:50 D430 20 JSR $F99D PC:D431 A:00 X:55 Y:A3 P:67 SP:FB CYC:71 SL:50 F99D 90 BCC $F9BA PC:F99E A:00 X:55 Y:A3 P:67 SP:F9 CYC:89 SL:50 F99F D0 BNE $F9BA PC:F9A0 A:00 X:55 Y:A3 P:67 SP:F9 CYC:95 SL:50 F9A1 30 BMI $F9BA PC:F9A2 A:00 X:55 Y:A3 P:67 SP:F9 CYC:101 SL:50 F9A3 50 BVC $F9BA PC:F9A4 A:00 X:55 Y:A3 P:67 SP:F9 CYC:107 SL:50 F9A5 C9 CMP #$00 PC:F9A6 A:00 X:55 Y:A3 P:67 SP:F9 CYC:113 SL:50 F9A7 D0 BNE $F9BA PC:F9A8 A:00 X:55 Y:A3 P:67 SP:F9 CYC:119 SL:50 F9A9 B8 CLV PC:F9AA A:00 X:55 Y:A3 P:67 SP:F9 CYC:125 SL:50 F9AA A9 LDA #$AA PC:F9AB A:00 X:55 Y:A3 P:27 SP:F9 CYC:131 SL:50 F9AC 60 RTS PC:F9AD A:AA X:55 Y:A3 P:A5 SP:F9 CYC:137 SL:50 D433 C8 INY PC:D434 A:AA X:55 Y:A3 P:A5 SP:FB CYC:155 SL:50 D434 85 STA $78 PC:D435 A:AA X:55 Y:A4 P:A5 SP:FB CYC:161 SL:50 D436 46 LSR $78 PC:D437 A:AA X:55 Y:A4 P:A5 SP:FB CYC:170 SL:50 D438 A5 LDA $78 PC:D439 A:AA X:55 Y:A4 P:24 SP:FB CYC:185 SL:50 D43A 20 JSR $F9AD PC:D43B A:55 X:55 Y:A4 P:24 SP:FB CYC:194 SL:50 F9AD B0 BCS $F9BA PC:F9AE A:55 X:55 Y:A4 P:24 SP:F9 CYC:212 SL:50 F9AF F0 BEQ $F9BA PC:F9B0 A:55 X:55 Y:A4 P:24 SP:F9 CYC:218 SL:50 F9B1 30 BMI $F9BA PC:F9B2 A:55 X:55 Y:A4 P:24 SP:F9 CYC:224 SL:50 F9B3 70 BVS $F9BA PC:F9B4 A:55 X:55 Y:A4 P:24 SP:F9 CYC:230 SL:50 F9B5 C9 CMP #$55 PC:F9B6 A:55 X:55 Y:A4 P:24 SP:F9 CYC:236 SL:50 F9B7 D0 BNE $F9BA PC:F9B8 A:55 X:55 Y:A4 P:27 SP:F9 CYC:242 SL:50 F9B9 60 RTS PC:F9BA A:55 X:55 Y:A4 P:27 SP:F9 CYC:248 SL:50 D43D C8 INY PC:D43E A:55 X:55 Y:A4 P:27 SP:FB CYC:266 SL:50 D43E 20 JSR $F9BD PC:D43F A:55 X:55 Y:A5 P:A5 SP:FB CYC:272 SL:50 F9BD 24 BIT $01 PC:F9BE A:55 X:55 Y:A5 P:A5 SP:F9 CYC:290 SL:50 F9BF 38 SEC PC:F9C0 A:55 X:55 Y:A5 P:E5 SP:F9 CYC:299 SL:50 F9C0 A9 LDA #$80 PC:F9C1 A:55 X:55 Y:A5 P:E5 SP:F9 CYC:305 SL:50 F9C2 60 RTS PC:F9C3 A:80 X:55 Y:A5 P:E5 SP:F9 CYC:311 SL:50 D441 85 STA $78 PC:D442 A:80 X:55 Y:A5 P:E5 SP:FB CYC:329 SL:50 D443 06 ASL $78 PC:D444 A:80 X:55 Y:A5 P:E5 SP:FB CYC:338 SL:50 D445 A5 LDA $78 PC:D446 A:80 X:55 Y:A5 P:67 SP:FB CYC:12 SL:51 D447 20 JSR $F9C3 PC:D448 A:00 X:55 Y:A5 P:67 SP:FB CYC:21 SL:51 F9C3 90 BCC $F9E1 PC:F9C4 A:00 X:55 Y:A5 P:67 SP:F9 CYC:39 SL:51 F9C5 D0 BNE $F9E1 PC:F9C6 A:00 X:55 Y:A5 P:67 SP:F9 CYC:45 SL:51 F9C7 30 BMI $F9E1 PC:F9C8 A:00 X:55 Y:A5 P:67 SP:F9 CYC:51 SL:51 F9C9 50 BVC $F9E1 PC:F9CA A:00 X:55 Y:A5 P:67 SP:F9 CYC:57 SL:51 F9CB C9 CMP #$00 PC:F9CC A:00 X:55 Y:A5 P:67 SP:F9 CYC:63 SL:51 F9CD D0 BNE $F9E1 PC:F9CE A:00 X:55 Y:A5 P:67 SP:F9 CYC:69 SL:51 F9CF B8 CLV PC:F9D0 A:00 X:55 Y:A5 P:67 SP:F9 CYC:75 SL:51 F9D0 A9 LDA #$55 PC:F9D1 A:00 X:55 Y:A5 P:27 SP:F9 CYC:81 SL:51 F9D2 38 SEC PC:F9D3 A:55 X:55 Y:A5 P:25 SP:F9 CYC:87 SL:51 F9D3 60 RTS PC:F9D4 A:55 X:55 Y:A5 P:25 SP:F9 CYC:93 SL:51 D44A C8 INY PC:D44B A:55 X:55 Y:A5 P:25 SP:FB CYC:111 SL:51 D44B 85 STA $78 PC:D44C A:55 X:55 Y:A6 P:A5 SP:FB CYC:117 SL:51 D44D 06 ASL $78 PC:D44E A:55 X:55 Y:A6 P:A5 SP:FB CYC:126 SL:51 D44F A5 LDA $78 PC:D450 A:55 X:55 Y:A6 P:A4 SP:FB CYC:141 SL:51 D451 20 JSR $F9D4 PC:D452 A:AA X:55 Y:A6 P:A4 SP:FB CYC:150 SL:51 F9D4 B0 BCS $F9E1 PC:F9D5 A:AA X:55 Y:A6 P:A4 SP:F9 CYC:168 SL:51 F9D6 F0 BEQ $F9E1 PC:F9D7 A:AA X:55 Y:A6 P:A4 SP:F9 CYC:174 SL:51 F9D8 10 BPL $F9E1 PC:F9D9 A:AA X:55 Y:A6 P:A4 SP:F9 CYC:180 SL:51 F9DA 70 BVS $F9E1 PC:F9DB A:AA X:55 Y:A6 P:A4 SP:F9 CYC:186 SL:51 F9DC C9 CMP #$AA PC:F9DD A:AA X:55 Y:A6 P:A4 SP:F9 CYC:192 SL:51 F9DE D0 BNE $F9E1 PC:F9DF A:AA X:55 Y:A6 P:27 SP:F9 CYC:198 SL:51 F9E0 60 RTS PC:F9E1 A:AA X:55 Y:A6 P:27 SP:F9 CYC:204 SL:51 D454 C8 INY PC:D455 A:AA X:55 Y:A6 P:27 SP:FB CYC:222 SL:51 D455 20 JSR $F9E4 PC:D456 A:AA X:55 Y:A7 P:A5 SP:FB CYC:228 SL:51 F9E4 24 BIT $01 PC:F9E5 A:AA X:55 Y:A7 P:A5 SP:F9 CYC:246 SL:51 F9E6 38 SEC PC:F9E7 A:AA X:55 Y:A7 P:E5 SP:F9 CYC:255 SL:51 F9E7 A9 LDA #$01 PC:F9E8 A:AA X:55 Y:A7 P:E5 SP:F9 CYC:261 SL:51 F9E9 60 RTS PC:F9EA A:01 X:55 Y:A7 P:65 SP:F9 CYC:267 SL:51 D458 85 STA $78 PC:D459 A:01 X:55 Y:A7 P:65 SP:FB CYC:285 SL:51 D45A 66 ROR $78 PC:D45B A:01 X:55 Y:A7 P:65 SP:FB CYC:294 SL:51 D45C A5 LDA $78 PC:D45D A:01 X:55 Y:A7 P:E5 SP:FB CYC:309 SL:51 D45E 20 JSR $F9EA PC:D45F A:80 X:55 Y:A7 P:E5 SP:FB CYC:318 SL:51 F9EA 90 BCC $FA08 PC:F9EB A:80 X:55 Y:A7 P:E5 SP:F9 CYC:336 SL:51 F9EC F0 BEQ $FA08 PC:F9ED A:80 X:55 Y:A7 P:E5 SP:F9 CYC:1 SL:52 F9EE 10 BPL $FA08 PC:F9EF A:80 X:55 Y:A7 P:E5 SP:F9 CYC:7 SL:52 F9F0 50 BVC $FA08 PC:F9F1 A:80 X:55 Y:A7 P:E5 SP:F9 CYC:13 SL:52 F9F2 C9 CMP #$80 PC:F9F3 A:80 X:55 Y:A7 P:E5 SP:F9 CYC:19 SL:52 F9F4 D0 BNE $FA08 PC:F9F5 A:80 X:55 Y:A7 P:67 SP:F9 CYC:25 SL:52 F9F6 B8 CLV PC:F9F7 A:80 X:55 Y:A7 P:67 SP:F9 CYC:31 SL:52 F9F7 18 CLC PC:F9F8 A:80 X:55 Y:A7 P:27 SP:F9 CYC:37 SL:52 F9F8 A9 LDA #$55 PC:F9F9 A:80 X:55 Y:A7 P:26 SP:F9 CYC:43 SL:52 F9FA 60 RTS PC:F9FB A:55 X:55 Y:A7 P:24 SP:F9 CYC:49 SL:52 D461 C8 INY PC:D462 A:55 X:55 Y:A7 P:24 SP:FB CYC:67 SL:52 D462 85 STA $78 PC:D463 A:55 X:55 Y:A8 P:A4 SP:FB CYC:73 SL:52 D464 66 ROR $78 PC:D465 A:55 X:55 Y:A8 P:A4 SP:FB CYC:82 SL:52 D466 A5 LDA $78 PC:D467 A:55 X:55 Y:A8 P:25 SP:FB CYC:97 SL:52 D468 20 JSR $F9FB PC:D469 A:2A X:55 Y:A8 P:25 SP:FB CYC:106 SL:52 F9FB 90 BCC $FA08 PC:F9FC A:2A X:55 Y:A8 P:25 SP:F9 CYC:124 SL:52 F9FD F0 BEQ $FA08 PC:F9FE A:2A X:55 Y:A8 P:25 SP:F9 CYC:130 SL:52 F9FF 30 BMI $FA08 PC:FA00 A:2A X:55 Y:A8 P:25 SP:F9 CYC:136 SL:52 FA01 70 BVS $FA08 PC:FA02 A:2A X:55 Y:A8 P:25 SP:F9 CYC:142 SL:52 FA03 C9 CMP #$2A PC:FA04 A:2A X:55 Y:A8 P:25 SP:F9 CYC:148 SL:52 FA05 D0 BNE $FA08 PC:FA06 A:2A X:55 Y:A8 P:27 SP:F9 CYC:154 SL:52 FA07 60 RTS PC:FA08 A:2A X:55 Y:A8 P:27 SP:F9 CYC:160 SL:52 D46B C8 INY PC:D46C A:2A X:55 Y:A8 P:27 SP:FB CYC:178 SL:52 D46C 20 JSR $FA0A PC:D46D A:2A X:55 Y:A9 P:A5 SP:FB CYC:184 SL:52 FA0A 24 BIT $01 PC:FA0B A:2A X:55 Y:A9 P:A5 SP:F9 CYC:202 SL:52 FA0C 38 SEC PC:FA0D A:2A X:55 Y:A9 P:E5 SP:F9 CYC:211 SL:52 FA0D A9 LDA #$80 PC:FA0E A:2A X:55 Y:A9 P:E5 SP:F9 CYC:217 SL:52 FA0F 60 RTS PC:FA10 A:80 X:55 Y:A9 P:E5 SP:F9 CYC:223 SL:52 D46F 85 STA $78 PC:D470 A:80 X:55 Y:A9 P:E5 SP:FB CYC:241 SL:52 D471 26 ROL $78 PC:D472 A:80 X:55 Y:A9 P:E5 SP:FB CYC:250 SL:52 D473 A5 LDA $78 PC:D474 A:80 X:55 Y:A9 P:65 SP:FB CYC:265 SL:52 D475 20 JSR $FA10 PC:D476 A:01 X:55 Y:A9 P:65 SP:FB CYC:274 SL:52 FA10 90 BCC $FA2E PC:FA11 A:01 X:55 Y:A9 P:65 SP:F9 CYC:292 SL:52 FA12 F0 BEQ $FA2E PC:FA13 A:01 X:55 Y:A9 P:65 SP:F9 CYC:298 SL:52 FA14 30 BMI $FA2E PC:FA15 A:01 X:55 Y:A9 P:65 SP:F9 CYC:304 SL:52 FA16 50 BVC $FA2E PC:FA17 A:01 X:55 Y:A9 P:65 SP:F9 CYC:310 SL:52 FA18 C9 CMP #$01 PC:FA19 A:01 X:55 Y:A9 P:65 SP:F9 CYC:316 SL:52 FA1A D0 BNE $FA2E PC:FA1B A:01 X:55 Y:A9 P:67 SP:F9 CYC:322 SL:52 FA1C B8 CLV PC:FA1D A:01 X:55 Y:A9 P:67 SP:F9 CYC:328 SL:52 FA1D 18 CLC PC:FA1E A:01 X:55 Y:A9 P:27 SP:F9 CYC:334 SL:52 FA1E A9 LDA #$55 PC:FA1F A:01 X:55 Y:A9 P:26 SP:F9 CYC:340 SL:52 FA20 60 RTS PC:FA21 A:55 X:55 Y:A9 P:24 SP:F9 CYC:5 SL:53 D478 C8 INY PC:D479 A:55 X:55 Y:A9 P:24 SP:FB CYC:23 SL:53 D479 85 STA $78 PC:D47A A:55 X:55 Y:AA P:A4 SP:FB CYC:29 SL:53 D47B 26 ROL $78 PC:D47C A:55 X:55 Y:AA P:A4 SP:FB CYC:38 SL:53 D47D A5 LDA $78 PC:D47E A:55 X:55 Y:AA P:A4 SP:FB CYC:53 SL:53 D47F 20 JSR $FA21 PC:D480 A:AA X:55 Y:AA P:A4 SP:FB CYC:62 SL:53 FA21 B0 BCS $FA2E PC:FA22 A:AA X:55 Y:AA P:A4 SP:F9 CYC:80 SL:53 FA23 F0 BEQ $FA2E PC:FA24 A:AA X:55 Y:AA P:A4 SP:F9 CYC:86 SL:53 FA25 10 BPL $FA2E PC:FA26 A:AA X:55 Y:AA P:A4 SP:F9 CYC:92 SL:53 FA27 70 BVS $FA2E PC:FA28 A:AA X:55 Y:AA P:A4 SP:F9 CYC:98 SL:53 FA29 C9 CMP #$AA PC:FA2A A:AA X:55 Y:AA P:A4 SP:F9 CYC:104 SL:53 FA2B D0 BNE $FA2E PC:FA2C A:AA X:55 Y:AA P:27 SP:F9 CYC:110 SL:53 FA2D 60 RTS PC:FA2E A:AA X:55 Y:AA P:27 SP:F9 CYC:116 SL:53 D482 A9 LDA #$FF PC:D483 A:AA X:55 Y:AA P:27 SP:FB CYC:134 SL:53 D484 85 STA $78 PC:D485 A:FF X:55 Y:AA P:A5 SP:FB CYC:140 SL:53 D486 85 STA $01 PC:D487 A:FF X:55 Y:AA P:A5 SP:FB CYC:149 SL:53 D488 24 BIT $01 PC:D489 A:FF X:55 Y:AA P:A5 SP:FB CYC:158 SL:53 D48A 38 SEC PC:D48B A:FF X:55 Y:AA P:E5 SP:FB CYC:167 SL:53 D48B E6 INC $78 PC:D48C A:FF X:55 Y:AA P:E5 SP:FB CYC:173 SL:53 D48D D0 BNE $D49B PC:D48E A:FF X:55 Y:AA P:67 SP:FB CYC:188 SL:53 D48F 30 BMI $D49B PC:D490 A:FF X:55 Y:AA P:67 SP:FB CYC:194 SL:53 D491 50 BVC $D49B PC:D492 A:FF X:55 Y:AA P:67 SP:FB CYC:200 SL:53 D493 90 BCC $D49B PC:D494 A:FF X:55 Y:AA P:67 SP:FB CYC:206 SL:53 D495 A5 LDA $78 PC:D496 A:FF X:55 Y:AA P:67 SP:FB CYC:212 SL:53 D497 C9 CMP #$00 PC:D498 A:00 X:55 Y:AA P:67 SP:FB CYC:221 SL:53 D499 F0 BEQ $D49F PC:D49A A:00 X:55 Y:AA P:67 SP:FB CYC:227 SL:53 D49F A9 LDA #$7F PC:D4A0 A:00 X:55 Y:AA P:67 SP:FB CYC:236 SL:53 D4A1 85 STA $78 PC:D4A2 A:7F X:55 Y:AA P:65 SP:FB CYC:242 SL:53 D4A3 B8 CLV PC:D4A4 A:7F X:55 Y:AA P:65 SP:FB CYC:251 SL:53 D4A4 18 CLC PC:D4A5 A:7F X:55 Y:AA P:25 SP:FB CYC:257 SL:53 D4A5 E6 INC $78 PC:D4A6 A:7F X:55 Y:AA P:24 SP:FB CYC:263 SL:53 D4A7 F0 BEQ $D4B5 PC:D4A8 A:7F X:55 Y:AA P:A4 SP:FB CYC:278 SL:53 D4A9 10 BPL $D4B5 PC:D4AA A:7F X:55 Y:AA P:A4 SP:FB CYC:284 SL:53 D4AB 70 BVS $D4B5 PC:D4AC A:7F X:55 Y:AA P:A4 SP:FB CYC:290 SL:53 D4AD B0 BCS $D4B5 PC:D4AE A:7F X:55 Y:AA P:A4 SP:FB CYC:296 SL:53 D4AF A5 LDA $78 PC:D4B0 A:7F X:55 Y:AA P:A4 SP:FB CYC:302 SL:53 D4B1 C9 CMP #$80 PC:D4B2 A:80 X:55 Y:AA P:A4 SP:FB CYC:311 SL:53 D4B3 F0 BEQ $D4B9 PC:D4B4 A:80 X:55 Y:AA P:27 SP:FB CYC:317 SL:53 D4B9 A9 LDA #$00 PC:D4BA A:80 X:55 Y:AA P:27 SP:FB CYC:326 SL:53 D4BB 85 STA $78 PC:D4BC A:00 X:55 Y:AA P:27 SP:FB CYC:332 SL:53 D4BD 24 BIT $01 PC:D4BE A:00 X:55 Y:AA P:27 SP:FB CYC:0 SL:54 D4BF 38 SEC PC:D4C0 A:00 X:55 Y:AA P:E7 SP:FB CYC:9 SL:54 D4C0 C6 DEC $78 PC:D4C1 A:00 X:55 Y:AA P:E7 SP:FB CYC:15 SL:54 D4C2 F0 BEQ $D4D0 PC:D4C3 A:00 X:55 Y:AA P:E5 SP:FB CYC:30 SL:54 D4C4 10 BPL $D4D0 PC:D4C5 A:00 X:55 Y:AA P:E5 SP:FB CYC:36 SL:54 D4C6 50 BVC $D4D0 PC:D4C7 A:00 X:55 Y:AA P:E5 SP:FB CYC:42 SL:54 D4C8 90 BCC $D4D0 PC:D4C9 A:00 X:55 Y:AA P:E5 SP:FB CYC:48 SL:54 D4CA A5 LDA $78 PC:D4CB A:00 X:55 Y:AA P:E5 SP:FB CYC:54 SL:54 D4CC C9 CMP #$FF PC:D4CD A:FF X:55 Y:AA P:E5 SP:FB CYC:63 SL:54 D4CE F0 BEQ $D4D4 PC:D4CF A:FF X:55 Y:AA P:67 SP:FB CYC:69 SL:54 D4D4 A9 LDA #$80 PC:D4D5 A:FF X:55 Y:AA P:67 SP:FB CYC:78 SL:54 D4D6 85 STA $78 PC:D4D7 A:80 X:55 Y:AA P:E5 SP:FB CYC:84 SL:54 D4D8 B8 CLV PC:D4D9 A:80 X:55 Y:AA P:E5 SP:FB CYC:93 SL:54 D4D9 18 CLC PC:D4DA A:80 X:55 Y:AA P:A5 SP:FB CYC:99 SL:54 D4DA C6 DEC $78 PC:D4DB A:80 X:55 Y:AA P:A4 SP:FB CYC:105 SL:54 D4DC F0 BEQ $D4EA PC:D4DD A:80 X:55 Y:AA P:24 SP:FB CYC:120 SL:54 D4DE 30 BMI $D4EA PC:D4DF A:80 X:55 Y:AA P:24 SP:FB CYC:126 SL:54 D4E0 70 BVS $D4EA PC:D4E1 A:80 X:55 Y:AA P:24 SP:FB CYC:132 SL:54 D4E2 B0 BCS $D4EA PC:D4E3 A:80 X:55 Y:AA P:24 SP:FB CYC:138 SL:54 D4E4 A5 LDA $78 PC:D4E5 A:80 X:55 Y:AA P:24 SP:FB CYC:144 SL:54 D4E6 C9 CMP #$7F PC:D4E7 A:7F X:55 Y:AA P:24 SP:FB CYC:153 SL:54 D4E8 F0 BEQ $D4EE PC:D4E9 A:7F X:55 Y:AA P:27 SP:FB CYC:159 SL:54 D4EE A9 LDA #$01 PC:D4EF A:7F X:55 Y:AA P:27 SP:FB CYC:168 SL:54 D4F0 85 STA $78 PC:D4F1 A:01 X:55 Y:AA P:25 SP:FB CYC:174 SL:54 D4F2 C6 DEC $78 PC:D4F3 A:01 X:55 Y:AA P:25 SP:FB CYC:183 SL:54 D4F4 F0 BEQ $D4FA PC:D4F5 A:01 X:55 Y:AA P:27 SP:FB CYC:198 SL:54 D4FA 60 RTS PC:D4FB A:01 X:55 Y:AA P:27 SP:FB CYC:207 SL:54 C615 20 JSR $D4FB PC:C616 A:01 X:55 Y:AA P:27 SP:FD CYC:225 SL:54 D4FB A9 LDA #$55 PC:D4FC A:01 X:55 Y:AA P:27 SP:FB CYC:243 SL:54 D4FD 8D STA $0678 PC:D4FE A:55 X:55 Y:AA P:25 SP:FB CYC:249 SL:54 D500 A9 LDA #$FF PC:D501 A:55 X:55 Y:AA P:25 SP:FB CYC:261 SL:54 D502 85 STA $01 PC:D503 A:FF X:55 Y:AA P:A5 SP:FB CYC:267 SL:54 D504 24 BIT $01 PC:D505 A:FF X:55 Y:AA P:A5 SP:FB CYC:276 SL:54 D506 A0 LDY #$11 PC:D507 A:FF X:55 Y:AA P:E5 SP:FB CYC:285 SL:54 D508 A2 LDX #$23 PC:D509 A:FF X:55 Y:11 P:65 SP:FB CYC:291 SL:54 D50A A9 LDA #$00 PC:D50B A:FF X:23 Y:11 P:65 SP:FB CYC:297 SL:54 D50C AD LDA $0678 PC:D50D A:00 X:23 Y:11 P:67 SP:FB CYC:303 SL:54 D50F F0 BEQ $D521 PC:D510 A:55 X:23 Y:11 P:65 SP:FB CYC:315 SL:54 D511 30 BMI $D521 PC:D512 A:55 X:23 Y:11 P:65 SP:FB CYC:321 SL:54 D513 C9 CMP #$55 PC:D514 A:55 X:23 Y:11 P:65 SP:FB CYC:327 SL:54 D515 D0 BNE $D521 PC:D516 A:55 X:23 Y:11 P:67 SP:FB CYC:333 SL:54 D517 C0 CPY #$11 PC:D518 A:55 X:23 Y:11 P:67 SP:FB CYC:339 SL:54 D519 D0 BNE $D521 PC:D51A A:55 X:23 Y:11 P:67 SP:FB CYC:4 SL:55 D51B E0 CPX #$23 PC:D51C A:55 X:23 Y:11 P:67 SP:FB CYC:10 SL:55 D51D 50 BVC $D521 PC:D51E A:55 X:23 Y:11 P:67 SP:FB CYC:16 SL:55 D51F F0 BEQ $D525 PC:D520 A:55 X:23 Y:11 P:67 SP:FB CYC:22 SL:55 D525 A9 LDA #$46 PC:D526 A:55 X:23 Y:11 P:67 SP:FB CYC:31 SL:55 D527 24 BIT $01 PC:D528 A:46 X:23 Y:11 P:65 SP:FB CYC:37 SL:55 D529 8D STA $0678 PC:D52A A:46 X:23 Y:11 P:E5 SP:FB CYC:46 SL:55 D52C F0 BEQ $D539 PC:D52D A:46 X:23 Y:11 P:E5 SP:FB CYC:58 SL:55 D52E 10 BPL $D539 PC:D52F A:46 X:23 Y:11 P:E5 SP:FB CYC:64 SL:55 D530 50 BVC $D539 PC:D531 A:46 X:23 Y:11 P:E5 SP:FB CYC:70 SL:55 D532 AD LDA $0678 PC:D533 A:46 X:23 Y:11 P:E5 SP:FB CYC:76 SL:55 D535 C9 CMP #$46 PC:D536 A:46 X:23 Y:11 P:65 SP:FB CYC:88 SL:55 D537 F0 BEQ $D53D PC:D538 A:46 X:23 Y:11 P:67 SP:FB CYC:94 SL:55 D53D A9 LDA #$55 PC:D53E A:46 X:23 Y:11 P:67 SP:FB CYC:103 SL:55 D53F 8D STA $0678 PC:D540 A:55 X:23 Y:11 P:65 SP:FB CYC:109 SL:55 D542 24 BIT $01 PC:D543 A:55 X:23 Y:11 P:65 SP:FB CYC:121 SL:55 D544 A9 LDA #$11 PC:D545 A:55 X:23 Y:11 P:E5 SP:FB CYC:130 SL:55 D546 A2 LDX #$23 PC:D547 A:11 X:23 Y:11 P:65 SP:FB CYC:136 SL:55 D548 A0 LDY #$00 PC:D549 A:11 X:23 Y:11 P:65 SP:FB CYC:142 SL:55 D54A AC LDY $0678 PC:D54B A:11 X:23 Y:00 P:67 SP:FB CYC:148 SL:55 D54D F0 BEQ $D55F PC:D54E A:11 X:23 Y:55 P:65 SP:FB CYC:160 SL:55 D54F 30 BMI $D55F PC:D550 A:11 X:23 Y:55 P:65 SP:FB CYC:166 SL:55 D551 C0 CPY #$55 PC:D552 A:11 X:23 Y:55 P:65 SP:FB CYC:172 SL:55 D553 D0 BNE $D55F PC:D554 A:11 X:23 Y:55 P:67 SP:FB CYC:178 SL:55 D555 C9 CMP #$11 PC:D556 A:11 X:23 Y:55 P:67 SP:FB CYC:184 SL:55 D557 D0 BNE $D55F PC:D558 A:11 X:23 Y:55 P:67 SP:FB CYC:190 SL:55 D559 E0 CPX #$23 PC:D55A A:11 X:23 Y:55 P:67 SP:FB CYC:196 SL:55 D55B 50 BVC $D55F PC:D55C A:11 X:23 Y:55 P:67 SP:FB CYC:202 SL:55 D55D F0 BEQ $D563 PC:D55E A:11 X:23 Y:55 P:67 SP:FB CYC:208 SL:55 D563 A0 LDY #$46 PC:D564 A:11 X:23 Y:55 P:67 SP:FB CYC:217 SL:55 D565 24 BIT $01 PC:D566 A:11 X:23 Y:46 P:65 SP:FB CYC:223 SL:55 D567 8C STY $0678 PC:D568 A:11 X:23 Y:46 P:E5 SP:FB CYC:232 SL:55 D56A F0 BEQ $D577 PC:D56B A:11 X:23 Y:46 P:E5 SP:FB CYC:244 SL:55 D56C 10 BPL $D577 PC:D56D A:11 X:23 Y:46 P:E5 SP:FB CYC:250 SL:55 D56E 50 BVC $D577 PC:D56F A:11 X:23 Y:46 P:E5 SP:FB CYC:256 SL:55 D570 AC LDY $0678 PC:D571 A:11 X:23 Y:46 P:E5 SP:FB CYC:262 SL:55 D573 C0 CPY #$46 PC:D574 A:11 X:23 Y:46 P:65 SP:FB CYC:274 SL:55 D575 F0 BEQ $D57B PC:D576 A:11 X:23 Y:46 P:67 SP:FB CYC:280 SL:55 D57B 24 BIT $01 PC:D57C A:11 X:23 Y:46 P:67 SP:FB CYC:289 SL:55 D57D A9 LDA #$55 PC:D57E A:11 X:23 Y:46 P:E5 SP:FB CYC:298 SL:55 D57F 8D STA $0678 PC:D580 A:55 X:23 Y:46 P:65 SP:FB CYC:304 SL:55 D582 A0 LDY #$11 PC:D583 A:55 X:23 Y:46 P:65 SP:FB CYC:316 SL:55 D584 A9 LDA #$23 PC:D585 A:55 X:23 Y:11 P:65 SP:FB CYC:322 SL:55 D586 A2 LDX #$00 PC:D587 A:23 X:23 Y:11 P:65 SP:FB CYC:328 SL:55 D588 AE LDX $0678 PC:D589 A:23 X:00 Y:11 P:67 SP:FB CYC:334 SL:55 D58B F0 BEQ $D59D PC:D58C A:23 X:55 Y:11 P:65 SP:FB CYC:5 SL:56 D58D 30 BMI $D59D PC:D58E A:23 X:55 Y:11 P:65 SP:FB CYC:11 SL:56 D58F E0 CPX #$55 PC:D590 A:23 X:55 Y:11 P:65 SP:FB CYC:17 SL:56 D591 D0 BNE $D59D PC:D592 A:23 X:55 Y:11 P:67 SP:FB CYC:23 SL:56 D593 C0 CPY #$11 PC:D594 A:23 X:55 Y:11 P:67 SP:FB CYC:29 SL:56 D595 D0 BNE $D59D PC:D596 A:23 X:55 Y:11 P:67 SP:FB CYC:35 SL:56 D597 C9 CMP #$23 PC:D598 A:23 X:55 Y:11 P:67 SP:FB CYC:41 SL:56 D599 50 BVC $D59D PC:D59A A:23 X:55 Y:11 P:67 SP:FB CYC:47 SL:56 D59B F0 BEQ $D5A1 PC:D59C A:23 X:55 Y:11 P:67 SP:FB CYC:53 SL:56 D5A1 A2 LDX #$46 PC:D5A2 A:23 X:55 Y:11 P:67 SP:FB CYC:62 SL:56 D5A3 24 BIT $01 PC:D5A4 A:23 X:46 Y:11 P:65 SP:FB CYC:68 SL:56 D5A5 8E STX $0678 PC:D5A6 A:23 X:46 Y:11 P:E5 SP:FB CYC:77 SL:56 D5A8 F0 BEQ $D5B5 PC:D5A9 A:23 X:46 Y:11 P:E5 SP:FB CYC:89 SL:56 D5AA 10 BPL $D5B5 PC:D5AB A:23 X:46 Y:11 P:E5 SP:FB CYC:95 SL:56 D5AC 50 BVC $D5B5 PC:D5AD A:23 X:46 Y:11 P:E5 SP:FB CYC:101 SL:56 D5AE AE LDX $0678 PC:D5AF A:23 X:46 Y:11 P:E5 SP:FB CYC:107 SL:56 D5B1 E0 CPX #$46 PC:D5B2 A:23 X:46 Y:11 P:65 SP:FB CYC:119 SL:56 D5B3 F0 BEQ $D5B9 PC:D5B4 A:23 X:46 Y:11 P:67 SP:FB CYC:125 SL:56 D5B9 A9 LDA #$C0 PC:D5BA A:23 X:46 Y:11 P:67 SP:FB CYC:134 SL:56 D5BB 8D STA $0678 PC:D5BC A:C0 X:46 Y:11 P:E5 SP:FB CYC:140 SL:56 D5BE A2 LDX #$33 PC:D5BF A:C0 X:46 Y:11 P:E5 SP:FB CYC:152 SL:56 D5C0 A0 LDY #$88 PC:D5C1 A:C0 X:33 Y:11 P:65 SP:FB CYC:158 SL:56 D5C2 A9 LDA #$05 PC:D5C3 A:C0 X:33 Y:88 P:E5 SP:FB CYC:164 SL:56 D5C4 2C BIT $0678 PC:D5C5 A:05 X:33 Y:88 P:65 SP:FB CYC:170 SL:56 D5C7 10 BPL $D5D9 PC:D5C8 A:05 X:33 Y:88 P:E7 SP:FB CYC:182 SL:56 D5C9 50 BVC $D5D9 PC:D5CA A:05 X:33 Y:88 P:E7 SP:FB CYC:188 SL:56 D5CB D0 BNE $D5D9 PC:D5CC A:05 X:33 Y:88 P:E7 SP:FB CYC:194 SL:56 D5CD C9 CMP #$05 PC:D5CE A:05 X:33 Y:88 P:E7 SP:FB CYC:200 SL:56 D5CF D0 BNE $D5D9 PC:D5D0 A:05 X:33 Y:88 P:67 SP:FB CYC:206 SL:56 D5D1 E0 CPX #$33 PC:D5D2 A:05 X:33 Y:88 P:67 SP:FB CYC:212 SL:56 D5D3 D0 BNE $D5D9 PC:D5D4 A:05 X:33 Y:88 P:67 SP:FB CYC:218 SL:56 D5D5 C0 CPY #$88 PC:D5D6 A:05 X:33 Y:88 P:67 SP:FB CYC:224 SL:56 D5D7 F0 BEQ $D5DD PC:D5D8 A:05 X:33 Y:88 P:67 SP:FB CYC:230 SL:56 D5DD A9 LDA #$03 PC:D5DE A:05 X:33 Y:88 P:67 SP:FB CYC:239 SL:56 D5DF 8D STA $0678 PC:D5E0 A:03 X:33 Y:88 P:65 SP:FB CYC:245 SL:56 D5E2 A9 LDA #$01 PC:D5E3 A:03 X:33 Y:88 P:65 SP:FB CYC:257 SL:56 D5E4 2C BIT $0678 PC:D5E5 A:01 X:33 Y:88 P:65 SP:FB CYC:263 SL:56 D5E7 30 BMI $D5F1 PC:D5E8 A:01 X:33 Y:88 P:25 SP:FB CYC:275 SL:56 D5E9 70 BVS $D5F1 PC:D5EA A:01 X:33 Y:88 P:25 SP:FB CYC:281 SL:56 D5EB F0 BEQ $D5F1 PC:D5EC A:01 X:33 Y:88 P:25 SP:FB CYC:287 SL:56 D5ED C9 CMP #$01 PC:D5EE A:01 X:33 Y:88 P:25 SP:FB CYC:293 SL:56 D5EF F0 BEQ $D5F5 PC:D5F0 A:01 X:33 Y:88 P:27 SP:FB CYC:299 SL:56 D5F5 A0 LDY #$B8 PC:D5F6 A:01 X:33 Y:88 P:27 SP:FB CYC:308 SL:56 D5F7 A9 LDA #$AA PC:D5F8 A:01 X:33 Y:B8 P:A5 SP:FB CYC:314 SL:56 D5F9 8D STA $0678 PC:D5FA A:AA X:33 Y:B8 P:A5 SP:FB CYC:320 SL:56 D5FC 20 JSR $F7B6 PC:D5FD A:AA X:33 Y:B8 P:A5 SP:FB CYC:332 SL:56 F7B6 18 CLC PC:F7B7 A:AA X:33 Y:B8 P:A5 SP:F9 CYC:9 SL:57 F7B7 A9 LDA #$FF PC:F7B8 A:AA X:33 Y:B8 P:A4 SP:F9 CYC:15 SL:57 F7B9 85 STA $01 PC:F7BA A:FF X:33 Y:B8 P:A4 SP:F9 CYC:21 SL:57 F7BB 24 BIT $01 PC:F7BC A:FF X:33 Y:B8 P:A4 SP:F9 CYC:30 SL:57 F7BD A9 LDA #$55 PC:F7BE A:FF X:33 Y:B8 P:E4 SP:F9 CYC:39 SL:57 F7BF 60 RTS PC:F7C0 A:55 X:33 Y:B8 P:64 SP:F9 CYC:45 SL:57 D5FF 0D ORA $0678 PC:D600 A:55 X:33 Y:B8 P:64 SP:FB CYC:63 SL:57 D602 20 JSR $F7C0 PC:D603 A:FF X:33 Y:B8 P:E4 SP:FB CYC:75 SL:57 F7C0 B0 BCS $F7CB PC:F7C1 A:FF X:33 Y:B8 P:E4 SP:F9 CYC:93 SL:57 F7C2 10 BPL $F7CB PC:F7C3 A:FF X:33 Y:B8 P:E4 SP:F9 CYC:99 SL:57 F7C4 C9 CMP #$FF PC:F7C5 A:FF X:33 Y:B8 P:E4 SP:F9 CYC:105 SL:57 F7C6 D0 BNE $F7CB PC:F7C7 A:FF X:33 Y:B8 P:67 SP:F9 CYC:111 SL:57 F7C8 50 BVC $F7CB PC:F7C9 A:FF X:33 Y:B8 P:67 SP:F9 CYC:117 SL:57 F7CA 60 RTS PC:F7CB A:FF X:33 Y:B8 P:67 SP:F9 CYC:123 SL:57 D605 C8 INY PC:D606 A:FF X:33 Y:B8 P:67 SP:FB CYC:141 SL:57 D606 A9 LDA #$00 PC:D607 A:FF X:33 Y:B9 P:E5 SP:FB CYC:147 SL:57 D608 8D STA $0678 PC:D609 A:00 X:33 Y:B9 P:67 SP:FB CYC:153 SL:57 D60B 20 JSR $F7CE PC:D60C A:00 X:33 Y:B9 P:67 SP:FB CYC:165 SL:57 F7CE 38 SEC PC:F7CF A:00 X:33 Y:B9 P:67 SP:F9 CYC:183 SL:57 F7CF B8 CLV PC:F7D0 A:00 X:33 Y:B9 P:67 SP:F9 CYC:189 SL:57 F7D0 A9 LDA #$00 PC:F7D1 A:00 X:33 Y:B9 P:27 SP:F9 CYC:195 SL:57 F7D2 60 RTS PC:F7D3 A:00 X:33 Y:B9 P:27 SP:F9 CYC:201 SL:57 D60E 0D ORA $0678 PC:D60F A:00 X:33 Y:B9 P:27 SP:FB CYC:219 SL:57 D611 20 JSR $F7D3 PC:D612 A:00 X:33 Y:B9 P:27 SP:FB CYC:231 SL:57 F7D3 D0 BNE $F7DC PC:F7D4 A:00 X:33 Y:B9 P:27 SP:F9 CYC:249 SL:57 F7D5 70 BVS $F7DC PC:F7D6 A:00 X:33 Y:B9 P:27 SP:F9 CYC:255 SL:57 F7D7 90 BCC $F7DC PC:F7D8 A:00 X:33 Y:B9 P:27 SP:F9 CYC:261 SL:57 F7D9 30 BMI $F7DC PC:F7DA A:00 X:33 Y:B9 P:27 SP:F9 CYC:267 SL:57 F7DB 60 RTS PC:F7DC A:00 X:33 Y:B9 P:27 SP:F9 CYC:273 SL:57 D614 C8 INY PC:D615 A:00 X:33 Y:B9 P:27 SP:FB CYC:291 SL:57 D615 A9 LDA #$AA PC:D616 A:00 X:33 Y:BA P:A5 SP:FB CYC:297 SL:57 D617 8D STA $0678 PC:D618 A:AA X:33 Y:BA P:A5 SP:FB CYC:303 SL:57 D61A 20 JSR $F7DF PC:D61B A:AA X:33 Y:BA P:A5 SP:FB CYC:315 SL:57 F7DF 18 CLC PC:F7E0 A:AA X:33 Y:BA P:A5 SP:F9 CYC:333 SL:57 F7E0 24 BIT $01 PC:F7E1 A:AA X:33 Y:BA P:A4 SP:F9 CYC:339 SL:57 F7E2 A9 LDA #$55 PC:F7E3 A:AA X:33 Y:BA P:E4 SP:F9 CYC:7 SL:58 F7E4 60 RTS PC:F7E5 A:55 X:33 Y:BA P:64 SP:F9 CYC:13 SL:58 D61D 2D AND $0678 PC:D61E A:55 X:33 Y:BA P:64 SP:FB CYC:31 SL:58 D620 20 JSR $F7E5 PC:D621 A:00 X:33 Y:BA P:66 SP:FB CYC:43 SL:58 F7E5 D0 BNE $F7EE PC:F7E6 A:00 X:33 Y:BA P:66 SP:F9 CYC:61 SL:58 F7E7 50 BVC $F7EE PC:F7E8 A:00 X:33 Y:BA P:66 SP:F9 CYC:67 SL:58 F7E9 B0 BCS $F7EE PC:F7EA A:00 X:33 Y:BA P:66 SP:F9 CYC:73 SL:58 F7EB 30 BMI $F7EE PC:F7EC A:00 X:33 Y:BA P:66 SP:F9 CYC:79 SL:58 F7ED 60 RTS PC:F7EE A:00 X:33 Y:BA P:66 SP:F9 CYC:85 SL:58 D623 C8 INY PC:D624 A:00 X:33 Y:BA P:66 SP:FB CYC:103 SL:58 D624 A9 LDA #$EF PC:D625 A:00 X:33 Y:BB P:E4 SP:FB CYC:109 SL:58 D626 8D STA $0678 PC:D627 A:EF X:33 Y:BB P:E4 SP:FB CYC:115 SL:58 D629 20 JSR $F7F1 PC:D62A A:EF X:33 Y:BB P:E4 SP:FB CYC:127 SL:58 F7F1 38 SEC PC:F7F2 A:EF X:33 Y:BB P:E4 SP:F9 CYC:145 SL:58 F7F2 B8 CLV PC:F7F3 A:EF X:33 Y:BB P:E5 SP:F9 CYC:151 SL:58 F7F3 A9 LDA #$F8 PC:F7F4 A:EF X:33 Y:BB P:A5 SP:F9 CYC:157 SL:58 F7F5 60 RTS PC:F7F6 A:F8 X:33 Y:BB P:A5 SP:F9 CYC:163 SL:58 D62C 2D AND $0678 PC:D62D A:F8 X:33 Y:BB P:A5 SP:FB CYC:181 SL:58 D62F 20 JSR $F7F6 PC:D630 A:E8 X:33 Y:BB P:A5 SP:FB CYC:193 SL:58 F7F6 90 BCC $F801 PC:F7F7 A:E8 X:33 Y:BB P:A5 SP:F9 CYC:211 SL:58 F7F8 10 BPL $F801 PC:F7F9 A:E8 X:33 Y:BB P:A5 SP:F9 CYC:217 SL:58 F7FA C9 CMP #$E8 PC:F7FB A:E8 X:33 Y:BB P:A5 SP:F9 CYC:223 SL:58 F7FC D0 BNE $F801 PC:F7FD A:E8 X:33 Y:BB P:27 SP:F9 CYC:229 SL:58 F7FE 70 BVS $F801 PC:F7FF A:E8 X:33 Y:BB P:27 SP:F9 CYC:235 SL:58 F800 60 RTS PC:F801 A:E8 X:33 Y:BB P:27 SP:F9 CYC:241 SL:58 D632 C8 INY PC:D633 A:E8 X:33 Y:BB P:27 SP:FB CYC:259 SL:58 D633 A9 LDA #$AA PC:D634 A:E8 X:33 Y:BC P:A5 SP:FB CYC:265 SL:58 D635 8D STA $0678 PC:D636 A:AA X:33 Y:BC P:A5 SP:FB CYC:271 SL:58 D638 20 JSR $F804 PC:D639 A:AA X:33 Y:BC P:A5 SP:FB CYC:283 SL:58 F804 18 CLC PC:F805 A:AA X:33 Y:BC P:A5 SP:F9 CYC:301 SL:58 F805 24 BIT $01 PC:F806 A:AA X:33 Y:BC P:A4 SP:F9 CYC:307 SL:58 F807 A9 LDA #$5F PC:F808 A:AA X:33 Y:BC P:E4 SP:F9 CYC:316 SL:58 F809 60 RTS PC:F80A A:5F X:33 Y:BC P:64 SP:F9 CYC:322 SL:58 D63B 4D EOR $0678 PC:D63C A:5F X:33 Y:BC P:64 SP:FB CYC:340 SL:58 D63E 20 JSR $F80A PC:D63F A:F5 X:33 Y:BC P:E4 SP:FB CYC:11 SL:59 F80A B0 BCS $F815 PC:F80B A:F5 X:33 Y:BC P:E4 SP:F9 CYC:29 SL:59 F80C 10 BPL $F815 PC:F80D A:F5 X:33 Y:BC P:E4 SP:F9 CYC:35 SL:59 F80E C9 CMP #$F5 PC:F80F A:F5 X:33 Y:BC P:E4 SP:F9 CYC:41 SL:59 F810 D0 BNE $F815 PC:F811 A:F5 X:33 Y:BC P:67 SP:F9 CYC:47 SL:59 F812 50 BVC $F815 PC:F813 A:F5 X:33 Y:BC P:67 SP:F9 CYC:53 SL:59 F814 60 RTS PC:F815 A:F5 X:33 Y:BC P:67 SP:F9 CYC:59 SL:59 D641 C8 INY PC:D642 A:F5 X:33 Y:BC P:67 SP:FB CYC:77 SL:59 D642 A9 LDA #$70 PC:D643 A:F5 X:33 Y:BD P:E5 SP:FB CYC:83 SL:59 D644 8D STA $0678 PC:D645 A:70 X:33 Y:BD P:65 SP:FB CYC:89 SL:59 D647 20 JSR $F818 PC:D648 A:70 X:33 Y:BD P:65 SP:FB CYC:101 SL:59 F818 38 SEC PC:F819 A:70 X:33 Y:BD P:65 SP:F9 CYC:119 SL:59 F819 B8 CLV PC:F81A A:70 X:33 Y:BD P:65 SP:F9 CYC:125 SL:59 F81A A9 LDA #$70 PC:F81B A:70 X:33 Y:BD P:25 SP:F9 CYC:131 SL:59 F81C 60 RTS PC:F81D A:70 X:33 Y:BD P:25 SP:F9 CYC:137 SL:59 D64A 4D EOR $0678 PC:D64B A:70 X:33 Y:BD P:25 SP:FB CYC:155 SL:59 D64D 20 JSR $F81D PC:D64E A:00 X:33 Y:BD P:27 SP:FB CYC:167 SL:59 F81D D0 BNE $F826 PC:F81E A:00 X:33 Y:BD P:27 SP:F9 CYC:185 SL:59 F81F 70 BVS $F826 PC:F820 A:00 X:33 Y:BD P:27 SP:F9 CYC:191 SL:59 F821 90 BCC $F826 PC:F822 A:00 X:33 Y:BD P:27 SP:F9 CYC:197 SL:59 F823 30 BMI $F826 PC:F824 A:00 X:33 Y:BD P:27 SP:F9 CYC:203 SL:59 F825 60 RTS PC:F826 A:00 X:33 Y:BD P:27 SP:F9 CYC:209 SL:59 D650 C8 INY PC:D651 A:00 X:33 Y:BD P:27 SP:FB CYC:227 SL:59 D651 A9 LDA #$69 PC:D652 A:00 X:33 Y:BE P:A5 SP:FB CYC:233 SL:59 D653 8D STA $0678 PC:D654 A:69 X:33 Y:BE P:25 SP:FB CYC:239 SL:59 D656 20 JSR $F829 PC:D657 A:69 X:33 Y:BE P:25 SP:FB CYC:251 SL:59 F829 18 CLC PC:F82A A:69 X:33 Y:BE P:25 SP:F9 CYC:269 SL:59 F82A 24 BIT $01 PC:F82B A:69 X:33 Y:BE P:24 SP:F9 CYC:275 SL:59 F82C A9 LDA #$00 PC:F82D A:69 X:33 Y:BE P:E4 SP:F9 CYC:284 SL:59 F82E 60 RTS PC:F82F A:00 X:33 Y:BE P:66 SP:F9 CYC:290 SL:59 D659 6D ADC $0678 PC:D65A A:00 X:33 Y:BE P:66 SP:FB CYC:308 SL:59 D65C 20 JSR $F82F PC:D65D A:69 X:33 Y:BE P:24 SP:FB CYC:320 SL:59 F82F 30 BMI $F83A PC:F830 A:69 X:33 Y:BE P:24 SP:F9 CYC:338 SL:59 F831 B0 BCS $F83A PC:F832 A:69 X:33 Y:BE P:24 SP:F9 CYC:3 SL:60 F833 C9 CMP #$69 PC:F834 A:69 X:33 Y:BE P:24 SP:F9 CYC:9 SL:60 F835 D0 BNE $F83A PC:F836 A:69 X:33 Y:BE P:27 SP:F9 CYC:15 SL:60 F837 70 BVS $F83A PC:F838 A:69 X:33 Y:BE P:27 SP:F9 CYC:21 SL:60 F839 60 RTS PC:F83A A:69 X:33 Y:BE P:27 SP:F9 CYC:27 SL:60 D65F C8 INY PC:D660 A:69 X:33 Y:BE P:27 SP:FB CYC:45 SL:60 D660 20 JSR $F83D PC:D661 A:69 X:33 Y:BF P:A5 SP:FB CYC:51 SL:60 F83D 38 SEC PC:F83E A:69 X:33 Y:BF P:A5 SP:F9 CYC:69 SL:60 F83E 24 BIT $01 PC:F83F A:69 X:33 Y:BF P:A5 SP:F9 CYC:75 SL:60 F840 A9 LDA #$00 PC:F841 A:69 X:33 Y:BF P:E5 SP:F9 CYC:84 SL:60 F842 60 RTS PC:F843 A:00 X:33 Y:BF P:67 SP:F9 CYC:90 SL:60 D663 6D ADC $0678 PC:D664 A:00 X:33 Y:BF P:67 SP:FB CYC:108 SL:60 D666 20 JSR $F843 PC:D667 A:6A X:33 Y:BF P:24 SP:FB CYC:120 SL:60 F843 30 BMI $F84E PC:F844 A:6A X:33 Y:BF P:24 SP:F9 CYC:138 SL:60 F845 B0 BCS $F84E PC:F846 A:6A X:33 Y:BF P:24 SP:F9 CYC:144 SL:60 F847 C9 CMP #$6A PC:F848 A:6A X:33 Y:BF P:24 SP:F9 CYC:150 SL:60 F849 D0 BNE $F84E PC:F84A A:6A X:33 Y:BF P:27 SP:F9 CYC:156 SL:60 F84B 70 BVS $F84E PC:F84C A:6A X:33 Y:BF P:27 SP:F9 CYC:162 SL:60 F84D 60 RTS PC:F84E A:6A X:33 Y:BF P:27 SP:F9 CYC:168 SL:60 D669 C8 INY PC:D66A A:6A X:33 Y:BF P:27 SP:FB CYC:186 SL:60 D66A A9 LDA #$7F PC:D66B A:6A X:33 Y:C0 P:A5 SP:FB CYC:192 SL:60 D66C 8D STA $0678 PC:D66D A:7F X:33 Y:C0 P:25 SP:FB CYC:198 SL:60 D66F 20 JSR $F851 PC:D670 A:7F X:33 Y:C0 P:25 SP:FB CYC:210 SL:60 F851 38 SEC PC:F852 A:7F X:33 Y:C0 P:25 SP:F9 CYC:228 SL:60 F852 B8 CLV PC:F853 A:7F X:33 Y:C0 P:25 SP:F9 CYC:234 SL:60 F853 A9 LDA #$7F PC:F854 A:7F X:33 Y:C0 P:25 SP:F9 CYC:240 SL:60 F855 60 RTS PC:F856 A:7F X:33 Y:C0 P:25 SP:F9 CYC:246 SL:60 D672 6D ADC $0678 PC:D673 A:7F X:33 Y:C0 P:25 SP:FB CYC:264 SL:60 D675 20 JSR $F856 PC:D676 A:FF X:33 Y:C0 P:E4 SP:FB CYC:276 SL:60 F856 10 BPL $F861 PC:F857 A:FF X:33 Y:C0 P:E4 SP:F9 CYC:294 SL:60 F858 B0 BCS $F861 PC:F859 A:FF X:33 Y:C0 P:E4 SP:F9 CYC:300 SL:60 F85A C9 CMP #$FF PC:F85B A:FF X:33 Y:C0 P:E4 SP:F9 CYC:306 SL:60 F85C D0 BNE $F861 PC:F85D A:FF X:33 Y:C0 P:67 SP:F9 CYC:312 SL:60 F85E 50 BVC $F861 PC:F85F A:FF X:33 Y:C0 P:67 SP:F9 CYC:318 SL:60 F860 60 RTS PC:F861 A:FF X:33 Y:C0 P:67 SP:F9 CYC:324 SL:60 D678 C8 INY PC:D679 A:FF X:33 Y:C0 P:67 SP:FB CYC:1 SL:61 D679 A9 LDA #$80 PC:D67A A:FF X:33 Y:C1 P:E5 SP:FB CYC:7 SL:61 D67B 8D STA $0678 PC:D67C A:80 X:33 Y:C1 P:E5 SP:FB CYC:13 SL:61 D67E 20 JSR $F864 PC:D67F A:80 X:33 Y:C1 P:E5 SP:FB CYC:25 SL:61 F864 18 CLC PC:F865 A:80 X:33 Y:C1 P:E5 SP:F9 CYC:43 SL:61 F865 24 BIT $01 PC:F866 A:80 X:33 Y:C1 P:E4 SP:F9 CYC:49 SL:61 F867 A9 LDA #$7F PC:F868 A:80 X:33 Y:C1 P:E4 SP:F9 CYC:58 SL:61 F869 60 RTS PC:F86A A:7F X:33 Y:C1 P:64 SP:F9 CYC:64 SL:61 D681 6D ADC $0678 PC:D682 A:7F X:33 Y:C1 P:64 SP:FB CYC:82 SL:61 D684 20 JSR $F86A PC:D685 A:FF X:33 Y:C1 P:A4 SP:FB CYC:94 SL:61 F86A 10 BPL $F875 PC:F86B A:FF X:33 Y:C1 P:A4 SP:F9 CYC:112 SL:61 F86C B0 BCS $F875 PC:F86D A:FF X:33 Y:C1 P:A4 SP:F9 CYC:118 SL:61 F86E C9 CMP #$FF PC:F86F A:FF X:33 Y:C1 P:A4 SP:F9 CYC:124 SL:61 F870 D0 BNE $F875 PC:F871 A:FF X:33 Y:C1 P:27 SP:F9 CYC:130 SL:61 F872 70 BVS $F875 PC:F873 A:FF X:33 Y:C1 P:27 SP:F9 CYC:136 SL:61 F874 60 RTS PC:F875 A:FF X:33 Y:C1 P:27 SP:F9 CYC:142 SL:61 D687 C8 INY PC:D688 A:FF X:33 Y:C1 P:27 SP:FB CYC:160 SL:61 D688 20 JSR $F878 PC:D689 A:FF X:33 Y:C2 P:A5 SP:FB CYC:166 SL:61 F878 38 SEC PC:F879 A:FF X:33 Y:C2 P:A5 SP:F9 CYC:184 SL:61 F879 B8 CLV PC:F87A A:FF X:33 Y:C2 P:A5 SP:F9 CYC:190 SL:61 F87A A9 LDA #$7F PC:F87B A:FF X:33 Y:C2 P:A5 SP:F9 CYC:196 SL:61 F87C 60 RTS PC:F87D A:7F X:33 Y:C2 P:25 SP:F9 CYC:202 SL:61 D68B 6D ADC $0678 PC:D68C A:7F X:33 Y:C2 P:25 SP:FB CYC:220 SL:61 D68E 20 JSR $F87D PC:D68F A:00 X:33 Y:C2 P:27 SP:FB CYC:232 SL:61 F87D D0 BNE $F886 PC:F87E A:00 X:33 Y:C2 P:27 SP:F9 CYC:250 SL:61 F87F 30 BMI $F886 PC:F880 A:00 X:33 Y:C2 P:27 SP:F9 CYC:256 SL:61 F881 70 BVS $F886 PC:F882 A:00 X:33 Y:C2 P:27 SP:F9 CYC:262 SL:61 F883 90 BCC $F886 PC:F884 A:00 X:33 Y:C2 P:27 SP:F9 CYC:268 SL:61 F885 60 RTS PC:F886 A:00 X:33 Y:C2 P:27 SP:F9 CYC:274 SL:61 D691 C8 INY PC:D692 A:00 X:33 Y:C2 P:27 SP:FB CYC:292 SL:61 D692 A9 LDA #$40 PC:D693 A:00 X:33 Y:C3 P:A5 SP:FB CYC:298 SL:61 D694 8D STA $0678 PC:D695 A:40 X:33 Y:C3 P:25 SP:FB CYC:304 SL:61 D697 20 JSR $F889 PC:D698 A:40 X:33 Y:C3 P:25 SP:FB CYC:316 SL:61 F889 24 BIT $01 PC:F88A A:40 X:33 Y:C3 P:25 SP:F9 CYC:334 SL:61 F88B A9 LDA #$40 PC:F88C A:40 X:33 Y:C3 P:E5 SP:F9 CYC:2 SL:62 F88D 60 RTS PC:F88E A:40 X:33 Y:C3 P:65 SP:F9 CYC:8 SL:62 D69A CD CMP $0678 PC:D69B A:40 X:33 Y:C3 P:65 SP:FB CYC:26 SL:62 D69D 20 JSR $F88E PC:D69E A:40 X:33 Y:C3 P:67 SP:FB CYC:38 SL:62 F88E 30 BMI $F897 PC:F88F A:40 X:33 Y:C3 P:67 SP:F9 CYC:56 SL:62 F890 90 BCC $F897 PC:F891 A:40 X:33 Y:C3 P:67 SP:F9 CYC:62 SL:62 F892 D0 BNE $F897 PC:F893 A:40 X:33 Y:C3 P:67 SP:F9 CYC:68 SL:62 F894 50 BVC $F897 PC:F895 A:40 X:33 Y:C3 P:67 SP:F9 CYC:74 SL:62 F896 60 RTS PC:F897 A:40 X:33 Y:C3 P:67 SP:F9 CYC:80 SL:62 D6A0 C8 INY PC:D6A1 A:40 X:33 Y:C3 P:67 SP:FB CYC:98 SL:62 D6A1 48 PHA PC:D6A2 A:40 X:33 Y:C4 P:E5 SP:FB CYC:104 SL:62 D6A2 A9 LDA #$3F PC:D6A3 A:40 X:33 Y:C4 P:E5 SP:FA CYC:113 SL:62 D6A4 8D STA $0678 PC:D6A5 A:3F X:33 Y:C4 P:65 SP:FA CYC:119 SL:62 D6A7 68 PLA PC:D6A8 A:3F X:33 Y:C4 P:65 SP:FA CYC:131 SL:62 D6A8 20 JSR $F89A PC:D6A9 A:40 X:33 Y:C4 P:65 SP:FB CYC:143 SL:62 F89A B8 CLV PC:F89B A:40 X:33 Y:C4 P:65 SP:F9 CYC:161 SL:62 F89B 60 RTS PC:F89C A:40 X:33 Y:C4 P:25 SP:F9 CYC:167 SL:62 D6AB CD CMP $0678 PC:D6AC A:40 X:33 Y:C4 P:25 SP:FB CYC:185 SL:62 D6AE 20 JSR $F89C PC:D6AF A:40 X:33 Y:C4 P:25 SP:FB CYC:197 SL:62 F89C F0 BEQ $F8A5 PC:F89D A:40 X:33 Y:C4 P:25 SP:F9 CYC:215 SL:62 F89E 30 BMI $F8A5 PC:F89F A:40 X:33 Y:C4 P:25 SP:F9 CYC:221 SL:62 F8A0 90 BCC $F8A5 PC:F8A1 A:40 X:33 Y:C4 P:25 SP:F9 CYC:227 SL:62 F8A2 70 BVS $F8A5 PC:F8A3 A:40 X:33 Y:C4 P:25 SP:F9 CYC:233 SL:62 F8A4 60 RTS PC:F8A5 A:40 X:33 Y:C4 P:25 SP:F9 CYC:239 SL:62 D6B1 C8 INY PC:D6B2 A:40 X:33 Y:C4 P:25 SP:FB CYC:257 SL:62 D6B2 48 PHA PC:D6B3 A:40 X:33 Y:C5 P:A5 SP:FB CYC:263 SL:62 D6B3 A9 LDA #$41 PC:D6B4 A:40 X:33 Y:C5 P:A5 SP:FA CYC:272 SL:62 D6B5 8D STA $0678 PC:D6B6 A:41 X:33 Y:C5 P:25 SP:FA CYC:278 SL:62 D6B8 68 PLA PC:D6B9 A:41 X:33 Y:C5 P:25 SP:FA CYC:290 SL:62 D6B9 CD CMP $0678 PC:D6BA A:40 X:33 Y:C5 P:25 SP:FB CYC:302 SL:62 D6BC 20 JSR $F8A8 PC:D6BD A:40 X:33 Y:C5 P:A4 SP:FB CYC:314 SL:62 F8A8 F0 BEQ $F8AF PC:F8A9 A:40 X:33 Y:C5 P:A4 SP:F9 CYC:332 SL:62 F8AA 10 BPL $F8AF PC:F8AB A:40 X:33 Y:C5 P:A4 SP:F9 CYC:338 SL:62 F8AC 10 BPL $F8AF PC:F8AD A:40 X:33 Y:C5 P:A4 SP:F9 CYC:3 SL:63 F8AE 60 RTS PC:F8AF A:40 X:33 Y:C5 P:A4 SP:F9 CYC:9 SL:63 D6BF C8 INY PC:D6C0 A:40 X:33 Y:C5 P:A4 SP:FB CYC:27 SL:63 D6C0 48 PHA PC:D6C1 A:40 X:33 Y:C6 P:A4 SP:FB CYC:33 SL:63 D6C1 A9 LDA #$00 PC:D6C2 A:40 X:33 Y:C6 P:A4 SP:FA CYC:42 SL:63 D6C3 8D STA $0678 PC:D6C4 A:00 X:33 Y:C6 P:26 SP:FA CYC:48 SL:63 D6C6 68 PLA PC:D6C7 A:00 X:33 Y:C6 P:26 SP:FA CYC:60 SL:63 D6C7 20 JSR $F8B2 PC:D6C8 A:40 X:33 Y:C6 P:24 SP:FB CYC:72 SL:63 F8B2 A9 LDA #$80 PC:F8B3 A:40 X:33 Y:C6 P:24 SP:F9 CYC:90 SL:63 F8B4 60 RTS PC:F8B5 A:80 X:33 Y:C6 P:A4 SP:F9 CYC:96 SL:63 D6CA CD CMP $0678 PC:D6CB A:80 X:33 Y:C6 P:A4 SP:FB CYC:114 SL:63 D6CD 20 JSR $F8B5 PC:D6CE A:80 X:33 Y:C6 P:A5 SP:FB CYC:126 SL:63 F8B5 F0 BEQ $F8BC PC:F8B6 A:80 X:33 Y:C6 P:A5 SP:F9 CYC:144 SL:63 F8B7 10 BPL $F8BC PC:F8B8 A:80 X:33 Y:C6 P:A5 SP:F9 CYC:150 SL:63 F8B9 90 BCC $F8BC PC:F8BA A:80 X:33 Y:C6 P:A5 SP:F9 CYC:156 SL:63 F8BB 60 RTS PC:F8BC A:80 X:33 Y:C6 P:A5 SP:F9 CYC:162 SL:63 D6D0 C8 INY PC:D6D1 A:80 X:33 Y:C6 P:A5 SP:FB CYC:180 SL:63 D6D1 48 PHA PC:D6D2 A:80 X:33 Y:C7 P:A5 SP:FB CYC:186 SL:63 D6D2 A9 LDA #$80 PC:D6D3 A:80 X:33 Y:C7 P:A5 SP:FA CYC:195 SL:63 D6D4 8D STA $0678 PC:D6D5 A:80 X:33 Y:C7 P:A5 SP:FA CYC:201 SL:63 D6D7 68 PLA PC:D6D8 A:80 X:33 Y:C7 P:A5 SP:FA CYC:213 SL:63 D6D8 CD CMP $0678 PC:D6D9 A:80 X:33 Y:C7 P:A5 SP:FB CYC:225 SL:63 D6DB 20 JSR $F8BF PC:D6DC A:80 X:33 Y:C7 P:27 SP:FB CYC:237 SL:63 F8BF D0 BNE $F8C6 PC:F8C0 A:80 X:33 Y:C7 P:27 SP:F9 CYC:255 SL:63 F8C1 30 BMI $F8C6 PC:F8C2 A:80 X:33 Y:C7 P:27 SP:F9 CYC:261 SL:63 F8C3 90 BCC $F8C6 PC:F8C4 A:80 X:33 Y:C7 P:27 SP:F9 CYC:267 SL:63 F8C5 60 RTS PC:F8C6 A:80 X:33 Y:C7 P:27 SP:F9 CYC:273 SL:63 D6DE C8 INY PC:D6DF A:80 X:33 Y:C7 P:27 SP:FB CYC:291 SL:63 D6DF 48 PHA PC:D6E0 A:80 X:33 Y:C8 P:A5 SP:FB CYC:297 SL:63 D6E0 A9 LDA #$81 PC:D6E1 A:80 X:33 Y:C8 P:A5 SP:FA CYC:306 SL:63 D6E2 8D STA $0678 PC:D6E3 A:81 X:33 Y:C8 P:A5 SP:FA CYC:312 SL:63 D6E5 68 PLA PC:D6E6 A:81 X:33 Y:C8 P:A5 SP:FA CYC:324 SL:63 D6E6 CD CMP $0678 PC:D6E7 A:80 X:33 Y:C8 P:A5 SP:FB CYC:336 SL:63 D6E9 20 JSR $F8C9 PC:D6EA A:80 X:33 Y:C8 P:A4 SP:FB CYC:7 SL:64 F8C9 B0 BCS $F8D0 PC:F8CA A:80 X:33 Y:C8 P:A4 SP:F9 CYC:25 SL:64 F8CB F0 BEQ $F8D0 PC:F8CC A:80 X:33 Y:C8 P:A4 SP:F9 CYC:31 SL:64 F8CD 10 BPL $F8D0 PC:F8CE A:80 X:33 Y:C8 P:A4 SP:F9 CYC:37 SL:64 F8CF 60 RTS PC:F8D0 A:80 X:33 Y:C8 P:A4 SP:F9 CYC:43 SL:64 D6EC C8 INY PC:D6ED A:80 X:33 Y:C8 P:A4 SP:FB CYC:61 SL:64 D6ED 48 PHA PC:D6EE A:80 X:33 Y:C9 P:A4 SP:FB CYC:67 SL:64 D6EE A9 LDA #$7F PC:D6EF A:80 X:33 Y:C9 P:A4 SP:FA CYC:76 SL:64 D6F0 8D STA $0678 PC:D6F1 A:7F X:33 Y:C9 P:24 SP:FA CYC:82 SL:64 D6F3 68 PLA PC:D6F4 A:7F X:33 Y:C9 P:24 SP:FA CYC:94 SL:64 D6F4 CD CMP $0678 PC:D6F5 A:80 X:33 Y:C9 P:A4 SP:FB CYC:106 SL:64 D6F7 20 JSR $F8D3 PC:D6F8 A:80 X:33 Y:C9 P:25 SP:FB CYC:118 SL:64 F8D3 90 BCC $F8DA PC:F8D4 A:80 X:33 Y:C9 P:25 SP:F9 CYC:136 SL:64 F8D5 F0 BEQ $F8DA PC:F8D6 A:80 X:33 Y:C9 P:25 SP:F9 CYC:142 SL:64 F8D7 30 BMI $F8DA PC:F8D8 A:80 X:33 Y:C9 P:25 SP:F9 CYC:148 SL:64 F8D9 60 RTS PC:F8DA A:80 X:33 Y:C9 P:25 SP:F9 CYC:154 SL:64 D6FA C8 INY PC:D6FB A:80 X:33 Y:C9 P:25 SP:FB CYC:172 SL:64 D6FB A9 LDA #$40 PC:D6FC A:80 X:33 Y:CA P:A5 SP:FB CYC:178 SL:64 D6FD 8D STA $0678 PC:D6FE A:40 X:33 Y:CA P:25 SP:FB CYC:184 SL:64 D700 20 JSR $F931 PC:D701 A:40 X:33 Y:CA P:25 SP:FB CYC:196 SL:64 F931 24 BIT $01 PC:F932 A:40 X:33 Y:CA P:25 SP:F9 CYC:214 SL:64 F933 A9 LDA #$40 PC:F934 A:40 X:33 Y:CA P:E5 SP:F9 CYC:223 SL:64 F935 38 SEC PC:F936 A:40 X:33 Y:CA P:65 SP:F9 CYC:229 SL:64 F936 60 RTS PC:F937 A:40 X:33 Y:CA P:65 SP:F9 CYC:235 SL:64 D703 ED SBC $0678 PC:D704 A:40 X:33 Y:CA P:65 SP:FB CYC:253 SL:64 D706 20 JSR $F937 PC:D707 A:00 X:33 Y:CA P:27 SP:FB CYC:265 SL:64 F937 30 BMI $F944 PC:F938 A:00 X:33 Y:CA P:27 SP:F9 CYC:283 SL:64 F939 90 BCC $F944 PC:F93A A:00 X:33 Y:CA P:27 SP:F9 CYC:289 SL:64 F93B D0 BNE $F944 PC:F93C A:00 X:33 Y:CA P:27 SP:F9 CYC:295 SL:64 F93D 70 BVS $F944 PC:F93E A:00 X:33 Y:CA P:27 SP:F9 CYC:301 SL:64 F93F C9 CMP #$00 PC:F940 A:00 X:33 Y:CA P:27 SP:F9 CYC:307 SL:64 F941 D0 BNE $F944 PC:F942 A:00 X:33 Y:CA P:27 SP:F9 CYC:313 SL:64 F943 60 RTS PC:F944 A:00 X:33 Y:CA P:27 SP:F9 CYC:319 SL:64 D709 C8 INY PC:D70A A:00 X:33 Y:CA P:27 SP:FB CYC:337 SL:64 D70A A9 LDA #$3F PC:D70B A:00 X:33 Y:CB P:A5 SP:FB CYC:2 SL:65 D70C 8D STA $0678 PC:D70D A:3F X:33 Y:CB P:25 SP:FB CYC:8 SL:65 D70F 20 JSR $F947 PC:D710 A:3F X:33 Y:CB P:25 SP:FB CYC:20 SL:65 F947 B8 CLV PC:F948 A:3F X:33 Y:CB P:25 SP:F9 CYC:38 SL:65 F948 38 SEC PC:F949 A:3F X:33 Y:CB P:25 SP:F9 CYC:44 SL:65 F949 A9 LDA #$40 PC:F94A A:3F X:33 Y:CB P:25 SP:F9 CYC:50 SL:65 F94B 60 RTS PC:F94C A:40 X:33 Y:CB P:25 SP:F9 CYC:56 SL:65 D712 ED SBC $0678 PC:D713 A:40 X:33 Y:CB P:25 SP:FB CYC:74 SL:65 D715 20 JSR $F94C PC:D716 A:01 X:33 Y:CB P:25 SP:FB CYC:86 SL:65 F94C F0 BEQ $F959 PC:F94D A:01 X:33 Y:CB P:25 SP:F9 CYC:104 SL:65 F94E 30 BMI $F959 PC:F94F A:01 X:33 Y:CB P:25 SP:F9 CYC:110 SL:65 F950 90 BCC $F959 PC:F951 A:01 X:33 Y:CB P:25 SP:F9 CYC:116 SL:65 F952 70 BVS $F959 PC:F953 A:01 X:33 Y:CB P:25 SP:F9 CYC:122 SL:65 F954 C9 CMP #$01 PC:F955 A:01 X:33 Y:CB P:25 SP:F9 CYC:128 SL:65 F956 D0 BNE $F959 PC:F957 A:01 X:33 Y:CB P:27 SP:F9 CYC:134 SL:65 F958 60 RTS PC:F959 A:01 X:33 Y:CB P:27 SP:F9 CYC:140 SL:65 D718 C8 INY PC:D719 A:01 X:33 Y:CB P:27 SP:FB CYC:158 SL:65 D719 A9 LDA #$41 PC:D71A A:01 X:33 Y:CC P:A5 SP:FB CYC:164 SL:65 D71B 8D STA $0678 PC:D71C A:41 X:33 Y:CC P:25 SP:FB CYC:170 SL:65 D71E 20 JSR $F95C PC:D71F A:41 X:33 Y:CC P:25 SP:FB CYC:182 SL:65 F95C A9 LDA #$40 PC:F95D A:41 X:33 Y:CC P:25 SP:F9 CYC:200 SL:65 F95E 38 SEC PC:F95F A:40 X:33 Y:CC P:25 SP:F9 CYC:206 SL:65 F95F 24 BIT $01 PC:F960 A:40 X:33 Y:CC P:25 SP:F9 CYC:212 SL:65 F961 60 RTS PC:F962 A:40 X:33 Y:CC P:E5 SP:F9 CYC:221 SL:65 D721 ED SBC $0678 PC:D722 A:40 X:33 Y:CC P:E5 SP:FB CYC:239 SL:65 D724 20 JSR $F962 PC:D725 A:FF X:33 Y:CC P:A4 SP:FB CYC:251 SL:65 F962 B0 BCS $F96F PC:F963 A:FF X:33 Y:CC P:A4 SP:F9 CYC:269 SL:65 F964 F0 BEQ $F96F PC:F965 A:FF X:33 Y:CC P:A4 SP:F9 CYC:275 SL:65 F966 10 BPL $F96F PC:F967 A:FF X:33 Y:CC P:A4 SP:F9 CYC:281 SL:65 F968 70 BVS $F96F PC:F969 A:FF X:33 Y:CC P:A4 SP:F9 CYC:287 SL:65 F96A C9 CMP #$FF PC:F96B A:FF X:33 Y:CC P:A4 SP:F9 CYC:293 SL:65 F96C D0 BNE $F96F PC:F96D A:FF X:33 Y:CC P:27 SP:F9 CYC:299 SL:65 F96E 60 RTS PC:F96F A:FF X:33 Y:CC P:27 SP:F9 CYC:305 SL:65 D727 C8 INY PC:D728 A:FF X:33 Y:CC P:27 SP:FB CYC:323 SL:65 D728 A9 LDA #$00 PC:D729 A:FF X:33 Y:CD P:A5 SP:FB CYC:329 SL:65 D72A 8D STA $0678 PC:D72B A:00 X:33 Y:CD P:27 SP:FB CYC:335 SL:65 D72D 20 JSR $F972 PC:D72E A:00 X:33 Y:CD P:27 SP:FB CYC:6 SL:66 F972 18 CLC PC:F973 A:00 X:33 Y:CD P:27 SP:F9 CYC:24 SL:66 F973 A9 LDA #$80 PC:F974 A:00 X:33 Y:CD P:26 SP:F9 CYC:30 SL:66 F975 60 RTS PC:F976 A:80 X:33 Y:CD P:A4 SP:F9 CYC:36 SL:66 D730 ED SBC $0678 PC:D731 A:80 X:33 Y:CD P:A4 SP:FB CYC:54 SL:66 D733 20 JSR $F976 PC:D734 A:7F X:33 Y:CD P:65 SP:FB CYC:66 SL:66 F976 90 BCC $F97D PC:F977 A:7F X:33 Y:CD P:65 SP:F9 CYC:84 SL:66 F978 C9 CMP #$7F PC:F979 A:7F X:33 Y:CD P:65 SP:F9 CYC:90 SL:66 F97A D0 BNE $F97D PC:F97B A:7F X:33 Y:CD P:67 SP:F9 CYC:96 SL:66 F97C 60 RTS PC:F97D A:7F X:33 Y:CD P:67 SP:F9 CYC:102 SL:66 D736 C8 INY PC:D737 A:7F X:33 Y:CD P:67 SP:FB CYC:120 SL:66 D737 A9 LDA #$7F PC:D738 A:7F X:33 Y:CE P:E5 SP:FB CYC:126 SL:66 D739 8D STA $0678 PC:D73A A:7F X:33 Y:CE P:65 SP:FB CYC:132 SL:66 D73C 20 JSR $F980 PC:D73D A:7F X:33 Y:CE P:65 SP:FB CYC:144 SL:66 F980 38 SEC PC:F981 A:7F X:33 Y:CE P:65 SP:F9 CYC:162 SL:66 F981 A9 LDA #$81 PC:F982 A:7F X:33 Y:CE P:65 SP:F9 CYC:168 SL:66 F983 60 RTS PC:F984 A:81 X:33 Y:CE P:E5 SP:F9 CYC:174 SL:66 D73F ED SBC $0678 PC:D740 A:81 X:33 Y:CE P:E5 SP:FB CYC:192 SL:66 D742 20 JSR $F984 PC:D743 A:02 X:33 Y:CE P:65 SP:FB CYC:204 SL:66 F984 50 BVC $F98D PC:F985 A:02 X:33 Y:CE P:65 SP:F9 CYC:222 SL:66 F986 90 BCC $F98D PC:F987 A:02 X:33 Y:CE P:65 SP:F9 CYC:228 SL:66 F988 C9 CMP #$02 PC:F989 A:02 X:33 Y:CE P:65 SP:F9 CYC:234 SL:66 F98A D0 BNE $F98D PC:F98B A:02 X:33 Y:CE P:67 SP:F9 CYC:240 SL:66 F98C 60 RTS PC:F98D A:02 X:33 Y:CE P:67 SP:F9 CYC:246 SL:66 D745 C8 INY PC:D746 A:02 X:33 Y:CE P:67 SP:FB CYC:264 SL:66 D746 A9 LDA #$40 PC:D747 A:02 X:33 Y:CF P:E5 SP:FB CYC:270 SL:66 D748 8D STA $0678 PC:D749 A:40 X:33 Y:CF P:65 SP:FB CYC:276 SL:66 D74B 20 JSR $F889 PC:D74C A:40 X:33 Y:CF P:65 SP:FB CYC:288 SL:66 F889 24 BIT $01 PC:F88A A:40 X:33 Y:CF P:65 SP:F9 CYC:306 SL:66 F88B A9 LDA #$40 PC:F88C A:40 X:33 Y:CF P:E5 SP:F9 CYC:315 SL:66 F88D 60 RTS PC:F88E A:40 X:33 Y:CF P:65 SP:F9 CYC:321 SL:66 D74E AA TAX PC:D74F A:40 X:33 Y:CF P:65 SP:FB CYC:339 SL:66 D74F EC CPX $0678 PC:D750 A:40 X:40 Y:CF P:65 SP:FB CYC:4 SL:67 D752 20 JSR $F88E PC:D753 A:40 X:40 Y:CF P:67 SP:FB CYC:16 SL:67 F88E 30 BMI $F897 PC:F88F A:40 X:40 Y:CF P:67 SP:F9 CYC:34 SL:67 F890 90 BCC $F897 PC:F891 A:40 X:40 Y:CF P:67 SP:F9 CYC:40 SL:67 F892 D0 BNE $F897 PC:F893 A:40 X:40 Y:CF P:67 SP:F9 CYC:46 SL:67 F894 50 BVC $F897 PC:F895 A:40 X:40 Y:CF P:67 SP:F9 CYC:52 SL:67 F896 60 RTS PC:F897 A:40 X:40 Y:CF P:67 SP:F9 CYC:58 SL:67 D755 C8 INY PC:D756 A:40 X:40 Y:CF P:67 SP:FB CYC:76 SL:67 D756 A9 LDA #$3F PC:D757 A:40 X:40 Y:D0 P:E5 SP:FB CYC:82 SL:67 D758 8D STA $0678 PC:D759 A:3F X:40 Y:D0 P:65 SP:FB CYC:88 SL:67 D75B 20 JSR $F89A PC:D75C A:3F X:40 Y:D0 P:65 SP:FB CYC:100 SL:67 F89A B8 CLV PC:F89B A:3F X:40 Y:D0 P:65 SP:F9 CYC:118 SL:67 F89B 60 RTS PC:F89C A:3F X:40 Y:D0 P:25 SP:F9 CYC:124 SL:67 D75E EC CPX $0678 PC:D75F A:3F X:40 Y:D0 P:25 SP:FB CYC:142 SL:67 D761 20 JSR $F89C PC:D762 A:3F X:40 Y:D0 P:25 SP:FB CYC:154 SL:67 F89C F0 BEQ $F8A5 PC:F89D A:3F X:40 Y:D0 P:25 SP:F9 CYC:172 SL:67 F89E 30 BMI $F8A5 PC:F89F A:3F X:40 Y:D0 P:25 SP:F9 CYC:178 SL:67 F8A0 90 BCC $F8A5 PC:F8A1 A:3F X:40 Y:D0 P:25 SP:F9 CYC:184 SL:67 F8A2 70 BVS $F8A5 PC:F8A3 A:3F X:40 Y:D0 P:25 SP:F9 CYC:190 SL:67 F8A4 60 RTS PC:F8A5 A:3F X:40 Y:D0 P:25 SP:F9 CYC:196 SL:67 D764 C8 INY PC:D765 A:3F X:40 Y:D0 P:25 SP:FB CYC:214 SL:67 D765 A9 LDA #$41 PC:D766 A:3F X:40 Y:D1 P:A5 SP:FB CYC:220 SL:67 D767 8D STA $0678 PC:D768 A:41 X:40 Y:D1 P:25 SP:FB CYC:226 SL:67 D76A EC CPX $0678 PC:D76B A:41 X:40 Y:D1 P:25 SP:FB CYC:238 SL:67 D76D 20 JSR $F8A8 PC:D76E A:41 X:40 Y:D1 P:A4 SP:FB CYC:250 SL:67 F8A8 F0 BEQ $F8AF PC:F8A9 A:41 X:40 Y:D1 P:A4 SP:F9 CYC:268 SL:67 F8AA 10 BPL $F8AF PC:F8AB A:41 X:40 Y:D1 P:A4 SP:F9 CYC:274 SL:67 F8AC 10 BPL $F8AF PC:F8AD A:41 X:40 Y:D1 P:A4 SP:F9 CYC:280 SL:67 F8AE 60 RTS PC:F8AF A:41 X:40 Y:D1 P:A4 SP:F9 CYC:286 SL:67 D770 C8 INY PC:D771 A:41 X:40 Y:D1 P:A4 SP:FB CYC:304 SL:67 D771 A9 LDA #$00 PC:D772 A:41 X:40 Y:D2 P:A4 SP:FB CYC:310 SL:67 D773 8D STA $0678 PC:D774 A:00 X:40 Y:D2 P:26 SP:FB CYC:316 SL:67 D776 20 JSR $F8B2 PC:D777 A:00 X:40 Y:D2 P:26 SP:FB CYC:328 SL:67 F8B2 A9 LDA #$80 PC:F8B3 A:00 X:40 Y:D2 P:26 SP:F9 CYC:5 SL:68 F8B4 60 RTS PC:F8B5 A:80 X:40 Y:D2 P:A4 SP:F9 CYC:11 SL:68 D779 AA TAX PC:D77A A:80 X:40 Y:D2 P:A4 SP:FB CYC:29 SL:68 D77A EC CPX $0678 PC:D77B A:80 X:80 Y:D2 P:A4 SP:FB CYC:35 SL:68 D77D 20 JSR $F8B5 PC:D77E A:80 X:80 Y:D2 P:A5 SP:FB CYC:47 SL:68 F8B5 F0 BEQ $F8BC PC:F8B6 A:80 X:80 Y:D2 P:A5 SP:F9 CYC:65 SL:68 F8B7 10 BPL $F8BC PC:F8B8 A:80 X:80 Y:D2 P:A5 SP:F9 CYC:71 SL:68 F8B9 90 BCC $F8BC PC:F8BA A:80 X:80 Y:D2 P:A5 SP:F9 CYC:77 SL:68 F8BB 60 RTS PC:F8BC A:80 X:80 Y:D2 P:A5 SP:F9 CYC:83 SL:68 D780 C8 INY PC:D781 A:80 X:80 Y:D2 P:A5 SP:FB CYC:101 SL:68 D781 A9 LDA #$80 PC:D782 A:80 X:80 Y:D3 P:A5 SP:FB CYC:107 SL:68 D783 8D STA $0678 PC:D784 A:80 X:80 Y:D3 P:A5 SP:FB CYC:113 SL:68 D786 EC CPX $0678 PC:D787 A:80 X:80 Y:D3 P:A5 SP:FB CYC:125 SL:68 D789 20 JSR $F8BF PC:D78A A:80 X:80 Y:D3 P:27 SP:FB CYC:137 SL:68 F8BF D0 BNE $F8C6 PC:F8C0 A:80 X:80 Y:D3 P:27 SP:F9 CYC:155 SL:68 F8C1 30 BMI $F8C6 PC:F8C2 A:80 X:80 Y:D3 P:27 SP:F9 CYC:161 SL:68 F8C3 90 BCC $F8C6 PC:F8C4 A:80 X:80 Y:D3 P:27 SP:F9 CYC:167 SL:68 F8C5 60 RTS PC:F8C6 A:80 X:80 Y:D3 P:27 SP:F9 CYC:173 SL:68 D78C C8 INY PC:D78D A:80 X:80 Y:D3 P:27 SP:FB CYC:191 SL:68 D78D A9 LDA #$81 PC:D78E A:80 X:80 Y:D4 P:A5 SP:FB CYC:197 SL:68 D78F 8D STA $0678 PC:D790 A:81 X:80 Y:D4 P:A5 SP:FB CYC:203 SL:68 D792 EC CPX $0678 PC:D793 A:81 X:80 Y:D4 P:A5 SP:FB CYC:215 SL:68 D795 20 JSR $F8C9 PC:D796 A:81 X:80 Y:D4 P:A4 SP:FB CYC:227 SL:68 F8C9 B0 BCS $F8D0 PC:F8CA A:81 X:80 Y:D4 P:A4 SP:F9 CYC:245 SL:68 F8CB F0 BEQ $F8D0 PC:F8CC A:81 X:80 Y:D4 P:A4 SP:F9 CYC:251 SL:68 F8CD 10 BPL $F8D0 PC:F8CE A:81 X:80 Y:D4 P:A4 SP:F9 CYC:257 SL:68 F8CF 60 RTS PC:F8D0 A:81 X:80 Y:D4 P:A4 SP:F9 CYC:263 SL:68 D798 C8 INY PC:D799 A:81 X:80 Y:D4 P:A4 SP:FB CYC:281 SL:68 D799 A9 LDA #$7F PC:D79A A:81 X:80 Y:D5 P:A4 SP:FB CYC:287 SL:68 D79B 8D STA $0678 PC:D79C A:7F X:80 Y:D5 P:24 SP:FB CYC:293 SL:68 D79E EC CPX $0678 PC:D79F A:7F X:80 Y:D5 P:24 SP:FB CYC:305 SL:68 D7A1 20 JSR $F8D3 PC:D7A2 A:7F X:80 Y:D5 P:25 SP:FB CYC:317 SL:68 F8D3 90 BCC $F8DA PC:F8D4 A:7F X:80 Y:D5 P:25 SP:F9 CYC:335 SL:68 F8D5 F0 BEQ $F8DA PC:F8D6 A:7F X:80 Y:D5 P:25 SP:F9 CYC:0 SL:69 F8D7 30 BMI $F8DA PC:F8D8 A:7F X:80 Y:D5 P:25 SP:F9 CYC:6 SL:69 F8D9 60 RTS PC:F8DA A:7F X:80 Y:D5 P:25 SP:F9 CYC:12 SL:69 D7A4 C8 INY PC:D7A5 A:7F X:80 Y:D5 P:25 SP:FB CYC:30 SL:69 D7A5 98 TYA PC:D7A6 A:7F X:80 Y:D6 P:A5 SP:FB CYC:36 SL:69 D7A6 AA TAX PC:D7A7 A:D6 X:80 Y:D6 P:A5 SP:FB CYC:42 SL:69 D7A7 A9 LDA #$40 PC:D7A8 A:D6 X:D6 Y:D6 P:A5 SP:FB CYC:48 SL:69 D7A9 8D STA $0678 PC:D7AA A:40 X:D6 Y:D6 P:25 SP:FB CYC:54 SL:69 D7AC 20 JSR $F8DD PC:D7AD A:40 X:D6 Y:D6 P:25 SP:FB CYC:66 SL:69 F8DD 24 BIT $01 PC:F8DE A:40 X:D6 Y:D6 P:25 SP:F9 CYC:84 SL:69 F8DF A0 LDY #$40 PC:F8E0 A:40 X:D6 Y:D6 P:E5 SP:F9 CYC:93 SL:69 F8E1 60 RTS PC:F8E2 A:40 X:D6 Y:40 P:65 SP:F9 CYC:99 SL:69 D7AF CC CPY $0678 PC:D7B0 A:40 X:D6 Y:40 P:65 SP:FB CYC:117 SL:69 D7B2 20 JSR $F8E2 PC:D7B3 A:40 X:D6 Y:40 P:67 SP:FB CYC:129 SL:69 F8E2 30 BMI $F8EB PC:F8E3 A:40 X:D6 Y:40 P:67 SP:F9 CYC:147 SL:69 F8E4 90 BCC $F8EB PC:F8E5 A:40 X:D6 Y:40 P:67 SP:F9 CYC:153 SL:69 F8E6 D0 BNE $F8EB PC:F8E7 A:40 X:D6 Y:40 P:67 SP:F9 CYC:159 SL:69 F8E8 50 BVC $F8EB PC:F8E9 A:40 X:D6 Y:40 P:67 SP:F9 CYC:165 SL:69 F8EA 60 RTS PC:F8EB A:40 X:D6 Y:40 P:67 SP:F9 CYC:171 SL:69 D7B5 E8 INX PC:D7B6 A:40 X:D6 Y:40 P:67 SP:FB CYC:189 SL:69 D7B6 A9 LDA #$3F PC:D7B7 A:40 X:D7 Y:40 P:E5 SP:FB CYC:195 SL:69 D7B8 8D STA $0678 PC:D7B9 A:3F X:D7 Y:40 P:65 SP:FB CYC:201 SL:69 D7BB 20 JSR $F8EE PC:D7BC A:3F X:D7 Y:40 P:65 SP:FB CYC:213 SL:69 F8EE B8 CLV PC:F8EF A:3F X:D7 Y:40 P:65 SP:F9 CYC:231 SL:69 F8EF 60 RTS PC:F8F0 A:3F X:D7 Y:40 P:25 SP:F9 CYC:237 SL:69 D7BE CC CPY $0678 PC:D7BF A:3F X:D7 Y:40 P:25 SP:FB CYC:255 SL:69 D7C1 20 JSR $F8F0 PC:D7C2 A:3F X:D7 Y:40 P:25 SP:FB CYC:267 SL:69 F8F0 F0 BEQ $F8F9 PC:F8F1 A:3F X:D7 Y:40 P:25 SP:F9 CYC:285 SL:69 F8F2 30 BMI $F8F9 PC:F8F3 A:3F X:D7 Y:40 P:25 SP:F9 CYC:291 SL:69 F8F4 90 BCC $F8F9 PC:F8F5 A:3F X:D7 Y:40 P:25 SP:F9 CYC:297 SL:69 F8F6 70 BVS $F8F9 PC:F8F7 A:3F X:D7 Y:40 P:25 SP:F9 CYC:303 SL:69 F8F8 60 RTS PC:F8F9 A:3F X:D7 Y:40 P:25 SP:F9 CYC:309 SL:69 D7C4 E8 INX PC:D7C5 A:3F X:D7 Y:40 P:25 SP:FB CYC:327 SL:69 D7C5 A9 LDA #$41 PC:D7C6 A:3F X:D8 Y:40 P:A5 SP:FB CYC:333 SL:69 D7C7 8D STA $0678 PC:D7C8 A:41 X:D8 Y:40 P:25 SP:FB CYC:339 SL:69 D7CA CC CPY $0678 PC:D7CB A:41 X:D8 Y:40 P:25 SP:FB CYC:10 SL:70 D7CD 20 JSR $F8FC PC:D7CE A:41 X:D8 Y:40 P:A4 SP:FB CYC:22 SL:70 F8FC F0 BEQ $F903 PC:F8FD A:41 X:D8 Y:40 P:A4 SP:F9 CYC:40 SL:70 F8FE 10 BPL $F903 PC:F8FF A:41 X:D8 Y:40 P:A4 SP:F9 CYC:46 SL:70 F900 10 BPL $F903 PC:F901 A:41 X:D8 Y:40 P:A4 SP:F9 CYC:52 SL:70 F902 60 RTS PC:F903 A:41 X:D8 Y:40 P:A4 SP:F9 CYC:58 SL:70 D7D0 E8 INX PC:D7D1 A:41 X:D8 Y:40 P:A4 SP:FB CYC:76 SL:70 D7D1 A9 LDA #$00 PC:D7D2 A:41 X:D9 Y:40 P:A4 SP:FB CYC:82 SL:70 D7D3 8D STA $0678 PC:D7D4 A:00 X:D9 Y:40 P:26 SP:FB CYC:88 SL:70 D7D6 20 JSR $F906 PC:D7D7 A:00 X:D9 Y:40 P:26 SP:FB CYC:100 SL:70 F906 A0 LDY #$80 PC:F907 A:00 X:D9 Y:40 P:26 SP:F9 CYC:118 SL:70 F908 60 RTS PC:F909 A:00 X:D9 Y:80 P:A4 SP:F9 CYC:124 SL:70 D7D9 CC CPY $0678 PC:D7DA A:00 X:D9 Y:80 P:A4 SP:FB CYC:142 SL:70 D7DC 20 JSR $F909 PC:D7DD A:00 X:D9 Y:80 P:A5 SP:FB CYC:154 SL:70 F909 F0 BEQ $F910 PC:F90A A:00 X:D9 Y:80 P:A5 SP:F9 CYC:172 SL:70 F90B 10 BPL $F910 PC:F90C A:00 X:D9 Y:80 P:A5 SP:F9 CYC:178 SL:70 F90D 90 BCC $F910 PC:F90E A:00 X:D9 Y:80 P:A5 SP:F9 CYC:184 SL:70 F90F 60 RTS PC:F910 A:00 X:D9 Y:80 P:A5 SP:F9 CYC:190 SL:70 D7DF E8 INX PC:D7E0 A:00 X:D9 Y:80 P:A5 SP:FB CYC:208 SL:70 D7E0 A9 LDA #$80 PC:D7E1 A:00 X:DA Y:80 P:A5 SP:FB CYC:214 SL:70 D7E2 8D STA $0678 PC:D7E3 A:80 X:DA Y:80 P:A5 SP:FB CYC:220 SL:70 D7E5 CC CPY $0678 PC:D7E6 A:80 X:DA Y:80 P:A5 SP:FB CYC:232 SL:70 D7E8 20 JSR $F913 PC:D7E9 A:80 X:DA Y:80 P:27 SP:FB CYC:244 SL:70 F913 D0 BNE $F91A PC:F914 A:80 X:DA Y:80 P:27 SP:F9 CYC:262 SL:70 F915 30 BMI $F91A PC:F916 A:80 X:DA Y:80 P:27 SP:F9 CYC:268 SL:70 F917 90 BCC $F91A PC:F918 A:80 X:DA Y:80 P:27 SP:F9 CYC:274 SL:70 F919 60 RTS PC:F91A A:80 X:DA Y:80 P:27 SP:F9 CYC:280 SL:70 D7EB E8 INX PC:D7EC A:80 X:DA Y:80 P:27 SP:FB CYC:298 SL:70 D7EC A9 LDA #$81 PC:D7ED A:80 X:DB Y:80 P:A5 SP:FB CYC:304 SL:70 D7EE 8D STA $0678 PC:D7EF A:81 X:DB Y:80 P:A5 SP:FB CYC:310 SL:70 D7F1 CC CPY $0678 PC:D7F2 A:81 X:DB Y:80 P:A5 SP:FB CYC:322 SL:70 D7F4 20 JSR $F91D PC:D7F5 A:81 X:DB Y:80 P:A4 SP:FB CYC:334 SL:70 F91D B0 BCS $F924 PC:F91E A:81 X:DB Y:80 P:A4 SP:F9 CYC:11 SL:71 F91F F0 BEQ $F924 PC:F920 A:81 X:DB Y:80 P:A4 SP:F9 CYC:17 SL:71 F921 10 BPL $F924 PC:F922 A:81 X:DB Y:80 P:A4 SP:F9 CYC:23 SL:71 F923 60 RTS PC:F924 A:81 X:DB Y:80 P:A4 SP:F9 CYC:29 SL:71 D7F7 E8 INX PC:D7F8 A:81 X:DB Y:80 P:A4 SP:FB CYC:47 SL:71 D7F8 A9 LDA #$7F PC:D7F9 A:81 X:DC Y:80 P:A4 SP:FB CYC:53 SL:71 D7FA 8D STA $0678 PC:D7FB A:7F X:DC Y:80 P:24 SP:FB CYC:59 SL:71 D7FD CC CPY $0678 PC:D7FE A:7F X:DC Y:80 P:24 SP:FB CYC:71 SL:71 D800 20 JSR $F927 PC:D801 A:7F X:DC Y:80 P:25 SP:FB CYC:83 SL:71 F927 90 BCC $F92E PC:F928 A:7F X:DC Y:80 P:25 SP:F9 CYC:101 SL:71 F929 F0 BEQ $F92E PC:F92A A:7F X:DC Y:80 P:25 SP:F9 CYC:107 SL:71 F92B 30 BMI $F92E PC:F92C A:7F X:DC Y:80 P:25 SP:F9 CYC:113 SL:71 F92D 60 RTS PC:F92E A:7F X:DC Y:80 P:25 SP:F9 CYC:119 SL:71 D803 E8 INX PC:D804 A:7F X:DC Y:80 P:25 SP:FB CYC:137 SL:71 D804 8A TXA PC:D805 A:7F X:DD Y:80 P:A5 SP:FB CYC:143 SL:71 D805 A8 TAY PC:D806 A:DD X:DD Y:80 P:A5 SP:FB CYC:149 SL:71 D806 20 JSR $F990 PC:D807 A:DD X:DD Y:DD P:A5 SP:FB CYC:155 SL:71 F990 A2 LDX #$55 PC:F991 A:DD X:DD Y:DD P:A5 SP:F9 CYC:173 SL:71 F992 A9 LDA #$FF PC:F993 A:DD X:55 Y:DD P:25 SP:F9 CYC:179 SL:71 F994 85 STA $01 PC:F995 A:FF X:55 Y:DD P:A5 SP:F9 CYC:185 SL:71 F996 EA NOP PC:F997 A:FF X:55 Y:DD P:A5 SP:F9 CYC:194 SL:71 F997 24 BIT $01 PC:F998 A:FF X:55 Y:DD P:A5 SP:F9 CYC:200 SL:71 F999 38 SEC PC:F99A A:FF X:55 Y:DD P:E5 SP:F9 CYC:209 SL:71 F99A A9 LDA #$01 PC:F99B A:FF X:55 Y:DD P:E5 SP:F9 CYC:215 SL:71 F99C 60 RTS PC:F99D A:01 X:55 Y:DD P:65 SP:F9 CYC:221 SL:71 D809 8D STA $0678 PC:D80A A:01 X:55 Y:DD P:65 SP:FB CYC:239 SL:71 D80C 4E LSR $0678 PC:D80D A:01 X:55 Y:DD P:65 SP:FB CYC:251 SL:71 D80F AD LDA $0678 PC:D810 A:01 X:55 Y:DD P:67 SP:FB CYC:269 SL:71 D812 20 JSR $F99D PC:D813 A:00 X:55 Y:DD P:67 SP:FB CYC:281 SL:71 F99D 90 BCC $F9BA PC:F99E A:00 X:55 Y:DD P:67 SP:F9 CYC:299 SL:71 F99F D0 BNE $F9BA PC:F9A0 A:00 X:55 Y:DD P:67 SP:F9 CYC:305 SL:71 F9A1 30 BMI $F9BA PC:F9A2 A:00 X:55 Y:DD P:67 SP:F9 CYC:311 SL:71 F9A3 50 BVC $F9BA PC:F9A4 A:00 X:55 Y:DD P:67 SP:F9 CYC:317 SL:71 F9A5 C9 CMP #$00 PC:F9A6 A:00 X:55 Y:DD P:67 SP:F9 CYC:323 SL:71 F9A7 D0 BNE $F9BA PC:F9A8 A:00 X:55 Y:DD P:67 SP:F9 CYC:329 SL:71 F9A9 B8 CLV PC:F9AA A:00 X:55 Y:DD P:67 SP:F9 CYC:335 SL:71 F9AA A9 LDA #$AA PC:F9AB A:00 X:55 Y:DD P:27 SP:F9 CYC:0 SL:72 F9AC 60 RTS PC:F9AD A:AA X:55 Y:DD P:A5 SP:F9 CYC:6 SL:72 D815 C8 INY PC:D816 A:AA X:55 Y:DD P:A5 SP:FB CYC:24 SL:72 D816 8D STA $0678 PC:D817 A:AA X:55 Y:DE P:A5 SP:FB CYC:30 SL:72 D819 4E LSR $0678 PC:D81A A:AA X:55 Y:DE P:A5 SP:FB CYC:42 SL:72 D81C AD LDA $0678 PC:D81D A:AA X:55 Y:DE P:24 SP:FB CYC:60 SL:72 D81F 20 JSR $F9AD PC:D820 A:55 X:55 Y:DE P:24 SP:FB CYC:72 SL:72 F9AD B0 BCS $F9BA PC:F9AE A:55 X:55 Y:DE P:24 SP:F9 CYC:90 SL:72 F9AF F0 BEQ $F9BA PC:F9B0 A:55 X:55 Y:DE P:24 SP:F9 CYC:96 SL:72 F9B1 30 BMI $F9BA PC:F9B2 A:55 X:55 Y:DE P:24 SP:F9 CYC:102 SL:72 F9B3 70 BVS $F9BA PC:F9B4 A:55 X:55 Y:DE P:24 SP:F9 CYC:108 SL:72 F9B5 C9 CMP #$55 PC:F9B6 A:55 X:55 Y:DE P:24 SP:F9 CYC:114 SL:72 F9B7 D0 BNE $F9BA PC:F9B8 A:55 X:55 Y:DE P:27 SP:F9 CYC:120 SL:72 F9B9 60 RTS PC:F9BA A:55 X:55 Y:DE P:27 SP:F9 CYC:126 SL:72 D822 C8 INY PC:D823 A:55 X:55 Y:DE P:27 SP:FB CYC:144 SL:72 D823 20 JSR $F9BD PC:D824 A:55 X:55 Y:DF P:A5 SP:FB CYC:150 SL:72 F9BD 24 BIT $01 PC:F9BE A:55 X:55 Y:DF P:A5 SP:F9 CYC:168 SL:72 F9BF 38 SEC PC:F9C0 A:55 X:55 Y:DF P:E5 SP:F9 CYC:177 SL:72 F9C0 A9 LDA #$80 PC:F9C1 A:55 X:55 Y:DF P:E5 SP:F9 CYC:183 SL:72 F9C2 60 RTS PC:F9C3 A:80 X:55 Y:DF P:E5 SP:F9 CYC:189 SL:72 D826 8D STA $0678 PC:D827 A:80 X:55 Y:DF P:E5 SP:FB CYC:207 SL:72 D829 0E ASL $0678 PC:D82A A:80 X:55 Y:DF P:E5 SP:FB CYC:219 SL:72 D82C AD LDA $0678 PC:D82D A:80 X:55 Y:DF P:67 SP:FB CYC:237 SL:72 D82F 20 JSR $F9C3 PC:D830 A:00 X:55 Y:DF P:67 SP:FB CYC:249 SL:72 F9C3 90 BCC $F9E1 PC:F9C4 A:00 X:55 Y:DF P:67 SP:F9 CYC:267 SL:72 F9C5 D0 BNE $F9E1 PC:F9C6 A:00 X:55 Y:DF P:67 SP:F9 CYC:273 SL:72 F9C7 30 BMI $F9E1 PC:F9C8 A:00 X:55 Y:DF P:67 SP:F9 CYC:279 SL:72 F9C9 50 BVC $F9E1 PC:F9CA A:00 X:55 Y:DF P:67 SP:F9 CYC:285 SL:72 F9CB C9 CMP #$00 PC:F9CC A:00 X:55 Y:DF P:67 SP:F9 CYC:291 SL:72 F9CD D0 BNE $F9E1 PC:F9CE A:00 X:55 Y:DF P:67 SP:F9 CYC:297 SL:72 F9CF B8 CLV PC:F9D0 A:00 X:55 Y:DF P:67 SP:F9 CYC:303 SL:72 F9D0 A9 LDA #$55 PC:F9D1 A:00 X:55 Y:DF P:27 SP:F9 CYC:309 SL:72 F9D2 38 SEC PC:F9D3 A:55 X:55 Y:DF P:25 SP:F9 CYC:315 SL:72 F9D3 60 RTS PC:F9D4 A:55 X:55 Y:DF P:25 SP:F9 CYC:321 SL:72 D832 C8 INY PC:D833 A:55 X:55 Y:DF P:25 SP:FB CYC:339 SL:72 D833 8D STA $0678 PC:D834 A:55 X:55 Y:E0 P:A5 SP:FB CYC:4 SL:73 D836 0E ASL $0678 PC:D837 A:55 X:55 Y:E0 P:A5 SP:FB CYC:16 SL:73 D839 AD LDA $0678 PC:D83A A:55 X:55 Y:E0 P:A4 SP:FB CYC:34 SL:73 D83C 20 JSR $F9D4 PC:D83D A:AA X:55 Y:E0 P:A4 SP:FB CYC:46 SL:73 F9D4 B0 BCS $F9E1 PC:F9D5 A:AA X:55 Y:E0 P:A4 SP:F9 CYC:64 SL:73 F9D6 F0 BEQ $F9E1 PC:F9D7 A:AA X:55 Y:E0 P:A4 SP:F9 CYC:70 SL:73 F9D8 10 BPL $F9E1 PC:F9D9 A:AA X:55 Y:E0 P:A4 SP:F9 CYC:76 SL:73 F9DA 70 BVS $F9E1 PC:F9DB A:AA X:55 Y:E0 P:A4 SP:F9 CYC:82 SL:73 F9DC C9 CMP #$AA PC:F9DD A:AA X:55 Y:E0 P:A4 SP:F9 CYC:88 SL:73 F9DE D0 BNE $F9E1 PC:F9DF A:AA X:55 Y:E0 P:27 SP:F9 CYC:94 SL:73 F9E0 60 RTS PC:F9E1 A:AA X:55 Y:E0 P:27 SP:F9 CYC:100 SL:73 D83F C8 INY PC:D840 A:AA X:55 Y:E0 P:27 SP:FB CYC:118 SL:73 D840 20 JSR $F9E4 PC:D841 A:AA X:55 Y:E1 P:A5 SP:FB CYC:124 SL:73 F9E4 24 BIT $01 PC:F9E5 A:AA X:55 Y:E1 P:A5 SP:F9 CYC:142 SL:73 F9E6 38 SEC PC:F9E7 A:AA X:55 Y:E1 P:E5 SP:F9 CYC:151 SL:73 F9E7 A9 LDA #$01 PC:F9E8 A:AA X:55 Y:E1 P:E5 SP:F9 CYC:157 SL:73 F9E9 60 RTS PC:F9EA A:01 X:55 Y:E1 P:65 SP:F9 CYC:163 SL:73 D843 8D STA $0678 PC:D844 A:01 X:55 Y:E1 P:65 SP:FB CYC:181 SL:73 D846 6E ROR $0678 PC:D847 A:01 X:55 Y:E1 P:65 SP:FB CYC:193 SL:73 D849 AD LDA $0678 PC:D84A A:01 X:55 Y:E1 P:E5 SP:FB CYC:211 SL:73 D84C 20 JSR $F9EA PC:D84D A:80 X:55 Y:E1 P:E5 SP:FB CYC:223 SL:73 F9EA 90 BCC $FA08 PC:F9EB A:80 X:55 Y:E1 P:E5 SP:F9 CYC:241 SL:73 F9EC F0 BEQ $FA08 PC:F9ED A:80 X:55 Y:E1 P:E5 SP:F9 CYC:247 SL:73 F9EE 10 BPL $FA08 PC:F9EF A:80 X:55 Y:E1 P:E5 SP:F9 CYC:253 SL:73 F9F0 50 BVC $FA08 PC:F9F1 A:80 X:55 Y:E1 P:E5 SP:F9 CYC:259 SL:73 F9F2 C9 CMP #$80 PC:F9F3 A:80 X:55 Y:E1 P:E5 SP:F9 CYC:265 SL:73 F9F4 D0 BNE $FA08 PC:F9F5 A:80 X:55 Y:E1 P:67 SP:F9 CYC:271 SL:73 F9F6 B8 CLV PC:F9F7 A:80 X:55 Y:E1 P:67 SP:F9 CYC:277 SL:73 F9F7 18 CLC PC:F9F8 A:80 X:55 Y:E1 P:27 SP:F9 CYC:283 SL:73 F9F8 A9 LDA #$55 PC:F9F9 A:80 X:55 Y:E1 P:26 SP:F9 CYC:289 SL:73 F9FA 60 RTS PC:F9FB A:55 X:55 Y:E1 P:24 SP:F9 CYC:295 SL:73 D84F C8 INY PC:D850 A:55 X:55 Y:E1 P:24 SP:FB CYC:313 SL:73 D850 8D STA $0678 PC:D851 A:55 X:55 Y:E2 P:A4 SP:FB CYC:319 SL:73 D853 6E ROR $0678 PC:D854 A:55 X:55 Y:E2 P:A4 SP:FB CYC:331 SL:73 D856 AD LDA $0678 PC:D857 A:55 X:55 Y:E2 P:25 SP:FB CYC:8 SL:74 D859 20 JSR $F9FB PC:D85A A:2A X:55 Y:E2 P:25 SP:FB CYC:20 SL:74 F9FB 90 BCC $FA08 PC:F9FC A:2A X:55 Y:E2 P:25 SP:F9 CYC:38 SL:74 F9FD F0 BEQ $FA08 PC:F9FE A:2A X:55 Y:E2 P:25 SP:F9 CYC:44 SL:74 F9FF 30 BMI $FA08 PC:FA00 A:2A X:55 Y:E2 P:25 SP:F9 CYC:50 SL:74 FA01 70 BVS $FA08 PC:FA02 A:2A X:55 Y:E2 P:25 SP:F9 CYC:56 SL:74 FA03 C9 CMP #$2A PC:FA04 A:2A X:55 Y:E2 P:25 SP:F9 CYC:62 SL:74 FA05 D0 BNE $FA08 PC:FA06 A:2A X:55 Y:E2 P:27 SP:F9 CYC:68 SL:74 FA07 60 RTS PC:FA08 A:2A X:55 Y:E2 P:27 SP:F9 CYC:74 SL:74 D85C C8 INY PC:D85D A:2A X:55 Y:E2 P:27 SP:FB CYC:92 SL:74 D85D 20 JSR $FA0A PC:D85E A:2A X:55 Y:E3 P:A5 SP:FB CYC:98 SL:74 FA0A 24 BIT $01 PC:FA0B A:2A X:55 Y:E3 P:A5 SP:F9 CYC:116 SL:74 FA0C 38 SEC PC:FA0D A:2A X:55 Y:E3 P:E5 SP:F9 CYC:125 SL:74 FA0D A9 LDA #$80 PC:FA0E A:2A X:55 Y:E3 P:E5 SP:F9 CYC:131 SL:74 FA0F 60 RTS PC:FA10 A:80 X:55 Y:E3 P:E5 SP:F9 CYC:137 SL:74 D860 8D STA $0678 PC:D861 A:80 X:55 Y:E3 P:E5 SP:FB CYC:155 SL:74 D863 2E ROL $0678 PC:D864 A:80 X:55 Y:E3 P:E5 SP:FB CYC:167 SL:74 D866 AD LDA $0678 PC:D867 A:80 X:55 Y:E3 P:65 SP:FB CYC:185 SL:74 D869 20 JSR $FA10 PC:D86A A:01 X:55 Y:E3 P:65 SP:FB CYC:197 SL:74 FA10 90 BCC $FA2E PC:FA11 A:01 X:55 Y:E3 P:65 SP:F9 CYC:215 SL:74 FA12 F0 BEQ $FA2E PC:FA13 A:01 X:55 Y:E3 P:65 SP:F9 CYC:221 SL:74 FA14 30 BMI $FA2E PC:FA15 A:01 X:55 Y:E3 P:65 SP:F9 CYC:227 SL:74 FA16 50 BVC $FA2E PC:FA17 A:01 X:55 Y:E3 P:65 SP:F9 CYC:233 SL:74 FA18 C9 CMP #$01 PC:FA19 A:01 X:55 Y:E3 P:65 SP:F9 CYC:239 SL:74 FA1A D0 BNE $FA2E PC:FA1B A:01 X:55 Y:E3 P:67 SP:F9 CYC:245 SL:74 FA1C B8 CLV PC:FA1D A:01 X:55 Y:E3 P:67 SP:F9 CYC:251 SL:74 FA1D 18 CLC PC:FA1E A:01 X:55 Y:E3 P:27 SP:F9 CYC:257 SL:74 FA1E A9 LDA #$55 PC:FA1F A:01 X:55 Y:E3 P:26 SP:F9 CYC:263 SL:74 FA20 60 RTS PC:FA21 A:55 X:55 Y:E3 P:24 SP:F9 CYC:269 SL:74 D86C C8 INY PC:D86D A:55 X:55 Y:E3 P:24 SP:FB CYC:287 SL:74 D86D 8D STA $0678 PC:D86E A:55 X:55 Y:E4 P:A4 SP:FB CYC:293 SL:74 D870 2E ROL $0678 PC:D871 A:55 X:55 Y:E4 P:A4 SP:FB CYC:305 SL:74 D873 AD LDA $0678 PC:D874 A:55 X:55 Y:E4 P:A4 SP:FB CYC:323 SL:74 D876 20 JSR $FA21 PC:D877 A:AA X:55 Y:E4 P:A4 SP:FB CYC:335 SL:74 FA21 B0 BCS $FA2E PC:FA22 A:AA X:55 Y:E4 P:A4 SP:F9 CYC:12 SL:75 FA23 F0 BEQ $FA2E PC:FA24 A:AA X:55 Y:E4 P:A4 SP:F9 CYC:18 SL:75 FA25 10 BPL $FA2E PC:FA26 A:AA X:55 Y:E4 P:A4 SP:F9 CYC:24 SL:75 FA27 70 BVS $FA2E PC:FA28 A:AA X:55 Y:E4 P:A4 SP:F9 CYC:30 SL:75 FA29 C9 CMP #$AA PC:FA2A A:AA X:55 Y:E4 P:A4 SP:F9 CYC:36 SL:75 FA2B D0 BNE $FA2E PC:FA2C A:AA X:55 Y:E4 P:27 SP:F9 CYC:42 SL:75 FA2D 60 RTS PC:FA2E A:AA X:55 Y:E4 P:27 SP:F9 CYC:48 SL:75 D879 A9 LDA #$FF PC:D87A A:AA X:55 Y:E4 P:27 SP:FB CYC:66 SL:75 D87B 8D STA $0678 PC:D87C A:FF X:55 Y:E4 P:A5 SP:FB CYC:72 SL:75 D87E 85 STA $01 PC:D87F A:FF X:55 Y:E4 P:A5 SP:FB CYC:84 SL:75 D880 24 BIT $01 PC:D881 A:FF X:55 Y:E4 P:A5 SP:FB CYC:93 SL:75 D882 38 SEC PC:D883 A:FF X:55 Y:E4 P:E5 SP:FB CYC:102 SL:75 D883 EE INC $0678 PC:D884 A:FF X:55 Y:E4 P:E5 SP:FB CYC:108 SL:75 D886 D0 BNE $D895 PC:D887 A:FF X:55 Y:E4 P:67 SP:FB CYC:126 SL:75 D888 30 BMI $D895 PC:D889 A:FF X:55 Y:E4 P:67 SP:FB CYC:132 SL:75 D88A 50 BVC $D895 PC:D88B A:FF X:55 Y:E4 P:67 SP:FB CYC:138 SL:75 D88C 90 BCC $D895 PC:D88D A:FF X:55 Y:E4 P:67 SP:FB CYC:144 SL:75 D88E AD LDA $0678 PC:D88F A:FF X:55 Y:E4 P:67 SP:FB CYC:150 SL:75 D891 C9 CMP #$00 PC:D892 A:00 X:55 Y:E4 P:67 SP:FB CYC:162 SL:75 D893 F0 BEQ $D899 PC:D894 A:00 X:55 Y:E4 P:67 SP:FB CYC:168 SL:75 D899 A9 LDA #$7F PC:D89A A:00 X:55 Y:E4 P:67 SP:FB CYC:177 SL:75 D89B 8D STA $0678 PC:D89C A:7F X:55 Y:E4 P:65 SP:FB CYC:183 SL:75 D89E B8 CLV PC:D89F A:7F X:55 Y:E4 P:65 SP:FB CYC:195 SL:75 D89F 18 CLC PC:D8A0 A:7F X:55 Y:E4 P:25 SP:FB CYC:201 SL:75 D8A0 EE INC $0678 PC:D8A1 A:7F X:55 Y:E4 P:24 SP:FB CYC:207 SL:75 D8A3 F0 BEQ $D8B2 PC:D8A4 A:7F X:55 Y:E4 P:A4 SP:FB CYC:225 SL:75 D8A5 10 BPL $D8B2 PC:D8A6 A:7F X:55 Y:E4 P:A4 SP:FB CYC:231 SL:75 D8A7 70 BVS $D8B2 PC:D8A8 A:7F X:55 Y:E4 P:A4 SP:FB CYC:237 SL:75 D8A9 B0 BCS $D8B2 PC:D8AA A:7F X:55 Y:E4 P:A4 SP:FB CYC:243 SL:75 D8AB AD LDA $0678 PC:D8AC A:7F X:55 Y:E4 P:A4 SP:FB CYC:249 SL:75 D8AE C9 CMP #$80 PC:D8AF A:80 X:55 Y:E4 P:A4 SP:FB CYC:261 SL:75 D8B0 F0 BEQ $D8B6 PC:D8B1 A:80 X:55 Y:E4 P:27 SP:FB CYC:267 SL:75 D8B6 A9 LDA #$00 PC:D8B7 A:80 X:55 Y:E4 P:27 SP:FB CYC:276 SL:75 D8B8 8D STA $0678 PC:D8B9 A:00 X:55 Y:E4 P:27 SP:FB CYC:282 SL:75 D8BB 24 BIT $01 PC:D8BC A:00 X:55 Y:E4 P:27 SP:FB CYC:294 SL:75 D8BD 38 SEC PC:D8BE A:00 X:55 Y:E4 P:E7 SP:FB CYC:303 SL:75 D8BE CE DEC $0678 PC:D8BF A:00 X:55 Y:E4 P:E7 SP:FB CYC:309 SL:75 D8C1 F0 BEQ $D8D0 PC:D8C2 A:00 X:55 Y:E4 P:E5 SP:FB CYC:327 SL:75 D8C3 10 BPL $D8D0 PC:D8C4 A:00 X:55 Y:E4 P:E5 SP:FB CYC:333 SL:75 D8C5 50 BVC $D8D0 PC:D8C6 A:00 X:55 Y:E4 P:E5 SP:FB CYC:339 SL:75 D8C7 90 BCC $D8D0 PC:D8C8 A:00 X:55 Y:E4 P:E5 SP:FB CYC:4 SL:76 D8C9 AD LDA $0678 PC:D8CA A:00 X:55 Y:E4 P:E5 SP:FB CYC:10 SL:76 D8CC C9 CMP #$FF PC:D8CD A:FF X:55 Y:E4 P:E5 SP:FB CYC:22 SL:76 D8CE F0 BEQ $D8D4 PC:D8CF A:FF X:55 Y:E4 P:67 SP:FB CYC:28 SL:76 D8D4 A9 LDA #$80 PC:D8D5 A:FF X:55 Y:E4 P:67 SP:FB CYC:37 SL:76 D8D6 8D STA $0678 PC:D8D7 A:80 X:55 Y:E4 P:E5 SP:FB CYC:43 SL:76 D8D9 B8 CLV PC:D8DA A:80 X:55 Y:E4 P:E5 SP:FB CYC:55 SL:76 D8DA 18 CLC PC:D8DB A:80 X:55 Y:E4 P:A5 SP:FB CYC:61 SL:76 D8DB CE DEC $0678 PC:D8DC A:80 X:55 Y:E4 P:A4 SP:FB CYC:67 SL:76 D8DE F0 BEQ $D8ED PC:D8DF A:80 X:55 Y:E4 P:24 SP:FB CYC:85 SL:76 D8E0 30 BMI $D8ED PC:D8E1 A:80 X:55 Y:E4 P:24 SP:FB CYC:91 SL:76 D8E2 70 BVS $D8ED PC:D8E3 A:80 X:55 Y:E4 P:24 SP:FB CYC:97 SL:76 D8E4 B0 BCS $D8ED PC:D8E5 A:80 X:55 Y:E4 P:24 SP:FB CYC:103 SL:76 D8E6 AD LDA $0678 PC:D8E7 A:80 X:55 Y:E4 P:24 SP:FB CYC:109 SL:76 D8E9 C9 CMP #$7F PC:D8EA A:7F X:55 Y:E4 P:24 SP:FB CYC:121 SL:76 D8EB F0 BEQ $D8F1 PC:D8EC A:7F X:55 Y:E4 P:27 SP:FB CYC:127 SL:76 D8F1 A9 LDA #$01 PC:D8F2 A:7F X:55 Y:E4 P:27 SP:FB CYC:136 SL:76 D8F3 8D STA $0678 PC:D8F4 A:01 X:55 Y:E4 P:25 SP:FB CYC:142 SL:76 D8F6 CE DEC $0678 PC:D8F7 A:01 X:55 Y:E4 P:25 SP:FB CYC:154 SL:76 D8F9 F0 BEQ $D8FF PC:D8FA A:01 X:55 Y:E4 P:27 SP:FB CYC:172 SL:76 D8FF 60 RTS PC:D900 A:01 X:55 Y:E4 P:27 SP:FB CYC:181 SL:76 C618 20 JSR $D900 PC:C619 A:01 X:55 Y:E4 P:27 SP:FD CYC:199 SL:76 D900 A9 LDA #$A3 PC:D901 A:01 X:55 Y:E4 P:27 SP:FB CYC:217 SL:76 D902 85 STA $33 PC:D903 A:A3 X:55 Y:E4 P:A5 SP:FB CYC:223 SL:76 D904 A9 LDA #$89 PC:D905 A:A3 X:55 Y:E4 P:A5 SP:FB CYC:232 SL:76 D906 8D STA $0300 PC:D907 A:89 X:55 Y:E4 P:A5 SP:FB CYC:238 SL:76 D909 A9 LDA #$12 PC:D90A A:89 X:55 Y:E4 P:A5 SP:FB CYC:250 SL:76 D90B 8D STA $0245 PC:D90C A:12 X:55 Y:E4 P:25 SP:FB CYC:256 SL:76 D90E A9 LDA #$FF PC:D90F A:12 X:55 Y:E4 P:25 SP:FB CYC:268 SL:76 D910 85 STA $01 PC:D911 A:FF X:55 Y:E4 P:A5 SP:FB CYC:274 SL:76 D912 A2 LDX #$65 PC:D913 A:FF X:55 Y:E4 P:A5 SP:FB CYC:283 SL:76 D914 A9 LDA #$00 PC:D915 A:FF X:65 Y:E4 P:25 SP:FB CYC:289 SL:76 D916 85 STA $89 PC:D917 A:00 X:65 Y:E4 P:27 SP:FB CYC:295 SL:76 D918 A9 LDA #$03 PC:D919 A:00 X:65 Y:E4 P:27 SP:FB CYC:304 SL:76 D91A 85 STA $8A PC:D91B A:03 X:65 Y:E4 P:25 SP:FB CYC:310 SL:76 D91C A0 LDY #$00 PC:D91D A:03 X:65 Y:E4 P:25 SP:FB CYC:319 SL:76 D91E 38 SEC PC:D91F A:03 X:65 Y:00 P:27 SP:FB CYC:325 SL:76 D91F A9 LDA #$00 PC:D920 A:03 X:65 Y:00 P:27 SP:FB CYC:331 SL:76 D921 B8 CLV PC:D922 A:00 X:65 Y:00 P:27 SP:FB CYC:337 SL:76 D922 B1 LDA ($89), y PC:D923 A:00 X:65 Y:00 P:27 SP:FB CYC:2 SL:77 D924 F0 BEQ $D932 PC:D925 A:89 X:65 Y:00 P:A5 SP:FB CYC:17 SL:77 D926 90 BCC $D932 PC:D927 A:89 X:65 Y:00 P:A5 SP:FB CYC:23 SL:77 D928 70 BVS $D932 PC:D929 A:89 X:65 Y:00 P:A5 SP:FB CYC:29 SL:77 D92A C9 CMP #$89 PC:D92B A:89 X:65 Y:00 P:A5 SP:FB CYC:35 SL:77 D92C D0 BNE $D932 PC:D92D A:89 X:65 Y:00 P:27 SP:FB CYC:41 SL:77 D92E E0 CPX #$65 PC:D92F A:89 X:65 Y:00 P:27 SP:FB CYC:47 SL:77 D930 F0 BEQ $D936 PC:D931 A:89 X:65 Y:00 P:27 SP:FB CYC:53 SL:77 D936 A9 LDA #$FF PC:D937 A:89 X:65 Y:00 P:27 SP:FB CYC:62 SL:77 D938 85 STA $97 PC:D939 A:FF X:65 Y:00 P:A5 SP:FB CYC:68 SL:77 D93A 85 STA $98 PC:D93B A:FF X:65 Y:00 P:A5 SP:FB CYC:77 SL:77 D93C 24 BIT $98 PC:D93D A:FF X:65 Y:00 P:A5 SP:FB CYC:86 SL:77 D93E A0 LDY #$34 PC:D93F A:FF X:65 Y:00 P:E5 SP:FB CYC:95 SL:77 D940 B1 LDA ($97), y PC:D941 A:FF X:65 Y:34 P:65 SP:FB CYC:101 SL:77 D942 C9 CMP #$A3 PC:D943 A:A3 X:65 Y:34 P:E5 SP:FB CYC:119 SL:77 D944 D0 BNE $D948 PC:D945 A:A3 X:65 Y:34 P:67 SP:FB CYC:125 SL:77 D946 B0 BCS $D94C PC:D947 A:A3 X:65 Y:34 P:67 SP:FB CYC:131 SL:77 D94C A5 LDA $00 PC:D94D A:A3 X:65 Y:34 P:67 SP:FB CYC:140 SL:77 D94E 48 PHA PC:D94F A:00 X:65 Y:34 P:67 SP:FB CYC:149 SL:77 D94F A9 LDA #$46 PC:D950 A:00 X:65 Y:34 P:67 SP:FA CYC:158 SL:77 D951 85 STA $FF PC:D952 A:46 X:65 Y:34 P:65 SP:FA CYC:164 SL:77 D953 A9 LDA #$01 PC:D954 A:46 X:65 Y:34 P:65 SP:FA CYC:173 SL:77 D955 85 STA $00 PC:D956 A:01 X:65 Y:34 P:65 SP:FA CYC:179 SL:77 D957 A0 LDY #$FF PC:D958 A:01 X:65 Y:34 P:65 SP:FA CYC:188 SL:77 D959 B1 LDA ($FF), y PC:D95A A:01 X:65 Y:FF P:E5 SP:FA CYC:194 SL:77 D95B C9 CMP #$12 PC:D95C A:12 X:65 Y:FF P:65 SP:FA CYC:212 SL:77 D95D F0 BEQ $D963 PC:D95E A:12 X:65 Y:FF P:67 SP:FA CYC:218 SL:77 D963 68 PLA PC:D964 A:12 X:65 Y:FF P:67 SP:FA CYC:227 SL:77 D964 85 STA $00 PC:D965 A:00 X:65 Y:FF P:67 SP:FB CYC:239 SL:77 D966 A2 LDX #$ED PC:D967 A:00 X:65 Y:FF P:67 SP:FB CYC:248 SL:77 D968 A9 LDA #$00 PC:D969 A:00 X:ED Y:FF P:E5 SP:FB CYC:254 SL:77 D96A 85 STA $33 PC:D96B A:00 X:ED Y:FF P:67 SP:FB CYC:260 SL:77 D96C A9 LDA #$04 PC:D96D A:00 X:ED Y:FF P:67 SP:FB CYC:269 SL:77 D96E 85 STA $34 PC:D96F A:04 X:ED Y:FF P:65 SP:FB CYC:275 SL:77 D970 A0 LDY #$00 PC:D971 A:04 X:ED Y:FF P:65 SP:FB CYC:284 SL:77 D972 18 CLC PC:D973 A:04 X:ED Y:00 P:67 SP:FB CYC:290 SL:77 D973 A9 LDA #$FF PC:D974 A:04 X:ED Y:00 P:66 SP:FB CYC:296 SL:77 D975 85 STA $01 PC:D976 A:FF X:ED Y:00 P:E4 SP:FB CYC:302 SL:77 D977 24 BIT $01 PC:D978 A:FF X:ED Y:00 P:E4 SP:FB CYC:311 SL:77 D979 A9 LDA #$AA PC:D97A A:FF X:ED Y:00 P:E4 SP:FB CYC:320 SL:77 D97B 8D STA $0400 PC:D97C A:AA X:ED Y:00 P:E4 SP:FB CYC:326 SL:77 D97E A9 LDA #$55 PC:D97F A:AA X:ED Y:00 P:E4 SP:FB CYC:338 SL:77 D980 11 ORA ($33), y PC:D981 A:55 X:ED Y:00 P:64 SP:FB CYC:3 SL:78 D982 B0 BCS $D98C PC:D983 A:FF X:ED Y:00 P:E4 SP:FB CYC:18 SL:78 D984 10 BPL $D98C PC:D985 A:FF X:ED Y:00 P:E4 SP:FB CYC:24 SL:78 D986 C9 CMP #$FF PC:D987 A:FF X:ED Y:00 P:E4 SP:FB CYC:30 SL:78 D988 D0 BNE $D98C PC:D989 A:FF X:ED Y:00 P:67 SP:FB CYC:36 SL:78 D98A 70 BVS $D98E PC:D98B A:FF X:ED Y:00 P:67 SP:FB CYC:42 SL:78 D98E E8 INX PC:D98F A:FF X:ED Y:00 P:67 SP:FB CYC:51 SL:78 D98F 38 SEC PC:D990 A:FF X:EE Y:00 P:E5 SP:FB CYC:57 SL:78 D990 B8 CLV PC:D991 A:FF X:EE Y:00 P:E5 SP:FB CYC:63 SL:78 D991 A9 LDA #$00 PC:D992 A:FF X:EE Y:00 P:A5 SP:FB CYC:69 SL:78 D993 11 ORA ($33), y PC:D994 A:00 X:EE Y:00 P:27 SP:FB CYC:75 SL:78 D995 F0 BEQ $D99D PC:D996 A:AA X:EE Y:00 P:A5 SP:FB CYC:90 SL:78 D997 70 BVS $D99D PC:D998 A:AA X:EE Y:00 P:A5 SP:FB CYC:96 SL:78 D999 90 BCC $D99D PC:D99A A:AA X:EE Y:00 P:A5 SP:FB CYC:102 SL:78 D99B 30 BMI $D99F PC:D99C A:AA X:EE Y:00 P:A5 SP:FB CYC:108 SL:78 D99F E8 INX PC:D9A0 A:AA X:EE Y:00 P:A5 SP:FB CYC:117 SL:78 D9A0 18 CLC PC:D9A1 A:AA X:EF Y:00 P:A5 SP:FB CYC:123 SL:78 D9A1 24 BIT $01 PC:D9A2 A:AA X:EF Y:00 P:A4 SP:FB CYC:129 SL:78 D9A3 A9 LDA #$55 PC:D9A4 A:AA X:EF Y:00 P:E4 SP:FB CYC:138 SL:78 D9A5 31 AND ($33), y PC:D9A6 A:55 X:EF Y:00 P:64 SP:FB CYC:144 SL:78 D9A7 D0 BNE $D9AF PC:D9A8 A:00 X:EF Y:00 P:66 SP:FB CYC:159 SL:78 D9A9 50 BVC $D9AF PC:D9AA A:00 X:EF Y:00 P:66 SP:FB CYC:165 SL:78 D9AB B0 BCS $D9AF PC:D9AC A:00 X:EF Y:00 P:66 SP:FB CYC:171 SL:78 D9AD 10 BPL $D9B1 PC:D9AE A:00 X:EF Y:00 P:66 SP:FB CYC:177 SL:78 D9B1 E8 INX PC:D9B2 A:00 X:EF Y:00 P:66 SP:FB CYC:186 SL:78 D9B2 38 SEC PC:D9B3 A:00 X:F0 Y:00 P:E4 SP:FB CYC:192 SL:78 D9B3 B8 CLV PC:D9B4 A:00 X:F0 Y:00 P:E5 SP:FB CYC:198 SL:78 D9B4 A9 LDA #$EF PC:D9B5 A:00 X:F0 Y:00 P:A5 SP:FB CYC:204 SL:78 D9B6 8D STA $0400 PC:D9B7 A:EF X:F0 Y:00 P:A5 SP:FB CYC:210 SL:78 D9B9 A9 LDA #$F8 PC:D9BA A:EF X:F0 Y:00 P:A5 SP:FB CYC:222 SL:78 D9BB 31 AND ($33), y PC:D9BC A:F8 X:F0 Y:00 P:A5 SP:FB CYC:228 SL:78 D9BD 90 BCC $D9C7 PC:D9BE A:E8 X:F0 Y:00 P:A5 SP:FB CYC:243 SL:78 D9BF 10 BPL $D9C7 PC:D9C0 A:E8 X:F0 Y:00 P:A5 SP:FB CYC:249 SL:78 D9C1 C9 CMP #$E8 PC:D9C2 A:E8 X:F0 Y:00 P:A5 SP:FB CYC:255 SL:78 D9C3 D0 BNE $D9C7 PC:D9C4 A:E8 X:F0 Y:00 P:27 SP:FB CYC:261 SL:78 D9C5 50 BVC $D9C9 PC:D9C6 A:E8 X:F0 Y:00 P:27 SP:FB CYC:267 SL:78 D9C9 E8 INX PC:D9CA A:E8 X:F0 Y:00 P:27 SP:FB CYC:276 SL:78 D9CA 18 CLC PC:D9CB A:E8 X:F1 Y:00 P:A5 SP:FB CYC:282 SL:78 D9CB 24 BIT $01 PC:D9CC A:E8 X:F1 Y:00 P:A4 SP:FB CYC:288 SL:78 D9CD A9 LDA #$AA PC:D9CE A:E8 X:F1 Y:00 P:E4 SP:FB CYC:297 SL:78 D9CF 8D STA $0400 PC:D9D0 A:AA X:F1 Y:00 P:E4 SP:FB CYC:303 SL:78 D9D2 A9 LDA #$5F PC:D9D3 A:AA X:F1 Y:00 P:E4 SP:FB CYC:315 SL:78 D9D4 51 EOR ($33), y PC:D9D5 A:5F X:F1 Y:00 P:64 SP:FB CYC:321 SL:78 D9D6 B0 BCS $D9E0 PC:D9D7 A:F5 X:F1 Y:00 P:E4 SP:FB CYC:336 SL:78 D9D8 10 BPL $D9E0 PC:D9D9 A:F5 X:F1 Y:00 P:E4 SP:FB CYC:1 SL:79 D9DA C9 CMP #$F5 PC:D9DB A:F5 X:F1 Y:00 P:E4 SP:FB CYC:7 SL:79 D9DC D0 BNE $D9E0 PC:D9DD A:F5 X:F1 Y:00 P:67 SP:FB CYC:13 SL:79 D9DE 70 BVS $D9E2 PC:D9DF A:F5 X:F1 Y:00 P:67 SP:FB CYC:19 SL:79 D9E2 E8 INX PC:D9E3 A:F5 X:F1 Y:00 P:67 SP:FB CYC:28 SL:79 D9E3 38 SEC PC:D9E4 A:F5 X:F2 Y:00 P:E5 SP:FB CYC:34 SL:79 D9E4 B8 CLV PC:D9E5 A:F5 X:F2 Y:00 P:E5 SP:FB CYC:40 SL:79 D9E5 A9 LDA #$70 PC:D9E6 A:F5 X:F2 Y:00 P:A5 SP:FB CYC:46 SL:79 D9E7 8D STA $0400 PC:D9E8 A:70 X:F2 Y:00 P:25 SP:FB CYC:52 SL:79 D9EA 51 EOR ($33), y PC:D9EB A:70 X:F2 Y:00 P:25 SP:FB CYC:64 SL:79 D9EC D0 BNE $D9F4 PC:D9ED A:00 X:F2 Y:00 P:27 SP:FB CYC:79 SL:79 D9EE 70 BVS $D9F4 PC:D9EF A:00 X:F2 Y:00 P:27 SP:FB CYC:85 SL:79 D9F0 90 BCC $D9F4 PC:D9F1 A:00 X:F2 Y:00 P:27 SP:FB CYC:91 SL:79 D9F2 10 BPL $D9F6 PC:D9F3 A:00 X:F2 Y:00 P:27 SP:FB CYC:97 SL:79 D9F6 E8 INX PC:D9F7 A:00 X:F2 Y:00 P:27 SP:FB CYC:106 SL:79 D9F7 18 CLC PC:D9F8 A:00 X:F3 Y:00 P:A5 SP:FB CYC:112 SL:79 D9F8 24 BIT $01 PC:D9F9 A:00 X:F3 Y:00 P:A4 SP:FB CYC:118 SL:79 D9FA A9 LDA #$69 PC:D9FB A:00 X:F3 Y:00 P:E6 SP:FB CYC:127 SL:79 D9FC 8D STA $0400 PC:D9FD A:69 X:F3 Y:00 P:64 SP:FB CYC:133 SL:79 D9FF A9 LDA #$00 PC:DA00 A:69 X:F3 Y:00 P:64 SP:FB CYC:145 SL:79 DA01 71 ADC ($33), y PC:DA02 A:00 X:F3 Y:00 P:66 SP:FB CYC:151 SL:79 DA03 30 BMI $DA0D PC:DA04 A:69 X:F3 Y:00 P:24 SP:FB CYC:166 SL:79 DA05 B0 BCS $DA0D PC:DA06 A:69 X:F3 Y:00 P:24 SP:FB CYC:172 SL:79 DA07 C9 CMP #$69 PC:DA08 A:69 X:F3 Y:00 P:24 SP:FB CYC:178 SL:79 DA09 D0 BNE $DA0D PC:DA0A A:69 X:F3 Y:00 P:27 SP:FB CYC:184 SL:79 DA0B 50 BVC $DA0F PC:DA0C A:69 X:F3 Y:00 P:27 SP:FB CYC:190 SL:79 DA0F E8 INX PC:DA10 A:69 X:F3 Y:00 P:27 SP:FB CYC:199 SL:79 DA10 38 SEC PC:DA11 A:69 X:F4 Y:00 P:A5 SP:FB CYC:205 SL:79 DA11 24 BIT $01 PC:DA12 A:69 X:F4 Y:00 P:A5 SP:FB CYC:211 SL:79 DA13 A9 LDA #$00 PC:DA14 A:69 X:F4 Y:00 P:E5 SP:FB CYC:220 SL:79 DA15 71 ADC ($33), y PC:DA16 A:00 X:F4 Y:00 P:67 SP:FB CYC:226 SL:79 DA17 30 BMI $DA21 PC:DA18 A:6A X:F4 Y:00 P:24 SP:FB CYC:241 SL:79 DA19 B0 BCS $DA21 PC:DA1A A:6A X:F4 Y:00 P:24 SP:FB CYC:247 SL:79 DA1B C9 CMP #$6A PC:DA1C A:6A X:F4 Y:00 P:24 SP:FB CYC:253 SL:79 DA1D D0 BNE $DA21 PC:DA1E A:6A X:F4 Y:00 P:27 SP:FB CYC:259 SL:79 DA1F 50 BVC $DA23 PC:DA20 A:6A X:F4 Y:00 P:27 SP:FB CYC:265 SL:79 DA23 E8 INX PC:DA24 A:6A X:F4 Y:00 P:27 SP:FB CYC:274 SL:79 DA24 38 SEC PC:DA25 A:6A X:F5 Y:00 P:A5 SP:FB CYC:280 SL:79 DA25 B8 CLV PC:DA26 A:6A X:F5 Y:00 P:A5 SP:FB CYC:286 SL:79 DA26 A9 LDA #$7F PC:DA27 A:6A X:F5 Y:00 P:A5 SP:FB CYC:292 SL:79 DA28 8D STA $0400 PC:DA29 A:7F X:F5 Y:00 P:25 SP:FB CYC:298 SL:79 DA2B 71 ADC ($33), y PC:DA2C A:7F X:F5 Y:00 P:25 SP:FB CYC:310 SL:79 DA2D 10 BPL $DA37 PC:DA2E A:FF X:F5 Y:00 P:E4 SP:FB CYC:325 SL:79 DA2F B0 BCS $DA37 PC:DA30 A:FF X:F5 Y:00 P:E4 SP:FB CYC:331 SL:79 DA31 C9 CMP #$FF PC:DA32 A:FF X:F5 Y:00 P:E4 SP:FB CYC:337 SL:79 DA33 D0 BNE $DA37 PC:DA34 A:FF X:F5 Y:00 P:67 SP:FB CYC:2 SL:80 DA35 70 BVS $DA39 PC:DA36 A:FF X:F5 Y:00 P:67 SP:FB CYC:8 SL:80 DA39 E8 INX PC:DA3A A:FF X:F5 Y:00 P:67 SP:FB CYC:17 SL:80 DA3A 18 CLC PC:DA3B A:FF X:F6 Y:00 P:E5 SP:FB CYC:23 SL:80 DA3B 24 BIT $01 PC:DA3C A:FF X:F6 Y:00 P:E4 SP:FB CYC:29 SL:80 DA3D A9 LDA #$80 PC:DA3E A:FF X:F6 Y:00 P:E4 SP:FB CYC:38 SL:80 DA3F 8D STA $0400 PC:DA40 A:80 X:F6 Y:00 P:E4 SP:FB CYC:44 SL:80 DA42 A9 LDA #$7F PC:DA43 A:80 X:F6 Y:00 P:E4 SP:FB CYC:56 SL:80 DA44 71 ADC ($33), y PC:DA45 A:7F X:F6 Y:00 P:64 SP:FB CYC:62 SL:80 DA46 10 BPL $DA50 PC:DA47 A:FF X:F6 Y:00 P:A4 SP:FB CYC:77 SL:80 DA48 B0 BCS $DA50 PC:DA49 A:FF X:F6 Y:00 P:A4 SP:FB CYC:83 SL:80 DA4A C9 CMP #$FF PC:DA4B A:FF X:F6 Y:00 P:A4 SP:FB CYC:89 SL:80 DA4C D0 BNE $DA50 PC:DA4D A:FF X:F6 Y:00 P:27 SP:FB CYC:95 SL:80 DA4E 50 BVC $DA52 PC:DA4F A:FF X:F6 Y:00 P:27 SP:FB CYC:101 SL:80 DA52 E8 INX PC:DA53 A:FF X:F6 Y:00 P:27 SP:FB CYC:110 SL:80 DA53 38 SEC PC:DA54 A:FF X:F7 Y:00 P:A5 SP:FB CYC:116 SL:80 DA54 B8 CLV PC:DA55 A:FF X:F7 Y:00 P:A5 SP:FB CYC:122 SL:80 DA55 A9 LDA #$80 PC:DA56 A:FF X:F7 Y:00 P:A5 SP:FB CYC:128 SL:80 DA57 8D STA $0400 PC:DA58 A:80 X:F7 Y:00 P:A5 SP:FB CYC:134 SL:80 DA5A A9 LDA #$7F PC:DA5B A:80 X:F7 Y:00 P:A5 SP:FB CYC:146 SL:80 DA5C 71 ADC ($33), y PC:DA5D A:7F X:F7 Y:00 P:25 SP:FB CYC:152 SL:80 DA5E D0 BNE $DA66 PC:DA5F A:00 X:F7 Y:00 P:27 SP:FB CYC:167 SL:80 DA60 30 BMI $DA66 PC:DA61 A:00 X:F7 Y:00 P:27 SP:FB CYC:173 SL:80 DA62 70 BVS $DA66 PC:DA63 A:00 X:F7 Y:00 P:27 SP:FB CYC:179 SL:80 DA64 B0 BCS $DA68 PC:DA65 A:00 X:F7 Y:00 P:27 SP:FB CYC:185 SL:80 DA68 E8 INX PC:DA69 A:00 X:F7 Y:00 P:27 SP:FB CYC:194 SL:80 DA69 24 BIT $01 PC:DA6A A:00 X:F8 Y:00 P:A5 SP:FB CYC:200 SL:80 DA6B A9 LDA #$40 PC:DA6C A:00 X:F8 Y:00 P:E7 SP:FB CYC:209 SL:80 DA6D 8D STA $0400 PC:DA6E A:40 X:F8 Y:00 P:65 SP:FB CYC:215 SL:80 DA70 D1 CMP ($33), y PC:DA71 A:40 X:F8 Y:00 P:65 SP:FB CYC:227 SL:80 DA72 30 BMI $DA7A PC:DA73 A:40 X:F8 Y:00 P:67 SP:FB CYC:242 SL:80 DA74 90 BCC $DA7A PC:DA75 A:40 X:F8 Y:00 P:67 SP:FB CYC:248 SL:80 DA76 D0 BNE $DA7A PC:DA77 A:40 X:F8 Y:00 P:67 SP:FB CYC:254 SL:80 DA78 70 BVS $DA7C PC:DA79 A:40 X:F8 Y:00 P:67 SP:FB CYC:260 SL:80 DA7C E8 INX PC:DA7D A:40 X:F8 Y:00 P:67 SP:FB CYC:269 SL:80 DA7D B8 CLV PC:DA7E A:40 X:F9 Y:00 P:E5 SP:FB CYC:275 SL:80 DA7E CE DEC $0400 PC:DA7F A:40 X:F9 Y:00 P:A5 SP:FB CYC:281 SL:80 DA81 D1 CMP ($33), y PC:DA82 A:40 X:F9 Y:00 P:25 SP:FB CYC:299 SL:80 DA83 F0 BEQ $DA8B PC:DA84 A:40 X:F9 Y:00 P:25 SP:FB CYC:314 SL:80 DA85 30 BMI $DA8B PC:DA86 A:40 X:F9 Y:00 P:25 SP:FB CYC:320 SL:80 DA87 90 BCC $DA8B PC:DA88 A:40 X:F9 Y:00 P:25 SP:FB CYC:326 SL:80 DA89 50 BVC $DA8D PC:DA8A A:40 X:F9 Y:00 P:25 SP:FB CYC:332 SL:80 DA8D E8 INX PC:DA8E A:40 X:F9 Y:00 P:25 SP:FB CYC:0 SL:81 DA8E EE INC $0400 PC:DA8F A:40 X:FA Y:00 P:A5 SP:FB CYC:6 SL:81 DA91 EE INC $0400 PC:DA92 A:40 X:FA Y:00 P:25 SP:FB CYC:24 SL:81 DA94 D1 CMP ($33), y PC:DA95 A:40 X:FA Y:00 P:25 SP:FB CYC:42 SL:81 DA96 F0 BEQ $DA9A PC:DA97 A:40 X:FA Y:00 P:A4 SP:FB CYC:57 SL:81 DA98 30 BMI $DA9C PC:DA99 A:40 X:FA Y:00 P:A4 SP:FB CYC:63 SL:81 DA9C E8 INX PC:DA9D A:40 X:FA Y:00 P:A4 SP:FB CYC:72 SL:81 DA9D A9 LDA #$00 PC:DA9E A:40 X:FB Y:00 P:A4 SP:FB CYC:78 SL:81 DA9F 8D STA $0400 PC:DAA0 A:00 X:FB Y:00 P:26 SP:FB CYC:84 SL:81 DAA2 A9 LDA #$80 PC:DAA3 A:00 X:FB Y:00 P:26 SP:FB CYC:96 SL:81 DAA4 D1 CMP ($33), y PC:DAA5 A:80 X:FB Y:00 P:A4 SP:FB CYC:102 SL:81 DAA6 F0 BEQ $DAAC PC:DAA7 A:80 X:FB Y:00 P:A5 SP:FB CYC:117 SL:81 DAA8 10 BPL $DAAC PC:DAA9 A:80 X:FB Y:00 P:A5 SP:FB CYC:123 SL:81 DAAA B0 BCS $DAAE PC:DAAB A:80 X:FB Y:00 P:A5 SP:FB CYC:129 SL:81 DAAE E8 INX PC:DAAF A:80 X:FB Y:00 P:A5 SP:FB CYC:138 SL:81 DAAF A0 LDY #$80 PC:DAB0 A:80 X:FC Y:00 P:A5 SP:FB CYC:144 SL:81 DAB1 8C STY $0400 PC:DAB2 A:80 X:FC Y:80 P:A5 SP:FB CYC:150 SL:81 DAB4 A0 LDY #$00 PC:DAB5 A:80 X:FC Y:80 P:A5 SP:FB CYC:162 SL:81 DAB6 D1 CMP ($33), y PC:DAB7 A:80 X:FC Y:00 P:27 SP:FB CYC:168 SL:81 DAB8 D0 BNE $DABE PC:DAB9 A:80 X:FC Y:00 P:27 SP:FB CYC:183 SL:81 DABA 30 BMI $DABE PC:DABB A:80 X:FC Y:00 P:27 SP:FB CYC:189 SL:81 DABC B0 BCS $DAC0 PC:DABD A:80 X:FC Y:00 P:27 SP:FB CYC:195 SL:81 DAC0 E8 INX PC:DAC1 A:80 X:FC Y:00 P:27 SP:FB CYC:204 SL:81 DAC1 EE INC $0400 PC:DAC2 A:80 X:FD Y:00 P:A5 SP:FB CYC:210 SL:81 DAC4 D1 CMP ($33), y PC:DAC5 A:80 X:FD Y:00 P:A5 SP:FB CYC:228 SL:81 DAC6 B0 BCS $DACC PC:DAC7 A:80 X:FD Y:00 P:A4 SP:FB CYC:243 SL:81 DAC8 F0 BEQ $DACC PC:DAC9 A:80 X:FD Y:00 P:A4 SP:FB CYC:249 SL:81 DACA 30 BMI $DACE PC:DACB A:80 X:FD Y:00 P:A4 SP:FB CYC:255 SL:81 DACE E8 INX PC:DACF A:80 X:FD Y:00 P:A4 SP:FB CYC:264 SL:81 DACF CE DEC $0400 PC:DAD0 A:80 X:FE Y:00 P:A4 SP:FB CYC:270 SL:81 DAD2 CE DEC $0400 PC:DAD3 A:80 X:FE Y:00 P:A4 SP:FB CYC:288 SL:81 DAD5 D1 CMP ($33), y PC:DAD6 A:80 X:FE Y:00 P:24 SP:FB CYC:306 SL:81 DAD7 90 BCC $DADD PC:DAD8 A:80 X:FE Y:00 P:25 SP:FB CYC:321 SL:81 DAD9 F0 BEQ $DADD PC:DADA A:80 X:FE Y:00 P:25 SP:FB CYC:327 SL:81 DADB 10 BPL $DADF PC:DADC A:80 X:FE Y:00 P:25 SP:FB CYC:333 SL:81 DADF 60 RTS PC:DAE0 A:80 X:FE Y:00 P:25 SP:FB CYC:1 SL:82 C61B A5 LDA $00 PC:C61C A:80 X:FE Y:00 P:25 SP:FD CYC:19 SL:82 C61D 85 STA $10 PC:C61E A:00 X:FE Y:00 P:27 SP:FD CYC:28 SL:82 C61F A9 LDA #$00 PC:C620 A:00 X:FE Y:00 P:27 SP:FD CYC:37 SL:82 C621 85 STA $00 PC:C622 A:00 X:FE Y:00 P:27 SP:FD CYC:43 SL:82 C623 20 JSR $DAE0 PC:C624 A:00 X:FE Y:00 P:27 SP:FD CYC:52 SL:82 DAE0 A9 LDA #$00 PC:DAE1 A:00 X:FE Y:00 P:27 SP:FB CYC:70 SL:82 DAE2 85 STA $33 PC:DAE3 A:00 X:FE Y:00 P:27 SP:FB CYC:76 SL:82 DAE4 A9 LDA #$04 PC:DAE5 A:00 X:FE Y:00 P:27 SP:FB CYC:85 SL:82 DAE6 85 STA $34 PC:DAE7 A:04 X:FE Y:00 P:25 SP:FB CYC:91 SL:82 DAE8 A0 LDY #$00 PC:DAE9 A:04 X:FE Y:00 P:25 SP:FB CYC:100 SL:82 DAEA A2 LDX #$01 PC:DAEB A:04 X:FE Y:00 P:27 SP:FB CYC:106 SL:82 DAEC 24 BIT $01 PC:DAED A:04 X:01 Y:00 P:25 SP:FB CYC:112 SL:82 DAEE A9 LDA #$40 PC:DAEF A:04 X:01 Y:00 P:E5 SP:FB CYC:121 SL:82 DAF0 8D STA $0400 PC:DAF1 A:40 X:01 Y:00 P:65 SP:FB CYC:127 SL:82 DAF3 38 SEC PC:DAF4 A:40 X:01 Y:00 P:65 SP:FB CYC:139 SL:82 DAF4 F1 SBC ($33), y PC:DAF5 A:40 X:01 Y:00 P:65 SP:FB CYC:145 SL:82 DAF6 30 BMI $DB02 PC:DAF7 A:00 X:01 Y:00 P:27 SP:FB CYC:160 SL:82 DAF8 90 BCC $DB02 PC:DAF9 A:00 X:01 Y:00 P:27 SP:FB CYC:166 SL:82 DAFA D0 BNE $DB02 PC:DAFB A:00 X:01 Y:00 P:27 SP:FB CYC:172 SL:82 DAFC 70 BVS $DB02 PC:DAFD A:00 X:01 Y:00 P:27 SP:FB CYC:178 SL:82 DAFE C9 CMP #$00 PC:DAFF A:00 X:01 Y:00 P:27 SP:FB CYC:184 SL:82 DB00 F0 BEQ $DB04 PC:DB01 A:00 X:01 Y:00 P:27 SP:FB CYC:190 SL:82 DB04 E8 INX PC:DB05 A:00 X:01 Y:00 P:27 SP:FB CYC:199 SL:82 DB05 B8 CLV PC:DB06 A:00 X:02 Y:00 P:25 SP:FB CYC:205 SL:82 DB06 38 SEC PC:DB07 A:00 X:02 Y:00 P:25 SP:FB CYC:211 SL:82 DB07 A9 LDA #$40 PC:DB08 A:00 X:02 Y:00 P:25 SP:FB CYC:217 SL:82 DB09 CE DEC $0400 PC:DB0A A:40 X:02 Y:00 P:25 SP:FB CYC:223 SL:82 DB0C F1 SBC ($33), y PC:DB0D A:40 X:02 Y:00 P:25 SP:FB CYC:241 SL:82 DB0E F0 BEQ $DB1A PC:DB0F A:01 X:02 Y:00 P:25 SP:FB CYC:256 SL:82 DB10 30 BMI $DB1A PC:DB11 A:01 X:02 Y:00 P:25 SP:FB CYC:262 SL:82 DB12 90 BCC $DB1A PC:DB13 A:01 X:02 Y:00 P:25 SP:FB CYC:268 SL:82 DB14 70 BVS $DB1A PC:DB15 A:01 X:02 Y:00 P:25 SP:FB CYC:274 SL:82 DB16 C9 CMP #$01 PC:DB17 A:01 X:02 Y:00 P:25 SP:FB CYC:280 SL:82 DB18 F0 BEQ $DB1C PC:DB19 A:01 X:02 Y:00 P:27 SP:FB CYC:286 SL:82 DB1C E8 INX PC:DB1D A:01 X:02 Y:00 P:27 SP:FB CYC:295 SL:82 DB1D A9 LDA #$40 PC:DB1E A:01 X:03 Y:00 P:25 SP:FB CYC:301 SL:82 DB1F 38 SEC PC:DB20 A:40 X:03 Y:00 P:25 SP:FB CYC:307 SL:82 DB20 24 BIT $01 PC:DB21 A:40 X:03 Y:00 P:25 SP:FB CYC:313 SL:82 DB22 EE INC $0400 PC:DB23 A:40 X:03 Y:00 P:E5 SP:FB CYC:322 SL:82 DB25 EE INC $0400 PC:DB26 A:40 X:03 Y:00 P:65 SP:FB CYC:340 SL:82 DB28 F1 SBC ($33), y PC:DB29 A:40 X:03 Y:00 P:65 SP:FB CYC:17 SL:83 DB2A B0 BCS $DB36 PC:DB2B A:FF X:03 Y:00 P:A4 SP:FB CYC:32 SL:83 DB2C F0 BEQ $DB36 PC:DB2D A:FF X:03 Y:00 P:A4 SP:FB CYC:38 SL:83 DB2E 10 BPL $DB36 PC:DB2F A:FF X:03 Y:00 P:A4 SP:FB CYC:44 SL:83 DB30 70 BVS $DB36 PC:DB31 A:FF X:03 Y:00 P:A4 SP:FB CYC:50 SL:83 DB32 C9 CMP #$FF PC:DB33 A:FF X:03 Y:00 P:A4 SP:FB CYC:56 SL:83 DB34 F0 BEQ $DB38 PC:DB35 A:FF X:03 Y:00 P:27 SP:FB CYC:62 SL:83 DB38 E8 INX PC:DB39 A:FF X:03 Y:00 P:27 SP:FB CYC:71 SL:83 DB39 18 CLC PC:DB3A A:FF X:04 Y:00 P:25 SP:FB CYC:77 SL:83 DB3A A9 LDA #$00 PC:DB3B A:FF X:04 Y:00 P:24 SP:FB CYC:83 SL:83 DB3C 8D STA $0400 PC:DB3D A:00 X:04 Y:00 P:26 SP:FB CYC:89 SL:83 DB3F A9 LDA #$80 PC:DB40 A:00 X:04 Y:00 P:26 SP:FB CYC:101 SL:83 DB41 F1 SBC ($33), y PC:DB42 A:80 X:04 Y:00 P:A4 SP:FB CYC:107 SL:83 DB43 90 BCC $DB49 PC:DB44 A:7F X:04 Y:00 P:65 SP:FB CYC:122 SL:83 DB45 C9 CMP #$7F PC:DB46 A:7F X:04 Y:00 P:65 SP:FB CYC:128 SL:83 DB47 F0 BEQ $DB4B PC:DB48 A:7F X:04 Y:00 P:67 SP:FB CYC:134 SL:83 DB4B E8 INX PC:DB4C A:7F X:04 Y:00 P:67 SP:FB CYC:143 SL:83 DB4C 38 SEC PC:DB4D A:7F X:05 Y:00 P:65 SP:FB CYC:149 SL:83 DB4D A9 LDA #$7F PC:DB4E A:7F X:05 Y:00 P:65 SP:FB CYC:155 SL:83 DB4F 8D STA $0400 PC:DB50 A:7F X:05 Y:00 P:65 SP:FB CYC:161 SL:83 DB52 A9 LDA #$81 PC:DB53 A:7F X:05 Y:00 P:65 SP:FB CYC:173 SL:83 DB54 F1 SBC ($33), y PC:DB55 A:81 X:05 Y:00 P:E5 SP:FB CYC:179 SL:83 DB56 50 BVC $DB5E PC:DB57 A:02 X:05 Y:00 P:65 SP:FB CYC:194 SL:83 DB58 90 BCC $DB5E PC:DB59 A:02 X:05 Y:00 P:65 SP:FB CYC:200 SL:83 DB5A C9 CMP #$02 PC:DB5B A:02 X:05 Y:00 P:65 SP:FB CYC:206 SL:83 DB5C F0 BEQ $DB60 PC:DB5D A:02 X:05 Y:00 P:67 SP:FB CYC:212 SL:83 DB60 E8 INX PC:DB61 A:02 X:05 Y:00 P:67 SP:FB CYC:221 SL:83 DB61 A9 LDA #$00 PC:DB62 A:02 X:06 Y:00 P:65 SP:FB CYC:227 SL:83 DB63 A9 LDA #$87 PC:DB64 A:00 X:06 Y:00 P:67 SP:FB CYC:233 SL:83 DB65 91 STA ($33), y PC:DB66 A:87 X:06 Y:00 P:E5 SP:FB CYC:239 SL:83 DB67 AD LDA $0400 PC:DB68 A:87 X:06 Y:00 P:E5 SP:FB CYC:257 SL:83 DB6A C9 CMP #$87 PC:DB6B A:87 X:06 Y:00 P:E5 SP:FB CYC:269 SL:83 DB6C F0 BEQ $DB70 PC:DB6D A:87 X:06 Y:00 P:67 SP:FB CYC:275 SL:83 DB70 E8 INX PC:DB71 A:87 X:06 Y:00 P:67 SP:FB CYC:284 SL:83 DB71 A9 LDA #$7E PC:DB72 A:87 X:07 Y:00 P:65 SP:FB CYC:290 SL:83 DB73 8D STA $0200 PC:DB74 A:7E X:07 Y:00 P:65 SP:FB CYC:296 SL:83 DB76 A9 LDA #$DB PC:DB77 A:7E X:07 Y:00 P:65 SP:FB CYC:308 SL:83 DB78 8D STA $0201 PC:DB79 A:DB X:07 Y:00 P:E5 SP:FB CYC:314 SL:83 DB7B 6C JMP ($0200) PC:DB7C A:DB X:07 Y:00 P:E5 SP:FB CYC:326 SL:83 DB7E A9 LDA #$00 PC:DB7F A:DB X:07 Y:00 P:E5 SP:FB CYC:0 SL:84 DB80 8D STA $02FF PC:DB81 A:00 X:07 Y:00 P:67 SP:FB CYC:6 SL:84 DB83 A9 LDA #$01 PC:DB84 A:00 X:07 Y:00 P:67 SP:FB CYC:18 SL:84 DB85 8D STA $0300 PC:DB86 A:01 X:07 Y:00 P:65 SP:FB CYC:24 SL:84 DB88 A9 LDA #$03 PC:DB89 A:01 X:07 Y:00 P:65 SP:FB CYC:36 SL:84 DB8A 8D STA $0200 PC:DB8B A:03 X:07 Y:00 P:65 SP:FB CYC:42 SL:84 DB8D A9 LDA #$A9 PC:DB8E A:03 X:07 Y:00 P:65 SP:FB CYC:54 SL:84 DB8F 8D STA $0100 PC:DB90 A:A9 X:07 Y:00 P:E5 SP:FB CYC:60 SL:84 DB92 A9 LDA #$55 PC:DB93 A:A9 X:07 Y:00 P:E5 SP:FB CYC:72 SL:84 DB94 8D STA $0101 PC:DB95 A:55 X:07 Y:00 P:65 SP:FB CYC:78 SL:84 DB97 A9 LDA #$60 PC:DB98 A:55 X:07 Y:00 P:65 SP:FB CYC:90 SL:84 DB99 8D STA $0102 PC:DB9A A:60 X:07 Y:00 P:65 SP:FB CYC:96 SL:84 DB9C A9 LDA #$A9 PC:DB9D A:60 X:07 Y:00 P:65 SP:FB CYC:108 SL:84 DB9E 8D STA $0300 PC:DB9F A:A9 X:07 Y:00 P:E5 SP:FB CYC:114 SL:84 DBA1 A9 LDA #$AA PC:DBA2 A:A9 X:07 Y:00 P:E5 SP:FB CYC:126 SL:84 DBA3 8D STA $0301 PC:DBA4 A:AA X:07 Y:00 P:E5 SP:FB CYC:132 SL:84 DBA6 A9 LDA #$60 PC:DBA7 A:AA X:07 Y:00 P:E5 SP:FB CYC:144 SL:84 DBA8 8D STA $0302 PC:DBA9 A:60 X:07 Y:00 P:65 SP:FB CYC:150 SL:84 DBAB 20 JSR $DBB5 PC:DBAC A:60 X:07 Y:00 P:65 SP:FB CYC:162 SL:84 DBB5 6C JMP ($02FF) PC:DBB6 A:60 X:07 Y:00 P:65 SP:F9 CYC:180 SL:84 0300 A9 LDA #$AA PC:0301 A:60 X:07 Y:00 P:65 SP:F9 CYC:195 SL:84 0302 60 RTS PC:0303 A:AA X:07 Y:00 P:E5 SP:F9 CYC:201 SL:84 DBAE C9 CMP #$AA PC:DBAF A:AA X:07 Y:00 P:E5 SP:FB CYC:219 SL:84 DBB0 F0 BEQ $DBB4 PC:DBB1 A:AA X:07 Y:00 P:67 SP:FB CYC:225 SL:84 DBB4 60 RTS PC:DBB5 A:AA X:07 Y:00 P:67 SP:FB CYC:234 SL:84 C626 20 JSR $DF4A PC:C627 A:AA X:07 Y:00 P:67 SP:FD CYC:252 SL:84 DF4A A9 LDA #$89 PC:DF4B A:AA X:07 Y:00 P:67 SP:FB CYC:270 SL:84 DF4C 8D STA $0300 PC:DF4D A:89 X:07 Y:00 P:E5 SP:FB CYC:276 SL:84 DF4F A9 LDA #$A3 PC:DF50 A:89 X:07 Y:00 P:E5 SP:FB CYC:288 SL:84 DF51 85 STA $33 PC:DF52 A:A3 X:07 Y:00 P:E5 SP:FB CYC:294 SL:84 DF53 A9 LDA #$12 PC:DF54 A:A3 X:07 Y:00 P:E5 SP:FB CYC:303 SL:84 DF55 8D STA $0245 PC:DF56 A:12 X:07 Y:00 P:65 SP:FB CYC:309 SL:84 DF58 A2 LDX #$65 PC:DF59 A:12 X:07 Y:00 P:65 SP:FB CYC:321 SL:84 DF5A A0 LDY #$00 PC:DF5B A:12 X:65 Y:00 P:65 SP:FB CYC:327 SL:84 DF5C 38 SEC PC:DF5D A:12 X:65 Y:00 P:67 SP:FB CYC:333 SL:84 DF5D A9 LDA #$00 PC:DF5E A:12 X:65 Y:00 P:67 SP:FB CYC:339 SL:84 DF5F B8 CLV PC:DF60 A:00 X:65 Y:00 P:67 SP:FB CYC:4 SL:85 DF60 B9 LDA $0300,y PC:DF61 A:00 X:65 Y:00 P:27 SP:FB CYC:10 SL:85 DF63 F0 BEQ $DF71 PC:DF64 A:89 X:65 Y:00 P:A5 SP:FB CYC:22 SL:85 DF65 90 BCC $DF71 PC:DF66 A:89 X:65 Y:00 P:A5 SP:FB CYC:28 SL:85 DF67 70 BVS $DF71 PC:DF68 A:89 X:65 Y:00 P:A5 SP:FB CYC:34 SL:85 DF69 C9 CMP #$89 PC:DF6A A:89 X:65 Y:00 P:A5 SP:FB CYC:40 SL:85 DF6B D0 BNE $DF71 PC:DF6C A:89 X:65 Y:00 P:27 SP:FB CYC:46 SL:85 DF6D E0 CPX #$65 PC:DF6E A:89 X:65 Y:00 P:27 SP:FB CYC:52 SL:85 DF6F F0 BEQ $DF75 PC:DF70 A:89 X:65 Y:00 P:27 SP:FB CYC:58 SL:85 DF75 A9 LDA #$FF PC:DF76 A:89 X:65 Y:00 P:27 SP:FB CYC:67 SL:85 DF77 85 STA $01 PC:DF78 A:FF X:65 Y:00 P:A5 SP:FB CYC:73 SL:85 DF79 24 BIT $01 PC:DF7A A:FF X:65 Y:00 P:A5 SP:FB CYC:82 SL:85 DF7B A0 LDY #$34 PC:DF7C A:FF X:65 Y:00 P:E5 SP:FB CYC:91 SL:85 DF7D B9 LDA $FFFF,y PC:DF7E A:FF X:65 Y:34 P:65 SP:FB CYC:97 SL:85 DF80 C9 CMP #$A3 PC:DF81 A:A3 X:65 Y:34 P:E5 SP:FB CYC:112 SL:85 DF82 D0 BNE $DF86 PC:DF83 A:A3 X:65 Y:34 P:67 SP:FB CYC:118 SL:85 DF84 B0 BCS $DF8A PC:DF85 A:A3 X:65 Y:34 P:67 SP:FB CYC:124 SL:85 DF8A A9 LDA #$46 PC:DF8B A:A3 X:65 Y:34 P:67 SP:FB CYC:133 SL:85 DF8C 85 STA $FF PC:DF8D A:46 X:65 Y:34 P:65 SP:FB CYC:139 SL:85 DF8E A0 LDY #$FF PC:DF8F A:46 X:65 Y:34 P:65 SP:FB CYC:148 SL:85 DF90 B9 LDA $0146,y PC:DF91 A:46 X:65 Y:FF P:E5 SP:FB CYC:154 SL:85 DF93 C9 CMP #$12 PC:DF94 A:12 X:65 Y:FF P:65 SP:FB CYC:169 SL:85 DF95 F0 BEQ $DF9B PC:DF96 A:12 X:65 Y:FF P:67 SP:FB CYC:175 SL:85 DF9B A2 LDX #$39 PC:DF9C A:12 X:65 Y:FF P:67 SP:FB CYC:184 SL:85 DF9D 18 CLC PC:DF9E A:12 X:39 Y:FF P:65 SP:FB CYC:190 SL:85 DF9E A9 LDA #$FF PC:DF9F A:12 X:39 Y:FF P:64 SP:FB CYC:196 SL:85 DFA0 85 STA $01 PC:DFA1 A:FF X:39 Y:FF P:E4 SP:FB CYC:202 SL:85 DFA2 24 BIT $01 PC:DFA3 A:FF X:39 Y:FF P:E4 SP:FB CYC:211 SL:85 DFA4 A9 LDA #$AA PC:DFA5 A:FF X:39 Y:FF P:E4 SP:FB CYC:220 SL:85 DFA6 8D STA $0400 PC:DFA7 A:AA X:39 Y:FF P:E4 SP:FB CYC:226 SL:85 DFA9 A9 LDA #$55 PC:DFAA A:AA X:39 Y:FF P:E4 SP:FB CYC:238 SL:85 DFAB A0 LDY #$00 PC:DFAC A:55 X:39 Y:FF P:64 SP:FB CYC:244 SL:85 DFAD 19 ORA $0400,y PC:DFAE A:55 X:39 Y:00 P:66 SP:FB CYC:250 SL:85 DFB0 B0 BCS $DFBA PC:DFB1 A:FF X:39 Y:00 P:E4 SP:FB CYC:262 SL:85 DFB2 10 BPL $DFBA PC:DFB3 A:FF X:39 Y:00 P:E4 SP:FB CYC:268 SL:85 DFB4 C9 CMP #$FF PC:DFB5 A:FF X:39 Y:00 P:E4 SP:FB CYC:274 SL:85 DFB6 D0 BNE $DFBA PC:DFB7 A:FF X:39 Y:00 P:67 SP:FB CYC:280 SL:85 DFB8 70 BVS $DFBC PC:DFB9 A:FF X:39 Y:00 P:67 SP:FB CYC:286 SL:85 DFBC E8 INX PC:DFBD A:FF X:39 Y:00 P:67 SP:FB CYC:295 SL:85 DFBD 38 SEC PC:DFBE A:FF X:3A Y:00 P:65 SP:FB CYC:301 SL:85 DFBE B8 CLV PC:DFBF A:FF X:3A Y:00 P:65 SP:FB CYC:307 SL:85 DFBF A9 LDA #$00 PC:DFC0 A:FF X:3A Y:00 P:25 SP:FB CYC:313 SL:85 DFC1 19 ORA $0400,y PC:DFC2 A:00 X:3A Y:00 P:27 SP:FB CYC:319 SL:85 DFC4 F0 BEQ $DFCC PC:DFC5 A:AA X:3A Y:00 P:A5 SP:FB CYC:331 SL:85 DFC6 70 BVS $DFCC PC:DFC7 A:AA X:3A Y:00 P:A5 SP:FB CYC:337 SL:85 DFC8 90 BCC $DFCC PC:DFC9 A:AA X:3A Y:00 P:A5 SP:FB CYC:2 SL:86 DFCA 30 BMI $DFCE PC:DFCB A:AA X:3A Y:00 P:A5 SP:FB CYC:8 SL:86 DFCE E8 INX PC:DFCF A:AA X:3A Y:00 P:A5 SP:FB CYC:17 SL:86 DFCF 18 CLC PC:DFD0 A:AA X:3B Y:00 P:25 SP:FB CYC:23 SL:86 DFD0 24 BIT $01 PC:DFD1 A:AA X:3B Y:00 P:24 SP:FB CYC:29 SL:86 DFD2 A9 LDA #$55 PC:DFD3 A:AA X:3B Y:00 P:E4 SP:FB CYC:38 SL:86 DFD4 39 AND $0400,y PC:DFD5 A:55 X:3B Y:00 P:64 SP:FB CYC:44 SL:86 DFD7 D0 BNE $DFDF PC:DFD8 A:00 X:3B Y:00 P:66 SP:FB CYC:56 SL:86 DFD9 50 BVC $DFDF PC:DFDA A:00 X:3B Y:00 P:66 SP:FB CYC:62 SL:86 DFDB B0 BCS $DFDF PC:DFDC A:00 X:3B Y:00 P:66 SP:FB CYC:68 SL:86 DFDD 10 BPL $DFE1 PC:DFDE A:00 X:3B Y:00 P:66 SP:FB CYC:74 SL:86 DFE1 E8 INX PC:DFE2 A:00 X:3B Y:00 P:66 SP:FB CYC:83 SL:86 DFE2 38 SEC PC:DFE3 A:00 X:3C Y:00 P:64 SP:FB CYC:89 SL:86 DFE3 B8 CLV PC:DFE4 A:00 X:3C Y:00 P:65 SP:FB CYC:95 SL:86 DFE4 A9 LDA #$EF PC:DFE5 A:00 X:3C Y:00 P:25 SP:FB CYC:101 SL:86 DFE6 8D STA $0400 PC:DFE7 A:EF X:3C Y:00 P:A5 SP:FB CYC:107 SL:86 DFE9 A9 LDA #$F8 PC:DFEA A:EF X:3C Y:00 P:A5 SP:FB CYC:119 SL:86 DFEB 39 AND $0400,y PC:DFEC A:F8 X:3C Y:00 P:A5 SP:FB CYC:125 SL:86 DFEE 90 BCC $DFF8 PC:DFEF A:E8 X:3C Y:00 P:A5 SP:FB CYC:137 SL:86 DFF0 10 BPL $DFF8 PC:DFF1 A:E8 X:3C Y:00 P:A5 SP:FB CYC:143 SL:86 DFF2 C9 CMP #$E8 PC:DFF3 A:E8 X:3C Y:00 P:A5 SP:FB CYC:149 SL:86 DFF4 D0 BNE $DFF8 PC:DFF5 A:E8 X:3C Y:00 P:27 SP:FB CYC:155 SL:86 DFF6 50 BVC $DFFA PC:DFF7 A:E8 X:3C Y:00 P:27 SP:FB CYC:161 SL:86 DFFA E8 INX PC:DFFB A:E8 X:3C Y:00 P:27 SP:FB CYC:170 SL:86 DFFB 18 CLC PC:DFFC A:E8 X:3D Y:00 P:25 SP:FB CYC:176 SL:86 DFFC 24 BIT $01 PC:DFFD A:E8 X:3D Y:00 P:24 SP:FB CYC:182 SL:86 DFFE A9 LDA #$AA PC:DFFF A:E8 X:3D Y:00 P:E4 SP:FB CYC:191 SL:86 E000 8D STA $0400 PC:E001 A:AA X:3D Y:00 P:E4 SP:FB CYC:197 SL:86 E003 A9 LDA #$5F PC:E004 A:AA X:3D Y:00 P:E4 SP:FB CYC:209 SL:86 E005 59 EOR $0400,y PC:E006 A:5F X:3D Y:00 P:64 SP:FB CYC:215 SL:86 E008 B0 BCS $E012 PC:E009 A:F5 X:3D Y:00 P:E4 SP:FB CYC:227 SL:86 E00A 10 BPL $E012 PC:E00B A:F5 X:3D Y:00 P:E4 SP:FB CYC:233 SL:86 E00C C9 CMP #$F5 PC:E00D A:F5 X:3D Y:00 P:E4 SP:FB CYC:239 SL:86 E00E D0 BNE $E012 PC:E00F A:F5 X:3D Y:00 P:67 SP:FB CYC:245 SL:86 E010 70 BVS $E014 PC:E011 A:F5 X:3D Y:00 P:67 SP:FB CYC:251 SL:86 E014 E8 INX PC:E015 A:F5 X:3D Y:00 P:67 SP:FB CYC:260 SL:86 E015 38 SEC PC:E016 A:F5 X:3E Y:00 P:65 SP:FB CYC:266 SL:86 E016 B8 CLV PC:E017 A:F5 X:3E Y:00 P:65 SP:FB CYC:272 SL:86 E017 A9 LDA #$70 PC:E018 A:F5 X:3E Y:00 P:25 SP:FB CYC:278 SL:86 E019 8D STA $0400 PC:E01A A:70 X:3E Y:00 P:25 SP:FB CYC:284 SL:86 E01C 59 EOR $0400,y PC:E01D A:70 X:3E Y:00 P:25 SP:FB CYC:296 SL:86 E01F D0 BNE $E027 PC:E020 A:00 X:3E Y:00 P:27 SP:FB CYC:308 SL:86 E021 70 BVS $E027 PC:E022 A:00 X:3E Y:00 P:27 SP:FB CYC:314 SL:86 E023 90 BCC $E027 PC:E024 A:00 X:3E Y:00 P:27 SP:FB CYC:320 SL:86 E025 10 BPL $E029 PC:E026 A:00 X:3E Y:00 P:27 SP:FB CYC:326 SL:86 E029 E8 INX PC:E02A A:00 X:3E Y:00 P:27 SP:FB CYC:335 SL:86 E02A 18 CLC PC:E02B A:00 X:3F Y:00 P:25 SP:FB CYC:0 SL:87 E02B 24 BIT $01 PC:E02C A:00 X:3F Y:00 P:24 SP:FB CYC:6 SL:87 E02D A9 LDA #$69 PC:E02E A:00 X:3F Y:00 P:E6 SP:FB CYC:15 SL:87 E02F 8D STA $0400 PC:E030 A:69 X:3F Y:00 P:64 SP:FB CYC:21 SL:87 E032 A9 LDA #$00 PC:E033 A:69 X:3F Y:00 P:64 SP:FB CYC:33 SL:87 E034 79 ADC $0400,y PC:E035 A:00 X:3F Y:00 P:66 SP:FB CYC:39 SL:87 E037 30 BMI $E041 PC:E038 A:69 X:3F Y:00 P:24 SP:FB CYC:51 SL:87 E039 B0 BCS $E041 PC:E03A A:69 X:3F Y:00 P:24 SP:FB CYC:57 SL:87 E03B C9 CMP #$69 PC:E03C A:69 X:3F Y:00 P:24 SP:FB CYC:63 SL:87 E03D D0 BNE $E041 PC:E03E A:69 X:3F Y:00 P:27 SP:FB CYC:69 SL:87 E03F 50 BVC $E043 PC:E040 A:69 X:3F Y:00 P:27 SP:FB CYC:75 SL:87 E043 E8 INX PC:E044 A:69 X:3F Y:00 P:27 SP:FB CYC:84 SL:87 E044 38 SEC PC:E045 A:69 X:40 Y:00 P:25 SP:FB CYC:90 SL:87 E045 24 BIT $01 PC:E046 A:69 X:40 Y:00 P:25 SP:FB CYC:96 SL:87 E047 A9 LDA #$00 PC:E048 A:69 X:40 Y:00 P:E5 SP:FB CYC:105 SL:87 E049 79 ADC $0400,y PC:E04A A:00 X:40 Y:00 P:67 SP:FB CYC:111 SL:87 E04C 30 BMI $E056 PC:E04D A:6A X:40 Y:00 P:24 SP:FB CYC:123 SL:87 E04E B0 BCS $E056 PC:E04F A:6A X:40 Y:00 P:24 SP:FB CYC:129 SL:87 E050 C9 CMP #$6A PC:E051 A:6A X:40 Y:00 P:24 SP:FB CYC:135 SL:87 E052 D0 BNE $E056 PC:E053 A:6A X:40 Y:00 P:27 SP:FB CYC:141 SL:87 E054 50 BVC $E058 PC:E055 A:6A X:40 Y:00 P:27 SP:FB CYC:147 SL:87 E058 E8 INX PC:E059 A:6A X:40 Y:00 P:27 SP:FB CYC:156 SL:87 E059 38 SEC PC:E05A A:6A X:41 Y:00 P:25 SP:FB CYC:162 SL:87 E05A B8 CLV PC:E05B A:6A X:41 Y:00 P:25 SP:FB CYC:168 SL:87 E05B A9 LDA #$7F PC:E05C A:6A X:41 Y:00 P:25 SP:FB CYC:174 SL:87 E05D 8D STA $0400 PC:E05E A:7F X:41 Y:00 P:25 SP:FB CYC:180 SL:87 E060 79 ADC $0400,y PC:E061 A:7F X:41 Y:00 P:25 SP:FB CYC:192 SL:87 E063 10 BPL $E06D PC:E064 A:FF X:41 Y:00 P:E4 SP:FB CYC:204 SL:87 E065 B0 BCS $E06D PC:E066 A:FF X:41 Y:00 P:E4 SP:FB CYC:210 SL:87 E067 C9 CMP #$FF PC:E068 A:FF X:41 Y:00 P:E4 SP:FB CYC:216 SL:87 E069 D0 BNE $E06D PC:E06A A:FF X:41 Y:00 P:67 SP:FB CYC:222 SL:87 E06B 70 BVS $E06F PC:E06C A:FF X:41 Y:00 P:67 SP:FB CYC:228 SL:87 E06F E8 INX PC:E070 A:FF X:41 Y:00 P:67 SP:FB CYC:237 SL:87 E070 18 CLC PC:E071 A:FF X:42 Y:00 P:65 SP:FB CYC:243 SL:87 E071 24 BIT $01 PC:E072 A:FF X:42 Y:00 P:64 SP:FB CYC:249 SL:87 E073 A9 LDA #$80 PC:E074 A:FF X:42 Y:00 P:E4 SP:FB CYC:258 SL:87 E075 8D STA $0400 PC:E076 A:80 X:42 Y:00 P:E4 SP:FB CYC:264 SL:87 E078 A9 LDA #$7F PC:E079 A:80 X:42 Y:00 P:E4 SP:FB CYC:276 SL:87 E07A 79 ADC $0400,y PC:E07B A:7F X:42 Y:00 P:64 SP:FB CYC:282 SL:87 E07D 10 BPL $E087 PC:E07E A:FF X:42 Y:00 P:A4 SP:FB CYC:294 SL:87 E07F B0 BCS $E087 PC:E080 A:FF X:42 Y:00 P:A4 SP:FB CYC:300 SL:87 E081 C9 CMP #$FF PC:E082 A:FF X:42 Y:00 P:A4 SP:FB CYC:306 SL:87 E083 D0 BNE $E087 PC:E084 A:FF X:42 Y:00 P:27 SP:FB CYC:312 SL:87 E085 50 BVC $E089 PC:E086 A:FF X:42 Y:00 P:27 SP:FB CYC:318 SL:87 E089 E8 INX PC:E08A A:FF X:42 Y:00 P:27 SP:FB CYC:327 SL:87 E08A 38 SEC PC:E08B A:FF X:43 Y:00 P:25 SP:FB CYC:333 SL:87 E08B B8 CLV PC:E08C A:FF X:43 Y:00 P:25 SP:FB CYC:339 SL:87 E08C A9 LDA #$80 PC:E08D A:FF X:43 Y:00 P:25 SP:FB CYC:4 SL:88 E08E 8D STA $0400 PC:E08F A:80 X:43 Y:00 P:A5 SP:FB CYC:10 SL:88 E091 A9 LDA #$7F PC:E092 A:80 X:43 Y:00 P:A5 SP:FB CYC:22 SL:88 E093 79 ADC $0400,y PC:E094 A:7F X:43 Y:00 P:25 SP:FB CYC:28 SL:88 E096 D0 BNE $E09E PC:E097 A:00 X:43 Y:00 P:27 SP:FB CYC:40 SL:88 E098 30 BMI $E09E PC:E099 A:00 X:43 Y:00 P:27 SP:FB CYC:46 SL:88 E09A 70 BVS $E09E PC:E09B A:00 X:43 Y:00 P:27 SP:FB CYC:52 SL:88 E09C B0 BCS $E0A0 PC:E09D A:00 X:43 Y:00 P:27 SP:FB CYC:58 SL:88 E0A0 E8 INX PC:E0A1 A:00 X:43 Y:00 P:27 SP:FB CYC:67 SL:88 E0A1 24 BIT $01 PC:E0A2 A:00 X:44 Y:00 P:25 SP:FB CYC:73 SL:88 E0A3 A9 LDA #$40 PC:E0A4 A:00 X:44 Y:00 P:E7 SP:FB CYC:82 SL:88 E0A5 8D STA $0400 PC:E0A6 A:40 X:44 Y:00 P:65 SP:FB CYC:88 SL:88 E0A8 D9 CMP $0400,y PC:E0A9 A:40 X:44 Y:00 P:65 SP:FB CYC:100 SL:88 E0AB 30 BMI $E0B3 PC:E0AC A:40 X:44 Y:00 P:67 SP:FB CYC:112 SL:88 E0AD 90 BCC $E0B3 PC:E0AE A:40 X:44 Y:00 P:67 SP:FB CYC:118 SL:88 E0AF D0 BNE $E0B3 PC:E0B0 A:40 X:44 Y:00 P:67 SP:FB CYC:124 SL:88 E0B1 70 BVS $E0B5 PC:E0B2 A:40 X:44 Y:00 P:67 SP:FB CYC:130 SL:88 E0B5 E8 INX PC:E0B6 A:40 X:44 Y:00 P:67 SP:FB CYC:139 SL:88 E0B6 B8 CLV PC:E0B7 A:40 X:45 Y:00 P:65 SP:FB CYC:145 SL:88 E0B7 CE DEC $0400 PC:E0B8 A:40 X:45 Y:00 P:25 SP:FB CYC:151 SL:88 E0BA D9 CMP $0400,y PC:E0BB A:40 X:45 Y:00 P:25 SP:FB CYC:169 SL:88 E0BD F0 BEQ $E0C5 PC:E0BE A:40 X:45 Y:00 P:25 SP:FB CYC:181 SL:88 E0BF 30 BMI $E0C5 PC:E0C0 A:40 X:45 Y:00 P:25 SP:FB CYC:187 SL:88 E0C1 90 BCC $E0C5 PC:E0C2 A:40 X:45 Y:00 P:25 SP:FB CYC:193 SL:88 E0C3 50 BVC $E0C7 PC:E0C4 A:40 X:45 Y:00 P:25 SP:FB CYC:199 SL:88 E0C7 E8 INX PC:E0C8 A:40 X:45 Y:00 P:25 SP:FB CYC:208 SL:88 E0C8 EE INC $0400 PC:E0C9 A:40 X:46 Y:00 P:25 SP:FB CYC:214 SL:88 E0CB EE INC $0400 PC:E0CC A:40 X:46 Y:00 P:25 SP:FB CYC:232 SL:88 E0CE D9 CMP $0400,y PC:E0CF A:40 X:46 Y:00 P:25 SP:FB CYC:250 SL:88 E0D1 F0 BEQ $E0D5 PC:E0D2 A:40 X:46 Y:00 P:A4 SP:FB CYC:262 SL:88 E0D3 30 BMI $E0D7 PC:E0D4 A:40 X:46 Y:00 P:A4 SP:FB CYC:268 SL:88 E0D7 E8 INX PC:E0D8 A:40 X:46 Y:00 P:A4 SP:FB CYC:277 SL:88 E0D8 A9 LDA #$00 PC:E0D9 A:40 X:47 Y:00 P:24 SP:FB CYC:283 SL:88 E0DA 8D STA $0400 PC:E0DB A:00 X:47 Y:00 P:26 SP:FB CYC:289 SL:88 E0DD A9 LDA #$80 PC:E0DE A:00 X:47 Y:00 P:26 SP:FB CYC:301 SL:88 E0DF D9 CMP $0400,y PC:E0E0 A:80 X:47 Y:00 P:A4 SP:FB CYC:307 SL:88 E0E2 F0 BEQ $E0E8 PC:E0E3 A:80 X:47 Y:00 P:A5 SP:FB CYC:319 SL:88 E0E4 10 BPL $E0E8 PC:E0E5 A:80 X:47 Y:00 P:A5 SP:FB CYC:325 SL:88 E0E6 B0 BCS $E0EA PC:E0E7 A:80 X:47 Y:00 P:A5 SP:FB CYC:331 SL:88 E0EA E8 INX PC:E0EB A:80 X:47 Y:00 P:A5 SP:FB CYC:340 SL:88 E0EB A0 LDY #$80 PC:E0EC A:80 X:48 Y:00 P:25 SP:FB CYC:5 SL:89 E0ED 8C STY $0400 PC:E0EE A:80 X:48 Y:80 P:A5 SP:FB CYC:11 SL:89 E0F0 A0 LDY #$00 PC:E0F1 A:80 X:48 Y:80 P:A5 SP:FB CYC:23 SL:89 E0F2 D9 CMP $0400,y PC:E0F3 A:80 X:48 Y:00 P:27 SP:FB CYC:29 SL:89 E0F5 D0 BNE $E0FB PC:E0F6 A:80 X:48 Y:00 P:27 SP:FB CYC:41 SL:89 E0F7 30 BMI $E0FB PC:E0F8 A:80 X:48 Y:00 P:27 SP:FB CYC:47 SL:89 E0F9 B0 BCS $E0FD PC:E0FA A:80 X:48 Y:00 P:27 SP:FB CYC:53 SL:89 E0FD E8 INX PC:E0FE A:80 X:48 Y:00 P:27 SP:FB CYC:62 SL:89 E0FE EE INC $0400 PC:E0FF A:80 X:49 Y:00 P:25 SP:FB CYC:68 SL:89 E101 D9 CMP $0400,y PC:E102 A:80 X:49 Y:00 P:A5 SP:FB CYC:86 SL:89 E104 B0 BCS $E10A PC:E105 A:80 X:49 Y:00 P:A4 SP:FB CYC:98 SL:89 E106 F0 BEQ $E10A PC:E107 A:80 X:49 Y:00 P:A4 SP:FB CYC:104 SL:89 E108 30 BMI $E10C PC:E109 A:80 X:49 Y:00 P:A4 SP:FB CYC:110 SL:89 E10C E8 INX PC:E10D A:80 X:49 Y:00 P:A4 SP:FB CYC:119 SL:89 E10D CE DEC $0400 PC:E10E A:80 X:4A Y:00 P:24 SP:FB CYC:125 SL:89 E110 CE DEC $0400 PC:E111 A:80 X:4A Y:00 P:A4 SP:FB CYC:143 SL:89 E113 D9 CMP $0400,y PC:E114 A:80 X:4A Y:00 P:24 SP:FB CYC:161 SL:89 E116 90 BCC $E11C PC:E117 A:80 X:4A Y:00 P:25 SP:FB CYC:173 SL:89 E118 F0 BEQ $E11C PC:E119 A:80 X:4A Y:00 P:25 SP:FB CYC:179 SL:89 E11A 10 BPL $E11E PC:E11B A:80 X:4A Y:00 P:25 SP:FB CYC:185 SL:89 E11E E8 INX PC:E11F A:80 X:4A Y:00 P:25 SP:FB CYC:194 SL:89 E11F 24 BIT $01 PC:E120 A:80 X:4B Y:00 P:25 SP:FB CYC:200 SL:89 E121 A9 LDA #$40 PC:E122 A:80 X:4B Y:00 P:E5 SP:FB CYC:209 SL:89 E123 8D STA $0400 PC:E124 A:40 X:4B Y:00 P:65 SP:FB CYC:215 SL:89 E126 38 SEC PC:E127 A:40 X:4B Y:00 P:65 SP:FB CYC:227 SL:89 E127 F9 SBC $0400,y PC:E128 A:40 X:4B Y:00 P:65 SP:FB CYC:233 SL:89 E12A 30 BMI $E136 PC:E12B A:00 X:4B Y:00 P:27 SP:FB CYC:245 SL:89 E12C 90 BCC $E136 PC:E12D A:00 X:4B Y:00 P:27 SP:FB CYC:251 SL:89 E12E D0 BNE $E136 PC:E12F A:00 X:4B Y:00 P:27 SP:FB CYC:257 SL:89 E130 70 BVS $E136 PC:E131 A:00 X:4B Y:00 P:27 SP:FB CYC:263 SL:89 E132 C9 CMP #$00 PC:E133 A:00 X:4B Y:00 P:27 SP:FB CYC:269 SL:89 E134 F0 BEQ $E138 PC:E135 A:00 X:4B Y:00 P:27 SP:FB CYC:275 SL:89 E138 E8 INX PC:E139 A:00 X:4B Y:00 P:27 SP:FB CYC:284 SL:89 E139 B8 CLV PC:E13A A:00 X:4C Y:00 P:25 SP:FB CYC:290 SL:89 E13A 38 SEC PC:E13B A:00 X:4C Y:00 P:25 SP:FB CYC:296 SL:89 E13B A9 LDA #$40 PC:E13C A:00 X:4C Y:00 P:25 SP:FB CYC:302 SL:89 E13D CE DEC $0400 PC:E13E A:40 X:4C Y:00 P:25 SP:FB CYC:308 SL:89 E140 F9 SBC $0400,y PC:E141 A:40 X:4C Y:00 P:25 SP:FB CYC:326 SL:89 E143 F0 BEQ $E14F PC:E144 A:01 X:4C Y:00 P:25 SP:FB CYC:338 SL:89 E145 30 BMI $E14F PC:E146 A:01 X:4C Y:00 P:25 SP:FB CYC:3 SL:90 E147 90 BCC $E14F PC:E148 A:01 X:4C Y:00 P:25 SP:FB CYC:9 SL:90 E149 70 BVS $E14F PC:E14A A:01 X:4C Y:00 P:25 SP:FB CYC:15 SL:90 E14B C9 CMP #$01 PC:E14C A:01 X:4C Y:00 P:25 SP:FB CYC:21 SL:90 E14D F0 BEQ $E151 PC:E14E A:01 X:4C Y:00 P:27 SP:FB CYC:27 SL:90 E151 E8 INX PC:E152 A:01 X:4C Y:00 P:27 SP:FB CYC:36 SL:90 E152 A9 LDA #$40 PC:E153 A:01 X:4D Y:00 P:25 SP:FB CYC:42 SL:90 E154 38 SEC PC:E155 A:40 X:4D Y:00 P:25 SP:FB CYC:48 SL:90 E155 24 BIT $01 PC:E156 A:40 X:4D Y:00 P:25 SP:FB CYC:54 SL:90 E157 EE INC $0400 PC:E158 A:40 X:4D Y:00 P:E5 SP:FB CYC:63 SL:90 E15A EE INC $0400 PC:E15B A:40 X:4D Y:00 P:65 SP:FB CYC:81 SL:90 E15D F9 SBC $0400,y PC:E15E A:40 X:4D Y:00 P:65 SP:FB CYC:99 SL:90 E160 B0 BCS $E16C PC:E161 A:FF X:4D Y:00 P:A4 SP:FB CYC:111 SL:90 E162 F0 BEQ $E16C PC:E163 A:FF X:4D Y:00 P:A4 SP:FB CYC:117 SL:90 E164 10 BPL $E16C PC:E165 A:FF X:4D Y:00 P:A4 SP:FB CYC:123 SL:90 E166 70 BVS $E16C PC:E167 A:FF X:4D Y:00 P:A4 SP:FB CYC:129 SL:90 E168 C9 CMP #$FF PC:E169 A:FF X:4D Y:00 P:A4 SP:FB CYC:135 SL:90 E16A F0 BEQ $E16E PC:E16B A:FF X:4D Y:00 P:27 SP:FB CYC:141 SL:90 E16E E8 INX PC:E16F A:FF X:4D Y:00 P:27 SP:FB CYC:150 SL:90 E16F 18 CLC PC:E170 A:FF X:4E Y:00 P:25 SP:FB CYC:156 SL:90 E170 A9 LDA #$00 PC:E171 A:FF X:4E Y:00 P:24 SP:FB CYC:162 SL:90 E172 8D STA $0400 PC:E173 A:00 X:4E Y:00 P:26 SP:FB CYC:168 SL:90 E175 A9 LDA #$80 PC:E176 A:00 X:4E Y:00 P:26 SP:FB CYC:180 SL:90 E177 F9 SBC $0400,y PC:E178 A:80 X:4E Y:00 P:A4 SP:FB CYC:186 SL:90 E17A 90 BCC $E180 PC:E17B A:7F X:4E Y:00 P:65 SP:FB CYC:198 SL:90 E17C C9 CMP #$7F PC:E17D A:7F X:4E Y:00 P:65 SP:FB CYC:204 SL:90 E17E F0 BEQ $E182 PC:E17F A:7F X:4E Y:00 P:67 SP:FB CYC:210 SL:90 E182 E8 INX PC:E183 A:7F X:4E Y:00 P:67 SP:FB CYC:219 SL:90 E183 38 SEC PC:E184 A:7F X:4F Y:00 P:65 SP:FB CYC:225 SL:90 E184 A9 LDA #$7F PC:E185 A:7F X:4F Y:00 P:65 SP:FB CYC:231 SL:90 E186 8D STA $0400 PC:E187 A:7F X:4F Y:00 P:65 SP:FB CYC:237 SL:90 E189 A9 LDA #$81 PC:E18A A:7F X:4F Y:00 P:65 SP:FB CYC:249 SL:90 E18B F9 SBC $0400,y PC:E18C A:81 X:4F Y:00 P:E5 SP:FB CYC:255 SL:90 E18E 50 BVC $E196 PC:E18F A:02 X:4F Y:00 P:65 SP:FB CYC:267 SL:90 E190 90 BCC $E196 PC:E191 A:02 X:4F Y:00 P:65 SP:FB CYC:273 SL:90 E192 C9 CMP #$02 PC:E193 A:02 X:4F Y:00 P:65 SP:FB CYC:279 SL:90 E194 F0 BEQ $E198 PC:E195 A:02 X:4F Y:00 P:67 SP:FB CYC:285 SL:90 E198 E8 INX PC:E199 A:02 X:4F Y:00 P:67 SP:FB CYC:294 SL:90 E199 A9 LDA #$00 PC:E19A A:02 X:50 Y:00 P:65 SP:FB CYC:300 SL:90 E19B A9 LDA #$87 PC:E19C A:00 X:50 Y:00 P:67 SP:FB CYC:306 SL:90 E19D 99 STA $0400,y PC:E19E A:87 X:50 Y:00 P:E5 SP:FB CYC:312 SL:90 E1A0 AD LDA $0400 PC:E1A1 A:87 X:50 Y:00 P:E5 SP:FB CYC:327 SL:90 E1A3 C9 CMP #$87 PC:E1A4 A:87 X:50 Y:00 P:E5 SP:FB CYC:339 SL:90 E1A5 F0 BEQ $E1A9 PC:E1A6 A:87 X:50 Y:00 P:67 SP:FB CYC:4 SL:91 E1A9 60 RTS PC:E1AA A:87 X:50 Y:00 P:67 SP:FB CYC:13 SL:91 C629 20 JSR $DBB8 PC:C62A A:87 X:50 Y:00 P:67 SP:FD CYC:31 SL:91 DBB8 A9 LDA #$FF PC:DBB9 A:87 X:50 Y:00 P:67 SP:FB CYC:49 SL:91 DBBA 85 STA $01 PC:DBBB A:FF X:50 Y:00 P:E5 SP:FB CYC:55 SL:91 DBBC A9 LDA #$AA PC:DBBD A:FF X:50 Y:00 P:E5 SP:FB CYC:64 SL:91 DBBE 85 STA $33 PC:DBBF A:AA X:50 Y:00 P:E5 SP:FB CYC:70 SL:91 DBC0 A9 LDA #$BB PC:DBC1 A:AA X:50 Y:00 P:E5 SP:FB CYC:79 SL:91 DBC2 85 STA $89 PC:DBC3 A:BB X:50 Y:00 P:E5 SP:FB CYC:85 SL:91 DBC4 A2 LDX #$00 PC:DBC5 A:BB X:50 Y:00 P:E5 SP:FB CYC:94 SL:91 DBC6 A9 LDA #$66 PC:DBC7 A:BB X:00 Y:00 P:67 SP:FB CYC:100 SL:91 DBC8 24 BIT $01 PC:DBC9 A:66 X:00 Y:00 P:65 SP:FB CYC:106 SL:91 DBCA 38 SEC PC:DBCB A:66 X:00 Y:00 P:E5 SP:FB CYC:115 SL:91 DBCB A0 LDY #$00 PC:DBCC A:66 X:00 Y:00 P:E5 SP:FB CYC:121 SL:91 DBCD B4 LDY $33,x PC:DBCE A:66 X:00 Y:00 P:67 SP:FB CYC:127 SL:91 DBCF 10 BPL $DBE3 PC:DBD0 A:66 X:00 Y:AA P:E5 SP:FB CYC:139 SL:91 DBD1 F0 BEQ $DBE3 PC:DBD2 A:66 X:00 Y:AA P:E5 SP:FB CYC:145 SL:91 DBD3 50 BVC $DBE3 PC:DBD4 A:66 X:00 Y:AA P:E5 SP:FB CYC:151 SL:91 DBD5 90 BCC $DBE3 PC:DBD6 A:66 X:00 Y:AA P:E5 SP:FB CYC:157 SL:91 DBD7 C9 CMP #$66 PC:DBD8 A:66 X:00 Y:AA P:E5 SP:FB CYC:163 SL:91 DBD9 D0 BNE $DBE3 PC:DBDA A:66 X:00 Y:AA P:67 SP:FB CYC:169 SL:91 DBDB E0 CPX #$00 PC:DBDC A:66 X:00 Y:AA P:67 SP:FB CYC:175 SL:91 DBDD D0 BNE $DBE3 PC:DBDE A:66 X:00 Y:AA P:67 SP:FB CYC:181 SL:91 DBDF C0 CPY #$AA PC:DBE0 A:66 X:00 Y:AA P:67 SP:FB CYC:187 SL:91 DBE1 F0 BEQ $DBE7 PC:DBE2 A:66 X:00 Y:AA P:67 SP:FB CYC:193 SL:91 DBE7 A2 LDX #$8A PC:DBE8 A:66 X:00 Y:AA P:67 SP:FB CYC:202 SL:91 DBE9 A9 LDA #$66 PC:DBEA A:66 X:8A Y:AA P:E5 SP:FB CYC:208 SL:91 DBEB B8 CLV PC:DBEC A:66 X:8A Y:AA P:65 SP:FB CYC:214 SL:91 DBEC 18 CLC PC:DBED A:66 X:8A Y:AA P:25 SP:FB CYC:220 SL:91 DBED A0 LDY #$00 PC:DBEE A:66 X:8A Y:AA P:24 SP:FB CYC:226 SL:91 DBEF B4 LDY $FF,x PC:DBF0 A:66 X:8A Y:00 P:26 SP:FB CYC:232 SL:91 DBF1 10 BPL $DC05 PC:DBF2 A:66 X:8A Y:BB P:A4 SP:FB CYC:244 SL:91 DBF3 F0 BEQ $DC05 PC:DBF4 A:66 X:8A Y:BB P:A4 SP:FB CYC:250 SL:91 DBF5 70 BVS $DC05 PC:DBF6 A:66 X:8A Y:BB P:A4 SP:FB CYC:256 SL:91 DBF7 B0 BCS $DC05 PC:DBF8 A:66 X:8A Y:BB P:A4 SP:FB CYC:262 SL:91 DBF9 C0 CPY #$BB PC:DBFA A:66 X:8A Y:BB P:A4 SP:FB CYC:268 SL:91 DBFB D0 BNE $DC05 PC:DBFC A:66 X:8A Y:BB P:27 SP:FB CYC:274 SL:91 DBFD C9 CMP #$66 PC:DBFE A:66 X:8A Y:BB P:27 SP:FB CYC:280 SL:91 DBFF D0 BNE $DC05 PC:DC00 A:66 X:8A Y:BB P:27 SP:FB CYC:286 SL:91 DC01 E0 CPX #$8A PC:DC02 A:66 X:8A Y:BB P:27 SP:FB CYC:292 SL:91 DC03 F0 BEQ $DC09 PC:DC04 A:66 X:8A Y:BB P:27 SP:FB CYC:298 SL:91 DC09 24 BIT $01 PC:DC0A A:66 X:8A Y:BB P:27 SP:FB CYC:307 SL:91 DC0B 38 SEC PC:DC0C A:66 X:8A Y:BB P:E5 SP:FB CYC:316 SL:91 DC0C A0 LDY #$44 PC:DC0D A:66 X:8A Y:BB P:E5 SP:FB CYC:322 SL:91 DC0E A2 LDX #$00 PC:DC0F A:66 X:8A Y:44 P:65 SP:FB CYC:328 SL:91 DC10 94 STY $33,x PC:DC11 A:66 X:00 Y:44 P:67 SP:FB CYC:334 SL:91 DC12 A5 LDA $33 PC:DC13 A:66 X:00 Y:44 P:67 SP:FB CYC:5 SL:92 DC14 90 BCC $DC2E PC:DC15 A:44 X:00 Y:44 P:65 SP:FB CYC:14 SL:92 DC16 C9 CMP #$44 PC:DC17 A:44 X:00 Y:44 P:65 SP:FB CYC:20 SL:92 DC18 D0 BNE $DC2E PC:DC19 A:44 X:00 Y:44 P:67 SP:FB CYC:26 SL:92 DC1A 50 BVC $DC2E PC:DC1B A:44 X:00 Y:44 P:67 SP:FB CYC:32 SL:92 DC1C 18 CLC PC:DC1D A:44 X:00 Y:44 P:67 SP:FB CYC:38 SL:92 DC1D B8 CLV PC:DC1E A:44 X:00 Y:44 P:66 SP:FB CYC:44 SL:92 DC1E A0 LDY #$99 PC:DC1F A:44 X:00 Y:44 P:26 SP:FB CYC:50 SL:92 DC20 A2 LDX #$80 PC:DC21 A:44 X:00 Y:99 P:A4 SP:FB CYC:56 SL:92 DC22 94 STY $85,x PC:DC23 A:44 X:80 Y:99 P:A4 SP:FB CYC:62 SL:92 DC24 A5 LDA $05 PC:DC25 A:44 X:80 Y:99 P:A4 SP:FB CYC:74 SL:92 DC26 B0 BCS $DC2E PC:DC27 A:99 X:80 Y:99 P:A4 SP:FB CYC:83 SL:92 DC28 C9 CMP #$99 PC:DC29 A:99 X:80 Y:99 P:A4 SP:FB CYC:89 SL:92 DC2A D0 BNE $DC2E PC:DC2B A:99 X:80 Y:99 P:27 SP:FB CYC:95 SL:92 DC2C 50 BVC $DC32 PC:DC2D A:99 X:80 Y:99 P:27 SP:FB CYC:101 SL:92 DC32 A0 LDY #$0B PC:DC33 A:99 X:80 Y:99 P:27 SP:FB CYC:110 SL:92 DC34 A9 LDA #$AA PC:DC35 A:99 X:80 Y:0B P:25 SP:FB CYC:116 SL:92 DC36 A2 LDX #$78 PC:DC37 A:AA X:80 Y:0B P:A5 SP:FB CYC:122 SL:92 DC38 85 STA $78 PC:DC39 A:AA X:78 Y:0B P:25 SP:FB CYC:128 SL:92 DC3A 20 JSR $F7B6 PC:DC3B A:AA X:78 Y:0B P:25 SP:FB CYC:137 SL:92 F7B6 18 CLC PC:F7B7 A:AA X:78 Y:0B P:25 SP:F9 CYC:155 SL:92 F7B7 A9 LDA #$FF PC:F7B8 A:AA X:78 Y:0B P:24 SP:F9 CYC:161 SL:92 F7B9 85 STA $01 PC:F7BA A:FF X:78 Y:0B P:A4 SP:F9 CYC:167 SL:92 F7BB 24 BIT $01 PC:F7BC A:FF X:78 Y:0B P:A4 SP:F9 CYC:176 SL:92 F7BD A9 LDA #$55 PC:F7BE A:FF X:78 Y:0B P:E4 SP:F9 CYC:185 SL:92 F7BF 60 RTS PC:F7C0 A:55 X:78 Y:0B P:64 SP:F9 CYC:191 SL:92 DC3D 15 ORA $00,x PC:DC3E A:55 X:78 Y:0B P:64 SP:FB CYC:209 SL:92 DC3F 20 JSR $F7C0 PC:DC40 A:FF X:78 Y:0B P:E4 SP:FB CYC:221 SL:92 F7C0 B0 BCS $F7CB PC:F7C1 A:FF X:78 Y:0B P:E4 SP:F9 CYC:239 SL:92 F7C2 10 BPL $F7CB PC:F7C3 A:FF X:78 Y:0B P:E4 SP:F9 CYC:245 SL:92 F7C4 C9 CMP #$FF PC:F7C5 A:FF X:78 Y:0B P:E4 SP:F9 CYC:251 SL:92 F7C6 D0 BNE $F7CB PC:F7C7 A:FF X:78 Y:0B P:67 SP:F9 CYC:257 SL:92 F7C8 50 BVC $F7CB PC:F7C9 A:FF X:78 Y:0B P:67 SP:F9 CYC:263 SL:92 F7CA 60 RTS PC:F7CB A:FF X:78 Y:0B P:67 SP:F9 CYC:269 SL:92 DC42 C8 INY PC:DC43 A:FF X:78 Y:0B P:67 SP:FB CYC:287 SL:92 DC43 A9 LDA #$00 PC:DC44 A:FF X:78 Y:0C P:65 SP:FB CYC:293 SL:92 DC45 85 STA $78 PC:DC46 A:00 X:78 Y:0C P:67 SP:FB CYC:299 SL:92 DC47 20 JSR $F7CE PC:DC48 A:00 X:78 Y:0C P:67 SP:FB CYC:308 SL:92 F7CE 38 SEC PC:F7CF A:00 X:78 Y:0C P:67 SP:F9 CYC:326 SL:92 F7CF B8 CLV PC:F7D0 A:00 X:78 Y:0C P:67 SP:F9 CYC:332 SL:92 F7D0 A9 LDA #$00 PC:F7D1 A:00 X:78 Y:0C P:27 SP:F9 CYC:338 SL:92 F7D2 60 RTS PC:F7D3 A:00 X:78 Y:0C P:27 SP:F9 CYC:3 SL:93 DC4A 15 ORA $00,x PC:DC4B A:00 X:78 Y:0C P:27 SP:FB CYC:21 SL:93 DC4C 20 JSR $F7D3 PC:DC4D A:00 X:78 Y:0C P:27 SP:FB CYC:33 SL:93 F7D3 D0 BNE $F7DC PC:F7D4 A:00 X:78 Y:0C P:27 SP:F9 CYC:51 SL:93 F7D5 70 BVS $F7DC PC:F7D6 A:00 X:78 Y:0C P:27 SP:F9 CYC:57 SL:93 F7D7 90 BCC $F7DC PC:F7D8 A:00 X:78 Y:0C P:27 SP:F9 CYC:63 SL:93 F7D9 30 BMI $F7DC PC:F7DA A:00 X:78 Y:0C P:27 SP:F9 CYC:69 SL:93 F7DB 60 RTS PC:F7DC A:00 X:78 Y:0C P:27 SP:F9 CYC:75 SL:93 DC4F C8 INY PC:DC50 A:00 X:78 Y:0C P:27 SP:FB CYC:93 SL:93 DC50 A9 LDA #$AA PC:DC51 A:00 X:78 Y:0D P:25 SP:FB CYC:99 SL:93 DC52 85 STA $78 PC:DC53 A:AA X:78 Y:0D P:A5 SP:FB CYC:105 SL:93 DC54 20 JSR $F7DF PC:DC55 A:AA X:78 Y:0D P:A5 SP:FB CYC:114 SL:93 F7DF 18 CLC PC:F7E0 A:AA X:78 Y:0D P:A5 SP:F9 CYC:132 SL:93 F7E0 24 BIT $01 PC:F7E1 A:AA X:78 Y:0D P:A4 SP:F9 CYC:138 SL:93 F7E2 A9 LDA #$55 PC:F7E3 A:AA X:78 Y:0D P:E4 SP:F9 CYC:147 SL:93 F7E4 60 RTS PC:F7E5 A:55 X:78 Y:0D P:64 SP:F9 CYC:153 SL:93 DC57 35 AND $00,x PC:DC58 A:55 X:78 Y:0D P:64 SP:FB CYC:171 SL:93 DC59 20 JSR $F7E5 PC:DC5A A:00 X:78 Y:0D P:66 SP:FB CYC:183 SL:93 F7E5 D0 BNE $F7EE PC:F7E6 A:00 X:78 Y:0D P:66 SP:F9 CYC:201 SL:93 F7E7 50 BVC $F7EE PC:F7E8 A:00 X:78 Y:0D P:66 SP:F9 CYC:207 SL:93 F7E9 B0 BCS $F7EE PC:F7EA A:00 X:78 Y:0D P:66 SP:F9 CYC:213 SL:93 F7EB 30 BMI $F7EE PC:F7EC A:00 X:78 Y:0D P:66 SP:F9 CYC:219 SL:93 F7ED 60 RTS PC:F7EE A:00 X:78 Y:0D P:66 SP:F9 CYC:225 SL:93 DC5C C8 INY PC:DC5D A:00 X:78 Y:0D P:66 SP:FB CYC:243 SL:93 DC5D A9 LDA #$EF PC:DC5E A:00 X:78 Y:0E P:64 SP:FB CYC:249 SL:93 DC5F 85 STA $78 PC:DC60 A:EF X:78 Y:0E P:E4 SP:FB CYC:255 SL:93 DC61 20 JSR $F7F1 PC:DC62 A:EF X:78 Y:0E P:E4 SP:FB CYC:264 SL:93 F7F1 38 SEC PC:F7F2 A:EF X:78 Y:0E P:E4 SP:F9 CYC:282 SL:93 F7F2 B8 CLV PC:F7F3 A:EF X:78 Y:0E P:E5 SP:F9 CYC:288 SL:93 F7F3 A9 LDA #$F8 PC:F7F4 A:EF X:78 Y:0E P:A5 SP:F9 CYC:294 SL:93 F7F5 60 RTS PC:F7F6 A:F8 X:78 Y:0E P:A5 SP:F9 CYC:300 SL:93 DC64 35 AND $00,x PC:DC65 A:F8 X:78 Y:0E P:A5 SP:FB CYC:318 SL:93 DC66 20 JSR $F7F6 PC:DC67 A:E8 X:78 Y:0E P:A5 SP:FB CYC:330 SL:93 F7F6 90 BCC $F801 PC:F7F7 A:E8 X:78 Y:0E P:A5 SP:F9 CYC:7 SL:94 F7F8 10 BPL $F801 PC:F7F9 A:E8 X:78 Y:0E P:A5 SP:F9 CYC:13 SL:94 F7FA C9 CMP #$E8 PC:F7FB A:E8 X:78 Y:0E P:A5 SP:F9 CYC:19 SL:94 F7FC D0 BNE $F801 PC:F7FD A:E8 X:78 Y:0E P:27 SP:F9 CYC:25 SL:94 F7FE 70 BVS $F801 PC:F7FF A:E8 X:78 Y:0E P:27 SP:F9 CYC:31 SL:94 F800 60 RTS PC:F801 A:E8 X:78 Y:0E P:27 SP:F9 CYC:37 SL:94 DC69 C8 INY PC:DC6A A:E8 X:78 Y:0E P:27 SP:FB CYC:55 SL:94 DC6A A9 LDA #$AA PC:DC6B A:E8 X:78 Y:0F P:25 SP:FB CYC:61 SL:94 DC6C 85 STA $78 PC:DC6D A:AA X:78 Y:0F P:A5 SP:FB CYC:67 SL:94 DC6E 20 JSR $F804 PC:DC6F A:AA X:78 Y:0F P:A5 SP:FB CYC:76 SL:94 F804 18 CLC PC:F805 A:AA X:78 Y:0F P:A5 SP:F9 CYC:94 SL:94 F805 24 BIT $01 PC:F806 A:AA X:78 Y:0F P:A4 SP:F9 CYC:100 SL:94 F807 A9 LDA #$5F PC:F808 A:AA X:78 Y:0F P:E4 SP:F9 CYC:109 SL:94 F809 60 RTS PC:F80A A:5F X:78 Y:0F P:64 SP:F9 CYC:115 SL:94 DC71 55 EOR $00,x PC:DC72 A:5F X:78 Y:0F P:64 SP:FB CYC:133 SL:94 DC73 20 JSR $F80A PC:DC74 A:F5 X:78 Y:0F P:E4 SP:FB CYC:145 SL:94 F80A B0 BCS $F815 PC:F80B A:F5 X:78 Y:0F P:E4 SP:F9 CYC:163 SL:94 F80C 10 BPL $F815 PC:F80D A:F5 X:78 Y:0F P:E4 SP:F9 CYC:169 SL:94 F80E C9 CMP #$F5 PC:F80F A:F5 X:78 Y:0F P:E4 SP:F9 CYC:175 SL:94 F810 D0 BNE $F815 PC:F811 A:F5 X:78 Y:0F P:67 SP:F9 CYC:181 SL:94 F812 50 BVC $F815 PC:F813 A:F5 X:78 Y:0F P:67 SP:F9 CYC:187 SL:94 F814 60 RTS PC:F815 A:F5 X:78 Y:0F P:67 SP:F9 CYC:193 SL:94 DC76 C8 INY PC:DC77 A:F5 X:78 Y:0F P:67 SP:FB CYC:211 SL:94 DC77 A9 LDA #$70 PC:DC78 A:F5 X:78 Y:10 P:65 SP:FB CYC:217 SL:94 DC79 85 STA $78 PC:DC7A A:70 X:78 Y:10 P:65 SP:FB CYC:223 SL:94 DC7B 20 JSR $F818 PC:DC7C A:70 X:78 Y:10 P:65 SP:FB CYC:232 SL:94 F818 38 SEC PC:F819 A:70 X:78 Y:10 P:65 SP:F9 CYC:250 SL:94 F819 B8 CLV PC:F81A A:70 X:78 Y:10 P:65 SP:F9 CYC:256 SL:94 F81A A9 LDA #$70 PC:F81B A:70 X:78 Y:10 P:25 SP:F9 CYC:262 SL:94 F81C 60 RTS PC:F81D A:70 X:78 Y:10 P:25 SP:F9 CYC:268 SL:94 DC7E 55 EOR $00,x PC:DC7F A:70 X:78 Y:10 P:25 SP:FB CYC:286 SL:94 DC80 20 JSR $F81D PC:DC81 A:00 X:78 Y:10 P:27 SP:FB CYC:298 SL:94 F81D D0 BNE $F826 PC:F81E A:00 X:78 Y:10 P:27 SP:F9 CYC:316 SL:94 F81F 70 BVS $F826 PC:F820 A:00 X:78 Y:10 P:27 SP:F9 CYC:322 SL:94 F821 90 BCC $F826 PC:F822 A:00 X:78 Y:10 P:27 SP:F9 CYC:328 SL:94 F823 30 BMI $F826 PC:F824 A:00 X:78 Y:10 P:27 SP:F9 CYC:334 SL:94 F825 60 RTS PC:F826 A:00 X:78 Y:10 P:27 SP:F9 CYC:340 SL:94 DC83 C8 INY PC:DC84 A:00 X:78 Y:10 P:27 SP:FB CYC:17 SL:95 DC84 A9 LDA #$69 PC:DC85 A:00 X:78 Y:11 P:25 SP:FB CYC:23 SL:95 DC86 85 STA $78 PC:DC87 A:69 X:78 Y:11 P:25 SP:FB CYC:29 SL:95 DC88 20 JSR $F829 PC:DC89 A:69 X:78 Y:11 P:25 SP:FB CYC:38 SL:95 F829 18 CLC PC:F82A A:69 X:78 Y:11 P:25 SP:F9 CYC:56 SL:95 F82A 24 BIT $01 PC:F82B A:69 X:78 Y:11 P:24 SP:F9 CYC:62 SL:95 F82C A9 LDA #$00 PC:F82D A:69 X:78 Y:11 P:E4 SP:F9 CYC:71 SL:95 F82E 60 RTS PC:F82F A:00 X:78 Y:11 P:66 SP:F9 CYC:77 SL:95 DC8B 75 ADC $00,x PC:DC8C A:00 X:78 Y:11 P:66 SP:FB CYC:95 SL:95 DC8D 20 JSR $F82F PC:DC8E A:69 X:78 Y:11 P:24 SP:FB CYC:107 SL:95 F82F 30 BMI $F83A PC:F830 A:69 X:78 Y:11 P:24 SP:F9 CYC:125 SL:95 F831 B0 BCS $F83A PC:F832 A:69 X:78 Y:11 P:24 SP:F9 CYC:131 SL:95 F833 C9 CMP #$69 PC:F834 A:69 X:78 Y:11 P:24 SP:F9 CYC:137 SL:95 F835 D0 BNE $F83A PC:F836 A:69 X:78 Y:11 P:27 SP:F9 CYC:143 SL:95 F837 70 BVS $F83A PC:F838 A:69 X:78 Y:11 P:27 SP:F9 CYC:149 SL:95 F839 60 RTS PC:F83A A:69 X:78 Y:11 P:27 SP:F9 CYC:155 SL:95 DC90 C8 INY PC:DC91 A:69 X:78 Y:11 P:27 SP:FB CYC:173 SL:95 DC91 20 JSR $F83D PC:DC92 A:69 X:78 Y:12 P:25 SP:FB CYC:179 SL:95 F83D 38 SEC PC:F83E A:69 X:78 Y:12 P:25 SP:F9 CYC:197 SL:95 F83E 24 BIT $01 PC:F83F A:69 X:78 Y:12 P:25 SP:F9 CYC:203 SL:95 F840 A9 LDA #$00 PC:F841 A:69 X:78 Y:12 P:E5 SP:F9 CYC:212 SL:95 F842 60 RTS PC:F843 A:00 X:78 Y:12 P:67 SP:F9 CYC:218 SL:95 DC94 75 ADC $00,x PC:DC95 A:00 X:78 Y:12 P:67 SP:FB CYC:236 SL:95 DC96 20 JSR $F843 PC:DC97 A:6A X:78 Y:12 P:24 SP:FB CYC:248 SL:95 F843 30 BMI $F84E PC:F844 A:6A X:78 Y:12 P:24 SP:F9 CYC:266 SL:95 F845 B0 BCS $F84E PC:F846 A:6A X:78 Y:12 P:24 SP:F9 CYC:272 SL:95 F847 C9 CMP #$6A PC:F848 A:6A X:78 Y:12 P:24 SP:F9 CYC:278 SL:95 F849 D0 BNE $F84E PC:F84A A:6A X:78 Y:12 P:27 SP:F9 CYC:284 SL:95 F84B 70 BVS $F84E PC:F84C A:6A X:78 Y:12 P:27 SP:F9 CYC:290 SL:95 F84D 60 RTS PC:F84E A:6A X:78 Y:12 P:27 SP:F9 CYC:296 SL:95 DC99 C8 INY PC:DC9A A:6A X:78 Y:12 P:27 SP:FB CYC:314 SL:95 DC9A A9 LDA #$7F PC:DC9B A:6A X:78 Y:13 P:25 SP:FB CYC:320 SL:95 DC9C 85 STA $78 PC:DC9D A:7F X:78 Y:13 P:25 SP:FB CYC:326 SL:95 DC9E 20 JSR $F851 PC:DC9F A:7F X:78 Y:13 P:25 SP:FB CYC:335 SL:95 F851 38 SEC PC:F852 A:7F X:78 Y:13 P:25 SP:F9 CYC:12 SL:96 F852 B8 CLV PC:F853 A:7F X:78 Y:13 P:25 SP:F9 CYC:18 SL:96 F853 A9 LDA #$7F PC:F854 A:7F X:78 Y:13 P:25 SP:F9 CYC:24 SL:96 F855 60 RTS PC:F856 A:7F X:78 Y:13 P:25 SP:F9 CYC:30 SL:96 DCA1 75 ADC $00,x PC:DCA2 A:7F X:78 Y:13 P:25 SP:FB CYC:48 SL:96 DCA3 20 JSR $F856 PC:DCA4 A:FF X:78 Y:13 P:E4 SP:FB CYC:60 SL:96 F856 10 BPL $F861 PC:F857 A:FF X:78 Y:13 P:E4 SP:F9 CYC:78 SL:96 F858 B0 BCS $F861 PC:F859 A:FF X:78 Y:13 P:E4 SP:F9 CYC:84 SL:96 F85A C9 CMP #$FF PC:F85B A:FF X:78 Y:13 P:E4 SP:F9 CYC:90 SL:96 F85C D0 BNE $F861 PC:F85D A:FF X:78 Y:13 P:67 SP:F9 CYC:96 SL:96 F85E 50 BVC $F861 PC:F85F A:FF X:78 Y:13 P:67 SP:F9 CYC:102 SL:96 F860 60 RTS PC:F861 A:FF X:78 Y:13 P:67 SP:F9 CYC:108 SL:96 DCA6 C8 INY PC:DCA7 A:FF X:78 Y:13 P:67 SP:FB CYC:126 SL:96 DCA7 A9 LDA #$80 PC:DCA8 A:FF X:78 Y:14 P:65 SP:FB CYC:132 SL:96 DCA9 85 STA $78 PC:DCAA A:80 X:78 Y:14 P:E5 SP:FB CYC:138 SL:96 DCAB 20 JSR $F864 PC:DCAC A:80 X:78 Y:14 P:E5 SP:FB CYC:147 SL:96 F864 18 CLC PC:F865 A:80 X:78 Y:14 P:E5 SP:F9 CYC:165 SL:96 F865 24 BIT $01 PC:F866 A:80 X:78 Y:14 P:E4 SP:F9 CYC:171 SL:96 F867 A9 LDA #$7F PC:F868 A:80 X:78 Y:14 P:E4 SP:F9 CYC:180 SL:96 F869 60 RTS PC:F86A A:7F X:78 Y:14 P:64 SP:F9 CYC:186 SL:96 DCAE 75 ADC $00,x PC:DCAF A:7F X:78 Y:14 P:64 SP:FB CYC:204 SL:96 DCB0 20 JSR $F86A PC:DCB1 A:FF X:78 Y:14 P:A4 SP:FB CYC:216 SL:96 F86A 10 BPL $F875 PC:F86B A:FF X:78 Y:14 P:A4 SP:F9 CYC:234 SL:96 F86C B0 BCS $F875 PC:F86D A:FF X:78 Y:14 P:A4 SP:F9 CYC:240 SL:96 F86E C9 CMP #$FF PC:F86F A:FF X:78 Y:14 P:A4 SP:F9 CYC:246 SL:96 F870 D0 BNE $F875 PC:F871 A:FF X:78 Y:14 P:27 SP:F9 CYC:252 SL:96 F872 70 BVS $F875 PC:F873 A:FF X:78 Y:14 P:27 SP:F9 CYC:258 SL:96 F874 60 RTS PC:F875 A:FF X:78 Y:14 P:27 SP:F9 CYC:264 SL:96 DCB3 C8 INY PC:DCB4 A:FF X:78 Y:14 P:27 SP:FB CYC:282 SL:96 DCB4 20 JSR $F878 PC:DCB5 A:FF X:78 Y:15 P:25 SP:FB CYC:288 SL:96 F878 38 SEC PC:F879 A:FF X:78 Y:15 P:25 SP:F9 CYC:306 SL:96 F879 B8 CLV PC:F87A A:FF X:78 Y:15 P:25 SP:F9 CYC:312 SL:96 F87A A9 LDA #$7F PC:F87B A:FF X:78 Y:15 P:25 SP:F9 CYC:318 SL:96 F87C 60 RTS PC:F87D A:7F X:78 Y:15 P:25 SP:F9 CYC:324 SL:96 DCB7 75 ADC $00,x PC:DCB8 A:7F X:78 Y:15 P:25 SP:FB CYC:1 SL:97 DCB9 20 JSR $F87D PC:DCBA A:00 X:78 Y:15 P:27 SP:FB CYC:13 SL:97 F87D D0 BNE $F886 PC:F87E A:00 X:78 Y:15 P:27 SP:F9 CYC:31 SL:97 F87F 30 BMI $F886 PC:F880 A:00 X:78 Y:15 P:27 SP:F9 CYC:37 SL:97 F881 70 BVS $F886 PC:F882 A:00 X:78 Y:15 P:27 SP:F9 CYC:43 SL:97 F883 90 BCC $F886 PC:F884 A:00 X:78 Y:15 P:27 SP:F9 CYC:49 SL:97 F885 60 RTS PC:F886 A:00 X:78 Y:15 P:27 SP:F9 CYC:55 SL:97 DCBC C8 INY PC:DCBD A:00 X:78 Y:15 P:27 SP:FB CYC:73 SL:97 DCBD A9 LDA #$40 PC:DCBE A:00 X:78 Y:16 P:25 SP:FB CYC:79 SL:97 DCBF 85 STA $78 PC:DCC0 A:40 X:78 Y:16 P:25 SP:FB CYC:85 SL:97 DCC1 20 JSR $F889 PC:DCC2 A:40 X:78 Y:16 P:25 SP:FB CYC:94 SL:97 F889 24 BIT $01 PC:F88A A:40 X:78 Y:16 P:25 SP:F9 CYC:112 SL:97 F88B A9 LDA #$40 PC:F88C A:40 X:78 Y:16 P:E5 SP:F9 CYC:121 SL:97 F88D 60 RTS PC:F88E A:40 X:78 Y:16 P:65 SP:F9 CYC:127 SL:97 DCC4 D5 CMP $00,x PC:DCC5 A:40 X:78 Y:16 P:65 SP:FB CYC:145 SL:97 DCC6 20 JSR $F88E PC:DCC7 A:40 X:78 Y:16 P:67 SP:FB CYC:157 SL:97 F88E 30 BMI $F897 PC:F88F A:40 X:78 Y:16 P:67 SP:F9 CYC:175 SL:97 F890 90 BCC $F897 PC:F891 A:40 X:78 Y:16 P:67 SP:F9 CYC:181 SL:97 F892 D0 BNE $F897 PC:F893 A:40 X:78 Y:16 P:67 SP:F9 CYC:187 SL:97 F894 50 BVC $F897 PC:F895 A:40 X:78 Y:16 P:67 SP:F9 CYC:193 SL:97 F896 60 RTS PC:F897 A:40 X:78 Y:16 P:67 SP:F9 CYC:199 SL:97 DCC9 C8 INY PC:DCCA A:40 X:78 Y:16 P:67 SP:FB CYC:217 SL:97 DCCA 48 PHA PC:DCCB A:40 X:78 Y:17 P:65 SP:FB CYC:223 SL:97 DCCB A9 LDA #$3F PC:DCCC A:40 X:78 Y:17 P:65 SP:FA CYC:232 SL:97 DCCD 85 STA $78 PC:DCCE A:3F X:78 Y:17 P:65 SP:FA CYC:238 SL:97 DCCF 68 PLA PC:DCD0 A:3F X:78 Y:17 P:65 SP:FA CYC:247 SL:97 DCD0 20 JSR $F89A PC:DCD1 A:40 X:78 Y:17 P:65 SP:FB CYC:259 SL:97 F89A B8 CLV PC:F89B A:40 X:78 Y:17 P:65 SP:F9 CYC:277 SL:97 F89B 60 RTS PC:F89C A:40 X:78 Y:17 P:25 SP:F9 CYC:283 SL:97 DCD3 D5 CMP $00,x PC:DCD4 A:40 X:78 Y:17 P:25 SP:FB CYC:301 SL:97 DCD5 20 JSR $F89C PC:DCD6 A:40 X:78 Y:17 P:25 SP:FB CYC:313 SL:97 F89C F0 BEQ $F8A5 PC:F89D A:40 X:78 Y:17 P:25 SP:F9 CYC:331 SL:97 F89E 30 BMI $F8A5 PC:F89F A:40 X:78 Y:17 P:25 SP:F9 CYC:337 SL:97 F8A0 90 BCC $F8A5 PC:F8A1 A:40 X:78 Y:17 P:25 SP:F9 CYC:2 SL:98 F8A2 70 BVS $F8A5 PC:F8A3 A:40 X:78 Y:17 P:25 SP:F9 CYC:8 SL:98 F8A4 60 RTS PC:F8A5 A:40 X:78 Y:17 P:25 SP:F9 CYC:14 SL:98 DCD8 C8 INY PC:DCD9 A:40 X:78 Y:17 P:25 SP:FB CYC:32 SL:98 DCD9 48 PHA PC:DCDA A:40 X:78 Y:18 P:25 SP:FB CYC:38 SL:98 DCDA A9 LDA #$41 PC:DCDB A:40 X:78 Y:18 P:25 SP:FA CYC:47 SL:98 DCDC 85 STA $78 PC:DCDD A:41 X:78 Y:18 P:25 SP:FA CYC:53 SL:98 DCDE 68 PLA PC:DCDF A:41 X:78 Y:18 P:25 SP:FA CYC:62 SL:98 DCDF D5 CMP $00,x PC:DCE0 A:40 X:78 Y:18 P:25 SP:FB CYC:74 SL:98 DCE1 20 JSR $F8A8 PC:DCE2 A:40 X:78 Y:18 P:A4 SP:FB CYC:86 SL:98 F8A8 F0 BEQ $F8AF PC:F8A9 A:40 X:78 Y:18 P:A4 SP:F9 CYC:104 SL:98 F8AA 10 BPL $F8AF PC:F8AB A:40 X:78 Y:18 P:A4 SP:F9 CYC:110 SL:98 F8AC 10 BPL $F8AF PC:F8AD A:40 X:78 Y:18 P:A4 SP:F9 CYC:116 SL:98 F8AE 60 RTS PC:F8AF A:40 X:78 Y:18 P:A4 SP:F9 CYC:122 SL:98 DCE4 C8 INY PC:DCE5 A:40 X:78 Y:18 P:A4 SP:FB CYC:140 SL:98 DCE5 48 PHA PC:DCE6 A:40 X:78 Y:19 P:24 SP:FB CYC:146 SL:98 DCE6 A9 LDA #$00 PC:DCE7 A:40 X:78 Y:19 P:24 SP:FA CYC:155 SL:98 DCE8 85 STA $78 PC:DCE9 A:00 X:78 Y:19 P:26 SP:FA CYC:161 SL:98 DCEA 68 PLA PC:DCEB A:00 X:78 Y:19 P:26 SP:FA CYC:170 SL:98 DCEB 20 JSR $F8B2 PC:DCEC A:40 X:78 Y:19 P:24 SP:FB CYC:182 SL:98 F8B2 A9 LDA #$80 PC:F8B3 A:40 X:78 Y:19 P:24 SP:F9 CYC:200 SL:98 F8B4 60 RTS PC:F8B5 A:80 X:78 Y:19 P:A4 SP:F9 CYC:206 SL:98 DCEE D5 CMP $00,x PC:DCEF A:80 X:78 Y:19 P:A4 SP:FB CYC:224 SL:98 DCF0 20 JSR $F8B5 PC:DCF1 A:80 X:78 Y:19 P:A5 SP:FB CYC:236 SL:98 F8B5 F0 BEQ $F8BC PC:F8B6 A:80 X:78 Y:19 P:A5 SP:F9 CYC:254 SL:98 F8B7 10 BPL $F8BC PC:F8B8 A:80 X:78 Y:19 P:A5 SP:F9 CYC:260 SL:98 F8B9 90 BCC $F8BC PC:F8BA A:80 X:78 Y:19 P:A5 SP:F9 CYC:266 SL:98 F8BB 60 RTS PC:F8BC A:80 X:78 Y:19 P:A5 SP:F9 CYC:272 SL:98 DCF3 C8 INY PC:DCF4 A:80 X:78 Y:19 P:A5 SP:FB CYC:290 SL:98 DCF4 48 PHA PC:DCF5 A:80 X:78 Y:1A P:25 SP:FB CYC:296 SL:98 DCF5 A9 LDA #$80 PC:DCF6 A:80 X:78 Y:1A P:25 SP:FA CYC:305 SL:98 DCF7 85 STA $78 PC:DCF8 A:80 X:78 Y:1A P:A5 SP:FA CYC:311 SL:98 DCF9 68 PLA PC:DCFA A:80 X:78 Y:1A P:A5 SP:FA CYC:320 SL:98 DCFA D5 CMP $00,x PC:DCFB A:80 X:78 Y:1A P:A5 SP:FB CYC:332 SL:98 DCFC 20 JSR $F8BF PC:DCFD A:80 X:78 Y:1A P:27 SP:FB CYC:3 SL:99 F8BF D0 BNE $F8C6 PC:F8C0 A:80 X:78 Y:1A P:27 SP:F9 CYC:21 SL:99 F8C1 30 BMI $F8C6 PC:F8C2 A:80 X:78 Y:1A P:27 SP:F9 CYC:27 SL:99 F8C3 90 BCC $F8C6 PC:F8C4 A:80 X:78 Y:1A P:27 SP:F9 CYC:33 SL:99 F8C5 60 RTS PC:F8C6 A:80 X:78 Y:1A P:27 SP:F9 CYC:39 SL:99 DCFF C8 INY PC:DD00 A:80 X:78 Y:1A P:27 SP:FB CYC:57 SL:99 DD00 48 PHA PC:DD01 A:80 X:78 Y:1B P:25 SP:FB CYC:63 SL:99 DD01 A9 LDA #$81 PC:DD02 A:80 X:78 Y:1B P:25 SP:FA CYC:72 SL:99 DD03 85 STA $78 PC:DD04 A:81 X:78 Y:1B P:A5 SP:FA CYC:78 SL:99 DD05 68 PLA PC:DD06 A:81 X:78 Y:1B P:A5 SP:FA CYC:87 SL:99 DD06 D5 CMP $00,x PC:DD07 A:80 X:78 Y:1B P:A5 SP:FB CYC:99 SL:99 DD08 20 JSR $F8C9 PC:DD09 A:80 X:78 Y:1B P:A4 SP:FB CYC:111 SL:99 F8C9 B0 BCS $F8D0 PC:F8CA A:80 X:78 Y:1B P:A4 SP:F9 CYC:129 SL:99 F8CB F0 BEQ $F8D0 PC:F8CC A:80 X:78 Y:1B P:A4 SP:F9 CYC:135 SL:99 F8CD 10 BPL $F8D0 PC:F8CE A:80 X:78 Y:1B P:A4 SP:F9 CYC:141 SL:99 F8CF 60 RTS PC:F8D0 A:80 X:78 Y:1B P:A4 SP:F9 CYC:147 SL:99 DD0B C8 INY PC:DD0C A:80 X:78 Y:1B P:A4 SP:FB CYC:165 SL:99 DD0C 48 PHA PC:DD0D A:80 X:78 Y:1C P:24 SP:FB CYC:171 SL:99 DD0D A9 LDA #$7F PC:DD0E A:80 X:78 Y:1C P:24 SP:FA CYC:180 SL:99 DD0F 85 STA $78 PC:DD10 A:7F X:78 Y:1C P:24 SP:FA CYC:186 SL:99 DD11 68 PLA PC:DD12 A:7F X:78 Y:1C P:24 SP:FA CYC:195 SL:99 DD12 D5 CMP $00,x PC:DD13 A:80 X:78 Y:1C P:A4 SP:FB CYC:207 SL:99 DD14 20 JSR $F8D3 PC:DD15 A:80 X:78 Y:1C P:25 SP:FB CYC:219 SL:99 F8D3 90 BCC $F8DA PC:F8D4 A:80 X:78 Y:1C P:25 SP:F9 CYC:237 SL:99 F8D5 F0 BEQ $F8DA PC:F8D6 A:80 X:78 Y:1C P:25 SP:F9 CYC:243 SL:99 F8D7 30 BMI $F8DA PC:F8D8 A:80 X:78 Y:1C P:25 SP:F9 CYC:249 SL:99 F8D9 60 RTS PC:F8DA A:80 X:78 Y:1C P:25 SP:F9 CYC:255 SL:99 DD17 C8 INY PC:DD18 A:80 X:78 Y:1C P:25 SP:FB CYC:273 SL:99 DD18 A9 LDA #$40 PC:DD19 A:80 X:78 Y:1D P:25 SP:FB CYC:279 SL:99 DD1A 85 STA $78 PC:DD1B A:40 X:78 Y:1D P:25 SP:FB CYC:285 SL:99 DD1C 20 JSR $F931 PC:DD1D A:40 X:78 Y:1D P:25 SP:FB CYC:294 SL:99 F931 24 BIT $01 PC:F932 A:40 X:78 Y:1D P:25 SP:F9 CYC:312 SL:99 F933 A9 LDA #$40 PC:F934 A:40 X:78 Y:1D P:E5 SP:F9 CYC:321 SL:99 F935 38 SEC PC:F936 A:40 X:78 Y:1D P:65 SP:F9 CYC:327 SL:99 F936 60 RTS PC:F937 A:40 X:78 Y:1D P:65 SP:F9 CYC:333 SL:99 DD1F F5 SBC $00,x PC:DD20 A:40 X:78 Y:1D P:65 SP:FB CYC:10 SL:100 DD21 20 JSR $F937 PC:DD22 A:00 X:78 Y:1D P:27 SP:FB CYC:22 SL:100 F937 30 BMI $F944 PC:F938 A:00 X:78 Y:1D P:27 SP:F9 CYC:40 SL:100 F939 90 BCC $F944 PC:F93A A:00 X:78 Y:1D P:27 SP:F9 CYC:46 SL:100 F93B D0 BNE $F944 PC:F93C A:00 X:78 Y:1D P:27 SP:F9 CYC:52 SL:100 F93D 70 BVS $F944 PC:F93E A:00 X:78 Y:1D P:27 SP:F9 CYC:58 SL:100 F93F C9 CMP #$00 PC:F940 A:00 X:78 Y:1D P:27 SP:F9 CYC:64 SL:100 F941 D0 BNE $F944 PC:F942 A:00 X:78 Y:1D P:27 SP:F9 CYC:70 SL:100 F943 60 RTS PC:F944 A:00 X:78 Y:1D P:27 SP:F9 CYC:76 SL:100 DD24 C8 INY PC:DD25 A:00 X:78 Y:1D P:27 SP:FB CYC:94 SL:100 DD25 A9 LDA #$3F PC:DD26 A:00 X:78 Y:1E P:25 SP:FB CYC:100 SL:100 DD27 85 STA $78 PC:DD28 A:3F X:78 Y:1E P:25 SP:FB CYC:106 SL:100 DD29 20 JSR $F947 PC:DD2A A:3F X:78 Y:1E P:25 SP:FB CYC:115 SL:100 F947 B8 CLV PC:F948 A:3F X:78 Y:1E P:25 SP:F9 CYC:133 SL:100 F948 38 SEC PC:F949 A:3F X:78 Y:1E P:25 SP:F9 CYC:139 SL:100 F949 A9 LDA #$40 PC:F94A A:3F X:78 Y:1E P:25 SP:F9 CYC:145 SL:100 F94B 60 RTS PC:F94C A:40 X:78 Y:1E P:25 SP:F9 CYC:151 SL:100 DD2C F5 SBC $00,x PC:DD2D A:40 X:78 Y:1E P:25 SP:FB CYC:169 SL:100 DD2E 20 JSR $F94C PC:DD2F A:01 X:78 Y:1E P:25 SP:FB CYC:181 SL:100 F94C F0 BEQ $F959 PC:F94D A:01 X:78 Y:1E P:25 SP:F9 CYC:199 SL:100 F94E 30 BMI $F959 PC:F94F A:01 X:78 Y:1E P:25 SP:F9 CYC:205 SL:100 F950 90 BCC $F959 PC:F951 A:01 X:78 Y:1E P:25 SP:F9 CYC:211 SL:100 F952 70 BVS $F959 PC:F953 A:01 X:78 Y:1E P:25 SP:F9 CYC:217 SL:100 F954 C9 CMP #$01 PC:F955 A:01 X:78 Y:1E P:25 SP:F9 CYC:223 SL:100 F956 D0 BNE $F959 PC:F957 A:01 X:78 Y:1E P:27 SP:F9 CYC:229 SL:100 F958 60 RTS PC:F959 A:01 X:78 Y:1E P:27 SP:F9 CYC:235 SL:100 DD31 C8 INY PC:DD32 A:01 X:78 Y:1E P:27 SP:FB CYC:253 SL:100 DD32 A9 LDA #$41 PC:DD33 A:01 X:78 Y:1F P:25 SP:FB CYC:259 SL:100 DD34 85 STA $78 PC:DD35 A:41 X:78 Y:1F P:25 SP:FB CYC:265 SL:100 DD36 20 JSR $F95C PC:DD37 A:41 X:78 Y:1F P:25 SP:FB CYC:274 SL:100 F95C A9 LDA #$40 PC:F95D A:41 X:78 Y:1F P:25 SP:F9 CYC:292 SL:100 F95E 38 SEC PC:F95F A:40 X:78 Y:1F P:25 SP:F9 CYC:298 SL:100 F95F 24 BIT $01 PC:F960 A:40 X:78 Y:1F P:25 SP:F9 CYC:304 SL:100 F961 60 RTS PC:F962 A:40 X:78 Y:1F P:E5 SP:F9 CYC:313 SL:100 DD39 F5 SBC $00,x PC:DD3A A:40 X:78 Y:1F P:E5 SP:FB CYC:331 SL:100 DD3B 20 JSR $F962 PC:DD3C A:FF X:78 Y:1F P:A4 SP:FB CYC:2 SL:101 F962 B0 BCS $F96F PC:F963 A:FF X:78 Y:1F P:A4 SP:F9 CYC:20 SL:101 F964 F0 BEQ $F96F PC:F965 A:FF X:78 Y:1F P:A4 SP:F9 CYC:26 SL:101 F966 10 BPL $F96F PC:F967 A:FF X:78 Y:1F P:A4 SP:F9 CYC:32 SL:101 F968 70 BVS $F96F PC:F969 A:FF X:78 Y:1F P:A4 SP:F9 CYC:38 SL:101 F96A C9 CMP #$FF PC:F96B A:FF X:78 Y:1F P:A4 SP:F9 CYC:44 SL:101 F96C D0 BNE $F96F PC:F96D A:FF X:78 Y:1F P:27 SP:F9 CYC:50 SL:101 F96E 60 RTS PC:F96F A:FF X:78 Y:1F P:27 SP:F9 CYC:56 SL:101 DD3E C8 INY PC:DD3F A:FF X:78 Y:1F P:27 SP:FB CYC:74 SL:101 DD3F A9 LDA #$00 PC:DD40 A:FF X:78 Y:20 P:25 SP:FB CYC:80 SL:101 DD41 85 STA $78 PC:DD42 A:00 X:78 Y:20 P:27 SP:FB CYC:86 SL:101 DD43 20 JSR $F972 PC:DD44 A:00 X:78 Y:20 P:27 SP:FB CYC:95 SL:101 F972 18 CLC PC:F973 A:00 X:78 Y:20 P:27 SP:F9 CYC:113 SL:101 F973 A9 LDA #$80 PC:F974 A:00 X:78 Y:20 P:26 SP:F9 CYC:119 SL:101 F975 60 RTS PC:F976 A:80 X:78 Y:20 P:A4 SP:F9 CYC:125 SL:101 DD46 F5 SBC $00,x PC:DD47 A:80 X:78 Y:20 P:A4 SP:FB CYC:143 SL:101 DD48 20 JSR $F976 PC:DD49 A:7F X:78 Y:20 P:65 SP:FB CYC:155 SL:101 F976 90 BCC $F97D PC:F977 A:7F X:78 Y:20 P:65 SP:F9 CYC:173 SL:101 F978 C9 CMP #$7F PC:F979 A:7F X:78 Y:20 P:65 SP:F9 CYC:179 SL:101 F97A D0 BNE $F97D PC:F97B A:7F X:78 Y:20 P:67 SP:F9 CYC:185 SL:101 F97C 60 RTS PC:F97D A:7F X:78 Y:20 P:67 SP:F9 CYC:191 SL:101 DD4B C8 INY PC:DD4C A:7F X:78 Y:20 P:67 SP:FB CYC:209 SL:101 DD4C A9 LDA #$7F PC:DD4D A:7F X:78 Y:21 P:65 SP:FB CYC:215 SL:101 DD4E 85 STA $78 PC:DD4F A:7F X:78 Y:21 P:65 SP:FB CYC:221 SL:101 DD50 20 JSR $F980 PC:DD51 A:7F X:78 Y:21 P:65 SP:FB CYC:230 SL:101 F980 38 SEC PC:F981 A:7F X:78 Y:21 P:65 SP:F9 CYC:248 SL:101 F981 A9 LDA #$81 PC:F982 A:7F X:78 Y:21 P:65 SP:F9 CYC:254 SL:101 F983 60 RTS PC:F984 A:81 X:78 Y:21 P:E5 SP:F9 CYC:260 SL:101 DD53 F5 SBC $00,x PC:DD54 A:81 X:78 Y:21 P:E5 SP:FB CYC:278 SL:101 DD55 20 JSR $F984 PC:DD56 A:02 X:78 Y:21 P:65 SP:FB CYC:290 SL:101 F984 50 BVC $F98D PC:F985 A:02 X:78 Y:21 P:65 SP:F9 CYC:308 SL:101 F986 90 BCC $F98D PC:F987 A:02 X:78 Y:21 P:65 SP:F9 CYC:314 SL:101 F988 C9 CMP #$02 PC:F989 A:02 X:78 Y:21 P:65 SP:F9 CYC:320 SL:101 F98A D0 BNE $F98D PC:F98B A:02 X:78 Y:21 P:67 SP:F9 CYC:326 SL:101 F98C 60 RTS PC:F98D A:02 X:78 Y:21 P:67 SP:F9 CYC:332 SL:101 DD58 A9 LDA #$AA PC:DD59 A:02 X:78 Y:21 P:67 SP:FB CYC:9 SL:102 DD5A 85 STA $33 PC:DD5B A:AA X:78 Y:21 P:E5 SP:FB CYC:15 SL:102 DD5C A9 LDA #$BB PC:DD5D A:AA X:78 Y:21 P:E5 SP:FB CYC:24 SL:102 DD5E 85 STA $89 PC:DD5F A:BB X:78 Y:21 P:E5 SP:FB CYC:30 SL:102 DD60 A2 LDX #$00 PC:DD61 A:BB X:78 Y:21 P:E5 SP:FB CYC:39 SL:102 DD62 A0 LDY #$66 PC:DD63 A:BB X:00 Y:21 P:67 SP:FB CYC:45 SL:102 DD64 24 BIT $01 PC:DD65 A:BB X:00 Y:66 P:65 SP:FB CYC:51 SL:102 DD66 38 SEC PC:DD67 A:BB X:00 Y:66 P:E5 SP:FB CYC:60 SL:102 DD67 A9 LDA #$00 PC:DD68 A:BB X:00 Y:66 P:E5 SP:FB CYC:66 SL:102 DD69 B5 LDA $33,x PC:DD6A A:00 X:00 Y:66 P:67 SP:FB CYC:72 SL:102 DD6B 10 BPL $DD7F PC:DD6C A:AA X:00 Y:66 P:E5 SP:FB CYC:84 SL:102 DD6D F0 BEQ $DD7F PC:DD6E A:AA X:00 Y:66 P:E5 SP:FB CYC:90 SL:102 DD6F 50 BVC $DD7F PC:DD70 A:AA X:00 Y:66 P:E5 SP:FB CYC:96 SL:102 DD71 90 BCC $DD7F PC:DD72 A:AA X:00 Y:66 P:E5 SP:FB CYC:102 SL:102 DD73 C0 CPY #$66 PC:DD74 A:AA X:00 Y:66 P:E5 SP:FB CYC:108 SL:102 DD75 D0 BNE $DD7F PC:DD76 A:AA X:00 Y:66 P:67 SP:FB CYC:114 SL:102 DD77 E0 CPX #$00 PC:DD78 A:AA X:00 Y:66 P:67 SP:FB CYC:120 SL:102 DD79 D0 BNE $DD7F PC:DD7A A:AA X:00 Y:66 P:67 SP:FB CYC:126 SL:102 DD7B C9 CMP #$AA PC:DD7C A:AA X:00 Y:66 P:67 SP:FB CYC:132 SL:102 DD7D F0 BEQ $DD83 PC:DD7E A:AA X:00 Y:66 P:67 SP:FB CYC:138 SL:102 DD83 A2 LDX #$8A PC:DD84 A:AA X:00 Y:66 P:67 SP:FB CYC:147 SL:102 DD85 A0 LDY #$66 PC:DD86 A:AA X:8A Y:66 P:E5 SP:FB CYC:153 SL:102 DD87 B8 CLV PC:DD88 A:AA X:8A Y:66 P:65 SP:FB CYC:159 SL:102 DD88 18 CLC PC:DD89 A:AA X:8A Y:66 P:25 SP:FB CYC:165 SL:102 DD89 A9 LDA #$00 PC:DD8A A:AA X:8A Y:66 P:24 SP:FB CYC:171 SL:102 DD8B B5 LDA $FF,x PC:DD8C A:00 X:8A Y:66 P:26 SP:FB CYC:177 SL:102 DD8D 10 BPL $DDA1 PC:DD8E A:BB X:8A Y:66 P:A4 SP:FB CYC:189 SL:102 DD8F F0 BEQ $DDA1 PC:DD90 A:BB X:8A Y:66 P:A4 SP:FB CYC:195 SL:102 DD91 70 BVS $DDA1 PC:DD92 A:BB X:8A Y:66 P:A4 SP:FB CYC:201 SL:102 DD93 B0 BCS $DDA1 PC:DD94 A:BB X:8A Y:66 P:A4 SP:FB CYC:207 SL:102 DD95 C9 CMP #$BB PC:DD96 A:BB X:8A Y:66 P:A4 SP:FB CYC:213 SL:102 DD97 D0 BNE $DDA1 PC:DD98 A:BB X:8A Y:66 P:27 SP:FB CYC:219 SL:102 DD99 C0 CPY #$66 PC:DD9A A:BB X:8A Y:66 P:27 SP:FB CYC:225 SL:102 DD9B D0 BNE $DDA1 PC:DD9C A:BB X:8A Y:66 P:27 SP:FB CYC:231 SL:102 DD9D E0 CPX #$8A PC:DD9E A:BB X:8A Y:66 P:27 SP:FB CYC:237 SL:102 DD9F F0 BEQ $DDA5 PC:DDA0 A:BB X:8A Y:66 P:27 SP:FB CYC:243 SL:102 DDA5 24 BIT $01 PC:DDA6 A:BB X:8A Y:66 P:27 SP:FB CYC:252 SL:102 DDA7 38 SEC PC:DDA8 A:BB X:8A Y:66 P:E5 SP:FB CYC:261 SL:102 DDA8 A9 LDA #$44 PC:DDA9 A:BB X:8A Y:66 P:E5 SP:FB CYC:267 SL:102 DDAA A2 LDX #$00 PC:DDAB A:44 X:8A Y:66 P:65 SP:FB CYC:273 SL:102 DDAC 95 STA $33,x PC:DDAD A:44 X:00 Y:66 P:67 SP:FB CYC:279 SL:102 DDAE A5 LDA $33 PC:DDAF A:44 X:00 Y:66 P:67 SP:FB CYC:291 SL:102 DDB0 90 BCC $DDCA PC:DDB1 A:44 X:00 Y:66 P:65 SP:FB CYC:300 SL:102 DDB2 C9 CMP #$44 PC:DDB3 A:44 X:00 Y:66 P:65 SP:FB CYC:306 SL:102 DDB4 D0 BNE $DDCA PC:DDB5 A:44 X:00 Y:66 P:67 SP:FB CYC:312 SL:102 DDB6 50 BVC $DDCA PC:DDB7 A:44 X:00 Y:66 P:67 SP:FB CYC:318 SL:102 DDB8 18 CLC PC:DDB9 A:44 X:00 Y:66 P:67 SP:FB CYC:324 SL:102 DDB9 B8 CLV PC:DDBA A:44 X:00 Y:66 P:66 SP:FB CYC:330 SL:102 DDBA A9 LDA #$99 PC:DDBB A:44 X:00 Y:66 P:26 SP:FB CYC:336 SL:102 DDBC A2 LDX #$80 PC:DDBD A:99 X:00 Y:66 P:A4 SP:FB CYC:1 SL:103 DDBE 95 STA $85,x PC:DDBF A:99 X:80 Y:66 P:A4 SP:FB CYC:7 SL:103 DDC0 A5 LDA $05 PC:DDC1 A:99 X:80 Y:66 P:A4 SP:FB CYC:19 SL:103 DDC2 B0 BCS $DDCA PC:DDC3 A:99 X:80 Y:66 P:A4 SP:FB CYC:28 SL:103 DDC4 C9 CMP #$99 PC:DDC5 A:99 X:80 Y:66 P:A4 SP:FB CYC:34 SL:103 DDC6 D0 BNE $DDCA PC:DDC7 A:99 X:80 Y:66 P:27 SP:FB CYC:40 SL:103 DDC8 50 BVC $DDCE PC:DDC9 A:99 X:80 Y:66 P:27 SP:FB CYC:46 SL:103 DDCE A0 LDY #$25 PC:DDCF A:99 X:80 Y:66 P:27 SP:FB CYC:55 SL:103 DDD0 A2 LDX #$78 PC:DDD1 A:99 X:80 Y:25 P:25 SP:FB CYC:61 SL:103 DDD2 20 JSR $F990 PC:DDD3 A:99 X:78 Y:25 P:25 SP:FB CYC:67 SL:103 F990 A2 LDX #$55 PC:F991 A:99 X:78 Y:25 P:25 SP:F9 CYC:85 SL:103 F992 A9 LDA #$FF PC:F993 A:99 X:55 Y:25 P:25 SP:F9 CYC:91 SL:103 F994 85 STA $01 PC:F995 A:FF X:55 Y:25 P:A5 SP:F9 CYC:97 SL:103 F996 EA NOP PC:F997 A:FF X:55 Y:25 P:A5 SP:F9 CYC:106 SL:103 F997 24 BIT $01 PC:F998 A:FF X:55 Y:25 P:A5 SP:F9 CYC:112 SL:103 F999 38 SEC PC:F99A A:FF X:55 Y:25 P:E5 SP:F9 CYC:121 SL:103 F99A A9 LDA #$01 PC:F99B A:FF X:55 Y:25 P:E5 SP:F9 CYC:127 SL:103 F99C 60 RTS PC:F99D A:01 X:55 Y:25 P:65 SP:F9 CYC:133 SL:103 DDD5 95 STA $00,x PC:DDD6 A:01 X:55 Y:25 P:65 SP:FB CYC:151 SL:103 DDD7 56 LSR $00,x PC:DDD8 A:01 X:55 Y:25 P:65 SP:FB CYC:163 SL:103 DDD9 B5 LDA $00,x PC:DDDA A:01 X:55 Y:25 P:67 SP:FB CYC:181 SL:103 DDDB 20 JSR $F99D PC:DDDC A:00 X:55 Y:25 P:67 SP:FB CYC:193 SL:103 F99D 90 BCC $F9BA PC:F99E A:00 X:55 Y:25 P:67 SP:F9 CYC:211 SL:103 F99F D0 BNE $F9BA PC:F9A0 A:00 X:55 Y:25 P:67 SP:F9 CYC:217 SL:103 F9A1 30 BMI $F9BA PC:F9A2 A:00 X:55 Y:25 P:67 SP:F9 CYC:223 SL:103 F9A3 50 BVC $F9BA PC:F9A4 A:00 X:55 Y:25 P:67 SP:F9 CYC:229 SL:103 F9A5 C9 CMP #$00 PC:F9A6 A:00 X:55 Y:25 P:67 SP:F9 CYC:235 SL:103 F9A7 D0 BNE $F9BA PC:F9A8 A:00 X:55 Y:25 P:67 SP:F9 CYC:241 SL:103 F9A9 B8 CLV PC:F9AA A:00 X:55 Y:25 P:67 SP:F9 CYC:247 SL:103 F9AA A9 LDA #$AA PC:F9AB A:00 X:55 Y:25 P:27 SP:F9 CYC:253 SL:103 F9AC 60 RTS PC:F9AD A:AA X:55 Y:25 P:A5 SP:F9 CYC:259 SL:103 DDDE C8 INY PC:DDDF A:AA X:55 Y:25 P:A5 SP:FB CYC:277 SL:103 DDDF 95 STA $00,x PC:DDE0 A:AA X:55 Y:26 P:25 SP:FB CYC:283 SL:103 DDE1 56 LSR $00,x PC:DDE2 A:AA X:55 Y:26 P:25 SP:FB CYC:295 SL:103 DDE3 B5 LDA $00,x PC:DDE4 A:AA X:55 Y:26 P:24 SP:FB CYC:313 SL:103 DDE5 20 JSR $F9AD PC:DDE6 A:55 X:55 Y:26 P:24 SP:FB CYC:325 SL:103 F9AD B0 BCS $F9BA PC:F9AE A:55 X:55 Y:26 P:24 SP:F9 CYC:2 SL:104 F9AF F0 BEQ $F9BA PC:F9B0 A:55 X:55 Y:26 P:24 SP:F9 CYC:8 SL:104 F9B1 30 BMI $F9BA PC:F9B2 A:55 X:55 Y:26 P:24 SP:F9 CYC:14 SL:104 F9B3 70 BVS $F9BA PC:F9B4 A:55 X:55 Y:26 P:24 SP:F9 CYC:20 SL:104 F9B5 C9 CMP #$55 PC:F9B6 A:55 X:55 Y:26 P:24 SP:F9 CYC:26 SL:104 F9B7 D0 BNE $F9BA PC:F9B8 A:55 X:55 Y:26 P:27 SP:F9 CYC:32 SL:104 F9B9 60 RTS PC:F9BA A:55 X:55 Y:26 P:27 SP:F9 CYC:38 SL:104 DDE8 C8 INY PC:DDE9 A:55 X:55 Y:26 P:27 SP:FB CYC:56 SL:104 DDE9 20 JSR $F9BD PC:DDEA A:55 X:55 Y:27 P:25 SP:FB CYC:62 SL:104 F9BD 24 BIT $01 PC:F9BE A:55 X:55 Y:27 P:25 SP:F9 CYC:80 SL:104 F9BF 38 SEC PC:F9C0 A:55 X:55 Y:27 P:E5 SP:F9 CYC:89 SL:104 F9C0 A9 LDA #$80 PC:F9C1 A:55 X:55 Y:27 P:E5 SP:F9 CYC:95 SL:104 F9C2 60 RTS PC:F9C3 A:80 X:55 Y:27 P:E5 SP:F9 CYC:101 SL:104 DDEC 95 STA $00,x PC:DDED A:80 X:55 Y:27 P:E5 SP:FB CYC:119 SL:104 DDEE 16 ASL $00,x PC:DDEF A:80 X:55 Y:27 P:E5 SP:FB CYC:131 SL:104 DDF0 B5 LDA $00,x PC:DDF1 A:80 X:55 Y:27 P:67 SP:FB CYC:149 SL:104 DDF2 20 JSR $F9C3 PC:DDF3 A:00 X:55 Y:27 P:67 SP:FB CYC:161 SL:104 F9C3 90 BCC $F9E1 PC:F9C4 A:00 X:55 Y:27 P:67 SP:F9 CYC:179 SL:104 F9C5 D0 BNE $F9E1 PC:F9C6 A:00 X:55 Y:27 P:67 SP:F9 CYC:185 SL:104 F9C7 30 BMI $F9E1 PC:F9C8 A:00 X:55 Y:27 P:67 SP:F9 CYC:191 SL:104 F9C9 50 BVC $F9E1 PC:F9CA A:00 X:55 Y:27 P:67 SP:F9 CYC:197 SL:104 F9CB C9 CMP #$00 PC:F9CC A:00 X:55 Y:27 P:67 SP:F9 CYC:203 SL:104 F9CD D0 BNE $F9E1 PC:F9CE A:00 X:55 Y:27 P:67 SP:F9 CYC:209 SL:104 F9CF B8 CLV PC:F9D0 A:00 X:55 Y:27 P:67 SP:F9 CYC:215 SL:104 F9D0 A9 LDA #$55 PC:F9D1 A:00 X:55 Y:27 P:27 SP:F9 CYC:221 SL:104 F9D2 38 SEC PC:F9D3 A:55 X:55 Y:27 P:25 SP:F9 CYC:227 SL:104 F9D3 60 RTS PC:F9D4 A:55 X:55 Y:27 P:25 SP:F9 CYC:233 SL:104 DDF5 C8 INY PC:DDF6 A:55 X:55 Y:27 P:25 SP:FB CYC:251 SL:104 DDF6 95 STA $00,x PC:DDF7 A:55 X:55 Y:28 P:25 SP:FB CYC:257 SL:104 DDF8 16 ASL $00,x PC:DDF9 A:55 X:55 Y:28 P:25 SP:FB CYC:269 SL:104 DDFA B5 LDA $00,x PC:DDFB A:55 X:55 Y:28 P:A4 SP:FB CYC:287 SL:104 DDFC 20 JSR $F9D4 PC:DDFD A:AA X:55 Y:28 P:A4 SP:FB CYC:299 SL:104 F9D4 B0 BCS $F9E1 PC:F9D5 A:AA X:55 Y:28 P:A4 SP:F9 CYC:317 SL:104 F9D6 F0 BEQ $F9E1 PC:F9D7 A:AA X:55 Y:28 P:A4 SP:F9 CYC:323 SL:104 F9D8 10 BPL $F9E1 PC:F9D9 A:AA X:55 Y:28 P:A4 SP:F9 CYC:329 SL:104 F9DA 70 BVS $F9E1 PC:F9DB A:AA X:55 Y:28 P:A4 SP:F9 CYC:335 SL:104 F9DC C9 CMP #$AA PC:F9DD A:AA X:55 Y:28 P:A4 SP:F9 CYC:0 SL:105 F9DE D0 BNE $F9E1 PC:F9DF A:AA X:55 Y:28 P:27 SP:F9 CYC:6 SL:105 F9E0 60 RTS PC:F9E1 A:AA X:55 Y:28 P:27 SP:F9 CYC:12 SL:105 DDFF C8 INY PC:DE00 A:AA X:55 Y:28 P:27 SP:FB CYC:30 SL:105 DE00 20 JSR $F9E4 PC:DE01 A:AA X:55 Y:29 P:25 SP:FB CYC:36 SL:105 F9E4 24 BIT $01 PC:F9E5 A:AA X:55 Y:29 P:25 SP:F9 CYC:54 SL:105 F9E6 38 SEC PC:F9E7 A:AA X:55 Y:29 P:E5 SP:F9 CYC:63 SL:105 F9E7 A9 LDA #$01 PC:F9E8 A:AA X:55 Y:29 P:E5 SP:F9 CYC:69 SL:105 F9E9 60 RTS PC:F9EA A:01 X:55 Y:29 P:65 SP:F9 CYC:75 SL:105 DE03 95 STA $00,x PC:DE04 A:01 X:55 Y:29 P:65 SP:FB CYC:93 SL:105 DE05 76 ROR $00,x PC:DE06 A:01 X:55 Y:29 P:65 SP:FB CYC:105 SL:105 DE07 B5 LDA $00,x PC:DE08 A:01 X:55 Y:29 P:E5 SP:FB CYC:123 SL:105 DE09 20 JSR $F9EA PC:DE0A A:80 X:55 Y:29 P:E5 SP:FB CYC:135 SL:105 F9EA 90 BCC $FA08 PC:F9EB A:80 X:55 Y:29 P:E5 SP:F9 CYC:153 SL:105 F9EC F0 BEQ $FA08 PC:F9ED A:80 X:55 Y:29 P:E5 SP:F9 CYC:159 SL:105 F9EE 10 BPL $FA08 PC:F9EF A:80 X:55 Y:29 P:E5 SP:F9 CYC:165 SL:105 F9F0 50 BVC $FA08 PC:F9F1 A:80 X:55 Y:29 P:E5 SP:F9 CYC:171 SL:105 F9F2 C9 CMP #$80 PC:F9F3 A:80 X:55 Y:29 P:E5 SP:F9 CYC:177 SL:105 F9F4 D0 BNE $FA08 PC:F9F5 A:80 X:55 Y:29 P:67 SP:F9 CYC:183 SL:105 F9F6 B8 CLV PC:F9F7 A:80 X:55 Y:29 P:67 SP:F9 CYC:189 SL:105 F9F7 18 CLC PC:F9F8 A:80 X:55 Y:29 P:27 SP:F9 CYC:195 SL:105 F9F8 A9 LDA #$55 PC:F9F9 A:80 X:55 Y:29 P:26 SP:F9 CYC:201 SL:105 F9FA 60 RTS PC:F9FB A:55 X:55 Y:29 P:24 SP:F9 CYC:207 SL:105 DE0C C8 INY PC:DE0D A:55 X:55 Y:29 P:24 SP:FB CYC:225 SL:105 DE0D 95 STA $00,x PC:DE0E A:55 X:55 Y:2A P:24 SP:FB CYC:231 SL:105 DE0F 76 ROR $00,x PC:DE10 A:55 X:55 Y:2A P:24 SP:FB CYC:243 SL:105 DE11 B5 LDA $00,x PC:DE12 A:55 X:55 Y:2A P:25 SP:FB CYC:261 SL:105 DE13 20 JSR $F9FB PC:DE14 A:2A X:55 Y:2A P:25 SP:FB CYC:273 SL:105 F9FB 90 BCC $FA08 PC:F9FC A:2A X:55 Y:2A P:25 SP:F9 CYC:291 SL:105 F9FD F0 BEQ $FA08 PC:F9FE A:2A X:55 Y:2A P:25 SP:F9 CYC:297 SL:105 F9FF 30 BMI $FA08 PC:FA00 A:2A X:55 Y:2A P:25 SP:F9 CYC:303 SL:105 FA01 70 BVS $FA08 PC:FA02 A:2A X:55 Y:2A P:25 SP:F9 CYC:309 SL:105 FA03 C9 CMP #$2A PC:FA04 A:2A X:55 Y:2A P:25 SP:F9 CYC:315 SL:105 FA05 D0 BNE $FA08 PC:FA06 A:2A X:55 Y:2A P:27 SP:F9 CYC:321 SL:105 FA07 60 RTS PC:FA08 A:2A X:55 Y:2A P:27 SP:F9 CYC:327 SL:105 DE16 C8 INY PC:DE17 A:2A X:55 Y:2A P:27 SP:FB CYC:4 SL:106 DE17 20 JSR $FA0A PC:DE18 A:2A X:55 Y:2B P:25 SP:FB CYC:10 SL:106 FA0A 24 BIT $01 PC:FA0B A:2A X:55 Y:2B P:25 SP:F9 CYC:28 SL:106 FA0C 38 SEC PC:FA0D A:2A X:55 Y:2B P:E5 SP:F9 CYC:37 SL:106 FA0D A9 LDA #$80 PC:FA0E A:2A X:55 Y:2B P:E5 SP:F9 CYC:43 SL:106 FA0F 60 RTS PC:FA10 A:80 X:55 Y:2B P:E5 SP:F9 CYC:49 SL:106 DE1A 95 STA $00,x PC:DE1B A:80 X:55 Y:2B P:E5 SP:FB CYC:67 SL:106 DE1C 36 ROL $00,x PC:DE1D A:80 X:55 Y:2B P:E5 SP:FB CYC:79 SL:106 DE1E B5 LDA $00,x PC:DE1F A:80 X:55 Y:2B P:65 SP:FB CYC:97 SL:106 DE20 20 JSR $FA10 PC:DE21 A:01 X:55 Y:2B P:65 SP:FB CYC:109 SL:106 FA10 90 BCC $FA2E PC:FA11 A:01 X:55 Y:2B P:65 SP:F9 CYC:127 SL:106 FA12 F0 BEQ $FA2E PC:FA13 A:01 X:55 Y:2B P:65 SP:F9 CYC:133 SL:106 FA14 30 BMI $FA2E PC:FA15 A:01 X:55 Y:2B P:65 SP:F9 CYC:139 SL:106 FA16 50 BVC $FA2E PC:FA17 A:01 X:55 Y:2B P:65 SP:F9 CYC:145 SL:106 FA18 C9 CMP #$01 PC:FA19 A:01 X:55 Y:2B P:65 SP:F9 CYC:151 SL:106 FA1A D0 BNE $FA2E PC:FA1B A:01 X:55 Y:2B P:67 SP:F9 CYC:157 SL:106 FA1C B8 CLV PC:FA1D A:01 X:55 Y:2B P:67 SP:F9 CYC:163 SL:106 FA1D 18 CLC PC:FA1E A:01 X:55 Y:2B P:27 SP:F9 CYC:169 SL:106 FA1E A9 LDA #$55 PC:FA1F A:01 X:55 Y:2B P:26 SP:F9 CYC:175 SL:106 FA20 60 RTS PC:FA21 A:55 X:55 Y:2B P:24 SP:F9 CYC:181 SL:106 DE23 C8 INY PC:DE24 A:55 X:55 Y:2B P:24 SP:FB CYC:199 SL:106 DE24 95 STA $00,x PC:DE25 A:55 X:55 Y:2C P:24 SP:FB CYC:205 SL:106 DE26 36 ROL $00,x PC:DE27 A:55 X:55 Y:2C P:24 SP:FB CYC:217 SL:106 DE28 B5 LDA $00,x PC:DE29 A:55 X:55 Y:2C P:A4 SP:FB CYC:235 SL:106 DE2A 20 JSR $FA21 PC:DE2B A:AA X:55 Y:2C P:A4 SP:FB CYC:247 SL:106 FA21 B0 BCS $FA2E PC:FA22 A:AA X:55 Y:2C P:A4 SP:F9 CYC:265 SL:106 FA23 F0 BEQ $FA2E PC:FA24 A:AA X:55 Y:2C P:A4 SP:F9 CYC:271 SL:106 FA25 10 BPL $FA2E PC:FA26 A:AA X:55 Y:2C P:A4 SP:F9 CYC:277 SL:106 FA27 70 BVS $FA2E PC:FA28 A:AA X:55 Y:2C P:A4 SP:F9 CYC:283 SL:106 FA29 C9 CMP #$AA PC:FA2A A:AA X:55 Y:2C P:A4 SP:F9 CYC:289 SL:106 FA2B D0 BNE $FA2E PC:FA2C A:AA X:55 Y:2C P:27 SP:F9 CYC:295 SL:106 FA2D 60 RTS PC:FA2E A:AA X:55 Y:2C P:27 SP:F9 CYC:301 SL:106 DE2D A9 LDA #$FF PC:DE2E A:AA X:55 Y:2C P:27 SP:FB CYC:319 SL:106 DE2F 95 STA $00,x PC:DE30 A:FF X:55 Y:2C P:A5 SP:FB CYC:325 SL:106 DE31 85 STA $01 PC:DE32 A:FF X:55 Y:2C P:A5 SP:FB CYC:337 SL:106 DE33 24 BIT $01 PC:DE34 A:FF X:55 Y:2C P:A5 SP:FB CYC:5 SL:107 DE35 38 SEC PC:DE36 A:FF X:55 Y:2C P:E5 SP:FB CYC:14 SL:107 DE36 F6 INC $00,x PC:DE37 A:FF X:55 Y:2C P:E5 SP:FB CYC:20 SL:107 DE38 D0 BNE $DE46 PC:DE39 A:FF X:55 Y:2C P:67 SP:FB CYC:38 SL:107 DE3A 30 BMI $DE46 PC:DE3B A:FF X:55 Y:2C P:67 SP:FB CYC:44 SL:107 DE3C 50 BVC $DE46 PC:DE3D A:FF X:55 Y:2C P:67 SP:FB CYC:50 SL:107 DE3E 90 BCC $DE46 PC:DE3F A:FF X:55 Y:2C P:67 SP:FB CYC:56 SL:107 DE40 B5 LDA $00,x PC:DE41 A:FF X:55 Y:2C P:67 SP:FB CYC:62 SL:107 DE42 C9 CMP #$00 PC:DE43 A:00 X:55 Y:2C P:67 SP:FB CYC:74 SL:107 DE44 F0 BEQ $DE4A PC:DE45 A:00 X:55 Y:2C P:67 SP:FB CYC:80 SL:107 DE4A A9 LDA #$7F PC:DE4B A:00 X:55 Y:2C P:67 SP:FB CYC:89 SL:107 DE4C 95 STA $00,x PC:DE4D A:7F X:55 Y:2C P:65 SP:FB CYC:95 SL:107 DE4E B8 CLV PC:DE4F A:7F X:55 Y:2C P:65 SP:FB CYC:107 SL:107 DE4F 18 CLC PC:DE50 A:7F X:55 Y:2C P:25 SP:FB CYC:113 SL:107 DE50 F6 INC $00,x PC:DE51 A:7F X:55 Y:2C P:24 SP:FB CYC:119 SL:107 DE52 F0 BEQ $DE60 PC:DE53 A:7F X:55 Y:2C P:A4 SP:FB CYC:137 SL:107 DE54 10 BPL $DE60 PC:DE55 A:7F X:55 Y:2C P:A4 SP:FB CYC:143 SL:107 DE56 70 BVS $DE60 PC:DE57 A:7F X:55 Y:2C P:A4 SP:FB CYC:149 SL:107 DE58 B0 BCS $DE60 PC:DE59 A:7F X:55 Y:2C P:A4 SP:FB CYC:155 SL:107 DE5A B5 LDA $00,x PC:DE5B A:7F X:55 Y:2C P:A4 SP:FB CYC:161 SL:107 DE5C C9 CMP #$80 PC:DE5D A:80 X:55 Y:2C P:A4 SP:FB CYC:173 SL:107 DE5E F0 BEQ $DE64 PC:DE5F A:80 X:55 Y:2C P:27 SP:FB CYC:179 SL:107 DE64 A9 LDA #$00 PC:DE65 A:80 X:55 Y:2C P:27 SP:FB CYC:188 SL:107 DE66 95 STA $00,x PC:DE67 A:00 X:55 Y:2C P:27 SP:FB CYC:194 SL:107 DE68 24 BIT $01 PC:DE69 A:00 X:55 Y:2C P:27 SP:FB CYC:206 SL:107 DE6A 38 SEC PC:DE6B A:00 X:55 Y:2C P:E7 SP:FB CYC:215 SL:107 DE6B D6 DEC $00,x PC:DE6C A:00 X:55 Y:2C P:E7 SP:FB CYC:221 SL:107 DE6D F0 BEQ $DE7B PC:DE6E A:00 X:55 Y:2C P:E5 SP:FB CYC:239 SL:107 DE6F 10 BPL $DE7B PC:DE70 A:00 X:55 Y:2C P:E5 SP:FB CYC:245 SL:107 DE71 50 BVC $DE7B PC:DE72 A:00 X:55 Y:2C P:E5 SP:FB CYC:251 SL:107 DE73 90 BCC $DE7B PC:DE74 A:00 X:55 Y:2C P:E5 SP:FB CYC:257 SL:107 DE75 B5 LDA $00,x PC:DE76 A:00 X:55 Y:2C P:E5 SP:FB CYC:263 SL:107 DE77 C9 CMP #$FF PC:DE78 A:FF X:55 Y:2C P:E5 SP:FB CYC:275 SL:107 DE79 F0 BEQ $DE7F PC:DE7A A:FF X:55 Y:2C P:67 SP:FB CYC:281 SL:107 DE7F A9 LDA #$80 PC:DE80 A:FF X:55 Y:2C P:67 SP:FB CYC:290 SL:107 DE81 95 STA $00,x PC:DE82 A:80 X:55 Y:2C P:E5 SP:FB CYC:296 SL:107 DE83 B8 CLV PC:DE84 A:80 X:55 Y:2C P:E5 SP:FB CYC:308 SL:107 DE84 18 CLC PC:DE85 A:80 X:55 Y:2C P:A5 SP:FB CYC:314 SL:107 DE85 D6 DEC $00,x PC:DE86 A:80 X:55 Y:2C P:A4 SP:FB CYC:320 SL:107 DE87 F0 BEQ $DE95 PC:DE88 A:80 X:55 Y:2C P:24 SP:FB CYC:338 SL:107 DE89 30 BMI $DE95 PC:DE8A A:80 X:55 Y:2C P:24 SP:FB CYC:3 SL:108 DE8B 70 BVS $DE95 PC:DE8C A:80 X:55 Y:2C P:24 SP:FB CYC:9 SL:108 DE8D B0 BCS $DE95 PC:DE8E A:80 X:55 Y:2C P:24 SP:FB CYC:15 SL:108 DE8F B5 LDA $00,x PC:DE90 A:80 X:55 Y:2C P:24 SP:FB CYC:21 SL:108 DE91 C9 CMP #$7F PC:DE92 A:7F X:55 Y:2C P:24 SP:FB CYC:33 SL:108 DE93 F0 BEQ $DE99 PC:DE94 A:7F X:55 Y:2C P:27 SP:FB CYC:39 SL:108 DE99 A9 LDA #$01 PC:DE9A A:7F X:55 Y:2C P:27 SP:FB CYC:48 SL:108 DE9B 95 STA $00,x PC:DE9C A:01 X:55 Y:2C P:25 SP:FB CYC:54 SL:108 DE9D D6 DEC $00,x PC:DE9E A:01 X:55 Y:2C P:25 SP:FB CYC:66 SL:108 DE9F F0 BEQ $DEA5 PC:DEA0 A:01 X:55 Y:2C P:27 SP:FB CYC:84 SL:108 DEA5 A9 LDA #$33 PC:DEA6 A:01 X:55 Y:2C P:27 SP:FB CYC:93 SL:108 DEA7 85 STA $78 PC:DEA8 A:33 X:55 Y:2C P:25 SP:FB CYC:99 SL:108 DEA9 A9 LDA #$44 PC:DEAA A:33 X:55 Y:2C P:25 SP:FB CYC:108 SL:108 DEAB A0 LDY #$78 PC:DEAC A:44 X:55 Y:2C P:25 SP:FB CYC:114 SL:108 DEAD A2 LDX #$00 PC:DEAE A:44 X:55 Y:78 P:25 SP:FB CYC:120 SL:108 DEAF 38 SEC PC:DEB0 A:44 X:00 Y:78 P:27 SP:FB CYC:126 SL:108 DEB0 24 BIT $01 PC:DEB1 A:44 X:00 Y:78 P:27 SP:FB CYC:132 SL:108 DEB2 B6 LDX $00,y PC:DEB3 A:44 X:00 Y:78 P:E5 SP:FB CYC:141 SL:108 DEB4 90 BCC $DEC8 PC:DEB5 A:44 X:33 Y:78 P:65 SP:FB CYC:153 SL:108 DEB6 50 BVC $DEC8 PC:DEB7 A:44 X:33 Y:78 P:65 SP:FB CYC:159 SL:108 DEB8 30 BMI $DEC8 PC:DEB9 A:44 X:33 Y:78 P:65 SP:FB CYC:165 SL:108 DEBA F0 BEQ $DEC8 PC:DEBB A:44 X:33 Y:78 P:65 SP:FB CYC:171 SL:108 DEBC E0 CPX #$33 PC:DEBD A:44 X:33 Y:78 P:65 SP:FB CYC:177 SL:108 DEBE D0 BNE $DEC8 PC:DEBF A:44 X:33 Y:78 P:67 SP:FB CYC:183 SL:108 DEC0 C0 CPY #$78 PC:DEC1 A:44 X:33 Y:78 P:67 SP:FB CYC:189 SL:108 DEC2 D0 BNE $DEC8 PC:DEC3 A:44 X:33 Y:78 P:67 SP:FB CYC:195 SL:108 DEC4 C9 CMP #$44 PC:DEC5 A:44 X:33 Y:78 P:67 SP:FB CYC:201 SL:108 DEC6 F0 BEQ $DECC PC:DEC7 A:44 X:33 Y:78 P:67 SP:FB CYC:207 SL:108 DECC A9 LDA #$97 PC:DECD A:44 X:33 Y:78 P:67 SP:FB CYC:216 SL:108 DECE 85 STA $7F PC:DECF A:97 X:33 Y:78 P:E5 SP:FB CYC:222 SL:108 DED0 A9 LDA #$47 PC:DED1 A:97 X:33 Y:78 P:E5 SP:FB CYC:231 SL:108 DED2 A0 LDY #$FF PC:DED3 A:47 X:33 Y:78 P:65 SP:FB CYC:237 SL:108 DED4 A2 LDX #$00 PC:DED5 A:47 X:33 Y:FF P:E5 SP:FB CYC:243 SL:108 DED6 18 CLC PC:DED7 A:47 X:00 Y:FF P:67 SP:FB CYC:249 SL:108 DED7 B8 CLV PC:DED8 A:47 X:00 Y:FF P:66 SP:FB CYC:255 SL:108 DED8 B6 LDX $80,y PC:DED9 A:47 X:00 Y:FF P:26 SP:FB CYC:261 SL:108 DEDA B0 BCS $DEEE PC:DEDB A:47 X:97 Y:FF P:A4 SP:FB CYC:273 SL:108 DEDC 70 BVS $DEEE PC:DEDD A:47 X:97 Y:FF P:A4 SP:FB CYC:279 SL:108 DEDE 10 BPL $DEEE PC:DEDF A:47 X:97 Y:FF P:A4 SP:FB CYC:285 SL:108 DEE0 F0 BEQ $DEEE PC:DEE1 A:47 X:97 Y:FF P:A4 SP:FB CYC:291 SL:108 DEE2 E0 CPX #$97 PC:DEE3 A:47 X:97 Y:FF P:A4 SP:FB CYC:297 SL:108 DEE4 D0 BNE $DEEE PC:DEE5 A:47 X:97 Y:FF P:27 SP:FB CYC:303 SL:108 DEE6 C0 CPY #$FF PC:DEE7 A:47 X:97 Y:FF P:27 SP:FB CYC:309 SL:108 DEE8 D0 BNE $DEEE PC:DEE9 A:47 X:97 Y:FF P:27 SP:FB CYC:315 SL:108 DEEA C9 CMP #$47 PC:DEEB A:47 X:97 Y:FF P:27 SP:FB CYC:321 SL:108 DEEC F0 BEQ $DEF2 PC:DEED A:47 X:97 Y:FF P:27 SP:FB CYC:327 SL:108 DEF2 A9 LDA #$00 PC:DEF3 A:47 X:97 Y:FF P:27 SP:FB CYC:336 SL:108 DEF4 85 STA $7F PC:DEF5 A:00 X:97 Y:FF P:27 SP:FB CYC:1 SL:109 DEF6 A9 LDA #$47 PC:DEF7 A:00 X:97 Y:FF P:27 SP:FB CYC:10 SL:109 DEF8 A0 LDY #$FF PC:DEF9 A:47 X:97 Y:FF P:25 SP:FB CYC:16 SL:109 DEFA A2 LDX #$69 PC:DEFB A:47 X:97 Y:FF P:A5 SP:FB CYC:22 SL:109 DEFC 18 CLC PC:DEFD A:47 X:69 Y:FF P:25 SP:FB CYC:28 SL:109 DEFD B8 CLV PC:DEFE A:47 X:69 Y:FF P:24 SP:FB CYC:34 SL:109 DEFE 96 STX $80,y PC:DEFF A:47 X:69 Y:FF P:24 SP:FB CYC:40 SL:109 DF00 B0 BCS $DF1A PC:DF01 A:47 X:69 Y:FF P:24 SP:FB CYC:52 SL:109 DF02 70 BVS $DF1A PC:DF03 A:47 X:69 Y:FF P:24 SP:FB CYC:58 SL:109 DF04 30 BMI $DF1A PC:DF05 A:47 X:69 Y:FF P:24 SP:FB CYC:64 SL:109 DF06 F0 BEQ $DF1A PC:DF07 A:47 X:69 Y:FF P:24 SP:FB CYC:70 SL:109 DF08 E0 CPX #$69 PC:DF09 A:47 X:69 Y:FF P:24 SP:FB CYC:76 SL:109 DF0A D0 BNE $DF1A PC:DF0B A:47 X:69 Y:FF P:27 SP:FB CYC:82 SL:109 DF0C C0 CPY #$FF PC:DF0D A:47 X:69 Y:FF P:27 SP:FB CYC:88 SL:109 DF0E D0 BNE $DF1A PC:DF0F A:47 X:69 Y:FF P:27 SP:FB CYC:94 SL:109 DF10 C9 CMP #$47 PC:DF11 A:47 X:69 Y:FF P:27 SP:FB CYC:100 SL:109 DF12 D0 BNE $DF1A PC:DF13 A:47 X:69 Y:FF P:27 SP:FB CYC:106 SL:109 DF14 A5 LDA $7F PC:DF15 A:47 X:69 Y:FF P:27 SP:FB CYC:112 SL:109 DF16 C9 CMP #$69 PC:DF17 A:69 X:69 Y:FF P:25 SP:FB CYC:121 SL:109 DF18 F0 BEQ $DF1E PC:DF19 A:69 X:69 Y:FF P:27 SP:FB CYC:127 SL:109 DF1E A9 LDA #$F5 PC:DF1F A:69 X:69 Y:FF P:27 SP:FB CYC:136 SL:109 DF20 85 STA $4F PC:DF21 A:F5 X:69 Y:FF P:A5 SP:FB CYC:142 SL:109 DF22 A9 LDA #$47 PC:DF23 A:F5 X:69 Y:FF P:A5 SP:FB CYC:151 SL:109 DF24 A0 LDY #$4F PC:DF25 A:47 X:69 Y:FF P:25 SP:FB CYC:157 SL:109 DF26 24 BIT $01 PC:DF27 A:47 X:69 Y:4F P:25 SP:FB CYC:163 SL:109 DF28 A2 LDX #$00 PC:DF29 A:47 X:69 Y:4F P:E5 SP:FB CYC:172 SL:109 DF2A 38 SEC PC:DF2B A:47 X:00 Y:4F P:67 SP:FB CYC:178 SL:109 DF2B 96 STX $00,y PC:DF2C A:47 X:00 Y:4F P:67 SP:FB CYC:184 SL:109 DF2D 90 BCC $DF45 PC:DF2E A:47 X:00 Y:4F P:67 SP:FB CYC:196 SL:109 DF2F 50 BVC $DF45 PC:DF30 A:47 X:00 Y:4F P:67 SP:FB CYC:202 SL:109 DF31 30 BMI $DF45 PC:DF32 A:47 X:00 Y:4F P:67 SP:FB CYC:208 SL:109 DF33 D0 BNE $DF45 PC:DF34 A:47 X:00 Y:4F P:67 SP:FB CYC:214 SL:109 DF35 E0 CPX #$00 PC:DF36 A:47 X:00 Y:4F P:67 SP:FB CYC:220 SL:109 DF37 D0 BNE $DF45 PC:DF38 A:47 X:00 Y:4F P:67 SP:FB CYC:226 SL:109 DF39 C0 CPY #$4F PC:DF3A A:47 X:00 Y:4F P:67 SP:FB CYC:232 SL:109 DF3B D0 BNE $DF45 PC:DF3C A:47 X:00 Y:4F P:67 SP:FB CYC:238 SL:109 DF3D C9 CMP #$47 PC:DF3E A:47 X:00 Y:4F P:67 SP:FB CYC:244 SL:109 DF3F D0 BNE $DF45 PC:DF40 A:47 X:00 Y:4F P:67 SP:FB CYC:250 SL:109 DF41 A5 LDA $4F PC:DF42 A:47 X:00 Y:4F P:67 SP:FB CYC:256 SL:109 DF43 F0 BEQ $DF49 PC:DF44 A:00 X:00 Y:4F P:67 SP:FB CYC:265 SL:109 DF49 60 RTS PC:DF4A A:00 X:00 Y:4F P:67 SP:FB CYC:274 SL:109 C62C 20 JSR $E1AA PC:C62D A:00 X:00 Y:4F P:67 SP:FD CYC:292 SL:109 E1AA A9 LDA #$FF PC:E1AB A:00 X:00 Y:4F P:67 SP:FB CYC:310 SL:109 E1AC 85 STA $01 PC:E1AD A:FF X:00 Y:4F P:E5 SP:FB CYC:316 SL:109 E1AE A9 LDA #$AA PC:E1AF A:FF X:00 Y:4F P:E5 SP:FB CYC:325 SL:109 E1B0 8D STA $0633 PC:E1B1 A:AA X:00 Y:4F P:E5 SP:FB CYC:331 SL:109 E1B3 A9 LDA #$BB PC:E1B4 A:AA X:00 Y:4F P:E5 SP:FB CYC:2 SL:110 E1B5 8D STA $0689 PC:E1B6 A:BB X:00 Y:4F P:E5 SP:FB CYC:8 SL:110 E1B8 A2 LDX #$00 PC:E1B9 A:BB X:00 Y:4F P:E5 SP:FB CYC:20 SL:110 E1BA A9 LDA #$66 PC:E1BB A:BB X:00 Y:4F P:67 SP:FB CYC:26 SL:110 E1BC 24 BIT $01 PC:E1BD A:66 X:00 Y:4F P:65 SP:FB CYC:32 SL:110 E1BE 38 SEC PC:E1BF A:66 X:00 Y:4F P:E5 SP:FB CYC:41 SL:110 E1BF A0 LDY #$00 PC:E1C0 A:66 X:00 Y:4F P:E5 SP:FB CYC:47 SL:110 E1C1 BC LDY $0633,x PC:E1C2 A:66 X:00 Y:00 P:67 SP:FB CYC:53 SL:110 E1C4 10 BPL $E1D8 PC:E1C5 A:66 X:00 Y:AA P:E5 SP:FB CYC:65 SL:110 E1C6 F0 BEQ $E1D8 PC:E1C7 A:66 X:00 Y:AA P:E5 SP:FB CYC:71 SL:110 E1C8 50 BVC $E1D8 PC:E1C9 A:66 X:00 Y:AA P:E5 SP:FB CYC:77 SL:110 E1CA 90 BCC $E1D8 PC:E1CB A:66 X:00 Y:AA P:E5 SP:FB CYC:83 SL:110 E1CC C9 CMP #$66 PC:E1CD A:66 X:00 Y:AA P:E5 SP:FB CYC:89 SL:110 E1CE D0 BNE $E1D8 PC:E1CF A:66 X:00 Y:AA P:67 SP:FB CYC:95 SL:110 E1D0 E0 CPX #$00 PC:E1D1 A:66 X:00 Y:AA P:67 SP:FB CYC:101 SL:110 E1D2 D0 BNE $E1D8 PC:E1D3 A:66 X:00 Y:AA P:67 SP:FB CYC:107 SL:110 E1D4 C0 CPY #$AA PC:E1D5 A:66 X:00 Y:AA P:67 SP:FB CYC:113 SL:110 E1D6 F0 BEQ $E1DC PC:E1D7 A:66 X:00 Y:AA P:67 SP:FB CYC:119 SL:110 E1DC A2 LDX #$8A PC:E1DD A:66 X:00 Y:AA P:67 SP:FB CYC:128 SL:110 E1DE A9 LDA #$66 PC:E1DF A:66 X:8A Y:AA P:E5 SP:FB CYC:134 SL:110 E1E0 B8 CLV PC:E1E1 A:66 X:8A Y:AA P:65 SP:FB CYC:140 SL:110 E1E1 18 CLC PC:E1E2 A:66 X:8A Y:AA P:25 SP:FB CYC:146 SL:110 E1E2 A0 LDY #$00 PC:E1E3 A:66 X:8A Y:AA P:24 SP:FB CYC:152 SL:110 E1E4 BC LDY $05FF,x PC:E1E5 A:66 X:8A Y:00 P:26 SP:FB CYC:158 SL:110 E1E7 10 BPL $E1FB PC:E1E8 A:66 X:8A Y:BB P:A4 SP:FB CYC:173 SL:110 E1E9 F0 BEQ $E1FB PC:E1EA A:66 X:8A Y:BB P:A4 SP:FB CYC:179 SL:110 E1EB 70 BVS $E1FB PC:E1EC A:66 X:8A Y:BB P:A4 SP:FB CYC:185 SL:110 E1ED B0 BCS $E1FB PC:E1EE A:66 X:8A Y:BB P:A4 SP:FB CYC:191 SL:110 E1EF C0 CPY #$BB PC:E1F0 A:66 X:8A Y:BB P:A4 SP:FB CYC:197 SL:110 E1F1 D0 BNE $E1FB PC:E1F2 A:66 X:8A Y:BB P:27 SP:FB CYC:203 SL:110 E1F3 C9 CMP #$66 PC:E1F4 A:66 X:8A Y:BB P:27 SP:FB CYC:209 SL:110 E1F5 D0 BNE $E1FB PC:E1F6 A:66 X:8A Y:BB P:27 SP:FB CYC:215 SL:110 E1F7 E0 CPX #$8A PC:E1F8 A:66 X:8A Y:BB P:27 SP:FB CYC:221 SL:110 E1F9 F0 BEQ $E1FF PC:E1FA A:66 X:8A Y:BB P:27 SP:FB CYC:227 SL:110 E1FF A0 LDY #$53 PC:E200 A:66 X:8A Y:BB P:27 SP:FB CYC:236 SL:110 E201 A9 LDA #$AA PC:E202 A:66 X:8A Y:53 P:25 SP:FB CYC:242 SL:110 E203 A2 LDX #$78 PC:E204 A:AA X:8A Y:53 P:A5 SP:FB CYC:248 SL:110 E205 8D STA $0678 PC:E206 A:AA X:78 Y:53 P:25 SP:FB CYC:254 SL:110 E208 20 JSR $F7B6 PC:E209 A:AA X:78 Y:53 P:25 SP:FB CYC:266 SL:110 F7B6 18 CLC PC:F7B7 A:AA X:78 Y:53 P:25 SP:F9 CYC:284 SL:110 F7B7 A9 LDA #$FF PC:F7B8 A:AA X:78 Y:53 P:24 SP:F9 CYC:290 SL:110 F7B9 85 STA $01 PC:F7BA A:FF X:78 Y:53 P:A4 SP:F9 CYC:296 SL:110 F7BB 24 BIT $01 PC:F7BC A:FF X:78 Y:53 P:A4 SP:F9 CYC:305 SL:110 F7BD A9 LDA #$55 PC:F7BE A:FF X:78 Y:53 P:E4 SP:F9 CYC:314 SL:110 F7BF 60 RTS PC:F7C0 A:55 X:78 Y:53 P:64 SP:F9 CYC:320 SL:110 E20B 1D ORA $0600,x PC:E20C A:55 X:78 Y:53 P:64 SP:FB CYC:338 SL:110 E20E 20 JSR $F7C0 PC:E20F A:FF X:78 Y:53 P:E4 SP:FB CYC:9 SL:111 F7C0 B0 BCS $F7CB PC:F7C1 A:FF X:78 Y:53 P:E4 SP:F9 CYC:27 SL:111 F7C2 10 BPL $F7CB PC:F7C3 A:FF X:78 Y:53 P:E4 SP:F9 CYC:33 SL:111 F7C4 C9 CMP #$FF PC:F7C5 A:FF X:78 Y:53 P:E4 SP:F9 CYC:39 SL:111 F7C6 D0 BNE $F7CB PC:F7C7 A:FF X:78 Y:53 P:67 SP:F9 CYC:45 SL:111 F7C8 50 BVC $F7CB PC:F7C9 A:FF X:78 Y:53 P:67 SP:F9 CYC:51 SL:111 F7CA 60 RTS PC:F7CB A:FF X:78 Y:53 P:67 SP:F9 CYC:57 SL:111 E211 C8 INY PC:E212 A:FF X:78 Y:53 P:67 SP:FB CYC:75 SL:111 E212 A9 LDA #$00 PC:E213 A:FF X:78 Y:54 P:65 SP:FB CYC:81 SL:111 E214 8D STA $0678 PC:E215 A:00 X:78 Y:54 P:67 SP:FB CYC:87 SL:111 E217 20 JSR $F7CE PC:E218 A:00 X:78 Y:54 P:67 SP:FB CYC:99 SL:111 F7CE 38 SEC PC:F7CF A:00 X:78 Y:54 P:67 SP:F9 CYC:117 SL:111 F7CF B8 CLV PC:F7D0 A:00 X:78 Y:54 P:67 SP:F9 CYC:123 SL:111 F7D0 A9 LDA #$00 PC:F7D1 A:00 X:78 Y:54 P:27 SP:F9 CYC:129 SL:111 F7D2 60 RTS PC:F7D3 A:00 X:78 Y:54 P:27 SP:F9 CYC:135 SL:111 E21A 1D ORA $0600,x PC:E21B A:00 X:78 Y:54 P:27 SP:FB CYC:153 SL:111 E21D 20 JSR $F7D3 PC:E21E A:00 X:78 Y:54 P:27 SP:FB CYC:165 SL:111 F7D3 D0 BNE $F7DC PC:F7D4 A:00 X:78 Y:54 P:27 SP:F9 CYC:183 SL:111 F7D5 70 BVS $F7DC PC:F7D6 A:00 X:78 Y:54 P:27 SP:F9 CYC:189 SL:111 F7D7 90 BCC $F7DC PC:F7D8 A:00 X:78 Y:54 P:27 SP:F9 CYC:195 SL:111 F7D9 30 BMI $F7DC PC:F7DA A:00 X:78 Y:54 P:27 SP:F9 CYC:201 SL:111 F7DB 60 RTS PC:F7DC A:00 X:78 Y:54 P:27 SP:F9 CYC:207 SL:111 E220 C8 INY PC:E221 A:00 X:78 Y:54 P:27 SP:FB CYC:225 SL:111 E221 A9 LDA #$AA PC:E222 A:00 X:78 Y:55 P:25 SP:FB CYC:231 SL:111 E223 8D STA $0678 PC:E224 A:AA X:78 Y:55 P:A5 SP:FB CYC:237 SL:111 E226 20 JSR $F7DF PC:E227 A:AA X:78 Y:55 P:A5 SP:FB CYC:249 SL:111 F7DF 18 CLC PC:F7E0 A:AA X:78 Y:55 P:A5 SP:F9 CYC:267 SL:111 F7E0 24 BIT $01 PC:F7E1 A:AA X:78 Y:55 P:A4 SP:F9 CYC:273 SL:111 F7E2 A9 LDA #$55 PC:F7E3 A:AA X:78 Y:55 P:E4 SP:F9 CYC:282 SL:111 F7E4 60 RTS PC:F7E5 A:55 X:78 Y:55 P:64 SP:F9 CYC:288 SL:111 E229 3D AND $0600,x PC:E22A A:55 X:78 Y:55 P:64 SP:FB CYC:306 SL:111 E22C 20 JSR $F7E5 PC:E22D A:00 X:78 Y:55 P:66 SP:FB CYC:318 SL:111 F7E5 D0 BNE $F7EE PC:F7E6 A:00 X:78 Y:55 P:66 SP:F9 CYC:336 SL:111 F7E7 50 BVC $F7EE PC:F7E8 A:00 X:78 Y:55 P:66 SP:F9 CYC:1 SL:112 F7E9 B0 BCS $F7EE PC:F7EA A:00 X:78 Y:55 P:66 SP:F9 CYC:7 SL:112 F7EB 30 BMI $F7EE PC:F7EC A:00 X:78 Y:55 P:66 SP:F9 CYC:13 SL:112 F7ED 60 RTS PC:F7EE A:00 X:78 Y:55 P:66 SP:F9 CYC:19 SL:112 E22F C8 INY PC:E230 A:00 X:78 Y:55 P:66 SP:FB CYC:37 SL:112 E230 A9 LDA #$EF PC:E231 A:00 X:78 Y:56 P:64 SP:FB CYC:43 SL:112 E232 8D STA $0678 PC:E233 A:EF X:78 Y:56 P:E4 SP:FB CYC:49 SL:112 E235 20 JSR $F7F1 PC:E236 A:EF X:78 Y:56 P:E4 SP:FB CYC:61 SL:112 F7F1 38 SEC PC:F7F2 A:EF X:78 Y:56 P:E4 SP:F9 CYC:79 SL:112 F7F2 B8 CLV PC:F7F3 A:EF X:78 Y:56 P:E5 SP:F9 CYC:85 SL:112 F7F3 A9 LDA #$F8 PC:F7F4 A:EF X:78 Y:56 P:A5 SP:F9 CYC:91 SL:112 F7F5 60 RTS PC:F7F6 A:F8 X:78 Y:56 P:A5 SP:F9 CYC:97 SL:112 E238 3D AND $0600,x PC:E239 A:F8 X:78 Y:56 P:A5 SP:FB CYC:115 SL:112 E23B 20 JSR $F7F6 PC:E23C A:E8 X:78 Y:56 P:A5 SP:FB CYC:127 SL:112 F7F6 90 BCC $F801 PC:F7F7 A:E8 X:78 Y:56 P:A5 SP:F9 CYC:145 SL:112 F7F8 10 BPL $F801 PC:F7F9 A:E8 X:78 Y:56 P:A5 SP:F9 CYC:151 SL:112 F7FA C9 CMP #$E8 PC:F7FB A:E8 X:78 Y:56 P:A5 SP:F9 CYC:157 SL:112 F7FC D0 BNE $F801 PC:F7FD A:E8 X:78 Y:56 P:27 SP:F9 CYC:163 SL:112 F7FE 70 BVS $F801 PC:F7FF A:E8 X:78 Y:56 P:27 SP:F9 CYC:169 SL:112 F800 60 RTS PC:F801 A:E8 X:78 Y:56 P:27 SP:F9 CYC:175 SL:112 E23E C8 INY PC:E23F A:E8 X:78 Y:56 P:27 SP:FB CYC:193 SL:112 E23F A9 LDA #$AA PC:E240 A:E8 X:78 Y:57 P:25 SP:FB CYC:199 SL:112 E241 8D STA $0678 PC:E242 A:AA X:78 Y:57 P:A5 SP:FB CYC:205 SL:112 E244 20 JSR $F804 PC:E245 A:AA X:78 Y:57 P:A5 SP:FB CYC:217 SL:112 F804 18 CLC PC:F805 A:AA X:78 Y:57 P:A5 SP:F9 CYC:235 SL:112 F805 24 BIT $01 PC:F806 A:AA X:78 Y:57 P:A4 SP:F9 CYC:241 SL:112 F807 A9 LDA #$5F PC:F808 A:AA X:78 Y:57 P:E4 SP:F9 CYC:250 SL:112 F809 60 RTS PC:F80A A:5F X:78 Y:57 P:64 SP:F9 CYC:256 SL:112 E247 5D EOR $0600,x PC:E248 A:5F X:78 Y:57 P:64 SP:FB CYC:274 SL:112 E24A 20 JSR $F80A PC:E24B A:F5 X:78 Y:57 P:E4 SP:FB CYC:286 SL:112 F80A B0 BCS $F815 PC:F80B A:F5 X:78 Y:57 P:E4 SP:F9 CYC:304 SL:112 F80C 10 BPL $F815 PC:F80D A:F5 X:78 Y:57 P:E4 SP:F9 CYC:310 SL:112 F80E C9 CMP #$F5 PC:F80F A:F5 X:78 Y:57 P:E4 SP:F9 CYC:316 SL:112 F810 D0 BNE $F815 PC:F811 A:F5 X:78 Y:57 P:67 SP:F9 CYC:322 SL:112 F812 50 BVC $F815 PC:F813 A:F5 X:78 Y:57 P:67 SP:F9 CYC:328 SL:112 F814 60 RTS PC:F815 A:F5 X:78 Y:57 P:67 SP:F9 CYC:334 SL:112 E24D C8 INY PC:E24E A:F5 X:78 Y:57 P:67 SP:FB CYC:11 SL:113 E24E A9 LDA #$70 PC:E24F A:F5 X:78 Y:58 P:65 SP:FB CYC:17 SL:113 E250 8D STA $0678 PC:E251 A:70 X:78 Y:58 P:65 SP:FB CYC:23 SL:113 E253 20 JSR $F818 PC:E254 A:70 X:78 Y:58 P:65 SP:FB CYC:35 SL:113 F818 38 SEC PC:F819 A:70 X:78 Y:58 P:65 SP:F9 CYC:53 SL:113 F819 B8 CLV PC:F81A A:70 X:78 Y:58 P:65 SP:F9 CYC:59 SL:113 F81A A9 LDA #$70 PC:F81B A:70 X:78 Y:58 P:25 SP:F9 CYC:65 SL:113 F81C 60 RTS PC:F81D A:70 X:78 Y:58 P:25 SP:F9 CYC:71 SL:113 E256 5D EOR $0600,x PC:E257 A:70 X:78 Y:58 P:25 SP:FB CYC:89 SL:113 E259 20 JSR $F81D PC:E25A A:00 X:78 Y:58 P:27 SP:FB CYC:101 SL:113 F81D D0 BNE $F826 PC:F81E A:00 X:78 Y:58 P:27 SP:F9 CYC:119 SL:113 F81F 70 BVS $F826 PC:F820 A:00 X:78 Y:58 P:27 SP:F9 CYC:125 SL:113 F821 90 BCC $F826 PC:F822 A:00 X:78 Y:58 P:27 SP:F9 CYC:131 SL:113 F823 30 BMI $F826 PC:F824 A:00 X:78 Y:58 P:27 SP:F9 CYC:137 SL:113 F825 60 RTS PC:F826 A:00 X:78 Y:58 P:27 SP:F9 CYC:143 SL:113 E25C C8 INY PC:E25D A:00 X:78 Y:58 P:27 SP:FB CYC:161 SL:113 E25D A9 LDA #$69 PC:E25E A:00 X:78 Y:59 P:25 SP:FB CYC:167 SL:113 E25F 8D STA $0678 PC:E260 A:69 X:78 Y:59 P:25 SP:FB CYC:173 SL:113 E262 20 JSR $F829 PC:E263 A:69 X:78 Y:59 P:25 SP:FB CYC:185 SL:113 F829 18 CLC PC:F82A A:69 X:78 Y:59 P:25 SP:F9 CYC:203 SL:113 F82A 24 BIT $01 PC:F82B A:69 X:78 Y:59 P:24 SP:F9 CYC:209 SL:113 F82C A9 LDA #$00 PC:F82D A:69 X:78 Y:59 P:E4 SP:F9 CYC:218 SL:113 F82E 60 RTS PC:F82F A:00 X:78 Y:59 P:66 SP:F9 CYC:224 SL:113 E265 7D ADC $0600,x PC:E266 A:00 X:78 Y:59 P:66 SP:FB CYC:242 SL:113 E268 20 JSR $F82F PC:E269 A:69 X:78 Y:59 P:24 SP:FB CYC:254 SL:113 F82F 30 BMI $F83A PC:F830 A:69 X:78 Y:59 P:24 SP:F9 CYC:272 SL:113 F831 B0 BCS $F83A PC:F832 A:69 X:78 Y:59 P:24 SP:F9 CYC:278 SL:113 F833 C9 CMP #$69 PC:F834 A:69 X:78 Y:59 P:24 SP:F9 CYC:284 SL:113 F835 D0 BNE $F83A PC:F836 A:69 X:78 Y:59 P:27 SP:F9 CYC:290 SL:113 F837 70 BVS $F83A PC:F838 A:69 X:78 Y:59 P:27 SP:F9 CYC:296 SL:113 F839 60 RTS PC:F83A A:69 X:78 Y:59 P:27 SP:F9 CYC:302 SL:113 E26B C8 INY PC:E26C A:69 X:78 Y:59 P:27 SP:FB CYC:320 SL:113 E26C 20 JSR $F83D PC:E26D A:69 X:78 Y:5A P:25 SP:FB CYC:326 SL:113 F83D 38 SEC PC:F83E A:69 X:78 Y:5A P:25 SP:F9 CYC:3 SL:114 F83E 24 BIT $01 PC:F83F A:69 X:78 Y:5A P:25 SP:F9 CYC:9 SL:114 F840 A9 LDA #$00 PC:F841 A:69 X:78 Y:5A P:E5 SP:F9 CYC:18 SL:114 F842 60 RTS PC:F843 A:00 X:78 Y:5A P:67 SP:F9 CYC:24 SL:114 E26F 7D ADC $0600,x PC:E270 A:00 X:78 Y:5A P:67 SP:FB CYC:42 SL:114 E272 20 JSR $F843 PC:E273 A:6A X:78 Y:5A P:24 SP:FB CYC:54 SL:114 F843 30 BMI $F84E PC:F844 A:6A X:78 Y:5A P:24 SP:F9 CYC:72 SL:114 F845 B0 BCS $F84E PC:F846 A:6A X:78 Y:5A P:24 SP:F9 CYC:78 SL:114 F847 C9 CMP #$6A PC:F848 A:6A X:78 Y:5A P:24 SP:F9 CYC:84 SL:114 F849 D0 BNE $F84E PC:F84A A:6A X:78 Y:5A P:27 SP:F9 CYC:90 SL:114 F84B 70 BVS $F84E PC:F84C A:6A X:78 Y:5A P:27 SP:F9 CYC:96 SL:114 F84D 60 RTS PC:F84E A:6A X:78 Y:5A P:27 SP:F9 CYC:102 SL:114 E275 C8 INY PC:E276 A:6A X:78 Y:5A P:27 SP:FB CYC:120 SL:114 E276 A9 LDA #$7F PC:E277 A:6A X:78 Y:5B P:25 SP:FB CYC:126 SL:114 E278 8D STA $0678 PC:E279 A:7F X:78 Y:5B P:25 SP:FB CYC:132 SL:114 E27B 20 JSR $F851 PC:E27C A:7F X:78 Y:5B P:25 SP:FB CYC:144 SL:114 F851 38 SEC PC:F852 A:7F X:78 Y:5B P:25 SP:F9 CYC:162 SL:114 F852 B8 CLV PC:F853 A:7F X:78 Y:5B P:25 SP:F9 CYC:168 SL:114 F853 A9 LDA #$7F PC:F854 A:7F X:78 Y:5B P:25 SP:F9 CYC:174 SL:114 F855 60 RTS PC:F856 A:7F X:78 Y:5B P:25 SP:F9 CYC:180 SL:114 E27E 7D ADC $0600,x PC:E27F A:7F X:78 Y:5B P:25 SP:FB CYC:198 SL:114 E281 20 JSR $F856 PC:E282 A:FF X:78 Y:5B P:E4 SP:FB CYC:210 SL:114 F856 10 BPL $F861 PC:F857 A:FF X:78 Y:5B P:E4 SP:F9 CYC:228 SL:114 F858 B0 BCS $F861 PC:F859 A:FF X:78 Y:5B P:E4 SP:F9 CYC:234 SL:114 F85A C9 CMP #$FF PC:F85B A:FF X:78 Y:5B P:E4 SP:F9 CYC:240 SL:114 F85C D0 BNE $F861 PC:F85D A:FF X:78 Y:5B P:67 SP:F9 CYC:246 SL:114 F85E 50 BVC $F861 PC:F85F A:FF X:78 Y:5B P:67 SP:F9 CYC:252 SL:114 F860 60 RTS PC:F861 A:FF X:78 Y:5B P:67 SP:F9 CYC:258 SL:114 E284 C8 INY PC:E285 A:FF X:78 Y:5B P:67 SP:FB CYC:276 SL:114 E285 A9 LDA #$80 PC:E286 A:FF X:78 Y:5C P:65 SP:FB CYC:282 SL:114 E287 8D STA $0678 PC:E288 A:80 X:78 Y:5C P:E5 SP:FB CYC:288 SL:114 E28A 20 JSR $F864 PC:E28B A:80 X:78 Y:5C P:E5 SP:FB CYC:300 SL:114 F864 18 CLC PC:F865 A:80 X:78 Y:5C P:E5 SP:F9 CYC:318 SL:114 F865 24 BIT $01 PC:F866 A:80 X:78 Y:5C P:E4 SP:F9 CYC:324 SL:114 F867 A9 LDA #$7F PC:F868 A:80 X:78 Y:5C P:E4 SP:F9 CYC:333 SL:114 F869 60 RTS PC:F86A A:7F X:78 Y:5C P:64 SP:F9 CYC:339 SL:114 E28D 7D ADC $0600,x PC:E28E A:7F X:78 Y:5C P:64 SP:FB CYC:16 SL:115 E290 20 JSR $F86A PC:E291 A:FF X:78 Y:5C P:A4 SP:FB CYC:28 SL:115 F86A 10 BPL $F875 PC:F86B A:FF X:78 Y:5C P:A4 SP:F9 CYC:46 SL:115 F86C B0 BCS $F875 PC:F86D A:FF X:78 Y:5C P:A4 SP:F9 CYC:52 SL:115 F86E C9 CMP #$FF PC:F86F A:FF X:78 Y:5C P:A4 SP:F9 CYC:58 SL:115 F870 D0 BNE $F875 PC:F871 A:FF X:78 Y:5C P:27 SP:F9 CYC:64 SL:115 F872 70 BVS $F875 PC:F873 A:FF X:78 Y:5C P:27 SP:F9 CYC:70 SL:115 F874 60 RTS PC:F875 A:FF X:78 Y:5C P:27 SP:F9 CYC:76 SL:115 E293 C8 INY PC:E294 A:FF X:78 Y:5C P:27 SP:FB CYC:94 SL:115 E294 20 JSR $F878 PC:E295 A:FF X:78 Y:5D P:25 SP:FB CYC:100 SL:115 F878 38 SEC PC:F879 A:FF X:78 Y:5D P:25 SP:F9 CYC:118 SL:115 F879 B8 CLV PC:F87A A:FF X:78 Y:5D P:25 SP:F9 CYC:124 SL:115 F87A A9 LDA #$7F PC:F87B A:FF X:78 Y:5D P:25 SP:F9 CYC:130 SL:115 F87C 60 RTS PC:F87D A:7F X:78 Y:5D P:25 SP:F9 CYC:136 SL:115 E297 7D ADC $0600,x PC:E298 A:7F X:78 Y:5D P:25 SP:FB CYC:154 SL:115 E29A 20 JSR $F87D PC:E29B A:00 X:78 Y:5D P:27 SP:FB CYC:166 SL:115 F87D D0 BNE $F886 PC:F87E A:00 X:78 Y:5D P:27 SP:F9 CYC:184 SL:115 F87F 30 BMI $F886 PC:F880 A:00 X:78 Y:5D P:27 SP:F9 CYC:190 SL:115 F881 70 BVS $F886 PC:F882 A:00 X:78 Y:5D P:27 SP:F9 CYC:196 SL:115 F883 90 BCC $F886 PC:F884 A:00 X:78 Y:5D P:27 SP:F9 CYC:202 SL:115 F885 60 RTS PC:F886 A:00 X:78 Y:5D P:27 SP:F9 CYC:208 SL:115 E29D C8 INY PC:E29E A:00 X:78 Y:5D P:27 SP:FB CYC:226 SL:115 E29E A9 LDA #$40 PC:E29F A:00 X:78 Y:5E P:25 SP:FB CYC:232 SL:115 E2A0 8D STA $0678 PC:E2A1 A:40 X:78 Y:5E P:25 SP:FB CYC:238 SL:115 E2A3 20 JSR $F889 PC:E2A4 A:40 X:78 Y:5E P:25 SP:FB CYC:250 SL:115 F889 24 BIT $01 PC:F88A A:40 X:78 Y:5E P:25 SP:F9 CYC:268 SL:115 F88B A9 LDA #$40 PC:F88C A:40 X:78 Y:5E P:E5 SP:F9 CYC:277 SL:115 F88D 60 RTS PC:F88E A:40 X:78 Y:5E P:65 SP:F9 CYC:283 SL:115 E2A6 DD CMP $0600,x PC:E2A7 A:40 X:78 Y:5E P:65 SP:FB CYC:301 SL:115 E2A9 20 JSR $F88E PC:E2AA A:40 X:78 Y:5E P:67 SP:FB CYC:313 SL:115 F88E 30 BMI $F897 PC:F88F A:40 X:78 Y:5E P:67 SP:F9 CYC:331 SL:115 F890 90 BCC $F897 PC:F891 A:40 X:78 Y:5E P:67 SP:F9 CYC:337 SL:115 F892 D0 BNE $F897 PC:F893 A:40 X:78 Y:5E P:67 SP:F9 CYC:2 SL:116 F894 50 BVC $F897 PC:F895 A:40 X:78 Y:5E P:67 SP:F9 CYC:8 SL:116 F896 60 RTS PC:F897 A:40 X:78 Y:5E P:67 SP:F9 CYC:14 SL:116 E2AC C8 INY PC:E2AD A:40 X:78 Y:5E P:67 SP:FB CYC:32 SL:116 E2AD 48 PHA PC:E2AE A:40 X:78 Y:5F P:65 SP:FB CYC:38 SL:116 E2AE A9 LDA #$3F PC:E2AF A:40 X:78 Y:5F P:65 SP:FA CYC:47 SL:116 E2B0 8D STA $0678 PC:E2B1 A:3F X:78 Y:5F P:65 SP:FA CYC:53 SL:116 E2B3 68 PLA PC:E2B4 A:3F X:78 Y:5F P:65 SP:FA CYC:65 SL:116 E2B4 20 JSR $F89A PC:E2B5 A:40 X:78 Y:5F P:65 SP:FB CYC:77 SL:116 F89A B8 CLV PC:F89B A:40 X:78 Y:5F P:65 SP:F9 CYC:95 SL:116 F89B 60 RTS PC:F89C A:40 X:78 Y:5F P:25 SP:F9 CYC:101 SL:116 E2B7 DD CMP $0600,x PC:E2B8 A:40 X:78 Y:5F P:25 SP:FB CYC:119 SL:116 E2BA 20 JSR $F89C PC:E2BB A:40 X:78 Y:5F P:25 SP:FB CYC:131 SL:116 F89C F0 BEQ $F8A5 PC:F89D A:40 X:78 Y:5F P:25 SP:F9 CYC:149 SL:116 F89E 30 BMI $F8A5 PC:F89F A:40 X:78 Y:5F P:25 SP:F9 CYC:155 SL:116 F8A0 90 BCC $F8A5 PC:F8A1 A:40 X:78 Y:5F P:25 SP:F9 CYC:161 SL:116 F8A2 70 BVS $F8A5 PC:F8A3 A:40 X:78 Y:5F P:25 SP:F9 CYC:167 SL:116 F8A4 60 RTS PC:F8A5 A:40 X:78 Y:5F P:25 SP:F9 CYC:173 SL:116 E2BD C8 INY PC:E2BE A:40 X:78 Y:5F P:25 SP:FB CYC:191 SL:116 E2BE 48 PHA PC:E2BF A:40 X:78 Y:60 P:25 SP:FB CYC:197 SL:116 E2BF A9 LDA #$41 PC:E2C0 A:40 X:78 Y:60 P:25 SP:FA CYC:206 SL:116 E2C1 8D STA $0678 PC:E2C2 A:41 X:78 Y:60 P:25 SP:FA CYC:212 SL:116 E2C4 68 PLA PC:E2C5 A:41 X:78 Y:60 P:25 SP:FA CYC:224 SL:116 E2C5 DD CMP $0600,x PC:E2C6 A:40 X:78 Y:60 P:25 SP:FB CYC:236 SL:116 E2C8 20 JSR $F8A8 PC:E2C9 A:40 X:78 Y:60 P:A4 SP:FB CYC:248 SL:116 F8A8 F0 BEQ $F8AF PC:F8A9 A:40 X:78 Y:60 P:A4 SP:F9 CYC:266 SL:116 F8AA 10 BPL $F8AF PC:F8AB A:40 X:78 Y:60 P:A4 SP:F9 CYC:272 SL:116 F8AC 10 BPL $F8AF PC:F8AD A:40 X:78 Y:60 P:A4 SP:F9 CYC:278 SL:116 F8AE 60 RTS PC:F8AF A:40 X:78 Y:60 P:A4 SP:F9 CYC:284 SL:116 E2CB C8 INY PC:E2CC A:40 X:78 Y:60 P:A4 SP:FB CYC:302 SL:116 E2CC 48 PHA PC:E2CD A:40 X:78 Y:61 P:24 SP:FB CYC:308 SL:116 E2CD A9 LDA #$00 PC:E2CE A:40 X:78 Y:61 P:24 SP:FA CYC:317 SL:116 E2CF 8D STA $0678 PC:E2D0 A:00 X:78 Y:61 P:26 SP:FA CYC:323 SL:116 E2D2 68 PLA PC:E2D3 A:00 X:78 Y:61 P:26 SP:FA CYC:335 SL:116 E2D3 20 JSR $F8B2 PC:E2D4 A:40 X:78 Y:61 P:24 SP:FB CYC:6 SL:117 F8B2 A9 LDA #$80 PC:F8B3 A:40 X:78 Y:61 P:24 SP:F9 CYC:24 SL:117 F8B4 60 RTS PC:F8B5 A:80 X:78 Y:61 P:A4 SP:F9 CYC:30 SL:117 E2D6 DD CMP $0600,x PC:E2D7 A:80 X:78 Y:61 P:A4 SP:FB CYC:48 SL:117 E2D9 20 JSR $F8B5 PC:E2DA A:80 X:78 Y:61 P:A5 SP:FB CYC:60 SL:117 F8B5 F0 BEQ $F8BC PC:F8B6 A:80 X:78 Y:61 P:A5 SP:F9 CYC:78 SL:117 F8B7 10 BPL $F8BC PC:F8B8 A:80 X:78 Y:61 P:A5 SP:F9 CYC:84 SL:117 F8B9 90 BCC $F8BC PC:F8BA A:80 X:78 Y:61 P:A5 SP:F9 CYC:90 SL:117 F8BB 60 RTS PC:F8BC A:80 X:78 Y:61 P:A5 SP:F9 CYC:96 SL:117 E2DC C8 INY PC:E2DD A:80 X:78 Y:61 P:A5 SP:FB CYC:114 SL:117 E2DD 48 PHA PC:E2DE A:80 X:78 Y:62 P:25 SP:FB CYC:120 SL:117 E2DE A9 LDA #$80 PC:E2DF A:80 X:78 Y:62 P:25 SP:FA CYC:129 SL:117 E2E0 8D STA $0678 PC:E2E1 A:80 X:78 Y:62 P:A5 SP:FA CYC:135 SL:117 E2E3 68 PLA PC:E2E4 A:80 X:78 Y:62 P:A5 SP:FA CYC:147 SL:117 E2E4 DD CMP $0600,x PC:E2E5 A:80 X:78 Y:62 P:A5 SP:FB CYC:159 SL:117 E2E7 20 JSR $F8BF PC:E2E8 A:80 X:78 Y:62 P:27 SP:FB CYC:171 SL:117 F8BF D0 BNE $F8C6 PC:F8C0 A:80 X:78 Y:62 P:27 SP:F9 CYC:189 SL:117 F8C1 30 BMI $F8C6 PC:F8C2 A:80 X:78 Y:62 P:27 SP:F9 CYC:195 SL:117 F8C3 90 BCC $F8C6 PC:F8C4 A:80 X:78 Y:62 P:27 SP:F9 CYC:201 SL:117 F8C5 60 RTS PC:F8C6 A:80 X:78 Y:62 P:27 SP:F9 CYC:207 SL:117 E2EA C8 INY PC:E2EB A:80 X:78 Y:62 P:27 SP:FB CYC:225 SL:117 E2EB 48 PHA PC:E2EC A:80 X:78 Y:63 P:25 SP:FB CYC:231 SL:117 E2EC A9 LDA #$81 PC:E2ED A:80 X:78 Y:63 P:25 SP:FA CYC:240 SL:117 E2EE 8D STA $0678 PC:E2EF A:81 X:78 Y:63 P:A5 SP:FA CYC:246 SL:117 E2F1 68 PLA PC:E2F2 A:81 X:78 Y:63 P:A5 SP:FA CYC:258 SL:117 E2F2 DD CMP $0600,x PC:E2F3 A:80 X:78 Y:63 P:A5 SP:FB CYC:270 SL:117 E2F5 20 JSR $F8C9 PC:E2F6 A:80 X:78 Y:63 P:A4 SP:FB CYC:282 SL:117 F8C9 B0 BCS $F8D0 PC:F8CA A:80 X:78 Y:63 P:A4 SP:F9 CYC:300 SL:117 F8CB F0 BEQ $F8D0 PC:F8CC A:80 X:78 Y:63 P:A4 SP:F9 CYC:306 SL:117 F8CD 10 BPL $F8D0 PC:F8CE A:80 X:78 Y:63 P:A4 SP:F9 CYC:312 SL:117 F8CF 60 RTS PC:F8D0 A:80 X:78 Y:63 P:A4 SP:F9 CYC:318 SL:117 E2F8 C8 INY PC:E2F9 A:80 X:78 Y:63 P:A4 SP:FB CYC:336 SL:117 E2F9 48 PHA PC:E2FA A:80 X:78 Y:64 P:24 SP:FB CYC:1 SL:118 E2FA A9 LDA #$7F PC:E2FB A:80 X:78 Y:64 P:24 SP:FA CYC:10 SL:118 E2FC 8D STA $0678 PC:E2FD A:7F X:78 Y:64 P:24 SP:FA CYC:16 SL:118 E2FF 68 PLA PC:E300 A:7F X:78 Y:64 P:24 SP:FA CYC:28 SL:118 E300 DD CMP $0600,x PC:E301 A:80 X:78 Y:64 P:A4 SP:FB CYC:40 SL:118 E303 20 JSR $F8D3 PC:E304 A:80 X:78 Y:64 P:25 SP:FB CYC:52 SL:118 F8D3 90 BCC $F8DA PC:F8D4 A:80 X:78 Y:64 P:25 SP:F9 CYC:70 SL:118 F8D5 F0 BEQ $F8DA PC:F8D6 A:80 X:78 Y:64 P:25 SP:F9 CYC:76 SL:118 F8D7 30 BMI $F8DA PC:F8D8 A:80 X:78 Y:64 P:25 SP:F9 CYC:82 SL:118 F8D9 60 RTS PC:F8DA A:80 X:78 Y:64 P:25 SP:F9 CYC:88 SL:118 E306 C8 INY PC:E307 A:80 X:78 Y:64 P:25 SP:FB CYC:106 SL:118 E307 A9 LDA #$40 PC:E308 A:80 X:78 Y:65 P:25 SP:FB CYC:112 SL:118 E309 8D STA $0678 PC:E30A A:40 X:78 Y:65 P:25 SP:FB CYC:118 SL:118 E30C 20 JSR $F931 PC:E30D A:40 X:78 Y:65 P:25 SP:FB CYC:130 SL:118 F931 24 BIT $01 PC:F932 A:40 X:78 Y:65 P:25 SP:F9 CYC:148 SL:118 F933 A9 LDA #$40 PC:F934 A:40 X:78 Y:65 P:E5 SP:F9 CYC:157 SL:118 F935 38 SEC PC:F936 A:40 X:78 Y:65 P:65 SP:F9 CYC:163 SL:118 F936 60 RTS PC:F937 A:40 X:78 Y:65 P:65 SP:F9 CYC:169 SL:118 E30F FD SBC $0600,x PC:E310 A:40 X:78 Y:65 P:65 SP:FB CYC:187 SL:118 E312 20 JSR $F937 PC:E313 A:00 X:78 Y:65 P:27 SP:FB CYC:199 SL:118 F937 30 BMI $F944 PC:F938 A:00 X:78 Y:65 P:27 SP:F9 CYC:217 SL:118 F939 90 BCC $F944 PC:F93A A:00 X:78 Y:65 P:27 SP:F9 CYC:223 SL:118 F93B D0 BNE $F944 PC:F93C A:00 X:78 Y:65 P:27 SP:F9 CYC:229 SL:118 F93D 70 BVS $F944 PC:F93E A:00 X:78 Y:65 P:27 SP:F9 CYC:235 SL:118 F93F C9 CMP #$00 PC:F940 A:00 X:78 Y:65 P:27 SP:F9 CYC:241 SL:118 F941 D0 BNE $F944 PC:F942 A:00 X:78 Y:65 P:27 SP:F9 CYC:247 SL:118 F943 60 RTS PC:F944 A:00 X:78 Y:65 P:27 SP:F9 CYC:253 SL:118 E315 C8 INY PC:E316 A:00 X:78 Y:65 P:27 SP:FB CYC:271 SL:118 E316 A9 LDA #$3F PC:E317 A:00 X:78 Y:66 P:25 SP:FB CYC:277 SL:118 E318 8D STA $0678 PC:E319 A:3F X:78 Y:66 P:25 SP:FB CYC:283 SL:118 E31B 20 JSR $F947 PC:E31C A:3F X:78 Y:66 P:25 SP:FB CYC:295 SL:118 F947 B8 CLV PC:F948 A:3F X:78 Y:66 P:25 SP:F9 CYC:313 SL:118 F948 38 SEC PC:F949 A:3F X:78 Y:66 P:25 SP:F9 CYC:319 SL:118 F949 A9 LDA #$40 PC:F94A A:3F X:78 Y:66 P:25 SP:F9 CYC:325 SL:118 F94B 60 RTS PC:F94C A:40 X:78 Y:66 P:25 SP:F9 CYC:331 SL:118 E31E FD SBC $0600,x PC:E31F A:40 X:78 Y:66 P:25 SP:FB CYC:8 SL:119 E321 20 JSR $F94C PC:E322 A:01 X:78 Y:66 P:25 SP:FB CYC:20 SL:119 F94C F0 BEQ $F959 PC:F94D A:01 X:78 Y:66 P:25 SP:F9 CYC:38 SL:119 F94E 30 BMI $F959 PC:F94F A:01 X:78 Y:66 P:25 SP:F9 CYC:44 SL:119 F950 90 BCC $F959 PC:F951 A:01 X:78 Y:66 P:25 SP:F9 CYC:50 SL:119 F952 70 BVS $F959 PC:F953 A:01 X:78 Y:66 P:25 SP:F9 CYC:56 SL:119 F954 C9 CMP #$01 PC:F955 A:01 X:78 Y:66 P:25 SP:F9 CYC:62 SL:119 F956 D0 BNE $F959 PC:F957 A:01 X:78 Y:66 P:27 SP:F9 CYC:68 SL:119 F958 60 RTS PC:F959 A:01 X:78 Y:66 P:27 SP:F9 CYC:74 SL:119 E324 C8 INY PC:E325 A:01 X:78 Y:66 P:27 SP:FB CYC:92 SL:119 E325 A9 LDA #$41 PC:E326 A:01 X:78 Y:67 P:25 SP:FB CYC:98 SL:119 E327 8D STA $0678 PC:E328 A:41 X:78 Y:67 P:25 SP:FB CYC:104 SL:119 E32A 20 JSR $F95C PC:E32B A:41 X:78 Y:67 P:25 SP:FB CYC:116 SL:119 F95C A9 LDA #$40 PC:F95D A:41 X:78 Y:67 P:25 SP:F9 CYC:134 SL:119 F95E 38 SEC PC:F95F A:40 X:78 Y:67 P:25 SP:F9 CYC:140 SL:119 F95F 24 BIT $01 PC:F960 A:40 X:78 Y:67 P:25 SP:F9 CYC:146 SL:119 F961 60 RTS PC:F962 A:40 X:78 Y:67 P:E5 SP:F9 CYC:155 SL:119 E32D FD SBC $0600,x PC:E32E A:40 X:78 Y:67 P:E5 SP:FB CYC:173 SL:119 E330 20 JSR $F962 PC:E331 A:FF X:78 Y:67 P:A4 SP:FB CYC:185 SL:119 F962 B0 BCS $F96F PC:F963 A:FF X:78 Y:67 P:A4 SP:F9 CYC:203 SL:119 F964 F0 BEQ $F96F PC:F965 A:FF X:78 Y:67 P:A4 SP:F9 CYC:209 SL:119 F966 10 BPL $F96F PC:F967 A:FF X:78 Y:67 P:A4 SP:F9 CYC:215 SL:119 F968 70 BVS $F96F PC:F969 A:FF X:78 Y:67 P:A4 SP:F9 CYC:221 SL:119 F96A C9 CMP #$FF PC:F96B A:FF X:78 Y:67 P:A4 SP:F9 CYC:227 SL:119 F96C D0 BNE $F96F PC:F96D A:FF X:78 Y:67 P:27 SP:F9 CYC:233 SL:119 F96E 60 RTS PC:F96F A:FF X:78 Y:67 P:27 SP:F9 CYC:239 SL:119 E333 C8 INY PC:E334 A:FF X:78 Y:67 P:27 SP:FB CYC:257 SL:119 E334 A9 LDA #$00 PC:E335 A:FF X:78 Y:68 P:25 SP:FB CYC:263 SL:119 E336 8D STA $0678 PC:E337 A:00 X:78 Y:68 P:27 SP:FB CYC:269 SL:119 E339 20 JSR $F972 PC:E33A A:00 X:78 Y:68 P:27 SP:FB CYC:281 SL:119 F972 18 CLC PC:F973 A:00 X:78 Y:68 P:27 SP:F9 CYC:299 SL:119 F973 A9 LDA #$80 PC:F974 A:00 X:78 Y:68 P:26 SP:F9 CYC:305 SL:119 F975 60 RTS PC:F976 A:80 X:78 Y:68 P:A4 SP:F9 CYC:311 SL:119 E33C FD SBC $0600,x PC:E33D A:80 X:78 Y:68 P:A4 SP:FB CYC:329 SL:119 E33F 20 JSR $F976 PC:E340 A:7F X:78 Y:68 P:65 SP:FB CYC:0 SL:120 F976 90 BCC $F97D PC:F977 A:7F X:78 Y:68 P:65 SP:F9 CYC:18 SL:120 F978 C9 CMP #$7F PC:F979 A:7F X:78 Y:68 P:65 SP:F9 CYC:24 SL:120 F97A D0 BNE $F97D PC:F97B A:7F X:78 Y:68 P:67 SP:F9 CYC:30 SL:120 F97C 60 RTS PC:F97D A:7F X:78 Y:68 P:67 SP:F9 CYC:36 SL:120 E342 C8 INY PC:E343 A:7F X:78 Y:68 P:67 SP:FB CYC:54 SL:120 E343 A9 LDA #$7F PC:E344 A:7F X:78 Y:69 P:65 SP:FB CYC:60 SL:120 E345 8D STA $0678 PC:E346 A:7F X:78 Y:69 P:65 SP:FB CYC:66 SL:120 E348 20 JSR $F980 PC:E349 A:7F X:78 Y:69 P:65 SP:FB CYC:78 SL:120 F980 38 SEC PC:F981 A:7F X:78 Y:69 P:65 SP:F9 CYC:96 SL:120 F981 A9 LDA #$81 PC:F982 A:7F X:78 Y:69 P:65 SP:F9 CYC:102 SL:120 F983 60 RTS PC:F984 A:81 X:78 Y:69 P:E5 SP:F9 CYC:108 SL:120 E34B FD SBC $0600,x PC:E34C A:81 X:78 Y:69 P:E5 SP:FB CYC:126 SL:120 E34E 20 JSR $F984 PC:E34F A:02 X:78 Y:69 P:65 SP:FB CYC:138 SL:120 F984 50 BVC $F98D PC:F985 A:02 X:78 Y:69 P:65 SP:F9 CYC:156 SL:120 F986 90 BCC $F98D PC:F987 A:02 X:78 Y:69 P:65 SP:F9 CYC:162 SL:120 F988 C9 CMP #$02 PC:F989 A:02 X:78 Y:69 P:65 SP:F9 CYC:168 SL:120 F98A D0 BNE $F98D PC:F98B A:02 X:78 Y:69 P:67 SP:F9 CYC:174 SL:120 F98C 60 RTS PC:F98D A:02 X:78 Y:69 P:67 SP:F9 CYC:180 SL:120 E351 A9 LDA #$AA PC:E352 A:02 X:78 Y:69 P:67 SP:FB CYC:198 SL:120 E353 8D STA $0633 PC:E354 A:AA X:78 Y:69 P:E5 SP:FB CYC:204 SL:120 E356 A9 LDA #$BB PC:E357 A:AA X:78 Y:69 P:E5 SP:FB CYC:216 SL:120 E358 8D STA $0689 PC:E359 A:BB X:78 Y:69 P:E5 SP:FB CYC:222 SL:120 E35B A2 LDX #$00 PC:E35C A:BB X:78 Y:69 P:E5 SP:FB CYC:234 SL:120 E35D A0 LDY #$66 PC:E35E A:BB X:00 Y:69 P:67 SP:FB CYC:240 SL:120 E35F 24 BIT $01 PC:E360 A:BB X:00 Y:66 P:65 SP:FB CYC:246 SL:120 E361 38 SEC PC:E362 A:BB X:00 Y:66 P:E5 SP:FB CYC:255 SL:120 E362 A9 LDA #$00 PC:E363 A:BB X:00 Y:66 P:E5 SP:FB CYC:261 SL:120 E364 BD LDA $0633,x PC:E365 A:00 X:00 Y:66 P:67 SP:FB CYC:267 SL:120 E367 10 BPL $E37B PC:E368 A:AA X:00 Y:66 P:E5 SP:FB CYC:279 SL:120 E369 F0 BEQ $E37B PC:E36A A:AA X:00 Y:66 P:E5 SP:FB CYC:285 SL:120 E36B 50 BVC $E37B PC:E36C A:AA X:00 Y:66 P:E5 SP:FB CYC:291 SL:120 E36D 90 BCC $E37B PC:E36E A:AA X:00 Y:66 P:E5 SP:FB CYC:297 SL:120 E36F C0 CPY #$66 PC:E370 A:AA X:00 Y:66 P:E5 SP:FB CYC:303 SL:120 E371 D0 BNE $E37B PC:E372 A:AA X:00 Y:66 P:67 SP:FB CYC:309 SL:120 E373 E0 CPX #$00 PC:E374 A:AA X:00 Y:66 P:67 SP:FB CYC:315 SL:120 E375 D0 BNE $E37B PC:E376 A:AA X:00 Y:66 P:67 SP:FB CYC:321 SL:120 E377 C9 CMP #$AA PC:E378 A:AA X:00 Y:66 P:67 SP:FB CYC:327 SL:120 E379 F0 BEQ $E37F PC:E37A A:AA X:00 Y:66 P:67 SP:FB CYC:333 SL:120 E37F A2 LDX #$8A PC:E380 A:AA X:00 Y:66 P:67 SP:FB CYC:1 SL:121 E381 A0 LDY #$66 PC:E382 A:AA X:8A Y:66 P:E5 SP:FB CYC:7 SL:121 E383 B8 CLV PC:E384 A:AA X:8A Y:66 P:65 SP:FB CYC:13 SL:121 E384 18 CLC PC:E385 A:AA X:8A Y:66 P:25 SP:FB CYC:19 SL:121 E385 A9 LDA #$00 PC:E386 A:AA X:8A Y:66 P:24 SP:FB CYC:25 SL:121 E387 BD LDA $05FF,x PC:E388 A:00 X:8A Y:66 P:26 SP:FB CYC:31 SL:121 E38A 10 BPL $E39E PC:E38B A:BB X:8A Y:66 P:A4 SP:FB CYC:46 SL:121 E38C F0 BEQ $E39E PC:E38D A:BB X:8A Y:66 P:A4 SP:FB CYC:52 SL:121 E38E 70 BVS $E39E PC:E38F A:BB X:8A Y:66 P:A4 SP:FB CYC:58 SL:121 E390 B0 BCS $E39E PC:E391 A:BB X:8A Y:66 P:A4 SP:FB CYC:64 SL:121 E392 C9 CMP #$BB PC:E393 A:BB X:8A Y:66 P:A4 SP:FB CYC:70 SL:121 E394 D0 BNE $E39E PC:E395 A:BB X:8A Y:66 P:27 SP:FB CYC:76 SL:121 E396 C0 CPY #$66 PC:E397 A:BB X:8A Y:66 P:27 SP:FB CYC:82 SL:121 E398 D0 BNE $E39E PC:E399 A:BB X:8A Y:66 P:27 SP:FB CYC:88 SL:121 E39A E0 CPX #$8A PC:E39B A:BB X:8A Y:66 P:27 SP:FB CYC:94 SL:121 E39C F0 BEQ $E3A2 PC:E39D A:BB X:8A Y:66 P:27 SP:FB CYC:100 SL:121 E3A2 24 BIT $01 PC:E3A3 A:BB X:8A Y:66 P:27 SP:FB CYC:109 SL:121 E3A4 38 SEC PC:E3A5 A:BB X:8A Y:66 P:E5 SP:FB CYC:118 SL:121 E3A5 A9 LDA #$44 PC:E3A6 A:BB X:8A Y:66 P:E5 SP:FB CYC:124 SL:121 E3A7 A2 LDX #$00 PC:E3A8 A:44 X:8A Y:66 P:65 SP:FB CYC:130 SL:121 E3A9 9D STA $0633,x PC:E3AA A:44 X:00 Y:66 P:67 SP:FB CYC:136 SL:121 E3AC AD LDA $0633 PC:E3AD A:44 X:00 Y:66 P:67 SP:FB CYC:151 SL:121 E3AF 90 BCC $E3CB PC:E3B0 A:44 X:00 Y:66 P:65 SP:FB CYC:163 SL:121 E3B1 C9 CMP #$44 PC:E3B2 A:44 X:00 Y:66 P:65 SP:FB CYC:169 SL:121 E3B3 D0 BNE $E3CB PC:E3B4 A:44 X:00 Y:66 P:67 SP:FB CYC:175 SL:121 E3B5 50 BVC $E3CB PC:E3B6 A:44 X:00 Y:66 P:67 SP:FB CYC:181 SL:121 E3B7 18 CLC PC:E3B8 A:44 X:00 Y:66 P:67 SP:FB CYC:187 SL:121 E3B8 B8 CLV PC:E3B9 A:44 X:00 Y:66 P:66 SP:FB CYC:193 SL:121 E3B9 A9 LDA #$99 PC:E3BA A:44 X:00 Y:66 P:26 SP:FB CYC:199 SL:121 E3BB A2 LDX #$80 PC:E3BC A:99 X:00 Y:66 P:A4 SP:FB CYC:205 SL:121 E3BD 9D STA $0585,x PC:E3BE A:99 X:80 Y:66 P:A4 SP:FB CYC:211 SL:121 E3C0 AD LDA $0605 PC:E3C1 A:99 X:80 Y:66 P:A4 SP:FB CYC:226 SL:121 E3C3 B0 BCS $E3CB PC:E3C4 A:99 X:80 Y:66 P:A4 SP:FB CYC:238 SL:121 E3C5 C9 CMP #$99 PC:E3C6 A:99 X:80 Y:66 P:A4 SP:FB CYC:244 SL:121 E3C7 D0 BNE $E3CB PC:E3C8 A:99 X:80 Y:66 P:27 SP:FB CYC:250 SL:121 E3C9 50 BVC $E3CF PC:E3CA A:99 X:80 Y:66 P:27 SP:FB CYC:256 SL:121 E3CF A0 LDY #$6D PC:E3D0 A:99 X:80 Y:66 P:27 SP:FB CYC:265 SL:121 E3D1 A2 LDX #$6D PC:E3D2 A:99 X:80 Y:6D P:25 SP:FB CYC:271 SL:121 E3D3 20 JSR $F990 PC:E3D4 A:99 X:6D Y:6D P:25 SP:FB CYC:277 SL:121 F990 A2 LDX #$55 PC:F991 A:99 X:6D Y:6D P:25 SP:F9 CYC:295 SL:121 F992 A9 LDA #$FF PC:F993 A:99 X:55 Y:6D P:25 SP:F9 CYC:301 SL:121 F994 85 STA $01 PC:F995 A:FF X:55 Y:6D P:A5 SP:F9 CYC:307 SL:121 F996 EA NOP PC:F997 A:FF X:55 Y:6D P:A5 SP:F9 CYC:316 SL:121 F997 24 BIT $01 PC:F998 A:FF X:55 Y:6D P:A5 SP:F9 CYC:322 SL:121 F999 38 SEC PC:F99A A:FF X:55 Y:6D P:E5 SP:F9 CYC:331 SL:121 F99A A9 LDA #$01 PC:F99B A:FF X:55 Y:6D P:E5 SP:F9 CYC:337 SL:121 F99C 60 RTS PC:F99D A:01 X:55 Y:6D P:65 SP:F9 CYC:2 SL:122 E3D6 9D STA $0600,x PC:E3D7 A:01 X:55 Y:6D P:65 SP:FB CYC:20 SL:122 E3D9 5E LSR $0600,x PC:E3DA A:01 X:55 Y:6D P:65 SP:FB CYC:35 SL:122 E3DC BD LDA $0600,x PC:E3DD A:01 X:55 Y:6D P:67 SP:FB CYC:56 SL:122 E3DF 20 JSR $F99D PC:E3E0 A:00 X:55 Y:6D P:67 SP:FB CYC:68 SL:122 F99D 90 BCC $F9BA PC:F99E A:00 X:55 Y:6D P:67 SP:F9 CYC:86 SL:122 F99F D0 BNE $F9BA PC:F9A0 A:00 X:55 Y:6D P:67 SP:F9 CYC:92 SL:122 F9A1 30 BMI $F9BA PC:F9A2 A:00 X:55 Y:6D P:67 SP:F9 CYC:98 SL:122 F9A3 50 BVC $F9BA PC:F9A4 A:00 X:55 Y:6D P:67 SP:F9 CYC:104 SL:122 F9A5 C9 CMP #$00 PC:F9A6 A:00 X:55 Y:6D P:67 SP:F9 CYC:110 SL:122 F9A7 D0 BNE $F9BA PC:F9A8 A:00 X:55 Y:6D P:67 SP:F9 CYC:116 SL:122 F9A9 B8 CLV PC:F9AA A:00 X:55 Y:6D P:67 SP:F9 CYC:122 SL:122 F9AA A9 LDA #$AA PC:F9AB A:00 X:55 Y:6D P:27 SP:F9 CYC:128 SL:122 F9AC 60 RTS PC:F9AD A:AA X:55 Y:6D P:A5 SP:F9 CYC:134 SL:122 E3E2 C8 INY PC:E3E3 A:AA X:55 Y:6D P:A5 SP:FB CYC:152 SL:122 E3E3 9D STA $0600,x PC:E3E4 A:AA X:55 Y:6E P:25 SP:FB CYC:158 SL:122 E3E6 5E LSR $0600,x PC:E3E7 A:AA X:55 Y:6E P:25 SP:FB CYC:173 SL:122 E3E9 BD LDA $0600,x PC:E3EA A:AA X:55 Y:6E P:24 SP:FB CYC:194 SL:122 E3EC 20 JSR $F9AD PC:E3ED A:55 X:55 Y:6E P:24 SP:FB CYC:206 SL:122 F9AD B0 BCS $F9BA PC:F9AE A:55 X:55 Y:6E P:24 SP:F9 CYC:224 SL:122 F9AF F0 BEQ $F9BA PC:F9B0 A:55 X:55 Y:6E P:24 SP:F9 CYC:230 SL:122 F9B1 30 BMI $F9BA PC:F9B2 A:55 X:55 Y:6E P:24 SP:F9 CYC:236 SL:122 F9B3 70 BVS $F9BA PC:F9B4 A:55 X:55 Y:6E P:24 SP:F9 CYC:242 SL:122 F9B5 C9 CMP #$55 PC:F9B6 A:55 X:55 Y:6E P:24 SP:F9 CYC:248 SL:122 F9B7 D0 BNE $F9BA PC:F9B8 A:55 X:55 Y:6E P:27 SP:F9 CYC:254 SL:122 F9B9 60 RTS PC:F9BA A:55 X:55 Y:6E P:27 SP:F9 CYC:260 SL:122 E3EF C8 INY PC:E3F0 A:55 X:55 Y:6E P:27 SP:FB CYC:278 SL:122 E3F0 20 JSR $F9BD PC:E3F1 A:55 X:55 Y:6F P:25 SP:FB CYC:284 SL:122 F9BD 24 BIT $01 PC:F9BE A:55 X:55 Y:6F P:25 SP:F9 CYC:302 SL:122 F9BF 38 SEC PC:F9C0 A:55 X:55 Y:6F P:E5 SP:F9 CYC:311 SL:122 F9C0 A9 LDA #$80 PC:F9C1 A:55 X:55 Y:6F P:E5 SP:F9 CYC:317 SL:122 F9C2 60 RTS PC:F9C3 A:80 X:55 Y:6F P:E5 SP:F9 CYC:323 SL:122 E3F3 9D STA $0600,x PC:E3F4 A:80 X:55 Y:6F P:E5 SP:FB CYC:0 SL:123 E3F6 1E ASL $0600,x PC:E3F7 A:80 X:55 Y:6F P:E5 SP:FB CYC:15 SL:123 E3F9 BD LDA $0600,x PC:E3FA A:80 X:55 Y:6F P:67 SP:FB CYC:36 SL:123 E3FC 20 JSR $F9C3 PC:E3FD A:00 X:55 Y:6F P:67 SP:FB CYC:48 SL:123 F9C3 90 BCC $F9E1 PC:F9C4 A:00 X:55 Y:6F P:67 SP:F9 CYC:66 SL:123 F9C5 D0 BNE $F9E1 PC:F9C6 A:00 X:55 Y:6F P:67 SP:F9 CYC:72 SL:123 F9C7 30 BMI $F9E1 PC:F9C8 A:00 X:55 Y:6F P:67 SP:F9 CYC:78 SL:123 F9C9 50 BVC $F9E1 PC:F9CA A:00 X:55 Y:6F P:67 SP:F9 CYC:84 SL:123 F9CB C9 CMP #$00 PC:F9CC A:00 X:55 Y:6F P:67 SP:F9 CYC:90 SL:123 F9CD D0 BNE $F9E1 PC:F9CE A:00 X:55 Y:6F P:67 SP:F9 CYC:96 SL:123 F9CF B8 CLV PC:F9D0 A:00 X:55 Y:6F P:67 SP:F9 CYC:102 SL:123 F9D0 A9 LDA #$55 PC:F9D1 A:00 X:55 Y:6F P:27 SP:F9 CYC:108 SL:123 F9D2 38 SEC PC:F9D3 A:55 X:55 Y:6F P:25 SP:F9 CYC:114 SL:123 F9D3 60 RTS PC:F9D4 A:55 X:55 Y:6F P:25 SP:F9 CYC:120 SL:123 E3FF C8 INY PC:E400 A:55 X:55 Y:6F P:25 SP:FB CYC:138 SL:123 E400 9D STA $0600,x PC:E401 A:55 X:55 Y:70 P:25 SP:FB CYC:144 SL:123 E403 1E ASL $0600,x PC:E404 A:55 X:55 Y:70 P:25 SP:FB CYC:159 SL:123 E406 BD LDA $0600,x PC:E407 A:55 X:55 Y:70 P:A4 SP:FB CYC:180 SL:123 E409 20 JSR $F9D4 PC:E40A A:AA X:55 Y:70 P:A4 SP:FB CYC:192 SL:123 F9D4 B0 BCS $F9E1 PC:F9D5 A:AA X:55 Y:70 P:A4 SP:F9 CYC:210 SL:123 F9D6 F0 BEQ $F9E1 PC:F9D7 A:AA X:55 Y:70 P:A4 SP:F9 CYC:216 SL:123 F9D8 10 BPL $F9E1 PC:F9D9 A:AA X:55 Y:70 P:A4 SP:F9 CYC:222 SL:123 F9DA 70 BVS $F9E1 PC:F9DB A:AA X:55 Y:70 P:A4 SP:F9 CYC:228 SL:123 F9DC C9 CMP #$AA PC:F9DD A:AA X:55 Y:70 P:A4 SP:F9 CYC:234 SL:123 F9DE D0 BNE $F9E1 PC:F9DF A:AA X:55 Y:70 P:27 SP:F9 CYC:240 SL:123 F9E0 60 RTS PC:F9E1 A:AA X:55 Y:70 P:27 SP:F9 CYC:246 SL:123 E40C C8 INY PC:E40D A:AA X:55 Y:70 P:27 SP:FB CYC:264 SL:123 E40D 20 JSR $F9E4 PC:E40E A:AA X:55 Y:71 P:25 SP:FB CYC:270 SL:123 F9E4 24 BIT $01 PC:F9E5 A:AA X:55 Y:71 P:25 SP:F9 CYC:288 SL:123 F9E6 38 SEC PC:F9E7 A:AA X:55 Y:71 P:E5 SP:F9 CYC:297 SL:123 F9E7 A9 LDA #$01 PC:F9E8 A:AA X:55 Y:71 P:E5 SP:F9 CYC:303 SL:123 F9E9 60 RTS PC:F9EA A:01 X:55 Y:71 P:65 SP:F9 CYC:309 SL:123 E410 9D STA $0600,x PC:E411 A:01 X:55 Y:71 P:65 SP:FB CYC:327 SL:123 E413 7E ROR $0600,x PC:E414 A:01 X:55 Y:71 P:65 SP:FB CYC:1 SL:124 E416 BD LDA $0600,x PC:E417 A:01 X:55 Y:71 P:E5 SP:FB CYC:22 SL:124 E419 20 JSR $F9EA PC:E41A A:80 X:55 Y:71 P:E5 SP:FB CYC:34 SL:124 F9EA 90 BCC $FA08 PC:F9EB A:80 X:55 Y:71 P:E5 SP:F9 CYC:52 SL:124 F9EC F0 BEQ $FA08 PC:F9ED A:80 X:55 Y:71 P:E5 SP:F9 CYC:58 SL:124 F9EE 10 BPL $FA08 PC:F9EF A:80 X:55 Y:71 P:E5 SP:F9 CYC:64 SL:124 F9F0 50 BVC $FA08 PC:F9F1 A:80 X:55 Y:71 P:E5 SP:F9 CYC:70 SL:124 F9F2 C9 CMP #$80 PC:F9F3 A:80 X:55 Y:71 P:E5 SP:F9 CYC:76 SL:124 F9F4 D0 BNE $FA08 PC:F9F5 A:80 X:55 Y:71 P:67 SP:F9 CYC:82 SL:124 F9F6 B8 CLV PC:F9F7 A:80 X:55 Y:71 P:67 SP:F9 CYC:88 SL:124 F9F7 18 CLC PC:F9F8 A:80 X:55 Y:71 P:27 SP:F9 CYC:94 SL:124 F9F8 A9 LDA #$55 PC:F9F9 A:80 X:55 Y:71 P:26 SP:F9 CYC:100 SL:124 F9FA 60 RTS PC:F9FB A:55 X:55 Y:71 P:24 SP:F9 CYC:106 SL:124 E41C C8 INY PC:E41D A:55 X:55 Y:71 P:24 SP:FB CYC:124 SL:124 E41D 9D STA $0600,x PC:E41E A:55 X:55 Y:72 P:24 SP:FB CYC:130 SL:124 E420 7E ROR $0600,x PC:E421 A:55 X:55 Y:72 P:24 SP:FB CYC:145 SL:124 E423 BD LDA $0600,x PC:E424 A:55 X:55 Y:72 P:25 SP:FB CYC:166 SL:124 E426 20 JSR $F9FB PC:E427 A:2A X:55 Y:72 P:25 SP:FB CYC:178 SL:124 F9FB 90 BCC $FA08 PC:F9FC A:2A X:55 Y:72 P:25 SP:F9 CYC:196 SL:124 F9FD F0 BEQ $FA08 PC:F9FE A:2A X:55 Y:72 P:25 SP:F9 CYC:202 SL:124 F9FF 30 BMI $FA08 PC:FA00 A:2A X:55 Y:72 P:25 SP:F9 CYC:208 SL:124 FA01 70 BVS $FA08 PC:FA02 A:2A X:55 Y:72 P:25 SP:F9 CYC:214 SL:124 FA03 C9 CMP #$2A PC:FA04 A:2A X:55 Y:72 P:25 SP:F9 CYC:220 SL:124 FA05 D0 BNE $FA08 PC:FA06 A:2A X:55 Y:72 P:27 SP:F9 CYC:226 SL:124 FA07 60 RTS PC:FA08 A:2A X:55 Y:72 P:27 SP:F9 CYC:232 SL:124 E429 C8 INY PC:E42A A:2A X:55 Y:72 P:27 SP:FB CYC:250 SL:124 E42A 20 JSR $FA0A PC:E42B A:2A X:55 Y:73 P:25 SP:FB CYC:256 SL:124 FA0A 24 BIT $01 PC:FA0B A:2A X:55 Y:73 P:25 SP:F9 CYC:274 SL:124 FA0C 38 SEC PC:FA0D A:2A X:55 Y:73 P:E5 SP:F9 CYC:283 SL:124 FA0D A9 LDA #$80 PC:FA0E A:2A X:55 Y:73 P:E5 SP:F9 CYC:289 SL:124 FA0F 60 RTS PC:FA10 A:80 X:55 Y:73 P:E5 SP:F9 CYC:295 SL:124 E42D 9D STA $0600,x PC:E42E A:80 X:55 Y:73 P:E5 SP:FB CYC:313 SL:124 E430 3E ROL $0600,x PC:E431 A:80 X:55 Y:73 P:E5 SP:FB CYC:328 SL:124 E433 BD LDA $0600,x PC:E434 A:80 X:55 Y:73 P:65 SP:FB CYC:8 SL:125 E436 20 JSR $FA10 PC:E437 A:01 X:55 Y:73 P:65 SP:FB CYC:20 SL:125 FA10 90 BCC $FA2E PC:FA11 A:01 X:55 Y:73 P:65 SP:F9 CYC:38 SL:125 FA12 F0 BEQ $FA2E PC:FA13 A:01 X:55 Y:73 P:65 SP:F9 CYC:44 SL:125 FA14 30 BMI $FA2E PC:FA15 A:01 X:55 Y:73 P:65 SP:F9 CYC:50 SL:125 FA16 50 BVC $FA2E PC:FA17 A:01 X:55 Y:73 P:65 SP:F9 CYC:56 SL:125 FA18 C9 CMP #$01 PC:FA19 A:01 X:55 Y:73 P:65 SP:F9 CYC:62 SL:125 FA1A D0 BNE $FA2E PC:FA1B A:01 X:55 Y:73 P:67 SP:F9 CYC:68 SL:125 FA1C B8 CLV PC:FA1D A:01 X:55 Y:73 P:67 SP:F9 CYC:74 SL:125 FA1D 18 CLC PC:FA1E A:01 X:55 Y:73 P:27 SP:F9 CYC:80 SL:125 FA1E A9 LDA #$55 PC:FA1F A:01 X:55 Y:73 P:26 SP:F9 CYC:86 SL:125 FA20 60 RTS PC:FA21 A:55 X:55 Y:73 P:24 SP:F9 CYC:92 SL:125 E439 C8 INY PC:E43A A:55 X:55 Y:73 P:24 SP:FB CYC:110 SL:125 E43A 9D STA $0600,x PC:E43B A:55 X:55 Y:74 P:24 SP:FB CYC:116 SL:125 E43D 3E ROL $0600,x PC:E43E A:55 X:55 Y:74 P:24 SP:FB CYC:131 SL:125 E440 BD LDA $0600,x PC:E441 A:55 X:55 Y:74 P:A4 SP:FB CYC:152 SL:125 E443 20 JSR $FA21 PC:E444 A:AA X:55 Y:74 P:A4 SP:FB CYC:164 SL:125 FA21 B0 BCS $FA2E PC:FA22 A:AA X:55 Y:74 P:A4 SP:F9 CYC:182 SL:125 FA23 F0 BEQ $FA2E PC:FA24 A:AA X:55 Y:74 P:A4 SP:F9 CYC:188 SL:125 FA25 10 BPL $FA2E PC:FA26 A:AA X:55 Y:74 P:A4 SP:F9 CYC:194 SL:125 FA27 70 BVS $FA2E PC:FA28 A:AA X:55 Y:74 P:A4 SP:F9 CYC:200 SL:125 FA29 C9 CMP #$AA PC:FA2A A:AA X:55 Y:74 P:A4 SP:F9 CYC:206 SL:125 FA2B D0 BNE $FA2E PC:FA2C A:AA X:55 Y:74 P:27 SP:F9 CYC:212 SL:125 FA2D 60 RTS PC:FA2E A:AA X:55 Y:74 P:27 SP:F9 CYC:218 SL:125 E446 A9 LDA #$FF PC:E447 A:AA X:55 Y:74 P:27 SP:FB CYC:236 SL:125 E448 9D STA $0600,x PC:E449 A:FF X:55 Y:74 P:A5 SP:FB CYC:242 SL:125 E44B 85 STA $01 PC:E44C A:FF X:55 Y:74 P:A5 SP:FB CYC:257 SL:125 E44D 24 BIT $01 PC:E44E A:FF X:55 Y:74 P:A5 SP:FB CYC:266 SL:125 E44F 38 SEC PC:E450 A:FF X:55 Y:74 P:E5 SP:FB CYC:275 SL:125 E450 FE INC $0600,x PC:E451 A:FF X:55 Y:74 P:E5 SP:FB CYC:281 SL:125 E453 D0 BNE $E462 PC:E454 A:FF X:55 Y:74 P:67 SP:FB CYC:302 SL:125 E455 30 BMI $E462 PC:E456 A:FF X:55 Y:74 P:67 SP:FB CYC:308 SL:125 E457 50 BVC $E462 PC:E458 A:FF X:55 Y:74 P:67 SP:FB CYC:314 SL:125 E459 90 BCC $E462 PC:E45A A:FF X:55 Y:74 P:67 SP:FB CYC:320 SL:125 E45B BD LDA $0600,x PC:E45C A:FF X:55 Y:74 P:67 SP:FB CYC:326 SL:125 E45E C9 CMP #$00 PC:E45F A:00 X:55 Y:74 P:67 SP:FB CYC:338 SL:125 E460 F0 BEQ $E466 PC:E461 A:00 X:55 Y:74 P:67 SP:FB CYC:3 SL:126 E466 A9 LDA #$7F PC:E467 A:00 X:55 Y:74 P:67 SP:FB CYC:12 SL:126 E468 9D STA $0600,x PC:E469 A:7F X:55 Y:74 P:65 SP:FB CYC:18 SL:126 E46B B8 CLV PC:E46C A:7F X:55 Y:74 P:65 SP:FB CYC:33 SL:126 E46C 18 CLC PC:E46D A:7F X:55 Y:74 P:25 SP:FB CYC:39 SL:126 E46D FE INC $0600,x PC:E46E A:7F X:55 Y:74 P:24 SP:FB CYC:45 SL:126 E470 F0 BEQ $E47F PC:E471 A:7F X:55 Y:74 P:A4 SP:FB CYC:66 SL:126 E472 10 BPL $E47F PC:E473 A:7F X:55 Y:74 P:A4 SP:FB CYC:72 SL:126 E474 70 BVS $E47F PC:E475 A:7F X:55 Y:74 P:A4 SP:FB CYC:78 SL:126 E476 B0 BCS $E47F PC:E477 A:7F X:55 Y:74 P:A4 SP:FB CYC:84 SL:126 E478 BD LDA $0600,x PC:E479 A:7F X:55 Y:74 P:A4 SP:FB CYC:90 SL:126 E47B C9 CMP #$80 PC:E47C A:80 X:55 Y:74 P:A4 SP:FB CYC:102 SL:126 E47D F0 BEQ $E483 PC:E47E A:80 X:55 Y:74 P:27 SP:FB CYC:108 SL:126 E483 A9 LDA #$00 PC:E484 A:80 X:55 Y:74 P:27 SP:FB CYC:117 SL:126 E485 9D STA $0600,x PC:E486 A:00 X:55 Y:74 P:27 SP:FB CYC:123 SL:126 E488 24 BIT $01 PC:E489 A:00 X:55 Y:74 P:27 SP:FB CYC:138 SL:126 E48A 38 SEC PC:E48B A:00 X:55 Y:74 P:E7 SP:FB CYC:147 SL:126 E48B DE DEC $0600,x PC:E48C A:00 X:55 Y:74 P:E7 SP:FB CYC:153 SL:126 E48E F0 BEQ $E49D PC:E48F A:00 X:55 Y:74 P:E5 SP:FB CYC:174 SL:126 E490 10 BPL $E49D PC:E491 A:00 X:55 Y:74 P:E5 SP:FB CYC:180 SL:126 E492 50 BVC $E49D PC:E493 A:00 X:55 Y:74 P:E5 SP:FB CYC:186 SL:126 E494 90 BCC $E49D PC:E495 A:00 X:55 Y:74 P:E5 SP:FB CYC:192 SL:126 E496 BD LDA $0600,x PC:E497 A:00 X:55 Y:74 P:E5 SP:FB CYC:198 SL:126 E499 C9 CMP #$FF PC:E49A A:FF X:55 Y:74 P:E5 SP:FB CYC:210 SL:126 E49B F0 BEQ $E4A1 PC:E49C A:FF X:55 Y:74 P:67 SP:FB CYC:216 SL:126 E4A1 A9 LDA #$80 PC:E4A2 A:FF X:55 Y:74 P:67 SP:FB CYC:225 SL:126 E4A3 9D STA $0600,x PC:E4A4 A:80 X:55 Y:74 P:E5 SP:FB CYC:231 SL:126 E4A6 B8 CLV PC:E4A7 A:80 X:55 Y:74 P:E5 SP:FB CYC:246 SL:126 E4A7 18 CLC PC:E4A8 A:80 X:55 Y:74 P:A5 SP:FB CYC:252 SL:126 E4A8 DE DEC $0600,x PC:E4A9 A:80 X:55 Y:74 P:A4 SP:FB CYC:258 SL:126 E4AB F0 BEQ $E4BA PC:E4AC A:80 X:55 Y:74 P:24 SP:FB CYC:279 SL:126 E4AD 30 BMI $E4BA PC:E4AE A:80 X:55 Y:74 P:24 SP:FB CYC:285 SL:126 E4AF 70 BVS $E4BA PC:E4B0 A:80 X:55 Y:74 P:24 SP:FB CYC:291 SL:126 E4B1 B0 BCS $E4BA PC:E4B2 A:80 X:55 Y:74 P:24 SP:FB CYC:297 SL:126 E4B3 BD LDA $0600,x PC:E4B4 A:80 X:55 Y:74 P:24 SP:FB CYC:303 SL:126 E4B6 C9 CMP #$7F PC:E4B7 A:7F X:55 Y:74 P:24 SP:FB CYC:315 SL:126 E4B8 F0 BEQ $E4BE PC:E4B9 A:7F X:55 Y:74 P:27 SP:FB CYC:321 SL:126 E4BE A9 LDA #$01 PC:E4BF A:7F X:55 Y:74 P:27 SP:FB CYC:330 SL:126 E4C0 9D STA $0600,x PC:E4C1 A:01 X:55 Y:74 P:25 SP:FB CYC:336 SL:126 E4C3 DE DEC $0600,x PC:E4C4 A:01 X:55 Y:74 P:25 SP:FB CYC:10 SL:127 E4C6 F0 BEQ $E4CC PC:E4C7 A:01 X:55 Y:74 P:27 SP:FB CYC:31 SL:127 E4CC A9 LDA #$33 PC:E4CD A:01 X:55 Y:74 P:27 SP:FB CYC:40 SL:127 E4CE 8D STA $0678 PC:E4CF A:33 X:55 Y:74 P:25 SP:FB CYC:46 SL:127 E4D1 A9 LDA #$44 PC:E4D2 A:33 X:55 Y:74 P:25 SP:FB CYC:58 SL:127 E4D3 A0 LDY #$78 PC:E4D4 A:44 X:55 Y:74 P:25 SP:FB CYC:64 SL:127 E4D5 A2 LDX #$00 PC:E4D6 A:44 X:55 Y:78 P:25 SP:FB CYC:70 SL:127 E4D7 38 SEC PC:E4D8 A:44 X:00 Y:78 P:27 SP:FB CYC:76 SL:127 E4D8 24 BIT $01 PC:E4D9 A:44 X:00 Y:78 P:27 SP:FB CYC:82 SL:127 E4DA BE LDX $0600,y PC:E4DB A:44 X:00 Y:78 P:E5 SP:FB CYC:91 SL:127 E4DD 90 BCC $E4F1 PC:E4DE A:44 X:33 Y:78 P:65 SP:FB CYC:103 SL:127 E4DF 50 BVC $E4F1 PC:E4E0 A:44 X:33 Y:78 P:65 SP:FB CYC:109 SL:127 E4E1 30 BMI $E4F1 PC:E4E2 A:44 X:33 Y:78 P:65 SP:FB CYC:115 SL:127 E4E3 F0 BEQ $E4F1 PC:E4E4 A:44 X:33 Y:78 P:65 SP:FB CYC:121 SL:127 E4E5 E0 CPX #$33 PC:E4E6 A:44 X:33 Y:78 P:65 SP:FB CYC:127 SL:127 E4E7 D0 BNE $E4F1 PC:E4E8 A:44 X:33 Y:78 P:67 SP:FB CYC:133 SL:127 E4E9 C0 CPY #$78 PC:E4EA A:44 X:33 Y:78 P:67 SP:FB CYC:139 SL:127 E4EB D0 BNE $E4F1 PC:E4EC A:44 X:33 Y:78 P:67 SP:FB CYC:145 SL:127 E4ED C9 CMP #$44 PC:E4EE A:44 X:33 Y:78 P:67 SP:FB CYC:151 SL:127 E4EF F0 BEQ $E4F5 PC:E4F0 A:44 X:33 Y:78 P:67 SP:FB CYC:157 SL:127 E4F5 A9 LDA #$97 PC:E4F6 A:44 X:33 Y:78 P:67 SP:FB CYC:166 SL:127 E4F7 8D STA $067F PC:E4F8 A:97 X:33 Y:78 P:E5 SP:FB CYC:172 SL:127 E4FA A9 LDA #$47 PC:E4FB A:97 X:33 Y:78 P:E5 SP:FB CYC:184 SL:127 E4FC A0 LDY #$FF PC:E4FD A:47 X:33 Y:78 P:65 SP:FB CYC:190 SL:127 E4FE A2 LDX #$00 PC:E4FF A:47 X:33 Y:FF P:E5 SP:FB CYC:196 SL:127 E500 18 CLC PC:E501 A:47 X:00 Y:FF P:67 SP:FB CYC:202 SL:127 E501 B8 CLV PC:E502 A:47 X:00 Y:FF P:66 SP:FB CYC:208 SL:127 E502 BE LDX $0580,y PC:E503 A:47 X:00 Y:FF P:26 SP:FB CYC:214 SL:127 E505 B0 BCS $E519 PC:E506 A:47 X:97 Y:FF P:A4 SP:FB CYC:229 SL:127 E507 70 BVS $E519 PC:E508 A:47 X:97 Y:FF P:A4 SP:FB CYC:235 SL:127 E509 10 BPL $E519 PC:E50A A:47 X:97 Y:FF P:A4 SP:FB CYC:241 SL:127 E50B F0 BEQ $E519 PC:E50C A:47 X:97 Y:FF P:A4 SP:FB CYC:247 SL:127 E50D E0 CPX #$97 PC:E50E A:47 X:97 Y:FF P:A4 SP:FB CYC:253 SL:127 E50F D0 BNE $E519 PC:E510 A:47 X:97 Y:FF P:27 SP:FB CYC:259 SL:127 E511 C0 CPY #$FF PC:E512 A:47 X:97 Y:FF P:27 SP:FB CYC:265 SL:127 E513 D0 BNE $E519 PC:E514 A:47 X:97 Y:FF P:27 SP:FB CYC:271 SL:127 E515 C9 CMP #$47 PC:E516 A:47 X:97 Y:FF P:27 SP:FB CYC:277 SL:127 E517 F0 BEQ $E51D PC:E518 A:47 X:97 Y:FF P:27 SP:FB CYC:283 SL:127 E51D 60 RTS PC:E51E A:47 X:97 Y:FF P:27 SP:FB CYC:292 SL:127 C62F 20 JSR $C6A3 PC:C630 A:47 X:97 Y:FF P:27 SP:FD CYC:310 SL:127 C6A3 A0 LDY #$4E PC:C6A4 A:47 X:97 Y:FF P:27 SP:FB CYC:328 SL:127 C6A5 A9 LDA #$FF PC:C6A6 A:47 X:97 Y:4E P:25 SP:FB CYC:334 SL:127 C6A7 85 STA $01 PC:C6A8 A:FF X:97 Y:4E P:A5 SP:FB CYC:340 SL:127 C6A9 20 JSR $C6B0 PC:C6AA A:FF X:97 Y:4E P:A5 SP:FB CYC:8 SL:128 C6B0 A9 LDA #$FF PC:C6B1 A:FF X:97 Y:4E P:A5 SP:F9 CYC:26 SL:128 C6B2 48 PHA PC:C6B3 A:FF X:97 Y:4E P:A5 SP:F9 CYC:32 SL:128 C6B3 A9 LDA #$AA PC:C6B4 A:FF X:97 Y:4E P:A5 SP:F8 CYC:41 SL:128 C6B5 D0 BNE $C6BC PC:C6B6 A:AA X:97 Y:4E P:A5 SP:F8 CYC:47 SL:128 C6BC 28 PLP PC:C6BD A:AA X:97 Y:4E P:A5 SP:F8 CYC:56 SL:128 C6BD 04 NOP $A9 PC:C6BE A:AA X:97 Y:4E P:EF SP:F9 CYC:68 SL:128 C6BF 44 NOP $A9 PC:C6C0 A:AA X:97 Y:4E P:EF SP:F9 CYC:77 SL:128 C6C1 64 NOP $A9 PC:C6C2 A:AA X:97 Y:4E P:EF SP:F9 CYC:86 SL:128 C6C3 EA NOP PC:C6C4 A:AA X:97 Y:4E P:EF SP:F9 CYC:95 SL:128 C6C4 EA NOP PC:C6C5 A:AA X:97 Y:4E P:EF SP:F9 CYC:101 SL:128 C6C5 EA NOP PC:C6C6 A:AA X:97 Y:4E P:EF SP:F9 CYC:107 SL:128 C6C6 EA NOP PC:C6C7 A:AA X:97 Y:4E P:EF SP:F9 CYC:113 SL:128 C6C7 08 PHP PC:C6C8 A:AA X:97 Y:4E P:EF SP:F9 CYC:119 SL:128 C6C8 48 PHA PC:C6C9 A:AA X:97 Y:4E P:EF SP:F8 CYC:128 SL:128 C6C9 0C NOP $A9A9 PC:C6CA A:AA X:97 Y:4E P:EF SP:F7 CYC:137 SL:128 C6CC EA NOP PC:C6CD A:AA X:97 Y:4E P:EF SP:F7 CYC:149 SL:128 C6CD EA NOP PC:C6CE A:AA X:97 Y:4E P:EF SP:F7 CYC:155 SL:128 C6CE EA NOP PC:C6CF A:AA X:97 Y:4E P:EF SP:F7 CYC:161 SL:128 C6CF EA NOP PC:C6D0 A:AA X:97 Y:4E P:EF SP:F7 CYC:167 SL:128 C6D0 08 PHP PC:C6D1 A:AA X:97 Y:4E P:EF SP:F7 CYC:173 SL:128 C6D1 48 PHA PC:C6D2 A:AA X:97 Y:4E P:EF SP:F6 CYC:182 SL:128 C6D2 14 NOP $A9,x PC:C6D3 A:AA X:97 Y:4E P:EF SP:F5 CYC:191 SL:128 C6D4 34 NOP $A9,x PC:C6D5 A:AA X:97 Y:4E P:EF SP:F5 CYC:203 SL:128 C6D6 54 NOP $A9,x PC:C6D7 A:AA X:97 Y:4E P:EF SP:F5 CYC:215 SL:128 C6D8 74 NOP $A9,x PC:C6D9 A:AA X:97 Y:4E P:EF SP:F5 CYC:227 SL:128 C6DA D4 NOP $A9,x PC:C6DB A:AA X:97 Y:4E P:EF SP:F5 CYC:239 SL:128 C6DC F4 NOP $A9,x PC:C6DD A:AA X:97 Y:4E P:EF SP:F5 CYC:251 SL:128 C6DE EA NOP PC:C6DF A:AA X:97 Y:4E P:EF SP:F5 CYC:263 SL:128 C6DF EA NOP PC:C6E0 A:AA X:97 Y:4E P:EF SP:F5 CYC:269 SL:128 C6E0 EA NOP PC:C6E1 A:AA X:97 Y:4E P:EF SP:F5 CYC:275 SL:128 C6E1 EA NOP PC:C6E2 A:AA X:97 Y:4E P:EF SP:F5 CYC:281 SL:128 C6E2 08 PHP PC:C6E3 A:AA X:97 Y:4E P:EF SP:F5 CYC:287 SL:128 C6E3 48 PHA PC:C6E4 A:AA X:97 Y:4E P:EF SP:F4 CYC:296 SL:128 C6E4 1A NOP PC:C6E5 A:AA X:97 Y:4E P:EF SP:F3 CYC:305 SL:128 C6E5 3A NOP PC:C6E6 A:AA X:97 Y:4E P:EF SP:F3 CYC:311 SL:128 C6E6 5A NOP PC:C6E7 A:AA X:97 Y:4E P:EF SP:F3 CYC:317 SL:128 C6E7 7A NOP PC:C6E8 A:AA X:97 Y:4E P:EF SP:F3 CYC:323 SL:128 C6E8 DA NOP PC:C6E9 A:AA X:97 Y:4E P:EF SP:F3 CYC:329 SL:128 C6E9 FA NOP PC:C6EA A:AA X:97 Y:4E P:EF SP:F3 CYC:335 SL:128 C6EA 80 NOP #$89 PC:C6EB A:AA X:97 Y:4E P:EF SP:F3 CYC:0 SL:129 C6EC EA NOP PC:C6ED A:AA X:97 Y:4E P:EF SP:F3 CYC:6 SL:129 C6ED EA NOP PC:C6EE A:AA X:97 Y:4E P:EF SP:F3 CYC:12 SL:129 C6EE EA NOP PC:C6EF A:AA X:97 Y:4E P:EF SP:F3 CYC:18 SL:129 C6EF EA NOP PC:C6F0 A:AA X:97 Y:4E P:EF SP:F3 CYC:24 SL:129 C6F0 08 PHP PC:C6F1 A:AA X:97 Y:4E P:EF SP:F3 CYC:30 SL:129 C6F1 48 PHA PC:C6F2 A:AA X:97 Y:4E P:EF SP:F2 CYC:39 SL:129 C6F2 1C NOP $A9A9,x PC:C6F3 A:AA X:97 Y:4E P:EF SP:F1 CYC:48 SL:129 C6F5 3C NOP $A9A9,x PC:C6F6 A:AA X:97 Y:4E P:EF SP:F1 CYC:63 SL:129 C6F8 5C NOP $A9A9,x PC:C6F9 A:AA X:97 Y:4E P:EF SP:F1 CYC:78 SL:129 C6FB 7C NOP $A9A9,x PC:C6FC A:AA X:97 Y:4E P:EF SP:F1 CYC:93 SL:129 C6FE DC NOP $A9A9,x PC:C6FF A:AA X:97 Y:4E P:EF SP:F1 CYC:108 SL:129 C701 FC NOP $A9A9,x PC:C702 A:AA X:97 Y:4E P:EF SP:F1 CYC:123 SL:129 C704 EA NOP PC:C705 A:AA X:97 Y:4E P:EF SP:F1 CYC:138 SL:129 C705 EA NOP PC:C706 A:AA X:97 Y:4E P:EF SP:F1 CYC:144 SL:129 C706 EA NOP PC:C707 A:AA X:97 Y:4E P:EF SP:F1 CYC:150 SL:129 C707 EA NOP PC:C708 A:AA X:97 Y:4E P:EF SP:F1 CYC:156 SL:129 C708 08 PHP PC:C709 A:AA X:97 Y:4E P:EF SP:F1 CYC:162 SL:129 C709 48 PHA PC:C70A A:AA X:97 Y:4E P:EF SP:F0 CYC:171 SL:129 C70A A2 LDX #$05 PC:C70B A:AA X:97 Y:4E P:EF SP:EF CYC:180 SL:129 C70C 68 PLA PC:C70D A:AA X:05 Y:4E P:6D SP:EF CYC:186 SL:129 C70D C9 CMP #$55 PC:C70E A:AA X:05 Y:4E P:ED SP:F0 CYC:198 SL:129 C70F F0 BEQ $C71B PC:C710 A:AA X:05 Y:4E P:6D SP:F0 CYC:204 SL:129 C711 C9 CMP #$AA PC:C712 A:AA X:05 Y:4E P:6D SP:F0 CYC:210 SL:129 C713 F0 BEQ $C71B PC:C714 A:AA X:05 Y:4E P:6F SP:F0 CYC:216 SL:129 C71B 68 PLA PC:C71C A:AA X:05 Y:4E P:6F SP:F0 CYC:225 SL:129 C71C 29 AND #$CB PC:C71D A:FF X:05 Y:4E P:ED SP:F1 CYC:237 SL:129 C71E C9 CMP #$00 PC:C71F A:CB X:05 Y:4E P:ED SP:F1 CYC:243 SL:129 C720 F0 BEQ $C728 PC:C721 A:CB X:05 Y:4E P:ED SP:F1 CYC:249 SL:129 C722 C9 CMP #$CB PC:C723 A:CB X:05 Y:4E P:ED SP:F1 CYC:255 SL:129 C724 F0 BEQ $C728 PC:C725 A:CB X:05 Y:4E P:6F SP:F1 CYC:261 SL:129 C728 C8 INY PC:C729 A:CB X:05 Y:4E P:6F SP:F1 CYC:270 SL:129 C729 CA DEX PC:C72A A:CB X:05 Y:4F P:6D SP:F1 CYC:276 SL:129 C72A D0 BNE $C70C PC:C72B A:CB X:04 Y:4F P:6D SP:F1 CYC:282 SL:129 C70C 68 PLA PC:C70D A:CB X:04 Y:4F P:6D SP:F1 CYC:291 SL:129 C70D C9 CMP #$55 PC:C70E A:AA X:04 Y:4F P:ED SP:F2 CYC:303 SL:129 C70F F0 BEQ $C71B PC:C710 A:AA X:04 Y:4F P:6D SP:F2 CYC:309 SL:129 C711 C9 CMP #$AA PC:C712 A:AA X:04 Y:4F P:6D SP:F2 CYC:315 SL:129 C713 F0 BEQ $C71B PC:C714 A:AA X:04 Y:4F P:6F SP:F2 CYC:321 SL:129 C71B 68 PLA PC:C71C A:AA X:04 Y:4F P:6F SP:F2 CYC:330 SL:129 C71C 29 AND #$CB PC:C71D A:FF X:04 Y:4F P:ED SP:F3 CYC:1 SL:130 C71E C9 CMP #$00 PC:C71F A:CB X:04 Y:4F P:ED SP:F3 CYC:7 SL:130 C720 F0 BEQ $C728 PC:C721 A:CB X:04 Y:4F P:ED SP:F3 CYC:13 SL:130 C722 C9 CMP #$CB PC:C723 A:CB X:04 Y:4F P:ED SP:F3 CYC:19 SL:130 C724 F0 BEQ $C728 PC:C725 A:CB X:04 Y:4F P:6F SP:F3 CYC:25 SL:130 C728 C8 INY PC:C729 A:CB X:04 Y:4F P:6F SP:F3 CYC:34 SL:130 C729 CA DEX PC:C72A A:CB X:04 Y:50 P:6D SP:F3 CYC:40 SL:130 C72A D0 BNE $C70C PC:C72B A:CB X:03 Y:50 P:6D SP:F3 CYC:46 SL:130 C70C 68 PLA PC:C70D A:CB X:03 Y:50 P:6D SP:F3 CYC:55 SL:130 C70D C9 CMP #$55 PC:C70E A:AA X:03 Y:50 P:ED SP:F4 CYC:67 SL:130 C70F F0 BEQ $C71B PC:C710 A:AA X:03 Y:50 P:6D SP:F4 CYC:73 SL:130 C711 C9 CMP #$AA PC:C712 A:AA X:03 Y:50 P:6D SP:F4 CYC:79 SL:130 C713 F0 BEQ $C71B PC:C714 A:AA X:03 Y:50 P:6F SP:F4 CYC:85 SL:130 C71B 68 PLA PC:C71C A:AA X:03 Y:50 P:6F SP:F4 CYC:94 SL:130 C71C 29 AND #$CB PC:C71D A:FF X:03 Y:50 P:ED SP:F5 CYC:106 SL:130 C71E C9 CMP #$00 PC:C71F A:CB X:03 Y:50 P:ED SP:F5 CYC:112 SL:130 C720 F0 BEQ $C728 PC:C721 A:CB X:03 Y:50 P:ED SP:F5 CYC:118 SL:130 C722 C9 CMP #$CB PC:C723 A:CB X:03 Y:50 P:ED SP:F5 CYC:124 SL:130 C724 F0 BEQ $C728 PC:C725 A:CB X:03 Y:50 P:6F SP:F5 CYC:130 SL:130 C728 C8 INY PC:C729 A:CB X:03 Y:50 P:6F SP:F5 CYC:139 SL:130 C729 CA DEX PC:C72A A:CB X:03 Y:51 P:6D SP:F5 CYC:145 SL:130 C72A D0 BNE $C70C PC:C72B A:CB X:02 Y:51 P:6D SP:F5 CYC:151 SL:130 C70C 68 PLA PC:C70D A:CB X:02 Y:51 P:6D SP:F5 CYC:160 SL:130 C70D C9 CMP #$55 PC:C70E A:AA X:02 Y:51 P:ED SP:F6 CYC:172 SL:130 C70F F0 BEQ $C71B PC:C710 A:AA X:02 Y:51 P:6D SP:F6 CYC:178 SL:130 C711 C9 CMP #$AA PC:C712 A:AA X:02 Y:51 P:6D SP:F6 CYC:184 SL:130 C713 F0 BEQ $C71B PC:C714 A:AA X:02 Y:51 P:6F SP:F6 CYC:190 SL:130 C71B 68 PLA PC:C71C A:AA X:02 Y:51 P:6F SP:F6 CYC:199 SL:130 C71C 29 AND #$CB PC:C71D A:FF X:02 Y:51 P:ED SP:F7 CYC:211 SL:130 C71E C9 CMP #$00 PC:C71F A:CB X:02 Y:51 P:ED SP:F7 CYC:217 SL:130 C720 F0 BEQ $C728 PC:C721 A:CB X:02 Y:51 P:ED SP:F7 CYC:223 SL:130 C722 C9 CMP #$CB PC:C723 A:CB X:02 Y:51 P:ED SP:F7 CYC:229 SL:130 C724 F0 BEQ $C728 PC:C725 A:CB X:02 Y:51 P:6F SP:F7 CYC:235 SL:130 C728 C8 INY PC:C729 A:CB X:02 Y:51 P:6F SP:F7 CYC:244 SL:130 C729 CA DEX PC:C72A A:CB X:02 Y:52 P:6D SP:F7 CYC:250 SL:130 C72A D0 BNE $C70C PC:C72B A:CB X:01 Y:52 P:6D SP:F7 CYC:256 SL:130 C70C 68 PLA PC:C70D A:CB X:01 Y:52 P:6D SP:F7 CYC:265 SL:130 C70D C9 CMP #$55 PC:C70E A:AA X:01 Y:52 P:ED SP:F8 CYC:277 SL:130 C70F F0 BEQ $C71B PC:C710 A:AA X:01 Y:52 P:6D SP:F8 CYC:283 SL:130 C711 C9 CMP #$AA PC:C712 A:AA X:01 Y:52 P:6D SP:F8 CYC:289 SL:130 C713 F0 BEQ $C71B PC:C714 A:AA X:01 Y:52 P:6F SP:F8 CYC:295 SL:130 C71B 68 PLA PC:C71C A:AA X:01 Y:52 P:6F SP:F8 CYC:304 SL:130 C71C 29 AND #$CB PC:C71D A:FF X:01 Y:52 P:ED SP:F9 CYC:316 SL:130 C71E C9 CMP #$00 PC:C71F A:CB X:01 Y:52 P:ED SP:F9 CYC:322 SL:130 C720 F0 BEQ $C728 PC:C721 A:CB X:01 Y:52 P:ED SP:F9 CYC:328 SL:130 C722 C9 CMP #$CB PC:C723 A:CB X:01 Y:52 P:ED SP:F9 CYC:334 SL:130 C724 F0 BEQ $C728 PC:C725 A:CB X:01 Y:52 P:6F SP:F9 CYC:340 SL:130 C728 C8 INY PC:C729 A:CB X:01 Y:52 P:6F SP:F9 CYC:8 SL:131 C729 CA DEX PC:C72A A:CB X:01 Y:53 P:6D SP:F9 CYC:14 SL:131 C72A D0 BNE $C70C PC:C72B A:CB X:00 Y:53 P:6F SP:F9 CYC:20 SL:131 C72C 60 RTS PC:C72D A:CB X:00 Y:53 P:6F SP:F9 CYC:26 SL:131 C6AC 20 JSR $C6B7 PC:C6AD A:CB X:00 Y:53 P:6F SP:FB CYC:44 SL:131 C6B7 A9 LDA #$34 PC:C6B8 A:CB X:00 Y:53 P:6F SP:F9 CYC:62 SL:131 C6B9 48 PHA PC:C6BA A:34 X:00 Y:53 P:6D SP:F9 CYC:68 SL:131 C6BA A9 LDA #$55 PC:C6BB A:34 X:00 Y:53 P:6D SP:F8 CYC:77 SL:131 C6BC 28 PLP PC:C6BD A:55 X:00 Y:53 P:6D SP:F8 CYC:83 SL:131 C6BD 04 NOP $A9 PC:C6BE A:55 X:00 Y:53 P:24 SP:F9 CYC:95 SL:131 C6BF 44 NOP $A9 PC:C6C0 A:55 X:00 Y:53 P:24 SP:F9 CYC:104 SL:131 C6C1 64 NOP $A9 PC:C6C2 A:55 X:00 Y:53 P:24 SP:F9 CYC:113 SL:131 C6C3 EA NOP PC:C6C4 A:55 X:00 Y:53 P:24 SP:F9 CYC:122 SL:131 C6C4 EA NOP PC:C6C5 A:55 X:00 Y:53 P:24 SP:F9 CYC:128 SL:131 C6C5 EA NOP PC:C6C6 A:55 X:00 Y:53 P:24 SP:F9 CYC:134 SL:131 C6C6 EA NOP PC:C6C7 A:55 X:00 Y:53 P:24 SP:F9 CYC:140 SL:131 C6C7 08 PHP PC:C6C8 A:55 X:00 Y:53 P:24 SP:F9 CYC:146 SL:131 C6C8 48 PHA PC:C6C9 A:55 X:00 Y:53 P:24 SP:F8 CYC:155 SL:131 C6C9 0C NOP $A9A9 PC:C6CA A:55 X:00 Y:53 P:24 SP:F7 CYC:164 SL:131 C6CC EA NOP PC:C6CD A:55 X:00 Y:53 P:24 SP:F7 CYC:176 SL:131 C6CD EA NOP PC:C6CE A:55 X:00 Y:53 P:24 SP:F7 CYC:182 SL:131 C6CE EA NOP PC:C6CF A:55 X:00 Y:53 P:24 SP:F7 CYC:188 SL:131 C6CF EA NOP PC:C6D0 A:55 X:00 Y:53 P:24 SP:F7 CYC:194 SL:131 C6D0 08 PHP PC:C6D1 A:55 X:00 Y:53 P:24 SP:F7 CYC:200 SL:131 C6D1 48 PHA PC:C6D2 A:55 X:00 Y:53 P:24 SP:F6 CYC:209 SL:131 C6D2 14 NOP $A9,x PC:C6D3 A:55 X:00 Y:53 P:24 SP:F5 CYC:218 SL:131 C6D4 34 NOP $A9,x PC:C6D5 A:55 X:00 Y:53 P:24 SP:F5 CYC:230 SL:131 C6D6 54 NOP $A9,x PC:C6D7 A:55 X:00 Y:53 P:24 SP:F5 CYC:242 SL:131 C6D8 74 NOP $A9,x PC:C6D9 A:55 X:00 Y:53 P:24 SP:F5 CYC:254 SL:131 C6DA D4 NOP $A9,x PC:C6DB A:55 X:00 Y:53 P:24 SP:F5 CYC:266 SL:131 C6DC F4 NOP $A9,x PC:C6DD A:55 X:00 Y:53 P:24 SP:F5 CYC:278 SL:131 C6DE EA NOP PC:C6DF A:55 X:00 Y:53 P:24 SP:F5 CYC:290 SL:131 C6DF EA NOP PC:C6E0 A:55 X:00 Y:53 P:24 SP:F5 CYC:296 SL:131 C6E0 EA NOP PC:C6E1 A:55 X:00 Y:53 P:24 SP:F5 CYC:302 SL:131 C6E1 EA NOP PC:C6E2 A:55 X:00 Y:53 P:24 SP:F5 CYC:308 SL:131 C6E2 08 PHP PC:C6E3 A:55 X:00 Y:53 P:24 SP:F5 CYC:314 SL:131 C6E3 48 PHA PC:C6E4 A:55 X:00 Y:53 P:24 SP:F4 CYC:323 SL:131 C6E4 1A NOP PC:C6E5 A:55 X:00 Y:53 P:24 SP:F3 CYC:332 SL:131 C6E5 3A NOP PC:C6E6 A:55 X:00 Y:53 P:24 SP:F3 CYC:338 SL:131 C6E6 5A NOP PC:C6E7 A:55 X:00 Y:53 P:24 SP:F3 CYC:3 SL:132 C6E7 7A NOP PC:C6E8 A:55 X:00 Y:53 P:24 SP:F3 CYC:9 SL:132 C6E8 DA NOP PC:C6E9 A:55 X:00 Y:53 P:24 SP:F3 CYC:15 SL:132 C6E9 FA NOP PC:C6EA A:55 X:00 Y:53 P:24 SP:F3 CYC:21 SL:132 C6EA 80 NOP #$89 PC:C6EB A:55 X:00 Y:53 P:24 SP:F3 CYC:27 SL:132 C6EC EA NOP PC:C6ED A:55 X:00 Y:53 P:24 SP:F3 CYC:33 SL:132 C6ED EA NOP PC:C6EE A:55 X:00 Y:53 P:24 SP:F3 CYC:39 SL:132 C6EE EA NOP PC:C6EF A:55 X:00 Y:53 P:24 SP:F3 CYC:45 SL:132 C6EF EA NOP PC:C6F0 A:55 X:00 Y:53 P:24 SP:F3 CYC:51 SL:132 C6F0 08 PHP PC:C6F1 A:55 X:00 Y:53 P:24 SP:F3 CYC:57 SL:132 C6F1 48 PHA PC:C6F2 A:55 X:00 Y:53 P:24 SP:F2 CYC:66 SL:132 C6F2 1C NOP $A9A9,x PC:C6F3 A:55 X:00 Y:53 P:24 SP:F1 CYC:75 SL:132 C6F5 3C NOP $A9A9,x PC:C6F6 A:55 X:00 Y:53 P:24 SP:F1 CYC:87 SL:132 C6F8 5C NOP $A9A9,x PC:C6F9 A:55 X:00 Y:53 P:24 SP:F1 CYC:99 SL:132 C6FB 7C NOP $A9A9,x PC:C6FC A:55 X:00 Y:53 P:24 SP:F1 CYC:111 SL:132 C6FE DC NOP $A9A9,x PC:C6FF A:55 X:00 Y:53 P:24 SP:F1 CYC:123 SL:132 C701 FC NOP $A9A9,x PC:C702 A:55 X:00 Y:53 P:24 SP:F1 CYC:135 SL:132 C704 EA NOP PC:C705 A:55 X:00 Y:53 P:24 SP:F1 CYC:147 SL:132 C705 EA NOP PC:C706 A:55 X:00 Y:53 P:24 SP:F1 CYC:153 SL:132 C706 EA NOP PC:C707 A:55 X:00 Y:53 P:24 SP:F1 CYC:159 SL:132 C707 EA NOP PC:C708 A:55 X:00 Y:53 P:24 SP:F1 CYC:165 SL:132 C708 08 PHP PC:C709 A:55 X:00 Y:53 P:24 SP:F1 CYC:171 SL:132 C709 48 PHA PC:C70A A:55 X:00 Y:53 P:24 SP:F0 CYC:180 SL:132 C70A A2 LDX #$05 PC:C70B A:55 X:00 Y:53 P:24 SP:EF CYC:189 SL:132 C70C 68 PLA PC:C70D A:55 X:05 Y:53 P:24 SP:EF CYC:195 SL:132 C70D C9 CMP #$55 PC:C70E A:55 X:05 Y:53 P:24 SP:F0 CYC:207 SL:132 C70F F0 BEQ $C71B PC:C710 A:55 X:05 Y:53 P:27 SP:F0 CYC:213 SL:132 C71B 68 PLA PC:C71C A:55 X:05 Y:53 P:27 SP:F0 CYC:222 SL:132 C71C 29 AND #$CB PC:C71D A:34 X:05 Y:53 P:25 SP:F1 CYC:234 SL:132 C71E C9 CMP #$00 PC:C71F A:00 X:05 Y:53 P:27 SP:F1 CYC:240 SL:132 C720 F0 BEQ $C728 PC:C721 A:00 X:05 Y:53 P:27 SP:F1 CYC:246 SL:132 C728 C8 INY PC:C729 A:00 X:05 Y:53 P:27 SP:F1 CYC:255 SL:132 C729 CA DEX PC:C72A A:00 X:05 Y:54 P:25 SP:F1 CYC:261 SL:132 C72A D0 BNE $C70C PC:C72B A:00 X:04 Y:54 P:25 SP:F1 CYC:267 SL:132 C70C 68 PLA PC:C70D A:00 X:04 Y:54 P:25 SP:F1 CYC:276 SL:132 C70D C9 CMP #$55 PC:C70E A:55 X:04 Y:54 P:25 SP:F2 CYC:288 SL:132 C70F F0 BEQ $C71B PC:C710 A:55 X:04 Y:54 P:27 SP:F2 CYC:294 SL:132 C71B 68 PLA PC:C71C A:55 X:04 Y:54 P:27 SP:F2 CYC:303 SL:132 C71C 29 AND #$CB PC:C71D A:34 X:04 Y:54 P:25 SP:F3 CYC:315 SL:132 C71E C9 CMP #$00 PC:C71F A:00 X:04 Y:54 P:27 SP:F3 CYC:321 SL:132 C720 F0 BEQ $C728 PC:C721 A:00 X:04 Y:54 P:27 SP:F3 CYC:327 SL:132 C728 C8 INY PC:C729 A:00 X:04 Y:54 P:27 SP:F3 CYC:336 SL:132 C729 CA DEX PC:C72A A:00 X:04 Y:55 P:25 SP:F3 CYC:1 SL:133 C72A D0 BNE $C70C PC:C72B A:00 X:03 Y:55 P:25 SP:F3 CYC:7 SL:133 C70C 68 PLA PC:C70D A:00 X:03 Y:55 P:25 SP:F3 CYC:16 SL:133 C70D C9 CMP #$55 PC:C70E A:55 X:03 Y:55 P:25 SP:F4 CYC:28 SL:133 C70F F0 BEQ $C71B PC:C710 A:55 X:03 Y:55 P:27 SP:F4 CYC:34 SL:133 C71B 68 PLA PC:C71C A:55 X:03 Y:55 P:27 SP:F4 CYC:43 SL:133 C71C 29 AND #$CB PC:C71D A:34 X:03 Y:55 P:25 SP:F5 CYC:55 SL:133 C71E C9 CMP #$00 PC:C71F A:00 X:03 Y:55 P:27 SP:F5 CYC:61 SL:133 C720 F0 BEQ $C728 PC:C721 A:00 X:03 Y:55 P:27 SP:F5 CYC:67 SL:133 C728 C8 INY PC:C729 A:00 X:03 Y:55 P:27 SP:F5 CYC:76 SL:133 C729 CA DEX PC:C72A A:00 X:03 Y:56 P:25 SP:F5 CYC:82 SL:133 C72A D0 BNE $C70C PC:C72B A:00 X:02 Y:56 P:25 SP:F5 CYC:88 SL:133 C70C 68 PLA PC:C70D A:00 X:02 Y:56 P:25 SP:F5 CYC:97 SL:133 C70D C9 CMP #$55 PC:C70E A:55 X:02 Y:56 P:25 SP:F6 CYC:109 SL:133 C70F F0 BEQ $C71B PC:C710 A:55 X:02 Y:56 P:27 SP:F6 CYC:115 SL:133 C71B 68 PLA PC:C71C A:55 X:02 Y:56 P:27 SP:F6 CYC:124 SL:133 C71C 29 AND #$CB PC:C71D A:34 X:02 Y:56 P:25 SP:F7 CYC:136 SL:133 C71E C9 CMP #$00 PC:C71F A:00 X:02 Y:56 P:27 SP:F7 CYC:142 SL:133 C720 F0 BEQ $C728 PC:C721 A:00 X:02 Y:56 P:27 SP:F7 CYC:148 SL:133 C728 C8 INY PC:C729 A:00 X:02 Y:56 P:27 SP:F7 CYC:157 SL:133 C729 CA DEX PC:C72A A:00 X:02 Y:57 P:25 SP:F7 CYC:163 SL:133 C72A D0 BNE $C70C PC:C72B A:00 X:01 Y:57 P:25 SP:F7 CYC:169 SL:133 C70C 68 PLA PC:C70D A:00 X:01 Y:57 P:25 SP:F7 CYC:178 SL:133 C70D C9 CMP #$55 PC:C70E A:55 X:01 Y:57 P:25 SP:F8 CYC:190 SL:133 C70F F0 BEQ $C71B PC:C710 A:55 X:01 Y:57 P:27 SP:F8 CYC:196 SL:133 C71B 68 PLA PC:C71C A:55 X:01 Y:57 P:27 SP:F8 CYC:205 SL:133 C71C 29 AND #$CB PC:C71D A:34 X:01 Y:57 P:25 SP:F9 CYC:217 SL:133 C71E C9 CMP #$00 PC:C71F A:00 X:01 Y:57 P:27 SP:F9 CYC:223 SL:133 C720 F0 BEQ $C728 PC:C721 A:00 X:01 Y:57 P:27 SP:F9 CYC:229 SL:133 C728 C8 INY PC:C729 A:00 X:01 Y:57 P:27 SP:F9 CYC:238 SL:133 C729 CA DEX PC:C72A A:00 X:01 Y:58 P:25 SP:F9 CYC:244 SL:133 C72A D0 BNE $C70C PC:C72B A:00 X:00 Y:58 P:27 SP:F9 CYC:250 SL:133 C72C 60 RTS PC:C72D A:00 X:00 Y:58 P:27 SP:F9 CYC:256 SL:133 C6AF 60 RTS PC:C6B0 A:00 X:00 Y:58 P:27 SP:FB CYC:274 SL:133 C632 20 JSR $E51E PC:C633 A:00 X:00 Y:58 P:27 SP:FD CYC:292 SL:133 E51E A9 LDA #$55 PC:E51F A:00 X:00 Y:58 P:27 SP:FB CYC:310 SL:133 E520 8D STA $0580 PC:E521 A:55 X:00 Y:58 P:25 SP:FB CYC:316 SL:133 E523 A9 LDA #$AA PC:E524 A:55 X:00 Y:58 P:25 SP:FB CYC:328 SL:133 E525 8D STA $0432 PC:E526 A:AA X:00 Y:58 P:A5 SP:FB CYC:334 SL:133 E528 A9 LDA #$80 PC:E529 A:AA X:00 Y:58 P:A5 SP:FB CYC:5 SL:134 E52A 85 STA $43 PC:E52B A:80 X:00 Y:58 P:A5 SP:FB CYC:11 SL:134 E52C A9 LDA #$05 PC:E52D A:80 X:00 Y:58 P:A5 SP:FB CYC:20 SL:134 E52E 85 STA $44 PC:E52F A:05 X:00 Y:58 P:25 SP:FB CYC:26 SL:134 E530 A9 LDA #$32 PC:E531 A:05 X:00 Y:58 P:25 SP:FB CYC:35 SL:134 E532 85 STA $45 PC:E533 A:32 X:00 Y:58 P:25 SP:FB CYC:41 SL:134 E534 A9 LDA #$04 PC:E535 A:32 X:00 Y:58 P:25 SP:FB CYC:50 SL:134 E536 85 STA $46 PC:E537 A:04 X:00 Y:58 P:25 SP:FB CYC:56 SL:134 E538 A2 LDX #$03 PC:E539 A:04 X:00 Y:58 P:25 SP:FB CYC:65 SL:134 E53A A0 LDY #$77 PC:E53B A:04 X:03 Y:58 P:25 SP:FB CYC:71 SL:134 E53C A9 LDA #$FF PC:E53D A:04 X:03 Y:77 P:25 SP:FB CYC:77 SL:134 E53E 85 STA $01 PC:E53F A:FF X:03 Y:77 P:A5 SP:FB CYC:83 SL:134 E540 24 BIT $01 PC:E541 A:FF X:03 Y:77 P:A5 SP:FB CYC:92 SL:134 E542 38 SEC PC:E543 A:FF X:03 Y:77 P:E5 SP:FB CYC:101 SL:134 E543 A9 LDA #$00 PC:E544 A:FF X:03 Y:77 P:E5 SP:FB CYC:107 SL:134 E545 A3 LAX $(EA40,x) PC:E546 A:00 X:03 Y:77 P:67 SP:FB CYC:113 SL:134 E547 EA NOP PC:E548 A:55 X:55 Y:77 P:65 SP:FB CYC:131 SL:134 E548 EA NOP PC:E549 A:55 X:55 Y:77 P:65 SP:FB CYC:137 SL:134 E549 EA NOP PC:E54A A:55 X:55 Y:77 P:65 SP:FB CYC:143 SL:134 E54A EA NOP PC:E54B A:55 X:55 Y:77 P:65 SP:FB CYC:149 SL:134 E54B F0 BEQ $E55F PC:E54C A:55 X:55 Y:77 P:65 SP:FB CYC:155 SL:134 E54D 30 BMI $E55F PC:E54E A:55 X:55 Y:77 P:65 SP:FB CYC:161 SL:134 E54F 50 BVC $E55F PC:E550 A:55 X:55 Y:77 P:65 SP:FB CYC:167 SL:134 E551 90 BCC $E55F PC:E552 A:55 X:55 Y:77 P:65 SP:FB CYC:173 SL:134 E553 C9 CMP #$55 PC:E554 A:55 X:55 Y:77 P:65 SP:FB CYC:179 SL:134 E555 D0 BNE $E55F PC:E556 A:55 X:55 Y:77 P:67 SP:FB CYC:185 SL:134 E557 E0 CPX #$55 PC:E558 A:55 X:55 Y:77 P:67 SP:FB CYC:191 SL:134 E559 D0 BNE $E55F PC:E55A A:55 X:55 Y:77 P:67 SP:FB CYC:197 SL:134 E55B C0 CPY #$77 PC:E55C A:55 X:55 Y:77 P:67 SP:FB CYC:203 SL:134 E55D F0 BEQ $E563 PC:E55E A:55 X:55 Y:77 P:67 SP:FB CYC:209 SL:134 E563 A2 LDX #$05 PC:E564 A:55 X:55 Y:77 P:67 SP:FB CYC:218 SL:134 E565 A0 LDY #$33 PC:E566 A:55 X:05 Y:77 P:65 SP:FB CYC:224 SL:134 E567 B8 CLV PC:E568 A:55 X:05 Y:33 P:65 SP:FB CYC:230 SL:134 E568 18 CLC PC:E569 A:55 X:05 Y:33 P:25 SP:FB CYC:236 SL:134 E569 A9 LDA #$00 PC:E56A A:55 X:05 Y:33 P:24 SP:FB CYC:242 SL:134 E56B A3 LAX $(EA40,x) PC:E56C A:00 X:05 Y:33 P:26 SP:FB CYC:248 SL:134 E56D EA NOP PC:E56E A:AA X:AA Y:33 P:A4 SP:FB CYC:266 SL:134 E56E EA NOP PC:E56F A:AA X:AA Y:33 P:A4 SP:FB CYC:272 SL:134 E56F EA NOP PC:E570 A:AA X:AA Y:33 P:A4 SP:FB CYC:278 SL:134 E570 EA NOP PC:E571 A:AA X:AA Y:33 P:A4 SP:FB CYC:284 SL:134 E571 F0 BEQ $E585 PC:E572 A:AA X:AA Y:33 P:A4 SP:FB CYC:290 SL:134 E573 10 BPL $E585 PC:E574 A:AA X:AA Y:33 P:A4 SP:FB CYC:296 SL:134 E575 70 BVS $E585 PC:E576 A:AA X:AA Y:33 P:A4 SP:FB CYC:302 SL:134 E577 B0 BCS $E585 PC:E578 A:AA X:AA Y:33 P:A4 SP:FB CYC:308 SL:134 E579 C9 CMP #$AA PC:E57A A:AA X:AA Y:33 P:A4 SP:FB CYC:314 SL:134 E57B D0 BNE $E585 PC:E57C A:AA X:AA Y:33 P:27 SP:FB CYC:320 SL:134 E57D E0 CPX #$AA PC:E57E A:AA X:AA Y:33 P:27 SP:FB CYC:326 SL:134 E57F D0 BNE $E585 PC:E580 A:AA X:AA Y:33 P:27 SP:FB CYC:332 SL:134 E581 C0 CPY #$33 PC:E582 A:AA X:AA Y:33 P:27 SP:FB CYC:338 SL:134 E583 F0 BEQ $E589 PC:E584 A:AA X:AA Y:33 P:27 SP:FB CYC:3 SL:135 E589 A9 LDA #$87 PC:E58A A:AA X:AA Y:33 P:27 SP:FB CYC:12 SL:135 E58B 85 STA $67 PC:E58C A:87 X:AA Y:33 P:A5 SP:FB CYC:18 SL:135 E58D A9 LDA #$32 PC:E58E A:87 X:AA Y:33 P:A5 SP:FB CYC:27 SL:135 E58F 85 STA $68 PC:E590 A:32 X:AA Y:33 P:25 SP:FB CYC:33 SL:135 E591 A0 LDY #$57 PC:E592 A:32 X:AA Y:33 P:25 SP:FB CYC:42 SL:135 E593 24 BIT $01 PC:E594 A:32 X:AA Y:57 P:25 SP:FB CYC:48 SL:135 E595 38 SEC PC:E596 A:32 X:AA Y:57 P:E5 SP:FB CYC:57 SL:135 E596 A9 LDA #$00 PC:E597 A:32 X:AA Y:57 P:E5 SP:FB CYC:63 SL:135 E598 A7 LAX $67 PC:E599 A:00 X:AA Y:57 P:67 SP:FB CYC:69 SL:135 E59A EA NOP PC:E59B A:87 X:87 Y:57 P:E5 SP:FB CYC:78 SL:135 E59B EA NOP PC:E59C A:87 X:87 Y:57 P:E5 SP:FB CYC:84 SL:135 E59C EA NOP PC:E59D A:87 X:87 Y:57 P:E5 SP:FB CYC:90 SL:135 E59D EA NOP PC:E59E A:87 X:87 Y:57 P:E5 SP:FB CYC:96 SL:135 E59E F0 BEQ $E5B2 PC:E59F A:87 X:87 Y:57 P:E5 SP:FB CYC:102 SL:135 E5A0 10 BPL $E5B2 PC:E5A1 A:87 X:87 Y:57 P:E5 SP:FB CYC:108 SL:135 E5A2 50 BVC $E5B2 PC:E5A3 A:87 X:87 Y:57 P:E5 SP:FB CYC:114 SL:135 E5A4 90 BCC $E5B2 PC:E5A5 A:87 X:87 Y:57 P:E5 SP:FB CYC:120 SL:135 E5A6 C9 CMP #$87 PC:E5A7 A:87 X:87 Y:57 P:E5 SP:FB CYC:126 SL:135 E5A8 D0 BNE $E5B2 PC:E5A9 A:87 X:87 Y:57 P:67 SP:FB CYC:132 SL:135 E5AA E0 CPX #$87 PC:E5AB A:87 X:87 Y:57 P:67 SP:FB CYC:138 SL:135 E5AC D0 BNE $E5B2 PC:E5AD A:87 X:87 Y:57 P:67 SP:FB CYC:144 SL:135 E5AE C0 CPY #$57 PC:E5AF A:87 X:87 Y:57 P:67 SP:FB CYC:150 SL:135 E5B0 F0 BEQ $E5B6 PC:E5B1 A:87 X:87 Y:57 P:67 SP:FB CYC:156 SL:135 E5B6 A0 LDY #$53 PC:E5B7 A:87 X:87 Y:57 P:67 SP:FB CYC:165 SL:135 E5B8 B8 CLV PC:E5B9 A:87 X:87 Y:53 P:65 SP:FB CYC:171 SL:135 E5B9 18 CLC PC:E5BA A:87 X:87 Y:53 P:25 SP:FB CYC:177 SL:135 E5BA A9 LDA #$00 PC:E5BB A:87 X:87 Y:53 P:24 SP:FB CYC:183 SL:135 E5BC A7 LAX $68 PC:E5BD A:00 X:87 Y:53 P:26 SP:FB CYC:189 SL:135 E5BE EA NOP PC:E5BF A:32 X:32 Y:53 P:24 SP:FB CYC:198 SL:135 E5BF EA NOP PC:E5C0 A:32 X:32 Y:53 P:24 SP:FB CYC:204 SL:135 E5C0 EA NOP PC:E5C1 A:32 X:32 Y:53 P:24 SP:FB CYC:210 SL:135 E5C1 EA NOP PC:E5C2 A:32 X:32 Y:53 P:24 SP:FB CYC:216 SL:135 E5C2 F0 BEQ $E5D6 PC:E5C3 A:32 X:32 Y:53 P:24 SP:FB CYC:222 SL:135 E5C4 30 BMI $E5D6 PC:E5C5 A:32 X:32 Y:53 P:24 SP:FB CYC:228 SL:135 E5C6 70 BVS $E5D6 PC:E5C7 A:32 X:32 Y:53 P:24 SP:FB CYC:234 SL:135 E5C8 B0 BCS $E5D6 PC:E5C9 A:32 X:32 Y:53 P:24 SP:FB CYC:240 SL:135 E5CA C9 CMP #$32 PC:E5CB A:32 X:32 Y:53 P:24 SP:FB CYC:246 SL:135 E5CC D0 BNE $E5D6 PC:E5CD A:32 X:32 Y:53 P:27 SP:FB CYC:252 SL:135 E5CE E0 CPX #$32 PC:E5CF A:32 X:32 Y:53 P:27 SP:FB CYC:258 SL:135 E5D0 D0 BNE $E5D6 PC:E5D1 A:32 X:32 Y:53 P:27 SP:FB CYC:264 SL:135 E5D2 C0 CPY #$53 PC:E5D3 A:32 X:32 Y:53 P:27 SP:FB CYC:270 SL:135 E5D4 F0 BEQ $E5DA PC:E5D5 A:32 X:32 Y:53 P:27 SP:FB CYC:276 SL:135 E5DA A9 LDA #$87 PC:E5DB A:32 X:32 Y:53 P:27 SP:FB CYC:285 SL:135 E5DC 8D STA $0577 PC:E5DD A:87 X:32 Y:53 P:A5 SP:FB CYC:291 SL:135 E5DF A9 LDA #$32 PC:E5E0 A:87 X:32 Y:53 P:A5 SP:FB CYC:303 SL:135 E5E1 8D STA $0578 PC:E5E2 A:32 X:32 Y:53 P:25 SP:FB CYC:309 SL:135 E5E4 A0 LDY #$57 PC:E5E5 A:32 X:32 Y:53 P:25 SP:FB CYC:321 SL:135 E5E6 24 BIT $01 PC:E5E7 A:32 X:32 Y:57 P:25 SP:FB CYC:327 SL:135 E5E8 38 SEC PC:E5E9 A:32 X:32 Y:57 P:E5 SP:FB CYC:336 SL:135 E5E9 A9 LDA #$00 PC:E5EA A:32 X:32 Y:57 P:E5 SP:FB CYC:1 SL:136 E5EB AF LAX $0577 PC:E5EC A:00 X:32 Y:57 P:67 SP:FB CYC:7 SL:136 E5EE EA NOP PC:E5EF A:87 X:87 Y:57 P:E5 SP:FB CYC:19 SL:136 E5EF EA NOP PC:E5F0 A:87 X:87 Y:57 P:E5 SP:FB CYC:25 SL:136 E5F0 EA NOP PC:E5F1 A:87 X:87 Y:57 P:E5 SP:FB CYC:31 SL:136 E5F1 EA NOP PC:E5F2 A:87 X:87 Y:57 P:E5 SP:FB CYC:37 SL:136 E5F2 F0 BEQ $E606 PC:E5F3 A:87 X:87 Y:57 P:E5 SP:FB CYC:43 SL:136 E5F4 10 BPL $E606 PC:E5F5 A:87 X:87 Y:57 P:E5 SP:FB CYC:49 SL:136 E5F6 50 BVC $E606 PC:E5F7 A:87 X:87 Y:57 P:E5 SP:FB CYC:55 SL:136 E5F8 90 BCC $E606 PC:E5F9 A:87 X:87 Y:57 P:E5 SP:FB CYC:61 SL:136 E5FA C9 CMP #$87 PC:E5FB A:87 X:87 Y:57 P:E5 SP:FB CYC:67 SL:136 E5FC D0 BNE $E606 PC:E5FD A:87 X:87 Y:57 P:67 SP:FB CYC:73 SL:136 E5FE E0 CPX #$87 PC:E5FF A:87 X:87 Y:57 P:67 SP:FB CYC:79 SL:136 E600 D0 BNE $E606 PC:E601 A:87 X:87 Y:57 P:67 SP:FB CYC:85 SL:136 E602 C0 CPY #$57 PC:E603 A:87 X:87 Y:57 P:67 SP:FB CYC:91 SL:136 E604 F0 BEQ $E60A PC:E605 A:87 X:87 Y:57 P:67 SP:FB CYC:97 SL:136 E60A A0 LDY #$53 PC:E60B A:87 X:87 Y:57 P:67 SP:FB CYC:106 SL:136 E60C B8 CLV PC:E60D A:87 X:87 Y:53 P:65 SP:FB CYC:112 SL:136 E60D 18 CLC PC:E60E A:87 X:87 Y:53 P:25 SP:FB CYC:118 SL:136 E60E A9 LDA #$00 PC:E60F A:87 X:87 Y:53 P:24 SP:FB CYC:124 SL:136 E610 AF LAX $0578 PC:E611 A:00 X:87 Y:53 P:26 SP:FB CYC:130 SL:136 E613 EA NOP PC:E614 A:32 X:32 Y:53 P:24 SP:FB CYC:142 SL:136 E614 EA NOP PC:E615 A:32 X:32 Y:53 P:24 SP:FB CYC:148 SL:136 E615 EA NOP PC:E616 A:32 X:32 Y:53 P:24 SP:FB CYC:154 SL:136 E616 EA NOP PC:E617 A:32 X:32 Y:53 P:24 SP:FB CYC:160 SL:136 E617 F0 BEQ $E62B PC:E618 A:32 X:32 Y:53 P:24 SP:FB CYC:166 SL:136 E619 30 BMI $E62B PC:E61A A:32 X:32 Y:53 P:24 SP:FB CYC:172 SL:136 E61B 70 BVS $E62B PC:E61C A:32 X:32 Y:53 P:24 SP:FB CYC:178 SL:136 E61D B0 BCS $E62B PC:E61E A:32 X:32 Y:53 P:24 SP:FB CYC:184 SL:136 E61F C9 CMP #$32 PC:E620 A:32 X:32 Y:53 P:24 SP:FB CYC:190 SL:136 E621 D0 BNE $E62B PC:E622 A:32 X:32 Y:53 P:27 SP:FB CYC:196 SL:136 E623 E0 CPX #$32 PC:E624 A:32 X:32 Y:53 P:27 SP:FB CYC:202 SL:136 E625 D0 BNE $E62B PC:E626 A:32 X:32 Y:53 P:27 SP:FB CYC:208 SL:136 E627 C0 CPY #$53 PC:E628 A:32 X:32 Y:53 P:27 SP:FB CYC:214 SL:136 E629 F0 BEQ $E62F PC:E62A A:32 X:32 Y:53 P:27 SP:FB CYC:220 SL:136 E62F A9 LDA #$FF PC:E630 A:32 X:32 Y:53 P:27 SP:FB CYC:229 SL:136 E631 85 STA $43 PC:E632 A:FF X:32 Y:53 P:A5 SP:FB CYC:235 SL:136 E633 A9 LDA #$04 PC:E634 A:FF X:32 Y:53 P:A5 SP:FB CYC:244 SL:136 E635 85 STA $44 PC:E636 A:04 X:32 Y:53 P:25 SP:FB CYC:250 SL:136 E637 A9 LDA #$32 PC:E638 A:04 X:32 Y:53 P:25 SP:FB CYC:259 SL:136 E639 85 STA $45 PC:E63A A:32 X:32 Y:53 P:25 SP:FB CYC:265 SL:136 E63B A9 LDA #$04 PC:E63C A:32 X:32 Y:53 P:25 SP:FB CYC:274 SL:136 E63D 85 STA $46 PC:E63E A:04 X:32 Y:53 P:25 SP:FB CYC:280 SL:136 E63F A9 LDA #$55 PC:E640 A:04 X:32 Y:53 P:25 SP:FB CYC:289 SL:136 E641 8D STA $0580 PC:E642 A:55 X:32 Y:53 P:25 SP:FB CYC:295 SL:136 E644 A9 LDA #$AA PC:E645 A:55 X:32 Y:53 P:25 SP:FB CYC:307 SL:136 E646 8D STA $0432 PC:E647 A:AA X:32 Y:53 P:A5 SP:FB CYC:313 SL:136 E649 A2 LDX #$03 PC:E64A A:AA X:32 Y:53 P:A5 SP:FB CYC:325 SL:136 E64B A0 LDY #$81 PC:E64C A:AA X:03 Y:53 P:25 SP:FB CYC:331 SL:136 E64D 24 BIT $01 PC:E64E A:AA X:03 Y:81 P:A5 SP:FB CYC:337 SL:136 E64F 38 SEC PC:E650 A:AA X:03 Y:81 P:E5 SP:FB CYC:5 SL:137 E650 A9 LDA #$00 PC:E651 A:AA X:03 Y:81 P:E5 SP:FB CYC:11 SL:137 E652 B3 LAX ($43), y PC:E653 A:00 X:03 Y:81 P:67 SP:FB CYC:17 SL:137 E654 EA NOP PC:E655 A:55 X:55 Y:81 P:65 SP:FB CYC:35 SL:137 E655 EA NOP PC:E656 A:55 X:55 Y:81 P:65 SP:FB CYC:41 SL:137 E656 EA NOP PC:E657 A:55 X:55 Y:81 P:65 SP:FB CYC:47 SL:137 E657 EA NOP PC:E658 A:55 X:55 Y:81 P:65 SP:FB CYC:53 SL:137 E658 F0 BEQ $E66C PC:E659 A:55 X:55 Y:81 P:65 SP:FB CYC:59 SL:137 E65A 30 BMI $E66C PC:E65B A:55 X:55 Y:81 P:65 SP:FB CYC:65 SL:137 E65C 50 BVC $E66C PC:E65D A:55 X:55 Y:81 P:65 SP:FB CYC:71 SL:137 E65E 90 BCC $E66C PC:E65F A:55 X:55 Y:81 P:65 SP:FB CYC:77 SL:137 E660 C9 CMP #$55 PC:E661 A:55 X:55 Y:81 P:65 SP:FB CYC:83 SL:137 E662 D0 BNE $E66C PC:E663 A:55 X:55 Y:81 P:67 SP:FB CYC:89 SL:137 E664 E0 CPX #$55 PC:E665 A:55 X:55 Y:81 P:67 SP:FB CYC:95 SL:137 E666 D0 BNE $E66C PC:E667 A:55 X:55 Y:81 P:67 SP:FB CYC:101 SL:137 E668 C0 CPY #$81 PC:E669 A:55 X:55 Y:81 P:67 SP:FB CYC:107 SL:137 E66A F0 BEQ $E670 PC:E66B A:55 X:55 Y:81 P:67 SP:FB CYC:113 SL:137 E670 A2 LDX #$05 PC:E671 A:55 X:55 Y:81 P:67 SP:FB CYC:122 SL:137 E672 A0 LDY #$00 PC:E673 A:55 X:05 Y:81 P:65 SP:FB CYC:128 SL:137 E674 B8 CLV PC:E675 A:55 X:05 Y:00 P:67 SP:FB CYC:134 SL:137 E675 18 CLC PC:E676 A:55 X:05 Y:00 P:27 SP:FB CYC:140 SL:137 E676 A9 LDA #$00 PC:E677 A:55 X:05 Y:00 P:26 SP:FB CYC:146 SL:137 E678 B3 LAX ($45), y PC:E679 A:00 X:05 Y:00 P:26 SP:FB CYC:152 SL:137 E67A EA NOP PC:E67B A:AA X:AA Y:00 P:A4 SP:FB CYC:167 SL:137 E67B EA NOP PC:E67C A:AA X:AA Y:00 P:A4 SP:FB CYC:173 SL:137 E67C EA NOP PC:E67D A:AA X:AA Y:00 P:A4 SP:FB CYC:179 SL:137 E67D EA NOP PC:E67E A:AA X:AA Y:00 P:A4 SP:FB CYC:185 SL:137 E67E F0 BEQ $E692 PC:E67F A:AA X:AA Y:00 P:A4 SP:FB CYC:191 SL:137 E680 10 BPL $E692 PC:E681 A:AA X:AA Y:00 P:A4 SP:FB CYC:197 SL:137 E682 70 BVS $E692 PC:E683 A:AA X:AA Y:00 P:A4 SP:FB CYC:203 SL:137 E684 B0 BCS $E692 PC:E685 A:AA X:AA Y:00 P:A4 SP:FB CYC:209 SL:137 E686 C9 CMP #$AA PC:E687 A:AA X:AA Y:00 P:A4 SP:FB CYC:215 SL:137 E688 D0 BNE $E692 PC:E689 A:AA X:AA Y:00 P:27 SP:FB CYC:221 SL:137 E68A E0 CPX #$AA PC:E68B A:AA X:AA Y:00 P:27 SP:FB CYC:227 SL:137 E68C D0 BNE $E692 PC:E68D A:AA X:AA Y:00 P:27 SP:FB CYC:233 SL:137 E68E C0 CPY #$00 PC:E68F A:AA X:AA Y:00 P:27 SP:FB CYC:239 SL:137 E690 F0 BEQ $E696 PC:E691 A:AA X:AA Y:00 P:27 SP:FB CYC:245 SL:137 E696 A9 LDA #$87 PC:E697 A:AA X:AA Y:00 P:27 SP:FB CYC:254 SL:137 E698 85 STA $67 PC:E699 A:87 X:AA Y:00 P:A5 SP:FB CYC:260 SL:137 E69A A9 LDA #$32 PC:E69B A:87 X:AA Y:00 P:A5 SP:FB CYC:269 SL:137 E69C 85 STA $68 PC:E69D A:32 X:AA Y:00 P:25 SP:FB CYC:275 SL:137 E69E A0 LDY #$57 PC:E69F A:32 X:AA Y:00 P:25 SP:FB CYC:284 SL:137 E6A0 24 BIT $01 PC:E6A1 A:32 X:AA Y:57 P:25 SP:FB CYC:290 SL:137 E6A2 38 SEC PC:E6A3 A:32 X:AA Y:57 P:E5 SP:FB CYC:299 SL:137 E6A3 A9 LDA #$00 PC:E6A4 A:32 X:AA Y:57 P:E5 SP:FB CYC:305 SL:137 E6A5 B7 LAX $10,y PC:E6A6 A:00 X:AA Y:57 P:67 SP:FB CYC:311 SL:137 E6A7 EA NOP PC:E6A8 A:87 X:87 Y:57 P:E5 SP:FB CYC:323 SL:137 E6A8 EA NOP PC:E6A9 A:87 X:87 Y:57 P:E5 SP:FB CYC:329 SL:137 E6A9 EA NOP PC:E6AA A:87 X:87 Y:57 P:E5 SP:FB CYC:335 SL:137 E6AA EA NOP PC:E6AB A:87 X:87 Y:57 P:E5 SP:FB CYC:0 SL:138 E6AB F0 BEQ $E6BF PC:E6AC A:87 X:87 Y:57 P:E5 SP:FB CYC:6 SL:138 E6AD 10 BPL $E6BF PC:E6AE A:87 X:87 Y:57 P:E5 SP:FB CYC:12 SL:138 E6AF 50 BVC $E6BF PC:E6B0 A:87 X:87 Y:57 P:E5 SP:FB CYC:18 SL:138 E6B1 90 BCC $E6BF PC:E6B2 A:87 X:87 Y:57 P:E5 SP:FB CYC:24 SL:138 E6B3 C9 CMP #$87 PC:E6B4 A:87 X:87 Y:57 P:E5 SP:FB CYC:30 SL:138 E6B5 D0 BNE $E6BF PC:E6B6 A:87 X:87 Y:57 P:67 SP:FB CYC:36 SL:138 E6B7 E0 CPX #$87 PC:E6B8 A:87 X:87 Y:57 P:67 SP:FB CYC:42 SL:138 E6B9 D0 BNE $E6BF PC:E6BA A:87 X:87 Y:57 P:67 SP:FB CYC:48 SL:138 E6BB C0 CPY #$57 PC:E6BC A:87 X:87 Y:57 P:67 SP:FB CYC:54 SL:138 E6BD F0 BEQ $E6C3 PC:E6BE A:87 X:87 Y:57 P:67 SP:FB CYC:60 SL:138 E6C3 A0 LDY #$FF PC:E6C4 A:87 X:87 Y:57 P:67 SP:FB CYC:69 SL:138 E6C5 B8 CLV PC:E6C6 A:87 X:87 Y:FF P:E5 SP:FB CYC:75 SL:138 E6C6 18 CLC PC:E6C7 A:87 X:87 Y:FF P:A5 SP:FB CYC:81 SL:138 E6C7 A9 LDA #$00 PC:E6C8 A:87 X:87 Y:FF P:A4 SP:FB CYC:87 SL:138 E6C9 B7 LAX $69,y PC:E6CA A:00 X:87 Y:FF P:26 SP:FB CYC:93 SL:138 E6CB EA NOP PC:E6CC A:32 X:32 Y:FF P:24 SP:FB CYC:105 SL:138 E6CC EA NOP PC:E6CD A:32 X:32 Y:FF P:24 SP:FB CYC:111 SL:138 E6CD EA NOP PC:E6CE A:32 X:32 Y:FF P:24 SP:FB CYC:117 SL:138 E6CE EA NOP PC:E6CF A:32 X:32 Y:FF P:24 SP:FB CYC:123 SL:138 E6CF F0 BEQ $E6E3 PC:E6D0 A:32 X:32 Y:FF P:24 SP:FB CYC:129 SL:138 E6D1 30 BMI $E6E3 PC:E6D2 A:32 X:32 Y:FF P:24 SP:FB CYC:135 SL:138 E6D3 70 BVS $E6E3 PC:E6D4 A:32 X:32 Y:FF P:24 SP:FB CYC:141 SL:138 E6D5 B0 BCS $E6E3 PC:E6D6 A:32 X:32 Y:FF P:24 SP:FB CYC:147 SL:138 E6D7 C9 CMP #$32 PC:E6D8 A:32 X:32 Y:FF P:24 SP:FB CYC:153 SL:138 E6D9 D0 BNE $E6E3 PC:E6DA A:32 X:32 Y:FF P:27 SP:FB CYC:159 SL:138 E6DB E0 CPX #$32 PC:E6DC A:32 X:32 Y:FF P:27 SP:FB CYC:165 SL:138 E6DD D0 BNE $E6E3 PC:E6DE A:32 X:32 Y:FF P:27 SP:FB CYC:171 SL:138 E6DF C0 CPY #$FF PC:E6E0 A:32 X:32 Y:FF P:27 SP:FB CYC:177 SL:138 E6E1 F0 BEQ $E6E7 PC:E6E2 A:32 X:32 Y:FF P:27 SP:FB CYC:183 SL:138 E6E7 A9 LDA #$87 PC:E6E8 A:32 X:32 Y:FF P:27 SP:FB CYC:192 SL:138 E6E9 8D STA $0587 PC:E6EA A:87 X:32 Y:FF P:A5 SP:FB CYC:198 SL:138 E6EC A9 LDA #$32 PC:E6ED A:87 X:32 Y:FF P:A5 SP:FB CYC:210 SL:138 E6EE 8D STA $0588 PC:E6EF A:32 X:32 Y:FF P:25 SP:FB CYC:216 SL:138 E6F1 A0 LDY #$30 PC:E6F2 A:32 X:32 Y:FF P:25 SP:FB CYC:228 SL:138 E6F3 24 BIT $01 PC:E6F4 A:32 X:32 Y:30 P:25 SP:FB CYC:234 SL:138 E6F5 38 SEC PC:E6F6 A:32 X:32 Y:30 P:E5 SP:FB CYC:243 SL:138 E6F6 A9 LDA #$00 PC:E6F7 A:32 X:32 Y:30 P:E5 SP:FB CYC:249 SL:138 E6F8 BF LAX $0557,y PC:E6F9 A:00 X:32 Y:30 P:67 SP:FB CYC:255 SL:138 E6FB EA NOP PC:E6FC A:87 X:87 Y:30 P:E5 SP:FB CYC:267 SL:138 E6FC EA NOP PC:E6FD A:87 X:87 Y:30 P:E5 SP:FB CYC:273 SL:138 E6FD EA NOP PC:E6FE A:87 X:87 Y:30 P:E5 SP:FB CYC:279 SL:138 E6FE EA NOP PC:E6FF A:87 X:87 Y:30 P:E5 SP:FB CYC:285 SL:138 E6FF F0 BEQ $E713 PC:E700 A:87 X:87 Y:30 P:E5 SP:FB CYC:291 SL:138 E701 10 BPL $E713 PC:E702 A:87 X:87 Y:30 P:E5 SP:FB CYC:297 SL:138 E703 50 BVC $E713 PC:E704 A:87 X:87 Y:30 P:E5 SP:FB CYC:303 SL:138 E705 90 BCC $E713 PC:E706 A:87 X:87 Y:30 P:E5 SP:FB CYC:309 SL:138 E707 C9 CMP #$87 PC:E708 A:87 X:87 Y:30 P:E5 SP:FB CYC:315 SL:138 E709 D0 BNE $E713 PC:E70A A:87 X:87 Y:30 P:67 SP:FB CYC:321 SL:138 E70B E0 CPX #$87 PC:E70C A:87 X:87 Y:30 P:67 SP:FB CYC:327 SL:138 E70D D0 BNE $E713 PC:E70E A:87 X:87 Y:30 P:67 SP:FB CYC:333 SL:138 E70F C0 CPY #$30 PC:E710 A:87 X:87 Y:30 P:67 SP:FB CYC:339 SL:138 E711 F0 BEQ $E717 PC:E712 A:87 X:87 Y:30 P:67 SP:FB CYC:4 SL:139 E717 A0 LDY #$40 PC:E718 A:87 X:87 Y:30 P:67 SP:FB CYC:13 SL:139 E719 B8 CLV PC:E71A A:87 X:87 Y:40 P:65 SP:FB CYC:19 SL:139 E71A 18 CLC PC:E71B A:87 X:87 Y:40 P:25 SP:FB CYC:25 SL:139 E71B A9 LDA #$00 PC:E71C A:87 X:87 Y:40 P:24 SP:FB CYC:31 SL:139 E71D BF LAX $0548,y PC:E71E A:00 X:87 Y:40 P:26 SP:FB CYC:37 SL:139 E720 EA NOP PC:E721 A:32 X:32 Y:40 P:24 SP:FB CYC:49 SL:139 E721 EA NOP PC:E722 A:32 X:32 Y:40 P:24 SP:FB CYC:55 SL:139 E722 EA NOP PC:E723 A:32 X:32 Y:40 P:24 SP:FB CYC:61 SL:139 E723 EA NOP PC:E724 A:32 X:32 Y:40 P:24 SP:FB CYC:67 SL:139 E724 F0 BEQ $E738 PC:E725 A:32 X:32 Y:40 P:24 SP:FB CYC:73 SL:139 E726 30 BMI $E738 PC:E727 A:32 X:32 Y:40 P:24 SP:FB CYC:79 SL:139 E728 70 BVS $E738 PC:E729 A:32 X:32 Y:40 P:24 SP:FB CYC:85 SL:139 E72A B0 BCS $E738 PC:E72B A:32 X:32 Y:40 P:24 SP:FB CYC:91 SL:139 E72C C9 CMP #$32 PC:E72D A:32 X:32 Y:40 P:24 SP:FB CYC:97 SL:139 E72E D0 BNE $E738 PC:E72F A:32 X:32 Y:40 P:27 SP:FB CYC:103 SL:139 E730 E0 CPX #$32 PC:E731 A:32 X:32 Y:40 P:27 SP:FB CYC:109 SL:139 E732 D0 BNE $E738 PC:E733 A:32 X:32 Y:40 P:27 SP:FB CYC:115 SL:139 E734 C0 CPY #$40 PC:E735 A:32 X:32 Y:40 P:27 SP:FB CYC:121 SL:139 E736 F0 BEQ $E73C PC:E737 A:32 X:32 Y:40 P:27 SP:FB CYC:127 SL:139 E73C 60 RTS PC:E73D A:32 X:32 Y:40 P:27 SP:FB CYC:136 SL:139 C635 20 JSR $E73D PC:C636 A:32 X:32 Y:40 P:27 SP:FD CYC:154 SL:139 E73D A9 LDA #$C0 PC:E73E A:32 X:32 Y:40 P:27 SP:FB CYC:172 SL:139 E73F 85 STA $01 PC:E740 A:C0 X:32 Y:40 P:A5 SP:FB CYC:178 SL:139 E741 A9 LDA #$00 PC:E742 A:C0 X:32 Y:40 P:A5 SP:FB CYC:187 SL:139 E743 8D STA $0489 PC:E744 A:00 X:32 Y:40 P:27 SP:FB CYC:193 SL:139 E746 A9 LDA #$89 PC:E747 A:00 X:32 Y:40 P:27 SP:FB CYC:205 SL:139 E748 85 STA $60 PC:E749 A:89 X:32 Y:40 P:A5 SP:FB CYC:211 SL:139 E74A A9 LDA #$04 PC:E74B A:89 X:32 Y:40 P:A5 SP:FB CYC:220 SL:139 E74C 85 STA $61 PC:E74D A:04 X:32 Y:40 P:25 SP:FB CYC:226 SL:139 E74E A0 LDY #$44 PC:E74F A:04 X:32 Y:40 P:25 SP:FB CYC:235 SL:139 E750 A2 LDX #$17 PC:E751 A:04 X:32 Y:44 P:25 SP:FB CYC:241 SL:139 E752 A9 LDA #$3E PC:E753 A:04 X:17 Y:44 P:25 SP:FB CYC:247 SL:139 E754 24 BIT $01 PC:E755 A:3E X:17 Y:44 P:25 SP:FB CYC:253 SL:139 E756 18 CLC PC:E757 A:3E X:17 Y:44 P:E7 SP:FB CYC:262 SL:139 E757 83 SAX $(EA49,x) PC:E758 A:3E X:17 Y:44 P:E6 SP:FB CYC:268 SL:139 E759 EA NOP PC:E75A A:3E X:17 Y:44 P:E6 SP:FB CYC:286 SL:139 E75A EA NOP PC:E75B A:3E X:17 Y:44 P:E6 SP:FB CYC:292 SL:139 E75B EA NOP PC:E75C A:3E X:17 Y:44 P:E6 SP:FB CYC:298 SL:139 E75C EA NOP PC:E75D A:3E X:17 Y:44 P:E6 SP:FB CYC:304 SL:139 E75D D0 BNE $E778 PC:E75E A:3E X:17 Y:44 P:E6 SP:FB CYC:310 SL:139 E75F B0 BCS $E778 PC:E760 A:3E X:17 Y:44 P:E6 SP:FB CYC:316 SL:139 E761 50 BVC $E778 PC:E762 A:3E X:17 Y:44 P:E6 SP:FB CYC:322 SL:139 E763 10 BPL $E778 PC:E764 A:3E X:17 Y:44 P:E6 SP:FB CYC:328 SL:139 E765 C9 CMP #$3E PC:E766 A:3E X:17 Y:44 P:E6 SP:FB CYC:334 SL:139 E767 D0 BNE $E778 PC:E768 A:3E X:17 Y:44 P:67 SP:FB CYC:340 SL:139 E769 C0 CPY #$44 PC:E76A A:3E X:17 Y:44 P:67 SP:FB CYC:5 SL:140 E76B D0 BNE $E778 PC:E76C A:3E X:17 Y:44 P:67 SP:FB CYC:11 SL:140 E76D E0 CPX #$17 PC:E76E A:3E X:17 Y:44 P:67 SP:FB CYC:17 SL:140 E76F D0 BNE $E778 PC:E770 A:3E X:17 Y:44 P:67 SP:FB CYC:23 SL:140 E771 AD LDA $0489 PC:E772 A:3E X:17 Y:44 P:67 SP:FB CYC:29 SL:140 E774 C9 CMP #$16 PC:E775 A:16 X:17 Y:44 P:65 SP:FB CYC:41 SL:140 E776 F0 BEQ $E77C PC:E777 A:16 X:17 Y:44 P:67 SP:FB CYC:47 SL:140 E77C A0 LDY #$44 PC:E77D A:16 X:17 Y:44 P:67 SP:FB CYC:56 SL:140 E77E A2 LDX #$7A PC:E77F A:16 X:17 Y:44 P:65 SP:FB CYC:62 SL:140 E780 A9 LDA #$66 PC:E781 A:16 X:7A Y:44 P:65 SP:FB CYC:68 SL:140 E782 38 SEC PC:E783 A:66 X:7A Y:44 P:65 SP:FB CYC:74 SL:140 E783 B8 CLV PC:E784 A:66 X:7A Y:44 P:65 SP:FB CYC:80 SL:140 E784 83 SAX $(EAE6,x) PC:E785 A:66 X:7A Y:44 P:25 SP:FB CYC:86 SL:140 E786 EA NOP PC:E787 A:66 X:7A Y:44 P:25 SP:FB CYC:104 SL:140 E787 EA NOP PC:E788 A:66 X:7A Y:44 P:25 SP:FB CYC:110 SL:140 E788 EA NOP PC:E789 A:66 X:7A Y:44 P:25 SP:FB CYC:116 SL:140 E789 EA NOP PC:E78A A:66 X:7A Y:44 P:25 SP:FB CYC:122 SL:140 E78A F0 BEQ $E7A5 PC:E78B A:66 X:7A Y:44 P:25 SP:FB CYC:128 SL:140 E78C 90 BCC $E7A5 PC:E78D A:66 X:7A Y:44 P:25 SP:FB CYC:134 SL:140 E78E 70 BVS $E7A5 PC:E78F A:66 X:7A Y:44 P:25 SP:FB CYC:140 SL:140 E790 30 BMI $E7A5 PC:E791 A:66 X:7A Y:44 P:25 SP:FB CYC:146 SL:140 E792 C9 CMP #$66 PC:E793 A:66 X:7A Y:44 P:25 SP:FB CYC:152 SL:140 E794 D0 BNE $E7A5 PC:E795 A:66 X:7A Y:44 P:27 SP:FB CYC:158 SL:140 E796 C0 CPY #$44 PC:E797 A:66 X:7A Y:44 P:27 SP:FB CYC:164 SL:140 E798 D0 BNE $E7A5 PC:E799 A:66 X:7A Y:44 P:27 SP:FB CYC:170 SL:140 E79A E0 CPX #$7A PC:E79B A:66 X:7A Y:44 P:27 SP:FB CYC:176 SL:140 E79C D0 BNE $E7A5 PC:E79D A:66 X:7A Y:44 P:27 SP:FB CYC:182 SL:140 E79E AD LDA $0489 PC:E79F A:66 X:7A Y:44 P:27 SP:FB CYC:188 SL:140 E7A1 C9 CMP #$62 PC:E7A2 A:62 X:7A Y:44 P:25 SP:FB CYC:200 SL:140 E7A3 F0 BEQ $E7A9 PC:E7A4 A:62 X:7A Y:44 P:27 SP:FB CYC:206 SL:140 E7A9 A9 LDA #$FF PC:E7AA A:62 X:7A Y:44 P:27 SP:FB CYC:215 SL:140 E7AB 85 STA $49 PC:E7AC A:FF X:7A Y:44 P:A5 SP:FB CYC:221 SL:140 E7AD A0 LDY #$44 PC:E7AE A:FF X:7A Y:44 P:A5 SP:FB CYC:230 SL:140 E7AF A2 LDX #$AA PC:E7B0 A:FF X:7A Y:44 P:25 SP:FB CYC:236 SL:140 E7B1 A9 LDA #$55 PC:E7B2 A:FF X:AA Y:44 P:A5 SP:FB CYC:242 SL:140 E7B3 24 BIT $01 PC:E7B4 A:55 X:AA Y:44 P:25 SP:FB CYC:248 SL:140 E7B5 18 CLC PC:E7B6 A:55 X:AA Y:44 P:E5 SP:FB CYC:257 SL:140 E7B6 87 SAX $49 PC:E7B7 A:55 X:AA Y:44 P:E4 SP:FB CYC:263 SL:140 E7B8 EA NOP PC:E7B9 A:55 X:AA Y:44 P:E4 SP:FB CYC:272 SL:140 E7B9 EA NOP PC:E7BA A:55 X:AA Y:44 P:E4 SP:FB CYC:278 SL:140 E7BA EA NOP PC:E7BB A:55 X:AA Y:44 P:E4 SP:FB CYC:284 SL:140 E7BB EA NOP PC:E7BC A:55 X:AA Y:44 P:E4 SP:FB CYC:290 SL:140 E7BC F0 BEQ $E7D6 PC:E7BD A:55 X:AA Y:44 P:E4 SP:FB CYC:296 SL:140 E7BE B0 BCS $E7D6 PC:E7BF A:55 X:AA Y:44 P:E4 SP:FB CYC:302 SL:140 E7C0 50 BVC $E7D6 PC:E7C1 A:55 X:AA Y:44 P:E4 SP:FB CYC:308 SL:140 E7C2 10 BPL $E7D6 PC:E7C3 A:55 X:AA Y:44 P:E4 SP:FB CYC:314 SL:140 E7C4 C9 CMP #$55 PC:E7C5 A:55 X:AA Y:44 P:E4 SP:FB CYC:320 SL:140 E7C6 D0 BNE $E7D6 PC:E7C7 A:55 X:AA Y:44 P:67 SP:FB CYC:326 SL:140 E7C8 C0 CPY #$44 PC:E7C9 A:55 X:AA Y:44 P:67 SP:FB CYC:332 SL:140 E7CA D0 BNE $E7D6 PC:E7CB A:55 X:AA Y:44 P:67 SP:FB CYC:338 SL:140 E7CC E0 CPX #$AA PC:E7CD A:55 X:AA Y:44 P:67 SP:FB CYC:3 SL:141 E7CE D0 BNE $E7D6 PC:E7CF A:55 X:AA Y:44 P:67 SP:FB CYC:9 SL:141 E7D0 A5 LDA $49 PC:E7D1 A:55 X:AA Y:44 P:67 SP:FB CYC:15 SL:141 E7D2 C9 CMP #$00 PC:E7D3 A:00 X:AA Y:44 P:67 SP:FB CYC:24 SL:141 E7D4 F0 BEQ $E7DA PC:E7D5 A:00 X:AA Y:44 P:67 SP:FB CYC:30 SL:141 E7DA A9 LDA #$00 PC:E7DB A:00 X:AA Y:44 P:67 SP:FB CYC:39 SL:141 E7DC 85 STA $56 PC:E7DD A:00 X:AA Y:44 P:67 SP:FB CYC:45 SL:141 E7DE A0 LDY #$58 PC:E7DF A:00 X:AA Y:44 P:67 SP:FB CYC:54 SL:141 E7E0 A2 LDX #$EF PC:E7E1 A:00 X:AA Y:58 P:65 SP:FB CYC:60 SL:141 E7E2 A9 LDA #$66 PC:E7E3 A:00 X:EF Y:58 P:E5 SP:FB CYC:66 SL:141 E7E4 38 SEC PC:E7E5 A:66 X:EF Y:58 P:65 SP:FB CYC:72 SL:141 E7E5 B8 CLV PC:E7E6 A:66 X:EF Y:58 P:65 SP:FB CYC:78 SL:141 E7E6 87 SAX $56 PC:E7E7 A:66 X:EF Y:58 P:25 SP:FB CYC:84 SL:141 E7E8 EA NOP PC:E7E9 A:66 X:EF Y:58 P:25 SP:FB CYC:93 SL:141 E7E9 EA NOP PC:E7EA A:66 X:EF Y:58 P:25 SP:FB CYC:99 SL:141 E7EA EA NOP PC:E7EB A:66 X:EF Y:58 P:25 SP:FB CYC:105 SL:141 E7EB EA NOP PC:E7EC A:66 X:EF Y:58 P:25 SP:FB CYC:111 SL:141 E7EC F0 BEQ $E806 PC:E7ED A:66 X:EF Y:58 P:25 SP:FB CYC:117 SL:141 E7EE 90 BCC $E806 PC:E7EF A:66 X:EF Y:58 P:25 SP:FB CYC:123 SL:141 E7F0 70 BVS $E806 PC:E7F1 A:66 X:EF Y:58 P:25 SP:FB CYC:129 SL:141 E7F2 30 BMI $E806 PC:E7F3 A:66 X:EF Y:58 P:25 SP:FB CYC:135 SL:141 E7F4 C9 CMP #$66 PC:E7F5 A:66 X:EF Y:58 P:25 SP:FB CYC:141 SL:141 E7F6 D0 BNE $E806 PC:E7F7 A:66 X:EF Y:58 P:27 SP:FB CYC:147 SL:141 E7F8 C0 CPY #$58 PC:E7F9 A:66 X:EF Y:58 P:27 SP:FB CYC:153 SL:141 E7FA D0 BNE $E806 PC:E7FB A:66 X:EF Y:58 P:27 SP:FB CYC:159 SL:141 E7FC E0 CPX #$EF PC:E7FD A:66 X:EF Y:58 P:27 SP:FB CYC:165 SL:141 E7FE D0 BNE $E806 PC:E7FF A:66 X:EF Y:58 P:27 SP:FB CYC:171 SL:141 E800 A5 LDA $56 PC:E801 A:66 X:EF Y:58 P:27 SP:FB CYC:177 SL:141 E802 C9 CMP #$66 PC:E803 A:66 X:EF Y:58 P:25 SP:FB CYC:186 SL:141 E804 F0 BEQ $E80A PC:E805 A:66 X:EF Y:58 P:27 SP:FB CYC:192 SL:141 E80A A9 LDA #$FF PC:E80B A:66 X:EF Y:58 P:27 SP:FB CYC:201 SL:141 E80C 8D STA $0549 PC:E80D A:FF X:EF Y:58 P:A5 SP:FB CYC:207 SL:141 E80F A0 LDY #$E5 PC:E810 A:FF X:EF Y:58 P:A5 SP:FB CYC:219 SL:141 E811 A2 LDX #$AF PC:E812 A:FF X:EF Y:E5 P:A5 SP:FB CYC:225 SL:141 E813 A9 LDA #$F5 PC:E814 A:FF X:AF Y:E5 P:A5 SP:FB CYC:231 SL:141 E815 24 BIT $01 PC:E816 A:F5 X:AF Y:E5 P:A5 SP:FB CYC:237 SL:141 E817 18 CLC PC:E818 A:F5 X:AF Y:E5 P:E5 SP:FB CYC:246 SL:141 E818 8F SAX $0549 PC:E819 A:F5 X:AF Y:E5 P:E4 SP:FB CYC:252 SL:141 E81B EA NOP PC:E81C A:F5 X:AF Y:E5 P:E4 SP:FB CYC:264 SL:141 E81C EA NOP PC:E81D A:F5 X:AF Y:E5 P:E4 SP:FB CYC:270 SL:141 E81D EA NOP PC:E81E A:F5 X:AF Y:E5 P:E4 SP:FB CYC:276 SL:141 E81E EA NOP PC:E81F A:F5 X:AF Y:E5 P:E4 SP:FB CYC:282 SL:141 E81F F0 BEQ $E83A PC:E820 A:F5 X:AF Y:E5 P:E4 SP:FB CYC:288 SL:141 E821 B0 BCS $E83A PC:E822 A:F5 X:AF Y:E5 P:E4 SP:FB CYC:294 SL:141 E823 50 BVC $E83A PC:E824 A:F5 X:AF Y:E5 P:E4 SP:FB CYC:300 SL:141 E825 10 BPL $E83A PC:E826 A:F5 X:AF Y:E5 P:E4 SP:FB CYC:306 SL:141 E827 C9 CMP #$F5 PC:E828 A:F5 X:AF Y:E5 P:E4 SP:FB CYC:312 SL:141 E829 D0 BNE $E83A PC:E82A A:F5 X:AF Y:E5 P:67 SP:FB CYC:318 SL:141 E82B C0 CPY #$E5 PC:E82C A:F5 X:AF Y:E5 P:67 SP:FB CYC:324 SL:141 E82D D0 BNE $E83A PC:E82E A:F5 X:AF Y:E5 P:67 SP:FB CYC:330 SL:141 E82F E0 CPX #$AF PC:E830 A:F5 X:AF Y:E5 P:67 SP:FB CYC:336 SL:141 E831 D0 BNE $E83A PC:E832 A:F5 X:AF Y:E5 P:67 SP:FB CYC:1 SL:142 E833 AD LDA $0549 PC:E834 A:F5 X:AF Y:E5 P:67 SP:FB CYC:7 SL:142 E836 C9 CMP #$A5 PC:E837 A:A5 X:AF Y:E5 P:E5 SP:FB CYC:19 SL:142 E838 F0 BEQ $E83E PC:E839 A:A5 X:AF Y:E5 P:67 SP:FB CYC:25 SL:142 E83E A9 LDA #$00 PC:E83F A:A5 X:AF Y:E5 P:67 SP:FB CYC:34 SL:142 E840 8D STA $0556 PC:E841 A:00 X:AF Y:E5 P:67 SP:FB CYC:40 SL:142 E843 A0 LDY #$58 PC:E844 A:00 X:AF Y:E5 P:67 SP:FB CYC:52 SL:142 E845 A2 LDX #$B3 PC:E846 A:00 X:AF Y:58 P:65 SP:FB CYC:58 SL:142 E847 A9 LDA #$97 PC:E848 A:00 X:B3 Y:58 P:E5 SP:FB CYC:64 SL:142 E849 38 SEC PC:E84A A:97 X:B3 Y:58 P:E5 SP:FB CYC:70 SL:142 E84A B8 CLV PC:E84B A:97 X:B3 Y:58 P:E5 SP:FB CYC:76 SL:142 E84B 8F SAX $0556 PC:E84C A:97 X:B3 Y:58 P:A5 SP:FB CYC:82 SL:142 E84E EA NOP PC:E84F A:97 X:B3 Y:58 P:A5 SP:FB CYC:94 SL:142 E84F EA NOP PC:E850 A:97 X:B3 Y:58 P:A5 SP:FB CYC:100 SL:142 E850 EA NOP PC:E851 A:97 X:B3 Y:58 P:A5 SP:FB CYC:106 SL:142 E851 EA NOP PC:E852 A:97 X:B3 Y:58 P:A5 SP:FB CYC:112 SL:142 E852 F0 BEQ $E86D PC:E853 A:97 X:B3 Y:58 P:A5 SP:FB CYC:118 SL:142 E854 90 BCC $E86D PC:E855 A:97 X:B3 Y:58 P:A5 SP:FB CYC:124 SL:142 E856 70 BVS $E86D PC:E857 A:97 X:B3 Y:58 P:A5 SP:FB CYC:130 SL:142 E858 10 BPL $E86D PC:E859 A:97 X:B3 Y:58 P:A5 SP:FB CYC:136 SL:142 E85A C9 CMP #$97 PC:E85B A:97 X:B3 Y:58 P:A5 SP:FB CYC:142 SL:142 E85C D0 BNE $E86D PC:E85D A:97 X:B3 Y:58 P:27 SP:FB CYC:148 SL:142 E85E C0 CPY #$58 PC:E85F A:97 X:B3 Y:58 P:27 SP:FB CYC:154 SL:142 E860 D0 BNE $E86D PC:E861 A:97 X:B3 Y:58 P:27 SP:FB CYC:160 SL:142 E862 E0 CPX #$B3 PC:E863 A:97 X:B3 Y:58 P:27 SP:FB CYC:166 SL:142 E864 D0 BNE $E86D PC:E865 A:97 X:B3 Y:58 P:27 SP:FB CYC:172 SL:142 E866 AD LDA $0556 PC:E867 A:97 X:B3 Y:58 P:27 SP:FB CYC:178 SL:142 E869 C9 CMP #$93 PC:E86A A:93 X:B3 Y:58 P:A5 SP:FB CYC:190 SL:142 E86B F0 BEQ $E871 PC:E86C A:93 X:B3 Y:58 P:27 SP:FB CYC:196 SL:142 E871 A9 LDA #$FF PC:E872 A:93 X:B3 Y:58 P:27 SP:FB CYC:205 SL:142 E873 85 STA $49 PC:E874 A:FF X:B3 Y:58 P:A5 SP:FB CYC:211 SL:142 E875 A0 LDY #$FF PC:E876 A:FF X:B3 Y:58 P:A5 SP:FB CYC:220 SL:142 E877 A2 LDX #$AA PC:E878 A:FF X:B3 Y:FF P:A5 SP:FB CYC:226 SL:142 E879 A9 LDA #$55 PC:E87A A:FF X:AA Y:FF P:A5 SP:FB CYC:232 SL:142 E87B 24 BIT $01 PC:E87C A:55 X:AA Y:FF P:25 SP:FB CYC:238 SL:142 E87D 18 CLC PC:E87E A:55 X:AA Y:FF P:E5 SP:FB CYC:247 SL:142 E87E 97 SAX $4A,y PC:E87F A:55 X:AA Y:FF P:E4 SP:FB CYC:253 SL:142 E880 EA NOP PC:E881 A:55 X:AA Y:FF P:E4 SP:FB CYC:265 SL:142 E881 EA NOP PC:E882 A:55 X:AA Y:FF P:E4 SP:FB CYC:271 SL:142 E882 EA NOP PC:E883 A:55 X:AA Y:FF P:E4 SP:FB CYC:277 SL:142 E883 EA NOP PC:E884 A:55 X:AA Y:FF P:E4 SP:FB CYC:283 SL:142 E884 F0 BEQ $E89E PC:E885 A:55 X:AA Y:FF P:E4 SP:FB CYC:289 SL:142 E886 B0 BCS $E89E PC:E887 A:55 X:AA Y:FF P:E4 SP:FB CYC:295 SL:142 E888 50 BVC $E89E PC:E889 A:55 X:AA Y:FF P:E4 SP:FB CYC:301 SL:142 E88A 10 BPL $E89E PC:E88B A:55 X:AA Y:FF P:E4 SP:FB CYC:307 SL:142 E88C C9 CMP #$55 PC:E88D A:55 X:AA Y:FF P:E4 SP:FB CYC:313 SL:142 E88E D0 BNE $E89E PC:E88F A:55 X:AA Y:FF P:67 SP:FB CYC:319 SL:142 E890 C0 CPY #$FF PC:E891 A:55 X:AA Y:FF P:67 SP:FB CYC:325 SL:142 E892 D0 BNE $E89E PC:E893 A:55 X:AA Y:FF P:67 SP:FB CYC:331 SL:142 E894 E0 CPX #$AA PC:E895 A:55 X:AA Y:FF P:67 SP:FB CYC:337 SL:142 E896 D0 BNE $E89E PC:E897 A:55 X:AA Y:FF P:67 SP:FB CYC:2 SL:143 E898 A5 LDA $49 PC:E899 A:55 X:AA Y:FF P:67 SP:FB CYC:8 SL:143 E89A C9 CMP #$00 PC:E89B A:00 X:AA Y:FF P:67 SP:FB CYC:17 SL:143 E89C F0 BEQ $E8A2 PC:E89D A:00 X:AA Y:FF P:67 SP:FB CYC:23 SL:143 E8A2 A9 LDA #$00 PC:E8A3 A:00 X:AA Y:FF P:67 SP:FB CYC:32 SL:143 E8A4 85 STA $56 PC:E8A5 A:00 X:AA Y:FF P:67 SP:FB CYC:38 SL:143 E8A6 A0 LDY #$06 PC:E8A7 A:00 X:AA Y:FF P:67 SP:FB CYC:47 SL:143 E8A8 A2 LDX #$EF PC:E8A9 A:00 X:AA Y:06 P:65 SP:FB CYC:53 SL:143 E8AA A9 LDA #$66 PC:E8AB A:00 X:EF Y:06 P:E5 SP:FB CYC:59 SL:143 E8AC 38 SEC PC:E8AD A:66 X:EF Y:06 P:65 SP:FB CYC:65 SL:143 E8AD B8 CLV PC:E8AE A:66 X:EF Y:06 P:65 SP:FB CYC:71 SL:143 E8AE 97 SAX $50,y PC:E8AF A:66 X:EF Y:06 P:25 SP:FB CYC:77 SL:143 E8B0 EA NOP PC:E8B1 A:66 X:EF Y:06 P:25 SP:FB CYC:89 SL:143 E8B1 EA NOP PC:E8B2 A:66 X:EF Y:06 P:25 SP:FB CYC:95 SL:143 E8B2 EA NOP PC:E8B3 A:66 X:EF Y:06 P:25 SP:FB CYC:101 SL:143 E8B3 EA NOP PC:E8B4 A:66 X:EF Y:06 P:25 SP:FB CYC:107 SL:143 E8B4 F0 BEQ $E8CE PC:E8B5 A:66 X:EF Y:06 P:25 SP:FB CYC:113 SL:143 E8B6 90 BCC $E8CE PC:E8B7 A:66 X:EF Y:06 P:25 SP:FB CYC:119 SL:143 E8B8 70 BVS $E8CE PC:E8B9 A:66 X:EF Y:06 P:25 SP:FB CYC:125 SL:143 E8BA 30 BMI $E8CE PC:E8BB A:66 X:EF Y:06 P:25 SP:FB CYC:131 SL:143 E8BC C9 CMP #$66 PC:E8BD A:66 X:EF Y:06 P:25 SP:FB CYC:137 SL:143 E8BE D0 BNE $E8CE PC:E8BF A:66 X:EF Y:06 P:27 SP:FB CYC:143 SL:143 E8C0 C0 CPY #$06 PC:E8C1 A:66 X:EF Y:06 P:27 SP:FB CYC:149 SL:143 E8C2 D0 BNE $E8CE PC:E8C3 A:66 X:EF Y:06 P:27 SP:FB CYC:155 SL:143 E8C4 E0 CPX #$EF PC:E8C5 A:66 X:EF Y:06 P:27 SP:FB CYC:161 SL:143 E8C6 D0 BNE $E8CE PC:E8C7 A:66 X:EF Y:06 P:27 SP:FB CYC:167 SL:143 E8C8 A5 LDA $56 PC:E8C9 A:66 X:EF Y:06 P:27 SP:FB CYC:173 SL:143 E8CA C9 CMP #$66 PC:E8CB A:66 X:EF Y:06 P:25 SP:FB CYC:182 SL:143 E8CC F0 BEQ $E8D2 PC:E8CD A:66 X:EF Y:06 P:27 SP:FB CYC:188 SL:143 E8D2 60 RTS PC:E8D3 A:66 X:EF Y:06 P:27 SP:FB CYC:197 SL:143 C638 20 JSR $E8D3 PC:C639 A:66 X:EF Y:06 P:27 SP:FD CYC:215 SL:143 E8D3 A0 LDY #$90 PC:E8D4 A:66 X:EF Y:06 P:27 SP:FB CYC:233 SL:143 E8D5 20 JSR $F931 PC:E8D6 A:66 X:EF Y:90 P:A5 SP:FB CYC:239 SL:143 F931 24 BIT $01 PC:F932 A:66 X:EF Y:90 P:A5 SP:F9 CYC:257 SL:143 F933 A9 LDA #$40 PC:F934 A:66 X:EF Y:90 P:E5 SP:F9 CYC:266 SL:143 F935 38 SEC PC:F936 A:40 X:EF Y:90 P:65 SP:F9 CYC:272 SL:143 F936 60 RTS PC:F937 A:40 X:EF Y:90 P:65 SP:F9 CYC:278 SL:143 E8D8 EB SBC #$40 PC:E8D9 A:40 X:EF Y:90 P:65 SP:FB CYC:296 SL:143 E8DA EA NOP PC:E8DB A:00 X:EF Y:90 P:27 SP:FB CYC:302 SL:143 E8DB EA NOP PC:E8DC A:00 X:EF Y:90 P:27 SP:FB CYC:308 SL:143 E8DC EA NOP PC:E8DD A:00 X:EF Y:90 P:27 SP:FB CYC:314 SL:143 E8DD EA NOP PC:E8DE A:00 X:EF Y:90 P:27 SP:FB CYC:320 SL:143 E8DE 20 JSR $F937 PC:E8DF A:00 X:EF Y:90 P:27 SP:FB CYC:326 SL:143 F937 30 BMI $F944 PC:F938 A:00 X:EF Y:90 P:27 SP:F9 CYC:3 SL:144 F939 90 BCC $F944 PC:F93A A:00 X:EF Y:90 P:27 SP:F9 CYC:9 SL:144 F93B D0 BNE $F944 PC:F93C A:00 X:EF Y:90 P:27 SP:F9 CYC:15 SL:144 F93D 70 BVS $F944 PC:F93E A:00 X:EF Y:90 P:27 SP:F9 CYC:21 SL:144 F93F C9 CMP #$00 PC:F940 A:00 X:EF Y:90 P:27 SP:F9 CYC:27 SL:144 F941 D0 BNE $F944 PC:F942 A:00 X:EF Y:90 P:27 SP:F9 CYC:33 SL:144 F943 60 RTS PC:F944 A:00 X:EF Y:90 P:27 SP:F9 CYC:39 SL:144 E8E1 C8 INY PC:E8E2 A:00 X:EF Y:90 P:27 SP:FB CYC:57 SL:144 E8E2 20 JSR $F947 PC:E8E3 A:00 X:EF Y:91 P:A5 SP:FB CYC:63 SL:144 F947 B8 CLV PC:F948 A:00 X:EF Y:91 P:A5 SP:F9 CYC:81 SL:144 F948 38 SEC PC:F949 A:00 X:EF Y:91 P:A5 SP:F9 CYC:87 SL:144 F949 A9 LDA #$40 PC:F94A A:00 X:EF Y:91 P:A5 SP:F9 CYC:93 SL:144 F94B 60 RTS PC:F94C A:40 X:EF Y:91 P:25 SP:F9 CYC:99 SL:144 E8E5 EB SBC #$3F PC:E8E6 A:40 X:EF Y:91 P:25 SP:FB CYC:117 SL:144 E8E7 EA NOP PC:E8E8 A:01 X:EF Y:91 P:25 SP:FB CYC:123 SL:144 E8E8 EA NOP PC:E8E9 A:01 X:EF Y:91 P:25 SP:FB CYC:129 SL:144 E8E9 EA NOP PC:E8EA A:01 X:EF Y:91 P:25 SP:FB CYC:135 SL:144 E8EA EA NOP PC:E8EB A:01 X:EF Y:91 P:25 SP:FB CYC:141 SL:144 E8EB 20 JSR $F94C PC:E8EC A:01 X:EF Y:91 P:25 SP:FB CYC:147 SL:144 F94C F0 BEQ $F959 PC:F94D A:01 X:EF Y:91 P:25 SP:F9 CYC:165 SL:144 F94E 30 BMI $F959 PC:F94F A:01 X:EF Y:91 P:25 SP:F9 CYC:171 SL:144 F950 90 BCC $F959 PC:F951 A:01 X:EF Y:91 P:25 SP:F9 CYC:177 SL:144 F952 70 BVS $F959 PC:F953 A:01 X:EF Y:91 P:25 SP:F9 CYC:183 SL:144 F954 C9 CMP #$01 PC:F955 A:01 X:EF Y:91 P:25 SP:F9 CYC:189 SL:144 F956 D0 BNE $F959 PC:F957 A:01 X:EF Y:91 P:27 SP:F9 CYC:195 SL:144 F958 60 RTS PC:F959 A:01 X:EF Y:91 P:27 SP:F9 CYC:201 SL:144 E8EE C8 INY PC:E8EF A:01 X:EF Y:91 P:27 SP:FB CYC:219 SL:144 E8EF 20 JSR $F95C PC:E8F0 A:01 X:EF Y:92 P:A5 SP:FB CYC:225 SL:144 F95C A9 LDA #$40 PC:F95D A:01 X:EF Y:92 P:A5 SP:F9 CYC:243 SL:144 F95E 38 SEC PC:F95F A:40 X:EF Y:92 P:25 SP:F9 CYC:249 SL:144 F95F 24 BIT $01 PC:F960 A:40 X:EF Y:92 P:25 SP:F9 CYC:255 SL:144 F961 60 RTS PC:F962 A:40 X:EF Y:92 P:E5 SP:F9 CYC:264 SL:144 E8F2 EB SBC #$41 PC:E8F3 A:40 X:EF Y:92 P:E5 SP:FB CYC:282 SL:144 E8F4 EA NOP PC:E8F5 A:FF X:EF Y:92 P:A4 SP:FB CYC:288 SL:144 E8F5 EA NOP PC:E8F6 A:FF X:EF Y:92 P:A4 SP:FB CYC:294 SL:144 E8F6 EA NOP PC:E8F7 A:FF X:EF Y:92 P:A4 SP:FB CYC:300 SL:144 E8F7 EA NOP PC:E8F8 A:FF X:EF Y:92 P:A4 SP:FB CYC:306 SL:144 E8F8 20 JSR $F962 PC:E8F9 A:FF X:EF Y:92 P:A4 SP:FB CYC:312 SL:144 F962 B0 BCS $F96F PC:F963 A:FF X:EF Y:92 P:A4 SP:F9 CYC:330 SL:144 F964 F0 BEQ $F96F PC:F965 A:FF X:EF Y:92 P:A4 SP:F9 CYC:336 SL:144 F966 10 BPL $F96F PC:F967 A:FF X:EF Y:92 P:A4 SP:F9 CYC:1 SL:145 F968 70 BVS $F96F PC:F969 A:FF X:EF Y:92 P:A4 SP:F9 CYC:7 SL:145 F96A C9 CMP #$FF PC:F96B A:FF X:EF Y:92 P:A4 SP:F9 CYC:13 SL:145 F96C D0 BNE $F96F PC:F96D A:FF X:EF Y:92 P:27 SP:F9 CYC:19 SL:145 F96E 60 RTS PC:F96F A:FF X:EF Y:92 P:27 SP:F9 CYC:25 SL:145 E8FB C8 INY PC:E8FC A:FF X:EF Y:92 P:27 SP:FB CYC:43 SL:145 E8FC 20 JSR $F972 PC:E8FD A:FF X:EF Y:93 P:A5 SP:FB CYC:49 SL:145 F972 18 CLC PC:F973 A:FF X:EF Y:93 P:A5 SP:F9 CYC:67 SL:145 F973 A9 LDA #$80 PC:F974 A:FF X:EF Y:93 P:A4 SP:F9 CYC:73 SL:145 F975 60 RTS PC:F976 A:80 X:EF Y:93 P:A4 SP:F9 CYC:79 SL:145 E8FF EB SBC #$00 PC:E900 A:80 X:EF Y:93 P:A4 SP:FB CYC:97 SL:145 E901 EA NOP PC:E902 A:7F X:EF Y:93 P:65 SP:FB CYC:103 SL:145 E902 EA NOP PC:E903 A:7F X:EF Y:93 P:65 SP:FB CYC:109 SL:145 E903 EA NOP PC:E904 A:7F X:EF Y:93 P:65 SP:FB CYC:115 SL:145 E904 EA NOP PC:E905 A:7F X:EF Y:93 P:65 SP:FB CYC:121 SL:145 E905 20 JSR $F976 PC:E906 A:7F X:EF Y:93 P:65 SP:FB CYC:127 SL:145 F976 90 BCC $F97D PC:F977 A:7F X:EF Y:93 P:65 SP:F9 CYC:145 SL:145 F978 C9 CMP #$7F PC:F979 A:7F X:EF Y:93 P:65 SP:F9 CYC:151 SL:145 F97A D0 BNE $F97D PC:F97B A:7F X:EF Y:93 P:67 SP:F9 CYC:157 SL:145 F97C 60 RTS PC:F97D A:7F X:EF Y:93 P:67 SP:F9 CYC:163 SL:145 E908 C8 INY PC:E909 A:7F X:EF Y:93 P:67 SP:FB CYC:181 SL:145 E909 20 JSR $F980 PC:E90A A:7F X:EF Y:94 P:E5 SP:FB CYC:187 SL:145 F980 38 SEC PC:F981 A:7F X:EF Y:94 P:E5 SP:F9 CYC:205 SL:145 F981 A9 LDA #$81 PC:F982 A:7F X:EF Y:94 P:E5 SP:F9 CYC:211 SL:145 F983 60 RTS PC:F984 A:81 X:EF Y:94 P:E5 SP:F9 CYC:217 SL:145 E90C EB SBC #$7F PC:E90D A:81 X:EF Y:94 P:E5 SP:FB CYC:235 SL:145 E90E EA NOP PC:E90F A:02 X:EF Y:94 P:65 SP:FB CYC:241 SL:145 E90F EA NOP PC:E910 A:02 X:EF Y:94 P:65 SP:FB CYC:247 SL:145 E910 EA NOP PC:E911 A:02 X:EF Y:94 P:65 SP:FB CYC:253 SL:145 E911 EA NOP PC:E912 A:02 X:EF Y:94 P:65 SP:FB CYC:259 SL:145 E912 20 JSR $F984 PC:E913 A:02 X:EF Y:94 P:65 SP:FB CYC:265 SL:145 F984 50 BVC $F98D PC:F985 A:02 X:EF Y:94 P:65 SP:F9 CYC:283 SL:145 F986 90 BCC $F98D PC:F987 A:02 X:EF Y:94 P:65 SP:F9 CYC:289 SL:145 F988 C9 CMP #$02 PC:F989 A:02 X:EF Y:94 P:65 SP:F9 CYC:295 SL:145 F98A D0 BNE $F98D PC:F98B A:02 X:EF Y:94 P:67 SP:F9 CYC:301 SL:145 F98C 60 RTS PC:F98D A:02 X:EF Y:94 P:67 SP:F9 CYC:307 SL:145 E915 60 RTS PC:E916 A:02 X:EF Y:94 P:67 SP:FB CYC:325 SL:145 C63B 20 JSR $E916 PC:C63C A:02 X:EF Y:94 P:67 SP:FD CYC:2 SL:146 E916 A9 LDA #$FF PC:E917 A:02 X:EF Y:94 P:67 SP:FB CYC:20 SL:146 E918 85 STA $01 PC:E919 A:FF X:EF Y:94 P:E5 SP:FB CYC:26 SL:146 E91A A0 LDY #$95 PC:E91B A:FF X:EF Y:94 P:E5 SP:FB CYC:35 SL:146 E91C A2 LDX #$02 PC:E91D A:FF X:EF Y:95 P:E5 SP:FB CYC:41 SL:146 E91E A9 LDA #$47 PC:E91F A:FF X:02 Y:95 P:65 SP:FB CYC:47 SL:146 E920 85 STA $47 PC:E921 A:47 X:02 Y:95 P:65 SP:FB CYC:53 SL:146 E922 A9 LDA #$06 PC:E923 A:47 X:02 Y:95 P:65 SP:FB CYC:62 SL:146 E924 85 STA $48 PC:E925 A:06 X:02 Y:95 P:65 SP:FB CYC:68 SL:146 E926 A9 LDA #$EB PC:E927 A:06 X:02 Y:95 P:65 SP:FB CYC:77 SL:146 E928 8D STA $0647 PC:E929 A:EB X:02 Y:95 P:E5 SP:FB CYC:83 SL:146 E92B 20 JSR $FA31 PC:E92C A:EB X:02 Y:95 P:E5 SP:FB CYC:95 SL:146 FA31 24 BIT $01 PC:FA32 A:EB X:02 Y:95 P:E5 SP:F9 CYC:113 SL:146 FA33 18 CLC PC:FA34 A:EB X:02 Y:95 P:E5 SP:F9 CYC:122 SL:146 FA34 A9 LDA #$40 PC:FA35 A:EB X:02 Y:95 P:E4 SP:F9 CYC:128 SL:146 FA36 60 RTS PC:FA37 A:40 X:02 Y:95 P:64 SP:F9 CYC:134 SL:146 E92E C3 DCP $(EA45,x) PC:E92F A:40 X:02 Y:95 P:64 SP:FB CYC:152 SL:146 E930 EA NOP PC:E931 A:40 X:02 Y:95 P:64 SP:FB CYC:176 SL:146 E931 EA NOP PC:E932 A:40 X:02 Y:95 P:64 SP:FB CYC:182 SL:146 E932 EA NOP PC:E933 A:40 X:02 Y:95 P:64 SP:FB CYC:188 SL:146 E933 EA NOP PC:E934 A:40 X:02 Y:95 P:64 SP:FB CYC:194 SL:146 E934 20 JSR $FA37 PC:E935 A:40 X:02 Y:95 P:64 SP:FB CYC:200 SL:146 FA37 50 BVC $FA65 PC:FA38 A:40 X:02 Y:95 P:64 SP:F9 CYC:218 SL:146 FA39 B0 BCS $FA65 PC:FA3A A:40 X:02 Y:95 P:64 SP:F9 CYC:224 SL:146 FA3B 30 BMI $FA65 PC:FA3C A:40 X:02 Y:95 P:64 SP:F9 CYC:230 SL:146 FA3D C9 CMP #$40 PC:FA3E A:40 X:02 Y:95 P:64 SP:F9 CYC:236 SL:146 FA3F D0 BNE $FA65 PC:FA40 A:40 X:02 Y:95 P:67 SP:F9 CYC:242 SL:146 FA41 60 RTS PC:FA42 A:40 X:02 Y:95 P:67 SP:F9 CYC:248 SL:146 E937 AD LDA $0647 PC:E938 A:40 X:02 Y:95 P:67 SP:FB CYC:266 SL:146 E93A C9 CMP #$EA PC:E93B A:EA X:02 Y:95 P:E5 SP:FB CYC:278 SL:146 E93C F0 BEQ $E940 PC:E93D A:EA X:02 Y:95 P:67 SP:FB CYC:284 SL:146 E940 C8 INY PC:E941 A:EA X:02 Y:95 P:67 SP:FB CYC:293 SL:146 E941 A9 LDA #$00 PC:E942 A:EA X:02 Y:96 P:E5 SP:FB CYC:299 SL:146 E943 8D STA $0647 PC:E944 A:00 X:02 Y:96 P:67 SP:FB CYC:305 SL:146 E946 20 JSR $FA42 PC:E947 A:00 X:02 Y:96 P:67 SP:FB CYC:317 SL:146 FA42 B8 CLV PC:FA43 A:00 X:02 Y:96 P:67 SP:F9 CYC:335 SL:146 FA43 38 SEC PC:FA44 A:00 X:02 Y:96 P:27 SP:F9 CYC:0 SL:147 FA44 A9 LDA #$FF PC:FA45 A:00 X:02 Y:96 P:27 SP:F9 CYC:6 SL:147 FA46 60 RTS PC:FA47 A:FF X:02 Y:96 P:A5 SP:F9 CYC:12 SL:147 E949 C3 DCP $(EA45,x) PC:E94A A:FF X:02 Y:96 P:A5 SP:FB CYC:30 SL:147 E94B EA NOP PC:E94C A:FF X:02 Y:96 P:27 SP:FB CYC:54 SL:147 E94C EA NOP PC:E94D A:FF X:02 Y:96 P:27 SP:FB CYC:60 SL:147 E94D EA NOP PC:E94E A:FF X:02 Y:96 P:27 SP:FB CYC:66 SL:147 E94E EA NOP PC:E94F A:FF X:02 Y:96 P:27 SP:FB CYC:72 SL:147 E94F 20 JSR $FA47 PC:E950 A:FF X:02 Y:96 P:27 SP:FB CYC:78 SL:147 FA47 70 BVS $FA65 PC:FA48 A:FF X:02 Y:96 P:27 SP:F9 CYC:96 SL:147 FA49 D0 BNE $FA65 PC:FA4A A:FF X:02 Y:96 P:27 SP:F9 CYC:102 SL:147 FA4B 30 BMI $FA65 PC:FA4C A:FF X:02 Y:96 P:27 SP:F9 CYC:108 SL:147 FA4D 90 BCC $FA65 PC:FA4E A:FF X:02 Y:96 P:27 SP:F9 CYC:114 SL:147 FA4F C9 CMP #$FF PC:FA50 A:FF X:02 Y:96 P:27 SP:F9 CYC:120 SL:147 FA51 D0 BNE $FA65 PC:FA52 A:FF X:02 Y:96 P:27 SP:F9 CYC:126 SL:147 FA53 60 RTS PC:FA54 A:FF X:02 Y:96 P:27 SP:F9 CYC:132 SL:147 E952 AD LDA $0647 PC:E953 A:FF X:02 Y:96 P:27 SP:FB CYC:150 SL:147 E955 C9 CMP #$FF PC:E956 A:FF X:02 Y:96 P:A5 SP:FB CYC:162 SL:147 E957 F0 BEQ $E95B PC:E958 A:FF X:02 Y:96 P:27 SP:FB CYC:168 SL:147 E95B C8 INY PC:E95C A:FF X:02 Y:96 P:27 SP:FB CYC:177 SL:147 E95C A9 LDA #$37 PC:E95D A:FF X:02 Y:97 P:A5 SP:FB CYC:183 SL:147 E95E 8D STA $0647 PC:E95F A:37 X:02 Y:97 P:25 SP:FB CYC:189 SL:147 E961 20 JSR $FA54 PC:E962 A:37 X:02 Y:97 P:25 SP:FB CYC:201 SL:147 FA54 24 BIT $01 PC:FA55 A:37 X:02 Y:97 P:25 SP:F9 CYC:219 SL:147 FA56 A9 LDA #$F0 PC:FA57 A:37 X:02 Y:97 P:E5 SP:F9 CYC:228 SL:147 FA58 60 RTS PC:FA59 A:F0 X:02 Y:97 P:E5 SP:F9 CYC:234 SL:147 E964 C3 DCP $(EA45,x) PC:E965 A:F0 X:02 Y:97 P:E5 SP:FB CYC:252 SL:147 E966 EA NOP PC:E967 A:F0 X:02 Y:97 P:E5 SP:FB CYC:276 SL:147 E967 EA NOP PC:E968 A:F0 X:02 Y:97 P:E5 SP:FB CYC:282 SL:147 E968 EA NOP PC:E969 A:F0 X:02 Y:97 P:E5 SP:FB CYC:288 SL:147 E969 EA NOP PC:E96A A:F0 X:02 Y:97 P:E5 SP:FB CYC:294 SL:147 E96A 20 JSR $FA59 PC:E96B A:F0 X:02 Y:97 P:E5 SP:FB CYC:300 SL:147 FA59 50 BVC $FA65 PC:FA5A A:F0 X:02 Y:97 P:E5 SP:F9 CYC:318 SL:147 FA5B F0 BEQ $FA65 PC:FA5C A:F0 X:02 Y:97 P:E5 SP:F9 CYC:324 SL:147 FA5D 10 BPL $FA65 PC:FA5E A:F0 X:02 Y:97 P:E5 SP:F9 CYC:330 SL:147 FA5F 90 BCC $FA65 PC:FA60 A:F0 X:02 Y:97 P:E5 SP:F9 CYC:336 SL:147 FA61 C9 CMP #$F0 PC:FA62 A:F0 X:02 Y:97 P:E5 SP:F9 CYC:1 SL:148 FA63 F0 BEQ $FA67 PC:FA64 A:F0 X:02 Y:97 P:67 SP:F9 CYC:7 SL:148 FA67 60 RTS PC:FA68 A:F0 X:02 Y:97 P:67 SP:F9 CYC:16 SL:148 E96D AD LDA $0647 PC:E96E A:F0 X:02 Y:97 P:67 SP:FB CYC:34 SL:148 E970 C9 CMP #$36 PC:E971 A:36 X:02 Y:97 P:65 SP:FB CYC:46 SL:148 E972 F0 BEQ $E976 PC:E973 A:36 X:02 Y:97 P:67 SP:FB CYC:52 SL:148 E976 C8 INY PC:E977 A:36 X:02 Y:97 P:67 SP:FB CYC:61 SL:148 E977 A9 LDA #$EB PC:E978 A:36 X:02 Y:98 P:E5 SP:FB CYC:67 SL:148 E979 85 STA $47 PC:E97A A:EB X:02 Y:98 P:E5 SP:FB CYC:73 SL:148 E97B 20 JSR $FA31 PC:E97C A:EB X:02 Y:98 P:E5 SP:FB CYC:82 SL:148 FA31 24 BIT $01 PC:FA32 A:EB X:02 Y:98 P:E5 SP:F9 CYC:100 SL:148 FA33 18 CLC PC:FA34 A:EB X:02 Y:98 P:E5 SP:F9 CYC:109 SL:148 FA34 A9 LDA #$40 PC:FA35 A:EB X:02 Y:98 P:E4 SP:F9 CYC:115 SL:148 FA36 60 RTS PC:FA37 A:40 X:02 Y:98 P:64 SP:F9 CYC:121 SL:148 E97E C7 DCP $47 PC:E97F A:40 X:02 Y:98 P:64 SP:FB CYC:139 SL:148 E980 EA NOP PC:E981 A:40 X:02 Y:98 P:64 SP:FB CYC:154 SL:148 E981 EA NOP PC:E982 A:40 X:02 Y:98 P:64 SP:FB CYC:160 SL:148 E982 EA NOP PC:E983 A:40 X:02 Y:98 P:64 SP:FB CYC:166 SL:148 E983 EA NOP PC:E984 A:40 X:02 Y:98 P:64 SP:FB CYC:172 SL:148 E984 20 JSR $FA37 PC:E985 A:40 X:02 Y:98 P:64 SP:FB CYC:178 SL:148 FA37 50 BVC $FA65 PC:FA38 A:40 X:02 Y:98 P:64 SP:F9 CYC:196 SL:148 FA39 B0 BCS $FA65 PC:FA3A A:40 X:02 Y:98 P:64 SP:F9 CYC:202 SL:148 FA3B 30 BMI $FA65 PC:FA3C A:40 X:02 Y:98 P:64 SP:F9 CYC:208 SL:148 FA3D C9 CMP #$40 PC:FA3E A:40 X:02 Y:98 P:64 SP:F9 CYC:214 SL:148 FA3F D0 BNE $FA65 PC:FA40 A:40 X:02 Y:98 P:67 SP:F9 CYC:220 SL:148 FA41 60 RTS PC:FA42 A:40 X:02 Y:98 P:67 SP:F9 CYC:226 SL:148 E987 A5 LDA $47 PC:E988 A:40 X:02 Y:98 P:67 SP:FB CYC:244 SL:148 E989 C9 CMP #$EA PC:E98A A:EA X:02 Y:98 P:E5 SP:FB CYC:253 SL:148 E98B F0 BEQ $E98F PC:E98C A:EA X:02 Y:98 P:67 SP:FB CYC:259 SL:148 E98F C8 INY PC:E990 A:EA X:02 Y:98 P:67 SP:FB CYC:268 SL:148 E990 A9 LDA #$00 PC:E991 A:EA X:02 Y:99 P:E5 SP:FB CYC:274 SL:148 E992 85 STA $47 PC:E993 A:00 X:02 Y:99 P:67 SP:FB CYC:280 SL:148 E994 20 JSR $FA42 PC:E995 A:00 X:02 Y:99 P:67 SP:FB CYC:289 SL:148 FA42 B8 CLV PC:FA43 A:00 X:02 Y:99 P:67 SP:F9 CYC:307 SL:148 FA43 38 SEC PC:FA44 A:00 X:02 Y:99 P:27 SP:F9 CYC:313 SL:148 FA44 A9 LDA #$FF PC:FA45 A:00 X:02 Y:99 P:27 SP:F9 CYC:319 SL:148 FA46 60 RTS PC:FA47 A:FF X:02 Y:99 P:A5 SP:F9 CYC:325 SL:148 E997 C7 DCP $47 PC:E998 A:FF X:02 Y:99 P:A5 SP:FB CYC:2 SL:149 E999 EA NOP PC:E99A A:FF X:02 Y:99 P:27 SP:FB CYC:17 SL:149 E99A EA NOP PC:E99B A:FF X:02 Y:99 P:27 SP:FB CYC:23 SL:149 E99B EA NOP PC:E99C A:FF X:02 Y:99 P:27 SP:FB CYC:29 SL:149 E99C EA NOP PC:E99D A:FF X:02 Y:99 P:27 SP:FB CYC:35 SL:149 E99D 20 JSR $FA47 PC:E99E A:FF X:02 Y:99 P:27 SP:FB CYC:41 SL:149 FA47 70 BVS $FA65 PC:FA48 A:FF X:02 Y:99 P:27 SP:F9 CYC:59 SL:149 FA49 D0 BNE $FA65 PC:FA4A A:FF X:02 Y:99 P:27 SP:F9 CYC:65 SL:149 FA4B 30 BMI $FA65 PC:FA4C A:FF X:02 Y:99 P:27 SP:F9 CYC:71 SL:149 FA4D 90 BCC $FA65 PC:FA4E A:FF X:02 Y:99 P:27 SP:F9 CYC:77 SL:149 FA4F C9 CMP #$FF PC:FA50 A:FF X:02 Y:99 P:27 SP:F9 CYC:83 SL:149 FA51 D0 BNE $FA65 PC:FA52 A:FF X:02 Y:99 P:27 SP:F9 CYC:89 SL:149 FA53 60 RTS PC:FA54 A:FF X:02 Y:99 P:27 SP:F9 CYC:95 SL:149 E9A0 A5 LDA $47 PC:E9A1 A:FF X:02 Y:99 P:27 SP:FB CYC:113 SL:149 E9A2 C9 CMP #$FF PC:E9A3 A:FF X:02 Y:99 P:A5 SP:FB CYC:122 SL:149 E9A4 F0 BEQ $E9A8 PC:E9A5 A:FF X:02 Y:99 P:27 SP:FB CYC:128 SL:149 E9A8 C8 INY PC:E9A9 A:FF X:02 Y:99 P:27 SP:FB CYC:137 SL:149 E9A9 A9 LDA #$37 PC:E9AA A:FF X:02 Y:9A P:A5 SP:FB CYC:143 SL:149 E9AB 85 STA $47 PC:E9AC A:37 X:02 Y:9A P:25 SP:FB CYC:149 SL:149 E9AD 20 JSR $FA54 PC:E9AE A:37 X:02 Y:9A P:25 SP:FB CYC:158 SL:149 FA54 24 BIT $01 PC:FA55 A:37 X:02 Y:9A P:25 SP:F9 CYC:176 SL:149 FA56 A9 LDA #$F0 PC:FA57 A:37 X:02 Y:9A P:E5 SP:F9 CYC:185 SL:149 FA58 60 RTS PC:FA59 A:F0 X:02 Y:9A P:E5 SP:F9 CYC:191 SL:149 E9B0 C7 DCP $47 PC:E9B1 A:F0 X:02 Y:9A P:E5 SP:FB CYC:209 SL:149 E9B2 EA NOP PC:E9B3 A:F0 X:02 Y:9A P:E5 SP:FB CYC:224 SL:149 E9B3 EA NOP PC:E9B4 A:F0 X:02 Y:9A P:E5 SP:FB CYC:230 SL:149 E9B4 EA NOP PC:E9B5 A:F0 X:02 Y:9A P:E5 SP:FB CYC:236 SL:149 E9B5 EA NOP PC:E9B6 A:F0 X:02 Y:9A P:E5 SP:FB CYC:242 SL:149 E9B6 20 JSR $FA59 PC:E9B7 A:F0 X:02 Y:9A P:E5 SP:FB CYC:248 SL:149 FA59 50 BVC $FA65 PC:FA5A A:F0 X:02 Y:9A P:E5 SP:F9 CYC:266 SL:149 FA5B F0 BEQ $FA65 PC:FA5C A:F0 X:02 Y:9A P:E5 SP:F9 CYC:272 SL:149 FA5D 10 BPL $FA65 PC:FA5E A:F0 X:02 Y:9A P:E5 SP:F9 CYC:278 SL:149 FA5F 90 BCC $FA65 PC:FA60 A:F0 X:02 Y:9A P:E5 SP:F9 CYC:284 SL:149 FA61 C9 CMP #$F0 PC:FA62 A:F0 X:02 Y:9A P:E5 SP:F9 CYC:290 SL:149 FA63 F0 BEQ $FA67 PC:FA64 A:F0 X:02 Y:9A P:67 SP:F9 CYC:296 SL:149 FA67 60 RTS PC:FA68 A:F0 X:02 Y:9A P:67 SP:F9 CYC:305 SL:149 E9B9 A5 LDA $47 PC:E9BA A:F0 X:02 Y:9A P:67 SP:FB CYC:323 SL:149 E9BB C9 CMP #$36 PC:E9BC A:36 X:02 Y:9A P:65 SP:FB CYC:332 SL:149 E9BD F0 BEQ $E9C1 PC:E9BE A:36 X:02 Y:9A P:67 SP:FB CYC:338 SL:149 E9C1 C8 INY PC:E9C2 A:36 X:02 Y:9A P:67 SP:FB CYC:6 SL:150 E9C2 A9 LDA #$EB PC:E9C3 A:36 X:02 Y:9B P:E5 SP:FB CYC:12 SL:150 E9C4 8D STA $0647 PC:E9C5 A:EB X:02 Y:9B P:E5 SP:FB CYC:18 SL:150 E9C7 20 JSR $FA31 PC:E9C8 A:EB X:02 Y:9B P:E5 SP:FB CYC:30 SL:150 FA31 24 BIT $01 PC:FA32 A:EB X:02 Y:9B P:E5 SP:F9 CYC:48 SL:150 FA33 18 CLC PC:FA34 A:EB X:02 Y:9B P:E5 SP:F9 CYC:57 SL:150 FA34 A9 LDA #$40 PC:FA35 A:EB X:02 Y:9B P:E4 SP:F9 CYC:63 SL:150 FA36 60 RTS PC:FA37 A:40 X:02 Y:9B P:64 SP:F9 CYC:69 SL:150 E9CA CF DCP $0647 PC:E9CB A:40 X:02 Y:9B P:64 SP:FB CYC:87 SL:150 E9CD EA NOP PC:E9CE A:40 X:02 Y:9B P:64 SP:FB CYC:105 SL:150 E9CE EA NOP PC:E9CF A:40 X:02 Y:9B P:64 SP:FB CYC:111 SL:150 E9CF EA NOP PC:E9D0 A:40 X:02 Y:9B P:64 SP:FB CYC:117 SL:150 E9D0 EA NOP PC:E9D1 A:40 X:02 Y:9B P:64 SP:FB CYC:123 SL:150 E9D1 20 JSR $FA37 PC:E9D2 A:40 X:02 Y:9B P:64 SP:FB CYC:129 SL:150 FA37 50 BVC $FA65 PC:FA38 A:40 X:02 Y:9B P:64 SP:F9 CYC:147 SL:150 FA39 B0 BCS $FA65 PC:FA3A A:40 X:02 Y:9B P:64 SP:F9 CYC:153 SL:150 FA3B 30 BMI $FA65 PC:FA3C A:40 X:02 Y:9B P:64 SP:F9 CYC:159 SL:150 FA3D C9 CMP #$40 PC:FA3E A:40 X:02 Y:9B P:64 SP:F9 CYC:165 SL:150 FA3F D0 BNE $FA65 PC:FA40 A:40 X:02 Y:9B P:67 SP:F9 CYC:171 SL:150 FA41 60 RTS PC:FA42 A:40 X:02 Y:9B P:67 SP:F9 CYC:177 SL:150 E9D4 AD LDA $0647 PC:E9D5 A:40 X:02 Y:9B P:67 SP:FB CYC:195 SL:150 E9D7 C9 CMP #$EA PC:E9D8 A:EA X:02 Y:9B P:E5 SP:FB CYC:207 SL:150 E9D9 F0 BEQ $E9DD PC:E9DA A:EA X:02 Y:9B P:67 SP:FB CYC:213 SL:150 E9DD C8 INY PC:E9DE A:EA X:02 Y:9B P:67 SP:FB CYC:222 SL:150 E9DE A9 LDA #$00 PC:E9DF A:EA X:02 Y:9C P:E5 SP:FB CYC:228 SL:150 E9E0 8D STA $0647 PC:E9E1 A:00 X:02 Y:9C P:67 SP:FB CYC:234 SL:150 E9E3 20 JSR $FA42 PC:E9E4 A:00 X:02 Y:9C P:67 SP:FB CYC:246 SL:150 FA42 B8 CLV PC:FA43 A:00 X:02 Y:9C P:67 SP:F9 CYC:264 SL:150 FA43 38 SEC PC:FA44 A:00 X:02 Y:9C P:27 SP:F9 CYC:270 SL:150 FA44 A9 LDA #$FF PC:FA45 A:00 X:02 Y:9C P:27 SP:F9 CYC:276 SL:150 FA46 60 RTS PC:FA47 A:FF X:02 Y:9C P:A5 SP:F9 CYC:282 SL:150 E9E6 CF DCP $0647 PC:E9E7 A:FF X:02 Y:9C P:A5 SP:FB CYC:300 SL:150 E9E9 EA NOP PC:E9EA A:FF X:02 Y:9C P:27 SP:FB CYC:318 SL:150 E9EA EA NOP PC:E9EB A:FF X:02 Y:9C P:27 SP:FB CYC:324 SL:150 E9EB EA NOP PC:E9EC A:FF X:02 Y:9C P:27 SP:FB CYC:330 SL:150 E9EC EA NOP PC:E9ED A:FF X:02 Y:9C P:27 SP:FB CYC:336 SL:150 E9ED 20 JSR $FA47 PC:E9EE A:FF X:02 Y:9C P:27 SP:FB CYC:1 SL:151 FA47 70 BVS $FA65 PC:FA48 A:FF X:02 Y:9C P:27 SP:F9 CYC:19 SL:151 FA49 D0 BNE $FA65 PC:FA4A A:FF X:02 Y:9C P:27 SP:F9 CYC:25 SL:151 FA4B 30 BMI $FA65 PC:FA4C A:FF X:02 Y:9C P:27 SP:F9 CYC:31 SL:151 FA4D 90 BCC $FA65 PC:FA4E A:FF X:02 Y:9C P:27 SP:F9 CYC:37 SL:151 FA4F C9 CMP #$FF PC:FA50 A:FF X:02 Y:9C P:27 SP:F9 CYC:43 SL:151 FA51 D0 BNE $FA65 PC:FA52 A:FF X:02 Y:9C P:27 SP:F9 CYC:49 SL:151 FA53 60 RTS PC:FA54 A:FF X:02 Y:9C P:27 SP:F9 CYC:55 SL:151 E9F0 AD LDA $0647 PC:E9F1 A:FF X:02 Y:9C P:27 SP:FB CYC:73 SL:151 E9F3 C9 CMP #$FF PC:E9F4 A:FF X:02 Y:9C P:A5 SP:FB CYC:85 SL:151 E9F5 F0 BEQ $E9F9 PC:E9F6 A:FF X:02 Y:9C P:27 SP:FB CYC:91 SL:151 E9F9 C8 INY PC:E9FA A:FF X:02 Y:9C P:27 SP:FB CYC:100 SL:151 E9FA A9 LDA #$37 PC:E9FB A:FF X:02 Y:9D P:A5 SP:FB CYC:106 SL:151 E9FC 8D STA $0647 PC:E9FD A:37 X:02 Y:9D P:25 SP:FB CYC:112 SL:151 E9FF 20 JSR $FA54 PC:EA00 A:37 X:02 Y:9D P:25 SP:FB CYC:124 SL:151 FA54 24 BIT $01 PC:FA55 A:37 X:02 Y:9D P:25 SP:F9 CYC:142 SL:151 FA56 A9 LDA #$F0 PC:FA57 A:37 X:02 Y:9D P:E5 SP:F9 CYC:151 SL:151 FA58 60 RTS PC:FA59 A:F0 X:02 Y:9D P:E5 SP:F9 CYC:157 SL:151 EA02 CF DCP $0647 PC:EA03 A:F0 X:02 Y:9D P:E5 SP:FB CYC:175 SL:151 EA05 EA NOP PC:EA06 A:F0 X:02 Y:9D P:E5 SP:FB CYC:193 SL:151 EA06 EA NOP PC:EA07 A:F0 X:02 Y:9D P:E5 SP:FB CYC:199 SL:151 EA07 EA NOP PC:EA08 A:F0 X:02 Y:9D P:E5 SP:FB CYC:205 SL:151 EA08 EA NOP PC:EA09 A:F0 X:02 Y:9D P:E5 SP:FB CYC:211 SL:151 EA09 20 JSR $FA59 PC:EA0A A:F0 X:02 Y:9D P:E5 SP:FB CYC:217 SL:151 FA59 50 BVC $FA65 PC:FA5A A:F0 X:02 Y:9D P:E5 SP:F9 CYC:235 SL:151 FA5B F0 BEQ $FA65 PC:FA5C A:F0 X:02 Y:9D P:E5 SP:F9 CYC:241 SL:151 FA5D 10 BPL $FA65 PC:FA5E A:F0 X:02 Y:9D P:E5 SP:F9 CYC:247 SL:151 FA5F 90 BCC $FA65 PC:FA60 A:F0 X:02 Y:9D P:E5 SP:F9 CYC:253 SL:151 FA61 C9 CMP #$F0 PC:FA62 A:F0 X:02 Y:9D P:E5 SP:F9 CYC:259 SL:151 FA63 F0 BEQ $FA67 PC:FA64 A:F0 X:02 Y:9D P:67 SP:F9 CYC:265 SL:151 FA67 60 RTS PC:FA68 A:F0 X:02 Y:9D P:67 SP:F9 CYC:274 SL:151 EA0C AD LDA $0647 PC:EA0D A:F0 X:02 Y:9D P:67 SP:FB CYC:292 SL:151 EA0F C9 CMP #$36 PC:EA10 A:36 X:02 Y:9D P:65 SP:FB CYC:304 SL:151 EA11 F0 BEQ $EA15 PC:EA12 A:36 X:02 Y:9D P:67 SP:FB CYC:310 SL:151 EA15 A9 LDA #$EB PC:EA16 A:36 X:02 Y:9D P:67 SP:FB CYC:319 SL:151 EA17 8D STA $0647 PC:EA18 A:EB X:02 Y:9D P:E5 SP:FB CYC:325 SL:151 EA1A A9 LDA #$48 PC:EA1B A:EB X:02 Y:9D P:E5 SP:FB CYC:337 SL:151 EA1C 85 STA $45 PC:EA1D A:48 X:02 Y:9D P:65 SP:FB CYC:2 SL:152 EA1E A9 LDA #$05 PC:EA1F A:48 X:02 Y:9D P:65 SP:FB CYC:11 SL:152 EA20 85 STA $46 PC:EA21 A:05 X:02 Y:9D P:65 SP:FB CYC:17 SL:152 EA22 A0 LDY #$FF PC:EA23 A:05 X:02 Y:9D P:65 SP:FB CYC:26 SL:152 EA24 20 JSR $FA31 PC:EA25 A:05 X:02 Y:FF P:E5 SP:FB CYC:32 SL:152 FA31 24 BIT $01 PC:FA32 A:05 X:02 Y:FF P:E5 SP:F9 CYC:50 SL:152 FA33 18 CLC PC:FA34 A:05 X:02 Y:FF P:E5 SP:F9 CYC:59 SL:152 FA34 A9 LDA #$40 PC:FA35 A:05 X:02 Y:FF P:E4 SP:F9 CYC:65 SL:152 FA36 60 RTS PC:FA37 A:40 X:02 Y:FF P:64 SP:F9 CYC:71 SL:152 EA27 D3 DCP ($45), y PC:EA28 A:40 X:02 Y:FF P:64 SP:FB CYC:89 SL:152 EA29 EA NOP PC:EA2A A:40 X:02 Y:FF P:64 SP:FB CYC:113 SL:152 EA2A EA NOP PC:EA2B A:40 X:02 Y:FF P:64 SP:FB CYC:119 SL:152 EA2B 08 PHP PC:EA2C A:40 X:02 Y:FF P:64 SP:FB CYC:125 SL:152 EA2C 48 PHA PC:EA2D A:40 X:02 Y:FF P:64 SP:FA CYC:134 SL:152 EA2D A0 LDY #$9E PC:EA2E A:40 X:02 Y:FF P:64 SP:F9 CYC:143 SL:152 EA2F 68 PLA PC:EA30 A:40 X:02 Y:9E P:E4 SP:F9 CYC:149 SL:152 EA30 28 PLP PC:EA31 A:40 X:02 Y:9E P:64 SP:FA CYC:161 SL:152 EA31 20 JSR $FA37 PC:EA32 A:40 X:02 Y:9E P:64 SP:FB CYC:173 SL:152 FA37 50 BVC $FA65 PC:FA38 A:40 X:02 Y:9E P:64 SP:F9 CYC:191 SL:152 FA39 B0 BCS $FA65 PC:FA3A A:40 X:02 Y:9E P:64 SP:F9 CYC:197 SL:152 FA3B 30 BMI $FA65 PC:FA3C A:40 X:02 Y:9E P:64 SP:F9 CYC:203 SL:152 FA3D C9 CMP #$40 PC:FA3E A:40 X:02 Y:9E P:64 SP:F9 CYC:209 SL:152 FA3F D0 BNE $FA65 PC:FA40 A:40 X:02 Y:9E P:67 SP:F9 CYC:215 SL:152 FA41 60 RTS PC:FA42 A:40 X:02 Y:9E P:67 SP:F9 CYC:221 SL:152 EA34 AD LDA $0647 PC:EA35 A:40 X:02 Y:9E P:67 SP:FB CYC:239 SL:152 EA37 C9 CMP #$EA PC:EA38 A:EA X:02 Y:9E P:E5 SP:FB CYC:251 SL:152 EA39 F0 BEQ $EA3D PC:EA3A A:EA X:02 Y:9E P:67 SP:FB CYC:257 SL:152 EA3D A0 LDY #$FF PC:EA3E A:EA X:02 Y:9E P:67 SP:FB CYC:266 SL:152 EA3F A9 LDA #$00 PC:EA40 A:EA X:02 Y:FF P:E5 SP:FB CYC:272 SL:152 EA41 8D STA $0647 PC:EA42 A:00 X:02 Y:FF P:67 SP:FB CYC:278 SL:152 EA44 20 JSR $FA42 PC:EA45 A:00 X:02 Y:FF P:67 SP:FB CYC:290 SL:152 FA42 B8 CLV PC:FA43 A:00 X:02 Y:FF P:67 SP:F9 CYC:308 SL:152 FA43 38 SEC PC:FA44 A:00 X:02 Y:FF P:27 SP:F9 CYC:314 SL:152 FA44 A9 LDA #$FF PC:FA45 A:00 X:02 Y:FF P:27 SP:F9 CYC:320 SL:152 FA46 60 RTS PC:FA47 A:FF X:02 Y:FF P:A5 SP:F9 CYC:326 SL:152 EA47 D3 DCP ($45), y PC:EA48 A:FF X:02 Y:FF P:A5 SP:FB CYC:3 SL:153 EA49 EA NOP PC:EA4A A:FF X:02 Y:FF P:27 SP:FB CYC:27 SL:153 EA4A EA NOP PC:EA4B A:FF X:02 Y:FF P:27 SP:FB CYC:33 SL:153 EA4B 08 PHP PC:EA4C A:FF X:02 Y:FF P:27 SP:FB CYC:39 SL:153 EA4C 48 PHA PC:EA4D A:FF X:02 Y:FF P:27 SP:FA CYC:48 SL:153 EA4D A0 LDY #$9F PC:EA4E A:FF X:02 Y:FF P:27 SP:F9 CYC:57 SL:153 EA4F 68 PLA PC:EA50 A:FF X:02 Y:9F P:A5 SP:F9 CYC:63 SL:153 EA50 28 PLP PC:EA51 A:FF X:02 Y:9F P:A5 SP:FA CYC:75 SL:153 EA51 20 JSR $FA47 PC:EA52 A:FF X:02 Y:9F P:27 SP:FB CYC:87 SL:153 FA47 70 BVS $FA65 PC:FA48 A:FF X:02 Y:9F P:27 SP:F9 CYC:105 SL:153 FA49 D0 BNE $FA65 PC:FA4A A:FF X:02 Y:9F P:27 SP:F9 CYC:111 SL:153 FA4B 30 BMI $FA65 PC:FA4C A:FF X:02 Y:9F P:27 SP:F9 CYC:117 SL:153 FA4D 90 BCC $FA65 PC:FA4E A:FF X:02 Y:9F P:27 SP:F9 CYC:123 SL:153 FA4F C9 CMP #$FF PC:FA50 A:FF X:02 Y:9F P:27 SP:F9 CYC:129 SL:153 FA51 D0 BNE $FA65 PC:FA52 A:FF X:02 Y:9F P:27 SP:F9 CYC:135 SL:153 FA53 60 RTS PC:FA54 A:FF X:02 Y:9F P:27 SP:F9 CYC:141 SL:153 EA54 AD LDA $0647 PC:EA55 A:FF X:02 Y:9F P:27 SP:FB CYC:159 SL:153 EA57 C9 CMP #$FF PC:EA58 A:FF X:02 Y:9F P:A5 SP:FB CYC:171 SL:153 EA59 F0 BEQ $EA5D PC:EA5A A:FF X:02 Y:9F P:27 SP:FB CYC:177 SL:153 EA5D A0 LDY #$FF PC:EA5E A:FF X:02 Y:9F P:27 SP:FB CYC:186 SL:153 EA5F A9 LDA #$37 PC:EA60 A:FF X:02 Y:FF P:A5 SP:FB CYC:192 SL:153 EA61 8D STA $0647 PC:EA62 A:37 X:02 Y:FF P:25 SP:FB CYC:198 SL:153 EA64 20 JSR $FA54 PC:EA65 A:37 X:02 Y:FF P:25 SP:FB CYC:210 SL:153 FA54 24 BIT $01 PC:FA55 A:37 X:02 Y:FF P:25 SP:F9 CYC:228 SL:153 FA56 A9 LDA #$F0 PC:FA57 A:37 X:02 Y:FF P:E5 SP:F9 CYC:237 SL:153 FA58 60 RTS PC:FA59 A:F0 X:02 Y:FF P:E5 SP:F9 CYC:243 SL:153 EA67 D3 DCP ($45), y PC:EA68 A:F0 X:02 Y:FF P:E5 SP:FB CYC:261 SL:153 EA69 EA NOP PC:EA6A A:F0 X:02 Y:FF P:E5 SP:FB CYC:285 SL:153 EA6A EA NOP PC:EA6B A:F0 X:02 Y:FF P:E5 SP:FB CYC:291 SL:153 EA6B 08 PHP PC:EA6C A:F0 X:02 Y:FF P:E5 SP:FB CYC:297 SL:153 EA6C 48 PHA PC:EA6D A:F0 X:02 Y:FF P:E5 SP:FA CYC:306 SL:153 EA6D A0 LDY #$A0 PC:EA6E A:F0 X:02 Y:FF P:E5 SP:F9 CYC:315 SL:153 EA6F 68 PLA PC:EA70 A:F0 X:02 Y:A0 P:E5 SP:F9 CYC:321 SL:153 EA70 28 PLP PC:EA71 A:F0 X:02 Y:A0 P:E5 SP:FA CYC:333 SL:153 EA71 20 JSR $FA59 PC:EA72 A:F0 X:02 Y:A0 P:E5 SP:FB CYC:4 SL:154 FA59 50 BVC $FA65 PC:FA5A A:F0 X:02 Y:A0 P:E5 SP:F9 CYC:22 SL:154 FA5B F0 BEQ $FA65 PC:FA5C A:F0 X:02 Y:A0 P:E5 SP:F9 CYC:28 SL:154 FA5D 10 BPL $FA65 PC:FA5E A:F0 X:02 Y:A0 P:E5 SP:F9 CYC:34 SL:154 FA5F 90 BCC $FA65 PC:FA60 A:F0 X:02 Y:A0 P:E5 SP:F9 CYC:40 SL:154 FA61 C9 CMP #$F0 PC:FA62 A:F0 X:02 Y:A0 P:E5 SP:F9 CYC:46 SL:154 FA63 F0 BEQ $FA67 PC:FA64 A:F0 X:02 Y:A0 P:67 SP:F9 CYC:52 SL:154 FA67 60 RTS PC:FA68 A:F0 X:02 Y:A0 P:67 SP:F9 CYC:61 SL:154 EA74 AD LDA $0647 PC:EA75 A:F0 X:02 Y:A0 P:67 SP:FB CYC:79 SL:154 EA77 C9 CMP #$36 PC:EA78 A:36 X:02 Y:A0 P:65 SP:FB CYC:91 SL:154 EA79 F0 BEQ $EA7D PC:EA7A A:36 X:02 Y:A0 P:67 SP:FB CYC:97 SL:154 EA7D A0 LDY #$A1 PC:EA7E A:36 X:02 Y:A0 P:67 SP:FB CYC:106 SL:154 EA7F A2 LDX #$FF PC:EA80 A:36 X:02 Y:A1 P:E5 SP:FB CYC:112 SL:154 EA81 A9 LDA #$EB PC:EA82 A:36 X:FF Y:A1 P:E5 SP:FB CYC:118 SL:154 EA83 85 STA $47 PC:EA84 A:EB X:FF Y:A1 P:E5 SP:FB CYC:124 SL:154 EA85 20 JSR $FA31 PC:EA86 A:EB X:FF Y:A1 P:E5 SP:FB CYC:133 SL:154 FA31 24 BIT $01 PC:FA32 A:EB X:FF Y:A1 P:E5 SP:F9 CYC:151 SL:154 FA33 18 CLC PC:FA34 A:EB X:FF Y:A1 P:E5 SP:F9 CYC:160 SL:154 FA34 A9 LDA #$40 PC:FA35 A:EB X:FF Y:A1 P:E4 SP:F9 CYC:166 SL:154 FA36 60 RTS PC:FA37 A:40 X:FF Y:A1 P:64 SP:F9 CYC:172 SL:154 EA88 D7 DCP $48,x PC:EA89 A:40 X:FF Y:A1 P:64 SP:FB CYC:190 SL:154 EA8A EA NOP PC:EA8B A:40 X:FF Y:A1 P:64 SP:FB CYC:208 SL:154 EA8B EA NOP PC:EA8C A:40 X:FF Y:A1 P:64 SP:FB CYC:214 SL:154 EA8C EA NOP PC:EA8D A:40 X:FF Y:A1 P:64 SP:FB CYC:220 SL:154 EA8D EA NOP PC:EA8E A:40 X:FF Y:A1 P:64 SP:FB CYC:226 SL:154 EA8E 20 JSR $FA37 PC:EA8F A:40 X:FF Y:A1 P:64 SP:FB CYC:232 SL:154 FA37 50 BVC $FA65 PC:FA38 A:40 X:FF Y:A1 P:64 SP:F9 CYC:250 SL:154 FA39 B0 BCS $FA65 PC:FA3A A:40 X:FF Y:A1 P:64 SP:F9 CYC:256 SL:154 FA3B 30 BMI $FA65 PC:FA3C A:40 X:FF Y:A1 P:64 SP:F9 CYC:262 SL:154 FA3D C9 CMP #$40 PC:FA3E A:40 X:FF Y:A1 P:64 SP:F9 CYC:268 SL:154 FA3F D0 BNE $FA65 PC:FA40 A:40 X:FF Y:A1 P:67 SP:F9 CYC:274 SL:154 FA41 60 RTS PC:FA42 A:40 X:FF Y:A1 P:67 SP:F9 CYC:280 SL:154 EA91 A5 LDA $47 PC:EA92 A:40 X:FF Y:A1 P:67 SP:FB CYC:298 SL:154 EA93 C9 CMP #$EA PC:EA94 A:EA X:FF Y:A1 P:E5 SP:FB CYC:307 SL:154 EA95 F0 BEQ $EA99 PC:EA96 A:EA X:FF Y:A1 P:67 SP:FB CYC:313 SL:154 EA99 C8 INY PC:EA9A A:EA X:FF Y:A1 P:67 SP:FB CYC:322 SL:154 EA9A A9 LDA #$00 PC:EA9B A:EA X:FF Y:A2 P:E5 SP:FB CYC:328 SL:154 EA9C 85 STA $47 PC:EA9D A:00 X:FF Y:A2 P:67 SP:FB CYC:334 SL:154 EA9E 20 JSR $FA42 PC:EA9F A:00 X:FF Y:A2 P:67 SP:FB CYC:2 SL:155 FA42 B8 CLV PC:FA43 A:00 X:FF Y:A2 P:67 SP:F9 CYC:20 SL:155 FA43 38 SEC PC:FA44 A:00 X:FF Y:A2 P:27 SP:F9 CYC:26 SL:155 FA44 A9 LDA #$FF PC:FA45 A:00 X:FF Y:A2 P:27 SP:F9 CYC:32 SL:155 FA46 60 RTS PC:FA47 A:FF X:FF Y:A2 P:A5 SP:F9 CYC:38 SL:155 EAA1 D7 DCP $48,x PC:EAA2 A:FF X:FF Y:A2 P:A5 SP:FB CYC:56 SL:155 EAA3 EA NOP PC:EAA4 A:FF X:FF Y:A2 P:27 SP:FB CYC:74 SL:155 EAA4 EA NOP PC:EAA5 A:FF X:FF Y:A2 P:27 SP:FB CYC:80 SL:155 EAA5 EA NOP PC:EAA6 A:FF X:FF Y:A2 P:27 SP:FB CYC:86 SL:155 EAA6 EA NOP PC:EAA7 A:FF X:FF Y:A2 P:27 SP:FB CYC:92 SL:155 EAA7 20 JSR $FA47 PC:EAA8 A:FF X:FF Y:A2 P:27 SP:FB CYC:98 SL:155 FA47 70 BVS $FA65 PC:FA48 A:FF X:FF Y:A2 P:27 SP:F9 CYC:116 SL:155 FA49 D0 BNE $FA65 PC:FA4A A:FF X:FF Y:A2 P:27 SP:F9 CYC:122 SL:155 FA4B 30 BMI $FA65 PC:FA4C A:FF X:FF Y:A2 P:27 SP:F9 CYC:128 SL:155 FA4D 90 BCC $FA65 PC:FA4E A:FF X:FF Y:A2 P:27 SP:F9 CYC:134 SL:155 FA4F C9 CMP #$FF PC:FA50 A:FF X:FF Y:A2 P:27 SP:F9 CYC:140 SL:155 FA51 D0 BNE $FA65 PC:FA52 A:FF X:FF Y:A2 P:27 SP:F9 CYC:146 SL:155 FA53 60 RTS PC:FA54 A:FF X:FF Y:A2 P:27 SP:F9 CYC:152 SL:155 EAAA A5 LDA $47 PC:EAAB A:FF X:FF Y:A2 P:27 SP:FB CYC:170 SL:155 EAAC C9 CMP #$FF PC:EAAD A:FF X:FF Y:A2 P:A5 SP:FB CYC:179 SL:155 EAAE F0 BEQ $EAB2 PC:EAAF A:FF X:FF Y:A2 P:27 SP:FB CYC:185 SL:155 EAB2 C8 INY PC:EAB3 A:FF X:FF Y:A2 P:27 SP:FB CYC:194 SL:155 EAB3 A9 LDA #$37 PC:EAB4 A:FF X:FF Y:A3 P:A5 SP:FB CYC:200 SL:155 EAB5 85 STA $47 PC:EAB6 A:37 X:FF Y:A3 P:25 SP:FB CYC:206 SL:155 EAB7 20 JSR $FA54 PC:EAB8 A:37 X:FF Y:A3 P:25 SP:FB CYC:215 SL:155 FA54 24 BIT $01 PC:FA55 A:37 X:FF Y:A3 P:25 SP:F9 CYC:233 SL:155 FA56 A9 LDA #$F0 PC:FA57 A:37 X:FF Y:A3 P:E5 SP:F9 CYC:242 SL:155 FA58 60 RTS PC:FA59 A:F0 X:FF Y:A3 P:E5 SP:F9 CYC:248 SL:155 EABA D7 DCP $48,x PC:EABB A:F0 X:FF Y:A3 P:E5 SP:FB CYC:266 SL:155 EABC EA NOP PC:EABD A:F0 X:FF Y:A3 P:E5 SP:FB CYC:284 SL:155 EABD EA NOP PC:EABE A:F0 X:FF Y:A3 P:E5 SP:FB CYC:290 SL:155 EABE EA NOP PC:EABF A:F0 X:FF Y:A3 P:E5 SP:FB CYC:296 SL:155 EABF EA NOP PC:EAC0 A:F0 X:FF Y:A3 P:E5 SP:FB CYC:302 SL:155 EAC0 20 JSR $FA59 PC:EAC1 A:F0 X:FF Y:A3 P:E5 SP:FB CYC:308 SL:155 FA59 50 BVC $FA65 PC:FA5A A:F0 X:FF Y:A3 P:E5 SP:F9 CYC:326 SL:155 FA5B F0 BEQ $FA65 PC:FA5C A:F0 X:FF Y:A3 P:E5 SP:F9 CYC:332 SL:155 FA5D 10 BPL $FA65 PC:FA5E A:F0 X:FF Y:A3 P:E5 SP:F9 CYC:338 SL:155 FA5F 90 BCC $FA65 PC:FA60 A:F0 X:FF Y:A3 P:E5 SP:F9 CYC:3 SL:156 FA61 C9 CMP #$F0 PC:FA62 A:F0 X:FF Y:A3 P:E5 SP:F9 CYC:9 SL:156 FA63 F0 BEQ $FA67 PC:FA64 A:F0 X:FF Y:A3 P:67 SP:F9 CYC:15 SL:156 FA67 60 RTS PC:FA68 A:F0 X:FF Y:A3 P:67 SP:F9 CYC:24 SL:156 EAC3 A5 LDA $47 PC:EAC4 A:F0 X:FF Y:A3 P:67 SP:FB CYC:42 SL:156 EAC5 C9 CMP #$36 PC:EAC6 A:36 X:FF Y:A3 P:65 SP:FB CYC:51 SL:156 EAC7 F0 BEQ $EACB PC:EAC8 A:36 X:FF Y:A3 P:67 SP:FB CYC:57 SL:156 EACB A9 LDA #$EB PC:EACC A:36 X:FF Y:A3 P:67 SP:FB CYC:66 SL:156 EACD 8D STA $0647 PC:EACE A:EB X:FF Y:A3 P:E5 SP:FB CYC:72 SL:156 EAD0 A0 LDY #$FF PC:EAD1 A:EB X:FF Y:A3 P:E5 SP:FB CYC:84 SL:156 EAD2 20 JSR $FA31 PC:EAD3 A:EB X:FF Y:FF P:E5 SP:FB CYC:90 SL:156 FA31 24 BIT $01 PC:FA32 A:EB X:FF Y:FF P:E5 SP:F9 CYC:108 SL:156 FA33 18 CLC PC:FA34 A:EB X:FF Y:FF P:E5 SP:F9 CYC:117 SL:156 FA34 A9 LDA #$40 PC:FA35 A:EB X:FF Y:FF P:E4 SP:F9 CYC:123 SL:156 FA36 60 RTS PC:FA37 A:40 X:FF Y:FF P:64 SP:F9 CYC:129 SL:156 EAD5 DB DCP $0548,y PC:EAD6 A:40 X:FF Y:FF P:64 SP:FB CYC:147 SL:156 EAD8 EA NOP PC:EAD9 A:40 X:FF Y:FF P:64 SP:FB CYC:168 SL:156 EAD9 EA NOP PC:EADA A:40 X:FF Y:FF P:64 SP:FB CYC:174 SL:156 EADA 08 PHP PC:EADB A:40 X:FF Y:FF P:64 SP:FB CYC:180 SL:156 EADB 48 PHA PC:EADC A:40 X:FF Y:FF P:64 SP:FA CYC:189 SL:156 EADC A0 LDY #$A4 PC:EADD A:40 X:FF Y:FF P:64 SP:F9 CYC:198 SL:156 EADE 68 PLA PC:EADF A:40 X:FF Y:A4 P:E4 SP:F9 CYC:204 SL:156 EADF 28 PLP PC:EAE0 A:40 X:FF Y:A4 P:64 SP:FA CYC:216 SL:156 EAE0 20 JSR $FA37 PC:EAE1 A:40 X:FF Y:A4 P:64 SP:FB CYC:228 SL:156 FA37 50 BVC $FA65 PC:FA38 A:40 X:FF Y:A4 P:64 SP:F9 CYC:246 SL:156 FA39 B0 BCS $FA65 PC:FA3A A:40 X:FF Y:A4 P:64 SP:F9 CYC:252 SL:156 FA3B 30 BMI $FA65 PC:FA3C A:40 X:FF Y:A4 P:64 SP:F9 CYC:258 SL:156 FA3D C9 CMP #$40 PC:FA3E A:40 X:FF Y:A4 P:64 SP:F9 CYC:264 SL:156 FA3F D0 BNE $FA65 PC:FA40 A:40 X:FF Y:A4 P:67 SP:F9 CYC:270 SL:156 FA41 60 RTS PC:FA42 A:40 X:FF Y:A4 P:67 SP:F9 CYC:276 SL:156 EAE3 AD LDA $0647 PC:EAE4 A:40 X:FF Y:A4 P:67 SP:FB CYC:294 SL:156 EAE6 C9 CMP #$EA PC:EAE7 A:EA X:FF Y:A4 P:E5 SP:FB CYC:306 SL:156 EAE8 F0 BEQ $EAEC PC:EAE9 A:EA X:FF Y:A4 P:67 SP:FB CYC:312 SL:156 EAEC A0 LDY #$FF PC:EAED A:EA X:FF Y:A4 P:67 SP:FB CYC:321 SL:156 EAEE A9 LDA #$00 PC:EAEF A:EA X:FF Y:FF P:E5 SP:FB CYC:327 SL:156 EAF0 8D STA $0647 PC:EAF1 A:00 X:FF Y:FF P:67 SP:FB CYC:333 SL:156 EAF3 20 JSR $FA42 PC:EAF4 A:00 X:FF Y:FF P:67 SP:FB CYC:4 SL:157 FA42 B8 CLV PC:FA43 A:00 X:FF Y:FF P:67 SP:F9 CYC:22 SL:157 FA43 38 SEC PC:FA44 A:00 X:FF Y:FF P:27 SP:F9 CYC:28 SL:157 FA44 A9 LDA #$FF PC:FA45 A:00 X:FF Y:FF P:27 SP:F9 CYC:34 SL:157 FA46 60 RTS PC:FA47 A:FF X:FF Y:FF P:A5 SP:F9 CYC:40 SL:157 EAF6 DB DCP $0548,y PC:EAF7 A:FF X:FF Y:FF P:A5 SP:FB CYC:58 SL:157 EAF9 EA NOP PC:EAFA A:FF X:FF Y:FF P:27 SP:FB CYC:79 SL:157 EAFA EA NOP PC:EAFB A:FF X:FF Y:FF P:27 SP:FB CYC:85 SL:157 EAFB 08 PHP PC:EAFC A:FF X:FF Y:FF P:27 SP:FB CYC:91 SL:157 EAFC 48 PHA PC:EAFD A:FF X:FF Y:FF P:27 SP:FA CYC:100 SL:157 EAFD A0 LDY #$A5 PC:EAFE A:FF X:FF Y:FF P:27 SP:F9 CYC:109 SL:157 EAFF 68 PLA PC:EB00 A:FF X:FF Y:A5 P:A5 SP:F9 CYC:115 SL:157 EB00 28 PLP PC:EB01 A:FF X:FF Y:A5 P:A5 SP:FA CYC:127 SL:157 EB01 20 JSR $FA47 PC:EB02 A:FF X:FF Y:A5 P:27 SP:FB CYC:139 SL:157 FA47 70 BVS $FA65 PC:FA48 A:FF X:FF Y:A5 P:27 SP:F9 CYC:157 SL:157 FA49 D0 BNE $FA65 PC:FA4A A:FF X:FF Y:A5 P:27 SP:F9 CYC:163 SL:157 FA4B 30 BMI $FA65 PC:FA4C A:FF X:FF Y:A5 P:27 SP:F9 CYC:169 SL:157 FA4D 90 BCC $FA65 PC:FA4E A:FF X:FF Y:A5 P:27 SP:F9 CYC:175 SL:157 FA4F C9 CMP #$FF PC:FA50 A:FF X:FF Y:A5 P:27 SP:F9 CYC:181 SL:157 FA51 D0 BNE $FA65 PC:FA52 A:FF X:FF Y:A5 P:27 SP:F9 CYC:187 SL:157 FA53 60 RTS PC:FA54 A:FF X:FF Y:A5 P:27 SP:F9 CYC:193 SL:157 EB04 AD LDA $0647 PC:EB05 A:FF X:FF Y:A5 P:27 SP:FB CYC:211 SL:157 EB07 C9 CMP #$FF PC:EB08 A:FF X:FF Y:A5 P:A5 SP:FB CYC:223 SL:157 EB09 F0 BEQ $EB0D PC:EB0A A:FF X:FF Y:A5 P:27 SP:FB CYC:229 SL:157 EB0D A0 LDY #$FF PC:EB0E A:FF X:FF Y:A5 P:27 SP:FB CYC:238 SL:157 EB0F A9 LDA #$37 PC:EB10 A:FF X:FF Y:FF P:A5 SP:FB CYC:244 SL:157 EB11 8D STA $0647 PC:EB12 A:37 X:FF Y:FF P:25 SP:FB CYC:250 SL:157 EB14 20 JSR $FA54 PC:EB15 A:37 X:FF Y:FF P:25 SP:FB CYC:262 SL:157 FA54 24 BIT $01 PC:FA55 A:37 X:FF Y:FF P:25 SP:F9 CYC:280 SL:157 FA56 A9 LDA #$F0 PC:FA57 A:37 X:FF Y:FF P:E5 SP:F9 CYC:289 SL:157 FA58 60 RTS PC:FA59 A:F0 X:FF Y:FF P:E5 SP:F9 CYC:295 SL:157 EB17 DB DCP $0548,y PC:EB18 A:F0 X:FF Y:FF P:E5 SP:FB CYC:313 SL:157 EB1A EA NOP PC:EB1B A:F0 X:FF Y:FF P:E5 SP:FB CYC:334 SL:157 EB1B EA NOP PC:EB1C A:F0 X:FF Y:FF P:E5 SP:FB CYC:340 SL:157 EB1C 08 PHP PC:EB1D A:F0 X:FF Y:FF P:E5 SP:FB CYC:5 SL:158 EB1D 48 PHA PC:EB1E A:F0 X:FF Y:FF P:E5 SP:FA CYC:14 SL:158 EB1E A0 LDY #$A6 PC:EB1F A:F0 X:FF Y:FF P:E5 SP:F9 CYC:23 SL:158 EB20 68 PLA PC:EB21 A:F0 X:FF Y:A6 P:E5 SP:F9 CYC:29 SL:158 EB21 28 PLP PC:EB22 A:F0 X:FF Y:A6 P:E5 SP:FA CYC:41 SL:158 EB22 20 JSR $FA59 PC:EB23 A:F0 X:FF Y:A6 P:E5 SP:FB CYC:53 SL:158 FA59 50 BVC $FA65 PC:FA5A A:F0 X:FF Y:A6 P:E5 SP:F9 CYC:71 SL:158 FA5B F0 BEQ $FA65 PC:FA5C A:F0 X:FF Y:A6 P:E5 SP:F9 CYC:77 SL:158 FA5D 10 BPL $FA65 PC:FA5E A:F0 X:FF Y:A6 P:E5 SP:F9 CYC:83 SL:158 FA5F 90 BCC $FA65 PC:FA60 A:F0 X:FF Y:A6 P:E5 SP:F9 CYC:89 SL:158 FA61 C9 CMP #$F0 PC:FA62 A:F0 X:FF Y:A6 P:E5 SP:F9 CYC:95 SL:158 FA63 F0 BEQ $FA67 PC:FA64 A:F0 X:FF Y:A6 P:67 SP:F9 CYC:101 SL:158 FA67 60 RTS PC:FA68 A:F0 X:FF Y:A6 P:67 SP:F9 CYC:110 SL:158 EB25 AD LDA $0647 PC:EB26 A:F0 X:FF Y:A6 P:67 SP:FB CYC:128 SL:158 EB28 C9 CMP #$36 PC:EB29 A:36 X:FF Y:A6 P:65 SP:FB CYC:140 SL:158 EB2A F0 BEQ $EB2E PC:EB2B A:36 X:FF Y:A6 P:67 SP:FB CYC:146 SL:158 EB2E A0 LDY #$A7 PC:EB2F A:36 X:FF Y:A6 P:67 SP:FB CYC:155 SL:158 EB30 A2 LDX #$FF PC:EB31 A:36 X:FF Y:A7 P:E5 SP:FB CYC:161 SL:158 EB32 A9 LDA #$EB PC:EB33 A:36 X:FF Y:A7 P:E5 SP:FB CYC:167 SL:158 EB34 8D STA $0647 PC:EB35 A:EB X:FF Y:A7 P:E5 SP:FB CYC:173 SL:158 EB37 20 JSR $FA31 PC:EB38 A:EB X:FF Y:A7 P:E5 SP:FB CYC:185 SL:158 FA31 24 BIT $01 PC:FA32 A:EB X:FF Y:A7 P:E5 SP:F9 CYC:203 SL:158 FA33 18 CLC PC:FA34 A:EB X:FF Y:A7 P:E5 SP:F9 CYC:212 SL:158 FA34 A9 LDA #$40 PC:FA35 A:EB X:FF Y:A7 P:E4 SP:F9 CYC:218 SL:158 FA36 60 RTS PC:FA37 A:40 X:FF Y:A7 P:64 SP:F9 CYC:224 SL:158 EB3A DF DCP $0548,x PC:EB3B A:40 X:FF Y:A7 P:64 SP:FB CYC:242 SL:158 EB3D EA NOP PC:EB3E A:40 X:FF Y:A7 P:64 SP:FB CYC:263 SL:158 EB3E EA NOP PC:EB3F A:40 X:FF Y:A7 P:64 SP:FB CYC:269 SL:158 EB3F EA NOP PC:EB40 A:40 X:FF Y:A7 P:64 SP:FB CYC:275 SL:158 EB40 EA NOP PC:EB41 A:40 X:FF Y:A7 P:64 SP:FB CYC:281 SL:158 EB41 20 JSR $FA37 PC:EB42 A:40 X:FF Y:A7 P:64 SP:FB CYC:287 SL:158 FA37 50 BVC $FA65 PC:FA38 A:40 X:FF Y:A7 P:64 SP:F9 CYC:305 SL:158 FA39 B0 BCS $FA65 PC:FA3A A:40 X:FF Y:A7 P:64 SP:F9 CYC:311 SL:158 FA3B 30 BMI $FA65 PC:FA3C A:40 X:FF Y:A7 P:64 SP:F9 CYC:317 SL:158 FA3D C9 CMP #$40 PC:FA3E A:40 X:FF Y:A7 P:64 SP:F9 CYC:323 SL:158 FA3F D0 BNE $FA65 PC:FA40 A:40 X:FF Y:A7 P:67 SP:F9 CYC:329 SL:158 FA41 60 RTS PC:FA42 A:40 X:FF Y:A7 P:67 SP:F9 CYC:335 SL:158 EB44 AD LDA $0647 PC:EB45 A:40 X:FF Y:A7 P:67 SP:FB CYC:12 SL:159 EB47 C9 CMP #$EA PC:EB48 A:EA X:FF Y:A7 P:E5 SP:FB CYC:24 SL:159 EB49 F0 BEQ $EB4D PC:EB4A A:EA X:FF Y:A7 P:67 SP:FB CYC:30 SL:159 EB4D C8 INY PC:EB4E A:EA X:FF Y:A7 P:67 SP:FB CYC:39 SL:159 EB4E A9 LDA #$00 PC:EB4F A:EA X:FF Y:A8 P:E5 SP:FB CYC:45 SL:159 EB50 8D STA $0647 PC:EB51 A:00 X:FF Y:A8 P:67 SP:FB CYC:51 SL:159 EB53 20 JSR $FA42 PC:EB54 A:00 X:FF Y:A8 P:67 SP:FB CYC:63 SL:159 FA42 B8 CLV PC:FA43 A:00 X:FF Y:A8 P:67 SP:F9 CYC:81 SL:159 FA43 38 SEC PC:FA44 A:00 X:FF Y:A8 P:27 SP:F9 CYC:87 SL:159 FA44 A9 LDA #$FF PC:FA45 A:00 X:FF Y:A8 P:27 SP:F9 CYC:93 SL:159 FA46 60 RTS PC:FA47 A:FF X:FF Y:A8 P:A5 SP:F9 CYC:99 SL:159 EB56 DF DCP $0548,x PC:EB57 A:FF X:FF Y:A8 P:A5 SP:FB CYC:117 SL:159 EB59 EA NOP PC:EB5A A:FF X:FF Y:A8 P:27 SP:FB CYC:138 SL:159 EB5A EA NOP PC:EB5B A:FF X:FF Y:A8 P:27 SP:FB CYC:144 SL:159 EB5B EA NOP PC:EB5C A:FF X:FF Y:A8 P:27 SP:FB CYC:150 SL:159 EB5C EA NOP PC:EB5D A:FF X:FF Y:A8 P:27 SP:FB CYC:156 SL:159 EB5D 20 JSR $FA47 PC:EB5E A:FF X:FF Y:A8 P:27 SP:FB CYC:162 SL:159 FA47 70 BVS $FA65 PC:FA48 A:FF X:FF Y:A8 P:27 SP:F9 CYC:180 SL:159 FA49 D0 BNE $FA65 PC:FA4A A:FF X:FF Y:A8 P:27 SP:F9 CYC:186 SL:159 FA4B 30 BMI $FA65 PC:FA4C A:FF X:FF Y:A8 P:27 SP:F9 CYC:192 SL:159 FA4D 90 BCC $FA65 PC:FA4E A:FF X:FF Y:A8 P:27 SP:F9 CYC:198 SL:159 FA4F C9 CMP #$FF PC:FA50 A:FF X:FF Y:A8 P:27 SP:F9 CYC:204 SL:159 FA51 D0 BNE $FA65 PC:FA52 A:FF X:FF Y:A8 P:27 SP:F9 CYC:210 SL:159 FA53 60 RTS PC:FA54 A:FF X:FF Y:A8 P:27 SP:F9 CYC:216 SL:159 EB60 AD LDA $0647 PC:EB61 A:FF X:FF Y:A8 P:27 SP:FB CYC:234 SL:159 EB63 C9 CMP #$FF PC:EB64 A:FF X:FF Y:A8 P:A5 SP:FB CYC:246 SL:159 EB65 F0 BEQ $EB69 PC:EB66 A:FF X:FF Y:A8 P:27 SP:FB CYC:252 SL:159 EB69 C8 INY PC:EB6A A:FF X:FF Y:A8 P:27 SP:FB CYC:261 SL:159 EB6A A9 LDA #$37 PC:EB6B A:FF X:FF Y:A9 P:A5 SP:FB CYC:267 SL:159 EB6C 8D STA $0647 PC:EB6D A:37 X:FF Y:A9 P:25 SP:FB CYC:273 SL:159 EB6F 20 JSR $FA54 PC:EB70 A:37 X:FF Y:A9 P:25 SP:FB CYC:285 SL:159 FA54 24 BIT $01 PC:FA55 A:37 X:FF Y:A9 P:25 SP:F9 CYC:303 SL:159 FA56 A9 LDA #$F0 PC:FA57 A:37 X:FF Y:A9 P:E5 SP:F9 CYC:312 SL:159 FA58 60 RTS PC:FA59 A:F0 X:FF Y:A9 P:E5 SP:F9 CYC:318 SL:159 EB72 DF DCP $0548,x PC:EB73 A:F0 X:FF Y:A9 P:E5 SP:FB CYC:336 SL:159 EB75 EA NOP PC:EB76 A:F0 X:FF Y:A9 P:E5 SP:FB CYC:16 SL:160 EB76 EA NOP PC:EB77 A:F0 X:FF Y:A9 P:E5 SP:FB CYC:22 SL:160 EB77 EA NOP PC:EB78 A:F0 X:FF Y:A9 P:E5 SP:FB CYC:28 SL:160 EB78 EA NOP PC:EB79 A:F0 X:FF Y:A9 P:E5 SP:FB CYC:34 SL:160 EB79 20 JSR $FA59 PC:EB7A A:F0 X:FF Y:A9 P:E5 SP:FB CYC:40 SL:160 FA59 50 BVC $FA65 PC:FA5A A:F0 X:FF Y:A9 P:E5 SP:F9 CYC:58 SL:160 FA5B F0 BEQ $FA65 PC:FA5C A:F0 X:FF Y:A9 P:E5 SP:F9 CYC:64 SL:160 FA5D 10 BPL $FA65 PC:FA5E A:F0 X:FF Y:A9 P:E5 SP:F9 CYC:70 SL:160 FA5F 90 BCC $FA65 PC:FA60 A:F0 X:FF Y:A9 P:E5 SP:F9 CYC:76 SL:160 FA61 C9 CMP #$F0 PC:FA62 A:F0 X:FF Y:A9 P:E5 SP:F9 CYC:82 SL:160 FA63 F0 BEQ $FA67 PC:FA64 A:F0 X:FF Y:A9 P:67 SP:F9 CYC:88 SL:160 FA67 60 RTS PC:FA68 A:F0 X:FF Y:A9 P:67 SP:F9 CYC:97 SL:160 EB7C AD LDA $0647 PC:EB7D A:F0 X:FF Y:A9 P:67 SP:FB CYC:115 SL:160 EB7F C9 CMP #$36 PC:EB80 A:36 X:FF Y:A9 P:65 SP:FB CYC:127 SL:160 EB81 F0 BEQ $EB85 PC:EB82 A:36 X:FF Y:A9 P:67 SP:FB CYC:133 SL:160 EB85 60 RTS PC:EB86 A:36 X:FF Y:A9 P:67 SP:FB CYC:142 SL:160 C63E 20 JSR $EB86 PC:C63F A:36 X:FF Y:A9 P:67 SP:FD CYC:160 SL:160 EB86 A9 LDA #$FF PC:EB87 A:36 X:FF Y:A9 P:67 SP:FB CYC:178 SL:160 EB88 85 STA $01 PC:EB89 A:FF X:FF Y:A9 P:E5 SP:FB CYC:184 SL:160 EB8A A0 LDY #$AA PC:EB8B A:FF X:FF Y:A9 P:E5 SP:FB CYC:193 SL:160 EB8C A2 LDX #$02 PC:EB8D A:FF X:FF Y:AA P:E5 SP:FB CYC:199 SL:160 EB8E A9 LDA #$47 PC:EB8F A:FF X:02 Y:AA P:65 SP:FB CYC:205 SL:160 EB90 85 STA $47 PC:EB91 A:47 X:02 Y:AA P:65 SP:FB CYC:211 SL:160 EB92 A9 LDA #$06 PC:EB93 A:47 X:02 Y:AA P:65 SP:FB CYC:220 SL:160 EB94 85 STA $48 PC:EB95 A:06 X:02 Y:AA P:65 SP:FB CYC:226 SL:160 EB96 A9 LDA #$EB PC:EB97 A:06 X:02 Y:AA P:65 SP:FB CYC:235 SL:160 EB98 8D STA $0647 PC:EB99 A:EB X:02 Y:AA P:E5 SP:FB CYC:241 SL:160 EB9B 20 JSR $FAB1 PC:EB9C A:EB X:02 Y:AA P:E5 SP:FB CYC:253 SL:160 FAB1 24 BIT $01 PC:FAB2 A:EB X:02 Y:AA P:E5 SP:F9 CYC:271 SL:160 FAB3 18 CLC PC:FAB4 A:EB X:02 Y:AA P:E5 SP:F9 CYC:280 SL:160 FAB4 A9 LDA #$40 PC:FAB5 A:EB X:02 Y:AA P:E4 SP:F9 CYC:286 SL:160 FAB6 60 RTS PC:FAB7 A:40 X:02 Y:AA P:64 SP:F9 CYC:292 SL:160 EB9E E3 ISC $(EA45,x) PC:EB9F A:40 X:02 Y:AA P:64 SP:FB CYC:310 SL:160 EBA0 EA NOP PC:EBA1 A:53 X:02 Y:AA P:24 SP:FB CYC:334 SL:160 EBA1 EA NOP PC:EBA2 A:53 X:02 Y:AA P:24 SP:FB CYC:340 SL:160 EBA2 EA NOP PC:EBA3 A:53 X:02 Y:AA P:24 SP:FB CYC:5 SL:161 EBA3 EA NOP PC:EBA4 A:53 X:02 Y:AA P:24 SP:FB CYC:11 SL:161 EBA4 20 JSR $FAB7 PC:EBA5 A:53 X:02 Y:AA P:24 SP:FB CYC:17 SL:161 FAB7 70 BVS $FAE6 PC:FAB8 A:53 X:02 Y:AA P:24 SP:F9 CYC:35 SL:161 FAB9 B0 BCS $FAE6 PC:FABA A:53 X:02 Y:AA P:24 SP:F9 CYC:41 SL:161 FABB 30 BMI $FAE6 PC:FABC A:53 X:02 Y:AA P:24 SP:F9 CYC:47 SL:161 FABD C9 CMP #$53 PC:FABE A:53 X:02 Y:AA P:24 SP:F9 CYC:53 SL:161 FABF D0 BNE $FAE6 PC:FAC0 A:53 X:02 Y:AA P:27 SP:F9 CYC:59 SL:161 FAC1 60 RTS PC:FAC2 A:53 X:02 Y:AA P:27 SP:F9 CYC:65 SL:161 EBA7 AD LDA $0647 PC:EBA8 A:53 X:02 Y:AA P:27 SP:FB CYC:83 SL:161 EBAA C9 CMP #$EC PC:EBAB A:EC X:02 Y:AA P:A5 SP:FB CYC:95 SL:161 EBAC F0 BEQ $EBB0 PC:EBAD A:EC X:02 Y:AA P:27 SP:FB CYC:101 SL:161 EBB0 C8 INY PC:EBB1 A:EC X:02 Y:AA P:27 SP:FB CYC:110 SL:161 EBB1 A9 LDA #$FF PC:EBB2 A:EC X:02 Y:AB P:A5 SP:FB CYC:116 SL:161 EBB3 8D STA $0647 PC:EBB4 A:FF X:02 Y:AB P:A5 SP:FB CYC:122 SL:161 EBB6 20 JSR $FAC2 PC:EBB7 A:FF X:02 Y:AB P:A5 SP:FB CYC:134 SL:161 FAC2 B8 CLV PC:FAC3 A:FF X:02 Y:AB P:A5 SP:F9 CYC:152 SL:161 FAC3 38 SEC PC:FAC4 A:FF X:02 Y:AB P:A5 SP:F9 CYC:158 SL:161 FAC4 A9 LDA #$FF PC:FAC5 A:FF X:02 Y:AB P:A5 SP:F9 CYC:164 SL:161 FAC6 60 RTS PC:FAC7 A:FF X:02 Y:AB P:A5 SP:F9 CYC:170 SL:161 EBB9 E3 ISC $(EA45,x) PC:EBBA A:FF X:02 Y:AB P:A5 SP:FB CYC:188 SL:161 EBBB EA NOP PC:EBBC A:FF X:02 Y:AB P:A5 SP:FB CYC:212 SL:161 EBBC EA NOP PC:EBBD A:FF X:02 Y:AB P:A5 SP:FB CYC:218 SL:161 EBBD EA NOP PC:EBBE A:FF X:02 Y:AB P:A5 SP:FB CYC:224 SL:161 EBBE EA NOP PC:EBBF A:FF X:02 Y:AB P:A5 SP:FB CYC:230 SL:161 EBBF 20 JSR $FAC7 PC:EBC0 A:FF X:02 Y:AB P:A5 SP:FB CYC:236 SL:161 FAC7 70 BVS $FAE6 PC:FAC8 A:FF X:02 Y:AB P:A5 SP:F9 CYC:254 SL:161 FAC9 F0 BEQ $FAE6 PC:FACA A:FF X:02 Y:AB P:A5 SP:F9 CYC:260 SL:161 FACB 10 BPL $FAE6 PC:FACC A:FF X:02 Y:AB P:A5 SP:F9 CYC:266 SL:161 FACD 90 BCC $FAE6 PC:FACE A:FF X:02 Y:AB P:A5 SP:F9 CYC:272 SL:161 FACF C9 CMP #$FF PC:FAD0 A:FF X:02 Y:AB P:A5 SP:F9 CYC:278 SL:161 FAD1 D0 BNE $FAE6 PC:FAD2 A:FF X:02 Y:AB P:27 SP:F9 CYC:284 SL:161 FAD3 60 RTS PC:FAD4 A:FF X:02 Y:AB P:27 SP:F9 CYC:290 SL:161 EBC2 AD LDA $0647 PC:EBC3 A:FF X:02 Y:AB P:27 SP:FB CYC:308 SL:161 EBC5 C9 CMP #$00 PC:EBC6 A:00 X:02 Y:AB P:27 SP:FB CYC:320 SL:161 EBC7 F0 BEQ $EBCB PC:EBC8 A:00 X:02 Y:AB P:27 SP:FB CYC:326 SL:161 EBCB C8 INY PC:EBCC A:00 X:02 Y:AB P:27 SP:FB CYC:335 SL:161 EBCC A9 LDA #$37 PC:EBCD A:00 X:02 Y:AC P:A5 SP:FB CYC:0 SL:162 EBCE 8D STA $0647 PC:EBCF A:37 X:02 Y:AC P:25 SP:FB CYC:6 SL:162 EBD1 20 JSR $FAD4 PC:EBD2 A:37 X:02 Y:AC P:25 SP:FB CYC:18 SL:162 FAD4 24 BIT $01 PC:FAD5 A:37 X:02 Y:AC P:25 SP:F9 CYC:36 SL:162 FAD6 38 SEC PC:FAD7 A:37 X:02 Y:AC P:E5 SP:F9 CYC:45 SL:162 FAD7 A9 LDA #$F0 PC:FAD8 A:37 X:02 Y:AC P:E5 SP:F9 CYC:51 SL:162 FAD9 60 RTS PC:FADA A:F0 X:02 Y:AC P:E5 SP:F9 CYC:57 SL:162 EBD4 E3 ISC $(EA45,x) PC:EBD5 A:F0 X:02 Y:AC P:E5 SP:FB CYC:75 SL:162 EBD6 EA NOP PC:EBD7 A:B8 X:02 Y:AC P:A5 SP:FB CYC:99 SL:162 EBD7 EA NOP PC:EBD8 A:B8 X:02 Y:AC P:A5 SP:FB CYC:105 SL:162 EBD8 EA NOP PC:EBD9 A:B8 X:02 Y:AC P:A5 SP:FB CYC:111 SL:162 EBD9 EA NOP PC:EBDA A:B8 X:02 Y:AC P:A5 SP:FB CYC:117 SL:162 EBDA 20 JSR $FADA PC:EBDB A:B8 X:02 Y:AC P:A5 SP:FB CYC:123 SL:162 FADA 70 BVS $FAE6 PC:FADB A:B8 X:02 Y:AC P:A5 SP:F9 CYC:141 SL:162 FADC F0 BEQ $FAE6 PC:FADD A:B8 X:02 Y:AC P:A5 SP:F9 CYC:147 SL:162 FADE 10 BPL $FAE6 PC:FADF A:B8 X:02 Y:AC P:A5 SP:F9 CYC:153 SL:162 FAE0 90 BCC $FAE6 PC:FAE1 A:B8 X:02 Y:AC P:A5 SP:F9 CYC:159 SL:162 FAE2 C9 CMP #$B8 PC:FAE3 A:B8 X:02 Y:AC P:A5 SP:F9 CYC:165 SL:162 FAE4 F0 BEQ $FAE8 PC:FAE5 A:B8 X:02 Y:AC P:27 SP:F9 CYC:171 SL:162 FAE8 60 RTS PC:FAE9 A:B8 X:02 Y:AC P:27 SP:F9 CYC:180 SL:162 EBDD AD LDA $0647 PC:EBDE A:B8 X:02 Y:AC P:27 SP:FB CYC:198 SL:162 EBE0 C9 CMP #$38 PC:EBE1 A:38 X:02 Y:AC P:25 SP:FB CYC:210 SL:162 EBE2 F0 BEQ $EBE6 PC:EBE3 A:38 X:02 Y:AC P:27 SP:FB CYC:216 SL:162 EBE6 C8 INY PC:EBE7 A:38 X:02 Y:AC P:27 SP:FB CYC:225 SL:162 EBE7 A9 LDA #$EB PC:EBE8 A:38 X:02 Y:AD P:A5 SP:FB CYC:231 SL:162 EBE9 85 STA $47 PC:EBEA A:EB X:02 Y:AD P:A5 SP:FB CYC:237 SL:162 EBEB 20 JSR $FAB1 PC:EBEC A:EB X:02 Y:AD P:A5 SP:FB CYC:246 SL:162 FAB1 24 BIT $01 PC:FAB2 A:EB X:02 Y:AD P:A5 SP:F9 CYC:264 SL:162 FAB3 18 CLC PC:FAB4 A:EB X:02 Y:AD P:E5 SP:F9 CYC:273 SL:162 FAB4 A9 LDA #$40 PC:FAB5 A:EB X:02 Y:AD P:E4 SP:F9 CYC:279 SL:162 FAB6 60 RTS PC:FAB7 A:40 X:02 Y:AD P:64 SP:F9 CYC:285 SL:162 EBEE E7 ISC $47 PC:EBEF A:40 X:02 Y:AD P:64 SP:FB CYC:303 SL:162 EBF0 EA NOP PC:EBF1 A:53 X:02 Y:AD P:24 SP:FB CYC:318 SL:162 EBF1 EA NOP PC:EBF2 A:53 X:02 Y:AD P:24 SP:FB CYC:324 SL:162 EBF2 EA NOP PC:EBF3 A:53 X:02 Y:AD P:24 SP:FB CYC:330 SL:162 EBF3 EA NOP PC:EBF4 A:53 X:02 Y:AD P:24 SP:FB CYC:336 SL:162 EBF4 20 JSR $FAB7 PC:EBF5 A:53 X:02 Y:AD P:24 SP:FB CYC:1 SL:163 FAB7 70 BVS $FAE6 PC:FAB8 A:53 X:02 Y:AD P:24 SP:F9 CYC:19 SL:163 FAB9 B0 BCS $FAE6 PC:FABA A:53 X:02 Y:AD P:24 SP:F9 CYC:25 SL:163 FABB 30 BMI $FAE6 PC:FABC A:53 X:02 Y:AD P:24 SP:F9 CYC:31 SL:163 FABD C9 CMP #$53 PC:FABE A:53 X:02 Y:AD P:24 SP:F9 CYC:37 SL:163 FABF D0 BNE $FAE6 PC:FAC0 A:53 X:02 Y:AD P:27 SP:F9 CYC:43 SL:163 FAC1 60 RTS PC:FAC2 A:53 X:02 Y:AD P:27 SP:F9 CYC:49 SL:163 EBF7 A5 LDA $47 PC:EBF8 A:53 X:02 Y:AD P:27 SP:FB CYC:67 SL:163 EBF9 C9 CMP #$EC PC:EBFA A:EC X:02 Y:AD P:A5 SP:FB CYC:76 SL:163 EBFB F0 BEQ $EBFF PC:EBFC A:EC X:02 Y:AD P:27 SP:FB CYC:82 SL:163 EBFF C8 INY PC:EC00 A:EC X:02 Y:AD P:27 SP:FB CYC:91 SL:163 EC00 A9 LDA #$FF PC:EC01 A:EC X:02 Y:AE P:A5 SP:FB CYC:97 SL:163 EC02 85 STA $47 PC:EC03 A:FF X:02 Y:AE P:A5 SP:FB CYC:103 SL:163 EC04 20 JSR $FAC2 PC:EC05 A:FF X:02 Y:AE P:A5 SP:FB CYC:112 SL:163 FAC2 B8 CLV PC:FAC3 A:FF X:02 Y:AE P:A5 SP:F9 CYC:130 SL:163 FAC3 38 SEC PC:FAC4 A:FF X:02 Y:AE P:A5 SP:F9 CYC:136 SL:163 FAC4 A9 LDA #$FF PC:FAC5 A:FF X:02 Y:AE P:A5 SP:F9 CYC:142 SL:163 FAC6 60 RTS PC:FAC7 A:FF X:02 Y:AE P:A5 SP:F9 CYC:148 SL:163 EC07 E7 ISC $47 PC:EC08 A:FF X:02 Y:AE P:A5 SP:FB CYC:166 SL:163 EC09 EA NOP PC:EC0A A:FF X:02 Y:AE P:A5 SP:FB CYC:181 SL:163 EC0A EA NOP PC:EC0B A:FF X:02 Y:AE P:A5 SP:FB CYC:187 SL:163 EC0B EA NOP PC:EC0C A:FF X:02 Y:AE P:A5 SP:FB CYC:193 SL:163 EC0C EA NOP PC:EC0D A:FF X:02 Y:AE P:A5 SP:FB CYC:199 SL:163 EC0D 20 JSR $FAC7 PC:EC0E A:FF X:02 Y:AE P:A5 SP:FB CYC:205 SL:163 FAC7 70 BVS $FAE6 PC:FAC8 A:FF X:02 Y:AE P:A5 SP:F9 CYC:223 SL:163 FAC9 F0 BEQ $FAE6 PC:FACA A:FF X:02 Y:AE P:A5 SP:F9 CYC:229 SL:163 FACB 10 BPL $FAE6 PC:FACC A:FF X:02 Y:AE P:A5 SP:F9 CYC:235 SL:163 FACD 90 BCC $FAE6 PC:FACE A:FF X:02 Y:AE P:A5 SP:F9 CYC:241 SL:163 FACF C9 CMP #$FF PC:FAD0 A:FF X:02 Y:AE P:A5 SP:F9 CYC:247 SL:163 FAD1 D0 BNE $FAE6 PC:FAD2 A:FF X:02 Y:AE P:27 SP:F9 CYC:253 SL:163 FAD3 60 RTS PC:FAD4 A:FF X:02 Y:AE P:27 SP:F9 CYC:259 SL:163 EC10 A5 LDA $47 PC:EC11 A:FF X:02 Y:AE P:27 SP:FB CYC:277 SL:163 EC12 C9 CMP #$00 PC:EC13 A:00 X:02 Y:AE P:27 SP:FB CYC:286 SL:163 EC14 F0 BEQ $EC18 PC:EC15 A:00 X:02 Y:AE P:27 SP:FB CYC:292 SL:163 EC18 C8 INY PC:EC19 A:00 X:02 Y:AE P:27 SP:FB CYC:301 SL:163 EC19 A9 LDA #$37 PC:EC1A A:00 X:02 Y:AF P:A5 SP:FB CYC:307 SL:163 EC1B 85 STA $47 PC:EC1C A:37 X:02 Y:AF P:25 SP:FB CYC:313 SL:163 EC1D 20 JSR $FAD4 PC:EC1E A:37 X:02 Y:AF P:25 SP:FB CYC:322 SL:163 FAD4 24 BIT $01 PC:FAD5 A:37 X:02 Y:AF P:25 SP:F9 CYC:340 SL:163 FAD6 38 SEC PC:FAD7 A:37 X:02 Y:AF P:E5 SP:F9 CYC:8 SL:164 FAD7 A9 LDA #$F0 PC:FAD8 A:37 X:02 Y:AF P:E5 SP:F9 CYC:14 SL:164 FAD9 60 RTS PC:FADA A:F0 X:02 Y:AF P:E5 SP:F9 CYC:20 SL:164 EC20 E7 ISC $47 PC:EC21 A:F0 X:02 Y:AF P:E5 SP:FB CYC:38 SL:164 EC22 EA NOP PC:EC23 A:B8 X:02 Y:AF P:A5 SP:FB CYC:53 SL:164 EC23 EA NOP PC:EC24 A:B8 X:02 Y:AF P:A5 SP:FB CYC:59 SL:164 EC24 EA NOP PC:EC25 A:B8 X:02 Y:AF P:A5 SP:FB CYC:65 SL:164 EC25 EA NOP PC:EC26 A:B8 X:02 Y:AF P:A5 SP:FB CYC:71 SL:164 EC26 20 JSR $FADA PC:EC27 A:B8 X:02 Y:AF P:A5 SP:FB CYC:77 SL:164 FADA 70 BVS $FAE6 PC:FADB A:B8 X:02 Y:AF P:A5 SP:F9 CYC:95 SL:164 FADC F0 BEQ $FAE6 PC:FADD A:B8 X:02 Y:AF P:A5 SP:F9 CYC:101 SL:164 FADE 10 BPL $FAE6 PC:FADF A:B8 X:02 Y:AF P:A5 SP:F9 CYC:107 SL:164 FAE0 90 BCC $FAE6 PC:FAE1 A:B8 X:02 Y:AF P:A5 SP:F9 CYC:113 SL:164 FAE2 C9 CMP #$B8 PC:FAE3 A:B8 X:02 Y:AF P:A5 SP:F9 CYC:119 SL:164 FAE4 F0 BEQ $FAE8 PC:FAE5 A:B8 X:02 Y:AF P:27 SP:F9 CYC:125 SL:164 FAE8 60 RTS PC:FAE9 A:B8 X:02 Y:AF P:27 SP:F9 CYC:134 SL:164 EC29 A5 LDA $47 PC:EC2A A:B8 X:02 Y:AF P:27 SP:FB CYC:152 SL:164 EC2B C9 CMP #$38 PC:EC2C A:38 X:02 Y:AF P:25 SP:FB CYC:161 SL:164 EC2D F0 BEQ $EC31 PC:EC2E A:38 X:02 Y:AF P:27 SP:FB CYC:167 SL:164 EC31 C8 INY PC:EC32 A:38 X:02 Y:AF P:27 SP:FB CYC:176 SL:164 EC32 A9 LDA #$EB PC:EC33 A:38 X:02 Y:B0 P:A5 SP:FB CYC:182 SL:164 EC34 8D STA $0647 PC:EC35 A:EB X:02 Y:B0 P:A5 SP:FB CYC:188 SL:164 EC37 20 JSR $FAB1 PC:EC38 A:EB X:02 Y:B0 P:A5 SP:FB CYC:200 SL:164 FAB1 24 BIT $01 PC:FAB2 A:EB X:02 Y:B0 P:A5 SP:F9 CYC:218 SL:164 FAB3 18 CLC PC:FAB4 A:EB X:02 Y:B0 P:E5 SP:F9 CYC:227 SL:164 FAB4 A9 LDA #$40 PC:FAB5 A:EB X:02 Y:B0 P:E4 SP:F9 CYC:233 SL:164 FAB6 60 RTS PC:FAB7 A:40 X:02 Y:B0 P:64 SP:F9 CYC:239 SL:164 EC3A EF ISC $0647 PC:EC3B A:40 X:02 Y:B0 P:64 SP:FB CYC:257 SL:164 EC3D EA NOP PC:EC3E A:53 X:02 Y:B0 P:24 SP:FB CYC:275 SL:164 EC3E EA NOP PC:EC3F A:53 X:02 Y:B0 P:24 SP:FB CYC:281 SL:164 EC3F EA NOP PC:EC40 A:53 X:02 Y:B0 P:24 SP:FB CYC:287 SL:164 EC40 EA NOP PC:EC41 A:53 X:02 Y:B0 P:24 SP:FB CYC:293 SL:164 EC41 20 JSR $FAB7 PC:EC42 A:53 X:02 Y:B0 P:24 SP:FB CYC:299 SL:164 FAB7 70 BVS $FAE6 PC:FAB8 A:53 X:02 Y:B0 P:24 SP:F9 CYC:317 SL:164 FAB9 B0 BCS $FAE6 PC:FABA A:53 X:02 Y:B0 P:24 SP:F9 CYC:323 SL:164 FABB 30 BMI $FAE6 PC:FABC A:53 X:02 Y:B0 P:24 SP:F9 CYC:329 SL:164 FABD C9 CMP #$53 PC:FABE A:53 X:02 Y:B0 P:24 SP:F9 CYC:335 SL:164 FABF D0 BNE $FAE6 PC:FAC0 A:53 X:02 Y:B0 P:27 SP:F9 CYC:0 SL:165 FAC1 60 RTS PC:FAC2 A:53 X:02 Y:B0 P:27 SP:F9 CYC:6 SL:165 EC44 AD LDA $0647 PC:EC45 A:53 X:02 Y:B0 P:27 SP:FB CYC:24 SL:165 EC47 C9 CMP #$EC PC:EC48 A:EC X:02 Y:B0 P:A5 SP:FB CYC:36 SL:165 EC49 F0 BEQ $EC4D PC:EC4A A:EC X:02 Y:B0 P:27 SP:FB CYC:42 SL:165 EC4D C8 INY PC:EC4E A:EC X:02 Y:B0 P:27 SP:FB CYC:51 SL:165 EC4E A9 LDA #$FF PC:EC4F A:EC X:02 Y:B1 P:A5 SP:FB CYC:57 SL:165 EC50 8D STA $0647 PC:EC51 A:FF X:02 Y:B1 P:A5 SP:FB CYC:63 SL:165 EC53 20 JSR $FAC2 PC:EC54 A:FF X:02 Y:B1 P:A5 SP:FB CYC:75 SL:165 FAC2 B8 CLV PC:FAC3 A:FF X:02 Y:B1 P:A5 SP:F9 CYC:93 SL:165 FAC3 38 SEC PC:FAC4 A:FF X:02 Y:B1 P:A5 SP:F9 CYC:99 SL:165 FAC4 A9 LDA #$FF PC:FAC5 A:FF X:02 Y:B1 P:A5 SP:F9 CYC:105 SL:165 FAC6 60 RTS PC:FAC7 A:FF X:02 Y:B1 P:A5 SP:F9 CYC:111 SL:165 EC56 EF ISC $0647 PC:EC57 A:FF X:02 Y:B1 P:A5 SP:FB CYC:129 SL:165 EC59 EA NOP PC:EC5A A:FF X:02 Y:B1 P:A5 SP:FB CYC:147 SL:165 EC5A EA NOP PC:EC5B A:FF X:02 Y:B1 P:A5 SP:FB CYC:153 SL:165 EC5B EA NOP PC:EC5C A:FF X:02 Y:B1 P:A5 SP:FB CYC:159 SL:165 EC5C EA NOP PC:EC5D A:FF X:02 Y:B1 P:A5 SP:FB CYC:165 SL:165 EC5D 20 JSR $FAC7 PC:EC5E A:FF X:02 Y:B1 P:A5 SP:FB CYC:171 SL:165 FAC7 70 BVS $FAE6 PC:FAC8 A:FF X:02 Y:B1 P:A5 SP:F9 CYC:189 SL:165 FAC9 F0 BEQ $FAE6 PC:FACA A:FF X:02 Y:B1 P:A5 SP:F9 CYC:195 SL:165 FACB 10 BPL $FAE6 PC:FACC A:FF X:02 Y:B1 P:A5 SP:F9 CYC:201 SL:165 FACD 90 BCC $FAE6 PC:FACE A:FF X:02 Y:B1 P:A5 SP:F9 CYC:207 SL:165 FACF C9 CMP #$FF PC:FAD0 A:FF X:02 Y:B1 P:A5 SP:F9 CYC:213 SL:165 FAD1 D0 BNE $FAE6 PC:FAD2 A:FF X:02 Y:B1 P:27 SP:F9 CYC:219 SL:165 FAD3 60 RTS PC:FAD4 A:FF X:02 Y:B1 P:27 SP:F9 CYC:225 SL:165 EC60 AD LDA $0647 PC:EC61 A:FF X:02 Y:B1 P:27 SP:FB CYC:243 SL:165 EC63 C9 CMP #$00 PC:EC64 A:00 X:02 Y:B1 P:27 SP:FB CYC:255 SL:165 EC65 F0 BEQ $EC69 PC:EC66 A:00 X:02 Y:B1 P:27 SP:FB CYC:261 SL:165 EC69 C8 INY PC:EC6A A:00 X:02 Y:B1 P:27 SP:FB CYC:270 SL:165 EC6A A9 LDA #$37 PC:EC6B A:00 X:02 Y:B2 P:A5 SP:FB CYC:276 SL:165 EC6C 8D STA $0647 PC:EC6D A:37 X:02 Y:B2 P:25 SP:FB CYC:282 SL:165 EC6F 20 JSR $FAD4 PC:EC70 A:37 X:02 Y:B2 P:25 SP:FB CYC:294 SL:165 FAD4 24 BIT $01 PC:FAD5 A:37 X:02 Y:B2 P:25 SP:F9 CYC:312 SL:165 FAD6 38 SEC PC:FAD7 A:37 X:02 Y:B2 P:E5 SP:F9 CYC:321 SL:165 FAD7 A9 LDA #$F0 PC:FAD8 A:37 X:02 Y:B2 P:E5 SP:F9 CYC:327 SL:165 FAD9 60 RTS PC:FADA A:F0 X:02 Y:B2 P:E5 SP:F9 CYC:333 SL:165 EC72 EF ISC $0647 PC:EC73 A:F0 X:02 Y:B2 P:E5 SP:FB CYC:10 SL:166 EC75 EA NOP PC:EC76 A:B8 X:02 Y:B2 P:A5 SP:FB CYC:28 SL:166 EC76 EA NOP PC:EC77 A:B8 X:02 Y:B2 P:A5 SP:FB CYC:34 SL:166 EC77 EA NOP PC:EC78 A:B8 X:02 Y:B2 P:A5 SP:FB CYC:40 SL:166 EC78 EA NOP PC:EC79 A:B8 X:02 Y:B2 P:A5 SP:FB CYC:46 SL:166 EC79 20 JSR $FADA PC:EC7A A:B8 X:02 Y:B2 P:A5 SP:FB CYC:52 SL:166 FADA 70 BVS $FAE6 PC:FADB A:B8 X:02 Y:B2 P:A5 SP:F9 CYC:70 SL:166 FADC F0 BEQ $FAE6 PC:FADD A:B8 X:02 Y:B2 P:A5 SP:F9 CYC:76 SL:166 FADE 10 BPL $FAE6 PC:FADF A:B8 X:02 Y:B2 P:A5 SP:F9 CYC:82 SL:166 FAE0 90 BCC $FAE6 PC:FAE1 A:B8 X:02 Y:B2 P:A5 SP:F9 CYC:88 SL:166 FAE2 C9 CMP #$B8 PC:FAE3 A:B8 X:02 Y:B2 P:A5 SP:F9 CYC:94 SL:166 FAE4 F0 BEQ $FAE8 PC:FAE5 A:B8 X:02 Y:B2 P:27 SP:F9 CYC:100 SL:166 FAE8 60 RTS PC:FAE9 A:B8 X:02 Y:B2 P:27 SP:F9 CYC:109 SL:166 EC7C AD LDA $0647 PC:EC7D A:B8 X:02 Y:B2 P:27 SP:FB CYC:127 SL:166 EC7F C9 CMP #$38 PC:EC80 A:38 X:02 Y:B2 P:25 SP:FB CYC:139 SL:166 EC81 F0 BEQ $EC85 PC:EC82 A:38 X:02 Y:B2 P:27 SP:FB CYC:145 SL:166 EC85 A9 LDA #$EB PC:EC86 A:38 X:02 Y:B2 P:27 SP:FB CYC:154 SL:166 EC87 8D STA $0647 PC:EC88 A:EB X:02 Y:B2 P:A5 SP:FB CYC:160 SL:166 EC8A A9 LDA #$48 PC:EC8B A:EB X:02 Y:B2 P:A5 SP:FB CYC:172 SL:166 EC8C 85 STA $45 PC:EC8D A:48 X:02 Y:B2 P:25 SP:FB CYC:178 SL:166 EC8E A9 LDA #$05 PC:EC8F A:48 X:02 Y:B2 P:25 SP:FB CYC:187 SL:166 EC90 85 STA $46 PC:EC91 A:05 X:02 Y:B2 P:25 SP:FB CYC:193 SL:166 EC92 A0 LDY #$FF PC:EC93 A:05 X:02 Y:B2 P:25 SP:FB CYC:202 SL:166 EC94 20 JSR $FAB1 PC:EC95 A:05 X:02 Y:FF P:A5 SP:FB CYC:208 SL:166 FAB1 24 BIT $01 PC:FAB2 A:05 X:02 Y:FF P:A5 SP:F9 CYC:226 SL:166 FAB3 18 CLC PC:FAB4 A:05 X:02 Y:FF P:E5 SP:F9 CYC:235 SL:166 FAB4 A9 LDA #$40 PC:FAB5 A:05 X:02 Y:FF P:E4 SP:F9 CYC:241 SL:166 FAB6 60 RTS PC:FAB7 A:40 X:02 Y:FF P:64 SP:F9 CYC:247 SL:166 EC97 F3 ISC ($45), y PC:EC98 A:40 X:02 Y:FF P:64 SP:FB CYC:265 SL:166 EC99 EA NOP PC:EC9A A:53 X:02 Y:FF P:24 SP:FB CYC:289 SL:166 EC9A EA NOP PC:EC9B A:53 X:02 Y:FF P:24 SP:FB CYC:295 SL:166 EC9B 08 PHP PC:EC9C A:53 X:02 Y:FF P:24 SP:FB CYC:301 SL:166 EC9C 48 PHA PC:EC9D A:53 X:02 Y:FF P:24 SP:FA CYC:310 SL:166 EC9D A0 LDY #$B3 PC:EC9E A:53 X:02 Y:FF P:24 SP:F9 CYC:319 SL:166 EC9F 68 PLA PC:ECA0 A:53 X:02 Y:B3 P:A4 SP:F9 CYC:325 SL:166 ECA0 28 PLP PC:ECA1 A:53 X:02 Y:B3 P:24 SP:FA CYC:337 SL:166 ECA1 20 JSR $FAB7 PC:ECA2 A:53 X:02 Y:B3 P:24 SP:FB CYC:8 SL:167 FAB7 70 BVS $FAE6 PC:FAB8 A:53 X:02 Y:B3 P:24 SP:F9 CYC:26 SL:167 FAB9 B0 BCS $FAE6 PC:FABA A:53 X:02 Y:B3 P:24 SP:F9 CYC:32 SL:167 FABB 30 BMI $FAE6 PC:FABC A:53 X:02 Y:B3 P:24 SP:F9 CYC:38 SL:167 FABD C9 CMP #$53 PC:FABE A:53 X:02 Y:B3 P:24 SP:F9 CYC:44 SL:167 FABF D0 BNE $FAE6 PC:FAC0 A:53 X:02 Y:B3 P:27 SP:F9 CYC:50 SL:167 FAC1 60 RTS PC:FAC2 A:53 X:02 Y:B3 P:27 SP:F9 CYC:56 SL:167 ECA4 AD LDA $0647 PC:ECA5 A:53 X:02 Y:B3 P:27 SP:FB CYC:74 SL:167 ECA7 C9 CMP #$EC PC:ECA8 A:EC X:02 Y:B3 P:A5 SP:FB CYC:86 SL:167 ECA9 F0 BEQ $ECAD PC:ECAA A:EC X:02 Y:B3 P:27 SP:FB CYC:92 SL:167 ECAD A0 LDY #$FF PC:ECAE A:EC X:02 Y:B3 P:27 SP:FB CYC:101 SL:167 ECAF A9 LDA #$FF PC:ECB0 A:EC X:02 Y:FF P:A5 SP:FB CYC:107 SL:167 ECB1 8D STA $0647 PC:ECB2 A:FF X:02 Y:FF P:A5 SP:FB CYC:113 SL:167 ECB4 20 JSR $FAC2 PC:ECB5 A:FF X:02 Y:FF P:A5 SP:FB CYC:125 SL:167 FAC2 B8 CLV PC:FAC3 A:FF X:02 Y:FF P:A5 SP:F9 CYC:143 SL:167 FAC3 38 SEC PC:FAC4 A:FF X:02 Y:FF P:A5 SP:F9 CYC:149 SL:167 FAC4 A9 LDA #$FF PC:FAC5 A:FF X:02 Y:FF P:A5 SP:F9 CYC:155 SL:167 FAC6 60 RTS PC:FAC7 A:FF X:02 Y:FF P:A5 SP:F9 CYC:161 SL:167 ECB7 F3 ISC ($45), y PC:ECB8 A:FF X:02 Y:FF P:A5 SP:FB CYC:179 SL:167 ECB9 EA NOP PC:ECBA A:FF X:02 Y:FF P:A5 SP:FB CYC:203 SL:167 ECBA EA NOP PC:ECBB A:FF X:02 Y:FF P:A5 SP:FB CYC:209 SL:167 ECBB 08 PHP PC:ECBC A:FF X:02 Y:FF P:A5 SP:FB CYC:215 SL:167 ECBC 48 PHA PC:ECBD A:FF X:02 Y:FF P:A5 SP:FA CYC:224 SL:167 ECBD A0 LDY #$B4 PC:ECBE A:FF X:02 Y:FF P:A5 SP:F9 CYC:233 SL:167 ECBF 68 PLA PC:ECC0 A:FF X:02 Y:B4 P:A5 SP:F9 CYC:239 SL:167 ECC0 28 PLP PC:ECC1 A:FF X:02 Y:B4 P:A5 SP:FA CYC:251 SL:167 ECC1 20 JSR $FAC7 PC:ECC2 A:FF X:02 Y:B4 P:A5 SP:FB CYC:263 SL:167 FAC7 70 BVS $FAE6 PC:FAC8 A:FF X:02 Y:B4 P:A5 SP:F9 CYC:281 SL:167 FAC9 F0 BEQ $FAE6 PC:FACA A:FF X:02 Y:B4 P:A5 SP:F9 CYC:287 SL:167 FACB 10 BPL $FAE6 PC:FACC A:FF X:02 Y:B4 P:A5 SP:F9 CYC:293 SL:167 FACD 90 BCC $FAE6 PC:FACE A:FF X:02 Y:B4 P:A5 SP:F9 CYC:299 SL:167 FACF C9 CMP #$FF PC:FAD0 A:FF X:02 Y:B4 P:A5 SP:F9 CYC:305 SL:167 FAD1 D0 BNE $FAE6 PC:FAD2 A:FF X:02 Y:B4 P:27 SP:F9 CYC:311 SL:167 FAD3 60 RTS PC:FAD4 A:FF X:02 Y:B4 P:27 SP:F9 CYC:317 SL:167 ECC4 AD LDA $0647 PC:ECC5 A:FF X:02 Y:B4 P:27 SP:FB CYC:335 SL:167 ECC7 C9 CMP #$00 PC:ECC8 A:00 X:02 Y:B4 P:27 SP:FB CYC:6 SL:168 ECC9 F0 BEQ $ECCD PC:ECCA A:00 X:02 Y:B4 P:27 SP:FB CYC:12 SL:168 ECCD A0 LDY #$FF PC:ECCE A:00 X:02 Y:B4 P:27 SP:FB CYC:21 SL:168 ECCF A9 LDA #$37 PC:ECD0 A:00 X:02 Y:FF P:A5 SP:FB CYC:27 SL:168 ECD1 8D STA $0647 PC:ECD2 A:37 X:02 Y:FF P:25 SP:FB CYC:33 SL:168 ECD4 20 JSR $FAD4 PC:ECD5 A:37 X:02 Y:FF P:25 SP:FB CYC:45 SL:168 FAD4 24 BIT $01 PC:FAD5 A:37 X:02 Y:FF P:25 SP:F9 CYC:63 SL:168 FAD6 38 SEC PC:FAD7 A:37 X:02 Y:FF P:E5 SP:F9 CYC:72 SL:168 FAD7 A9 LDA #$F0 PC:FAD8 A:37 X:02 Y:FF P:E5 SP:F9 CYC:78 SL:168 FAD9 60 RTS PC:FADA A:F0 X:02 Y:FF P:E5 SP:F9 CYC:84 SL:168 ECD7 F3 ISC ($45), y PC:ECD8 A:F0 X:02 Y:FF P:E5 SP:FB CYC:102 SL:168 ECD9 EA NOP PC:ECDA A:B8 X:02 Y:FF P:A5 SP:FB CYC:126 SL:168 ECDA EA NOP PC:ECDB A:B8 X:02 Y:FF P:A5 SP:FB CYC:132 SL:168 ECDB 08 PHP PC:ECDC A:B8 X:02 Y:FF P:A5 SP:FB CYC:138 SL:168 ECDC 48 PHA PC:ECDD A:B8 X:02 Y:FF P:A5 SP:FA CYC:147 SL:168 ECDD A0 LDY #$B5 PC:ECDE A:B8 X:02 Y:FF P:A5 SP:F9 CYC:156 SL:168 ECDF 68 PLA PC:ECE0 A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:162 SL:168 ECE0 28 PLP PC:ECE1 A:B8 X:02 Y:B5 P:A5 SP:FA CYC:174 SL:168 ECE1 20 JSR $FADA PC:ECE2 A:B8 X:02 Y:B5 P:A5 SP:FB CYC:186 SL:168 FADA 70 BVS $FAE6 PC:FADB A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:204 SL:168 FADC F0 BEQ $FAE6 PC:FADD A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:210 SL:168 FADE 10 BPL $FAE6 PC:FADF A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:216 SL:168 FAE0 90 BCC $FAE6 PC:FAE1 A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:222 SL:168 FAE2 C9 CMP #$B8 PC:FAE3 A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:228 SL:168 FAE4 F0 BEQ $FAE8 PC:FAE5 A:B8 X:02 Y:B5 P:27 SP:F9 CYC:234 SL:168 FAE8 60 RTS PC:FAE9 A:B8 X:02 Y:B5 P:27 SP:F9 CYC:243 SL:168 ECE4 AD LDA $0647 PC:ECE5 A:B8 X:02 Y:B5 P:27 SP:FB CYC:261 SL:168 ECE7 C9 CMP #$38 PC:ECE8 A:38 X:02 Y:B5 P:25 SP:FB CYC:273 SL:168 ECE9 F0 BEQ $ECED PC:ECEA A:38 X:02 Y:B5 P:27 SP:FB CYC:279 SL:168 ECED A0 LDY #$B6 PC:ECEE A:38 X:02 Y:B5 P:27 SP:FB CYC:288 SL:168 ECEF A2 LDX #$FF PC:ECF0 A:38 X:02 Y:B6 P:A5 SP:FB CYC:294 SL:168 ECF1 A9 LDA #$EB PC:ECF2 A:38 X:FF Y:B6 P:A5 SP:FB CYC:300 SL:168 ECF3 85 STA $47 PC:ECF4 A:EB X:FF Y:B6 P:A5 SP:FB CYC:306 SL:168 ECF5 20 JSR $FAB1 PC:ECF6 A:EB X:FF Y:B6 P:A5 SP:FB CYC:315 SL:168 FAB1 24 BIT $01 PC:FAB2 A:EB X:FF Y:B6 P:A5 SP:F9 CYC:333 SL:168 FAB3 18 CLC PC:FAB4 A:EB X:FF Y:B6 P:E5 SP:F9 CYC:1 SL:169 FAB4 A9 LDA #$40 PC:FAB5 A:EB X:FF Y:B6 P:E4 SP:F9 CYC:7 SL:169 FAB6 60 RTS PC:FAB7 A:40 X:FF Y:B6 P:64 SP:F9 CYC:13 SL:169 ECF8 F7 ISC $48,x PC:ECF9 A:40 X:FF Y:B6 P:64 SP:FB CYC:31 SL:169 ECFA EA NOP PC:ECFB A:53 X:FF Y:B6 P:24 SP:FB CYC:49 SL:169 ECFB EA NOP PC:ECFC A:53 X:FF Y:B6 P:24 SP:FB CYC:55 SL:169 ECFC EA NOP PC:ECFD A:53 X:FF Y:B6 P:24 SP:FB CYC:61 SL:169 ECFD EA NOP PC:ECFE A:53 X:FF Y:B6 P:24 SP:FB CYC:67 SL:169 ECFE 20 JSR $FAB7 PC:ECFF A:53 X:FF Y:B6 P:24 SP:FB CYC:73 SL:169 FAB7 70 BVS $FAE6 PC:FAB8 A:53 X:FF Y:B6 P:24 SP:F9 CYC:91 SL:169 FAB9 B0 BCS $FAE6 PC:FABA A:53 X:FF Y:B6 P:24 SP:F9 CYC:97 SL:169 FABB 30 BMI $FAE6 PC:FABC A:53 X:FF Y:B6 P:24 SP:F9 CYC:103 SL:169 FABD C9 CMP #$53 PC:FABE A:53 X:FF Y:B6 P:24 SP:F9 CYC:109 SL:169 FABF D0 BNE $FAE6 PC:FAC0 A:53 X:FF Y:B6 P:27 SP:F9 CYC:115 SL:169 FAC1 60 RTS PC:FAC2 A:53 X:FF Y:B6 P:27 SP:F9 CYC:121 SL:169 ED01 A5 LDA $47 PC:ED02 A:53 X:FF Y:B6 P:27 SP:FB CYC:139 SL:169 ED03 C9 CMP #$EC PC:ED04 A:EC X:FF Y:B6 P:A5 SP:FB CYC:148 SL:169 ED05 F0 BEQ $ED09 PC:ED06 A:EC X:FF Y:B6 P:27 SP:FB CYC:154 SL:169 ED09 C8 INY PC:ED0A A:EC X:FF Y:B6 P:27 SP:FB CYC:163 SL:169 ED0A A9 LDA #$FF PC:ED0B A:EC X:FF Y:B7 P:A5 SP:FB CYC:169 SL:169 ED0C 85 STA $47 PC:ED0D A:FF X:FF Y:B7 P:A5 SP:FB CYC:175 SL:169 ED0E 20 JSR $FAC2 PC:ED0F A:FF X:FF Y:B7 P:A5 SP:FB CYC:184 SL:169 FAC2 B8 CLV PC:FAC3 A:FF X:FF Y:B7 P:A5 SP:F9 CYC:202 SL:169 FAC3 38 SEC PC:FAC4 A:FF X:FF Y:B7 P:A5 SP:F9 CYC:208 SL:169 FAC4 A9 LDA #$FF PC:FAC5 A:FF X:FF Y:B7 P:A5 SP:F9 CYC:214 SL:169 FAC6 60 RTS PC:FAC7 A:FF X:FF Y:B7 P:A5 SP:F9 CYC:220 SL:169 ED11 F7 ISC $48,x PC:ED12 A:FF X:FF Y:B7 P:A5 SP:FB CYC:238 SL:169 ED13 EA NOP PC:ED14 A:FF X:FF Y:B7 P:A5 SP:FB CYC:256 SL:169 ED14 EA NOP PC:ED15 A:FF X:FF Y:B7 P:A5 SP:FB CYC:262 SL:169 ED15 EA NOP PC:ED16 A:FF X:FF Y:B7 P:A5 SP:FB CYC:268 SL:169 ED16 EA NOP PC:ED17 A:FF X:FF Y:B7 P:A5 SP:FB CYC:274 SL:169 ED17 20 JSR $FAC7 PC:ED18 A:FF X:FF Y:B7 P:A5 SP:FB CYC:280 SL:169 FAC7 70 BVS $FAE6 PC:FAC8 A:FF X:FF Y:B7 P:A5 SP:F9 CYC:298 SL:169 FAC9 F0 BEQ $FAE6 PC:FACA A:FF X:FF Y:B7 P:A5 SP:F9 CYC:304 SL:169 FACB 10 BPL $FAE6 PC:FACC A:FF X:FF Y:B7 P:A5 SP:F9 CYC:310 SL:169 FACD 90 BCC $FAE6 PC:FACE A:FF X:FF Y:B7 P:A5 SP:F9 CYC:316 SL:169 FACF C9 CMP #$FF PC:FAD0 A:FF X:FF Y:B7 P:A5 SP:F9 CYC:322 SL:169 FAD1 D0 BNE $FAE6 PC:FAD2 A:FF X:FF Y:B7 P:27 SP:F9 CYC:328 SL:169 FAD3 60 RTS PC:FAD4 A:FF X:FF Y:B7 P:27 SP:F9 CYC:334 SL:169 ED1A A5 LDA $47 PC:ED1B A:FF X:FF Y:B7 P:27 SP:FB CYC:11 SL:170 ED1C C9 CMP #$00 PC:ED1D A:00 X:FF Y:B7 P:27 SP:FB CYC:20 SL:170 ED1E F0 BEQ $ED22 PC:ED1F A:00 X:FF Y:B7 P:27 SP:FB CYC:26 SL:170 ED22 C8 INY PC:ED23 A:00 X:FF Y:B7 P:27 SP:FB CYC:35 SL:170 ED23 A9 LDA #$37 PC:ED24 A:00 X:FF Y:B8 P:A5 SP:FB CYC:41 SL:170 ED25 85 STA $47 PC:ED26 A:37 X:FF Y:B8 P:25 SP:FB CYC:47 SL:170 ED27 20 JSR $FAD4 PC:ED28 A:37 X:FF Y:B8 P:25 SP:FB CYC:56 SL:170 FAD4 24 BIT $01 PC:FAD5 A:37 X:FF Y:B8 P:25 SP:F9 CYC:74 SL:170 FAD6 38 SEC PC:FAD7 A:37 X:FF Y:B8 P:E5 SP:F9 CYC:83 SL:170 FAD7 A9 LDA #$F0 PC:FAD8 A:37 X:FF Y:B8 P:E5 SP:F9 CYC:89 SL:170 FAD9 60 RTS PC:FADA A:F0 X:FF Y:B8 P:E5 SP:F9 CYC:95 SL:170 ED2A F7 ISC $48,x PC:ED2B A:F0 X:FF Y:B8 P:E5 SP:FB CYC:113 SL:170 ED2C EA NOP PC:ED2D A:B8 X:FF Y:B8 P:A5 SP:FB CYC:131 SL:170 ED2D EA NOP PC:ED2E A:B8 X:FF Y:B8 P:A5 SP:FB CYC:137 SL:170 ED2E EA NOP PC:ED2F A:B8 X:FF Y:B8 P:A5 SP:FB CYC:143 SL:170 ED2F EA NOP PC:ED30 A:B8 X:FF Y:B8 P:A5 SP:FB CYC:149 SL:170 ED30 20 JSR $FADA PC:ED31 A:B8 X:FF Y:B8 P:A5 SP:FB CYC:155 SL:170 FADA 70 BVS $FAE6 PC:FADB A:B8 X:FF Y:B8 P:A5 SP:F9 CYC:173 SL:170 FADC F0 BEQ $FAE6 PC:FADD A:B8 X:FF Y:B8 P:A5 SP:F9 CYC:179 SL:170 FADE 10 BPL $FAE6 PC:FADF A:B8 X:FF Y:B8 P:A5 SP:F9 CYC:185 SL:170 FAE0 90 BCC $FAE6 PC:FAE1 A:B8 X:FF Y:B8 P:A5 SP:F9 CYC:191 SL:170 FAE2 C9 CMP #$B8 PC:FAE3 A:B8 X:FF Y:B8 P:A5 SP:F9 CYC:197 SL:170 FAE4 F0 BEQ $FAE8 PC:FAE5 A:B8 X:FF Y:B8 P:27 SP:F9 CYC:203 SL:170 FAE8 60 RTS PC:FAE9 A:B8 X:FF Y:B8 P:27 SP:F9 CYC:212 SL:170 ED33 A5 LDA $47 PC:ED34 A:B8 X:FF Y:B8 P:27 SP:FB CYC:230 SL:170 ED35 C9 CMP #$38 PC:ED36 A:38 X:FF Y:B8 P:25 SP:FB CYC:239 SL:170 ED37 F0 BEQ $ED3B PC:ED38 A:38 X:FF Y:B8 P:27 SP:FB CYC:245 SL:170 ED3B A9 LDA #$EB PC:ED3C A:38 X:FF Y:B8 P:27 SP:FB CYC:254 SL:170 ED3D 8D STA $0647 PC:ED3E A:EB X:FF Y:B8 P:A5 SP:FB CYC:260 SL:170 ED40 A0 LDY #$FF PC:ED41 A:EB X:FF Y:B8 P:A5 SP:FB CYC:272 SL:170 ED42 20 JSR $FAB1 PC:ED43 A:EB X:FF Y:FF P:A5 SP:FB CYC:278 SL:170 FAB1 24 BIT $01 PC:FAB2 A:EB X:FF Y:FF P:A5 SP:F9 CYC:296 SL:170 FAB3 18 CLC PC:FAB4 A:EB X:FF Y:FF P:E5 SP:F9 CYC:305 SL:170 FAB4 A9 LDA #$40 PC:FAB5 A:EB X:FF Y:FF P:E4 SP:F9 CYC:311 SL:170 FAB6 60 RTS PC:FAB7 A:40 X:FF Y:FF P:64 SP:F9 CYC:317 SL:170 ED45 FB ISC $0548,y PC:ED46 A:40 X:FF Y:FF P:64 SP:FB CYC:335 SL:170 ED48 EA NOP PC:ED49 A:53 X:FF Y:FF P:24 SP:FB CYC:15 SL:171 ED49 EA NOP PC:ED4A A:53 X:FF Y:FF P:24 SP:FB CYC:21 SL:171 ED4A 08 PHP PC:ED4B A:53 X:FF Y:FF P:24 SP:FB CYC:27 SL:171 ED4B 48 PHA PC:ED4C A:53 X:FF Y:FF P:24 SP:FA CYC:36 SL:171 ED4C A0 LDY #$B9 PC:ED4D A:53 X:FF Y:FF P:24 SP:F9 CYC:45 SL:171 ED4E 68 PLA PC:ED4F A:53 X:FF Y:B9 P:A4 SP:F9 CYC:51 SL:171 ED4F 28 PLP PC:ED50 A:53 X:FF Y:B9 P:24 SP:FA CYC:63 SL:171 ED50 20 JSR $FAB7 PC:ED51 A:53 X:FF Y:B9 P:24 SP:FB CYC:75 SL:171 FAB7 70 BVS $FAE6 PC:FAB8 A:53 X:FF Y:B9 P:24 SP:F9 CYC:93 SL:171 FAB9 B0 BCS $FAE6 PC:FABA A:53 X:FF Y:B9 P:24 SP:F9 CYC:99 SL:171 FABB 30 BMI $FAE6 PC:FABC A:53 X:FF Y:B9 P:24 SP:F9 CYC:105 SL:171 FABD C9 CMP #$53 PC:FABE A:53 X:FF Y:B9 P:24 SP:F9 CYC:111 SL:171 FABF D0 BNE $FAE6 PC:FAC0 A:53 X:FF Y:B9 P:27 SP:F9 CYC:117 SL:171 FAC1 60 RTS PC:FAC2 A:53 X:FF Y:B9 P:27 SP:F9 CYC:123 SL:171 ED53 AD LDA $0647 PC:ED54 A:53 X:FF Y:B9 P:27 SP:FB CYC:141 SL:171 ED56 C9 CMP #$EC PC:ED57 A:EC X:FF Y:B9 P:A5 SP:FB CYC:153 SL:171 ED58 F0 BEQ $ED5C PC:ED59 A:EC X:FF Y:B9 P:27 SP:FB CYC:159 SL:171 ED5C A0 LDY #$FF PC:ED5D A:EC X:FF Y:B9 P:27 SP:FB CYC:168 SL:171 ED5E A9 LDA #$FF PC:ED5F A:EC X:FF Y:FF P:A5 SP:FB CYC:174 SL:171 ED60 8D STA $0647 PC:ED61 A:FF X:FF Y:FF P:A5 SP:FB CYC:180 SL:171 ED63 20 JSR $FAC2 PC:ED64 A:FF X:FF Y:FF P:A5 SP:FB CYC:192 SL:171 FAC2 B8 CLV PC:FAC3 A:FF X:FF Y:FF P:A5 SP:F9 CYC:210 SL:171 FAC3 38 SEC PC:FAC4 A:FF X:FF Y:FF P:A5 SP:F9 CYC:216 SL:171 FAC4 A9 LDA #$FF PC:FAC5 A:FF X:FF Y:FF P:A5 SP:F9 CYC:222 SL:171 FAC6 60 RTS PC:FAC7 A:FF X:FF Y:FF P:A5 SP:F9 CYC:228 SL:171 ED66 FB ISC $0548,y PC:ED67 A:FF X:FF Y:FF P:A5 SP:FB CYC:246 SL:171 ED69 EA NOP PC:ED6A A:FF X:FF Y:FF P:A5 SP:FB CYC:267 SL:171 ED6A EA NOP PC:ED6B A:FF X:FF Y:FF P:A5 SP:FB CYC:273 SL:171 ED6B 08 PHP PC:ED6C A:FF X:FF Y:FF P:A5 SP:FB CYC:279 SL:171 ED6C 48 PHA PC:ED6D A:FF X:FF Y:FF P:A5 SP:FA CYC:288 SL:171 ED6D A0 LDY #$BA PC:ED6E A:FF X:FF Y:FF P:A5 SP:F9 CYC:297 SL:171 ED6F 68 PLA PC:ED70 A:FF X:FF Y:BA P:A5 SP:F9 CYC:303 SL:171 ED70 28 PLP PC:ED71 A:FF X:FF Y:BA P:A5 SP:FA CYC:315 SL:171 ED71 20 JSR $FAC7 PC:ED72 A:FF X:FF Y:BA P:A5 SP:FB CYC:327 SL:171 FAC7 70 BVS $FAE6 PC:FAC8 A:FF X:FF Y:BA P:A5 SP:F9 CYC:4 SL:172 FAC9 F0 BEQ $FAE6 PC:FACA A:FF X:FF Y:BA P:A5 SP:F9 CYC:10 SL:172 FACB 10 BPL $FAE6 PC:FACC A:FF X:FF Y:BA P:A5 SP:F9 CYC:16 SL:172 FACD 90 BCC $FAE6 PC:FACE A:FF X:FF Y:BA P:A5 SP:F9 CYC:22 SL:172 FACF C9 CMP #$FF PC:FAD0 A:FF X:FF Y:BA P:A5 SP:F9 CYC:28 SL:172 FAD1 D0 BNE $FAE6 PC:FAD2 A:FF X:FF Y:BA P:27 SP:F9 CYC:34 SL:172 FAD3 60 RTS PC:FAD4 A:FF X:FF Y:BA P:27 SP:F9 CYC:40 SL:172 ED74 AD LDA $0647 PC:ED75 A:FF X:FF Y:BA P:27 SP:FB CYC:58 SL:172 ED77 C9 CMP #$00 PC:ED78 A:00 X:FF Y:BA P:27 SP:FB CYC:70 SL:172 ED79 F0 BEQ $ED7D PC:ED7A A:00 X:FF Y:BA P:27 SP:FB CYC:76 SL:172 ED7D A0 LDY #$FF PC:ED7E A:00 X:FF Y:BA P:27 SP:FB CYC:85 SL:172 ED7F A9 LDA #$37 PC:ED80 A:00 X:FF Y:FF P:A5 SP:FB CYC:91 SL:172 ED81 8D STA $0647 PC:ED82 A:37 X:FF Y:FF P:25 SP:FB CYC:97 SL:172 ED84 20 JSR $FAD4 PC:ED85 A:37 X:FF Y:FF P:25 SP:FB CYC:109 SL:172 FAD4 24 BIT $01 PC:FAD5 A:37 X:FF Y:FF P:25 SP:F9 CYC:127 SL:172 FAD6 38 SEC PC:FAD7 A:37 X:FF Y:FF P:E5 SP:F9 CYC:136 SL:172 FAD7 A9 LDA #$F0 PC:FAD8 A:37 X:FF Y:FF P:E5 SP:F9 CYC:142 SL:172 FAD9 60 RTS PC:FADA A:F0 X:FF Y:FF P:E5 SP:F9 CYC:148 SL:172 ED87 FB ISC $0548,y PC:ED88 A:F0 X:FF Y:FF P:E5 SP:FB CYC:166 SL:172 ED8A EA NOP PC:ED8B A:B8 X:FF Y:FF P:A5 SP:FB CYC:187 SL:172 ED8B EA NOP PC:ED8C A:B8 X:FF Y:FF P:A5 SP:FB CYC:193 SL:172 ED8C 08 PHP PC:ED8D A:B8 X:FF Y:FF P:A5 SP:FB CYC:199 SL:172 ED8D 48 PHA PC:ED8E A:B8 X:FF Y:FF P:A5 SP:FA CYC:208 SL:172 ED8E A0 LDY #$BB PC:ED8F A:B8 X:FF Y:FF P:A5 SP:F9 CYC:217 SL:172 ED90 68 PLA PC:ED91 A:B8 X:FF Y:BB P:A5 SP:F9 CYC:223 SL:172 ED91 28 PLP PC:ED92 A:B8 X:FF Y:BB P:A5 SP:FA CYC:235 SL:172 ED92 20 JSR $FADA PC:ED93 A:B8 X:FF Y:BB P:A5 SP:FB CYC:247 SL:172 FADA 70 BVS $FAE6 PC:FADB A:B8 X:FF Y:BB P:A5 SP:F9 CYC:265 SL:172 FADC F0 BEQ $FAE6 PC:FADD A:B8 X:FF Y:BB P:A5 SP:F9 CYC:271 SL:172 FADE 10 BPL $FAE6 PC:FADF A:B8 X:FF Y:BB P:A5 SP:F9 CYC:277 SL:172 FAE0 90 BCC $FAE6 PC:FAE1 A:B8 X:FF Y:BB P:A5 SP:F9 CYC:283 SL:172 FAE2 C9 CMP #$B8 PC:FAE3 A:B8 X:FF Y:BB P:A5 SP:F9 CYC:289 SL:172 FAE4 F0 BEQ $FAE8 PC:FAE5 A:B8 X:FF Y:BB P:27 SP:F9 CYC:295 SL:172 FAE8 60 RTS PC:FAE9 A:B8 X:FF Y:BB P:27 SP:F9 CYC:304 SL:172 ED95 AD LDA $0647 PC:ED96 A:B8 X:FF Y:BB P:27 SP:FB CYC:322 SL:172 ED98 C9 CMP #$38 PC:ED99 A:38 X:FF Y:BB P:25 SP:FB CYC:334 SL:172 ED9A F0 BEQ $ED9E PC:ED9B A:38 X:FF Y:BB P:27 SP:FB CYC:340 SL:172 ED9E A0 LDY #$BC PC:ED9F A:38 X:FF Y:BB P:27 SP:FB CYC:8 SL:173 EDA0 A2 LDX #$FF PC:EDA1 A:38 X:FF Y:BC P:A5 SP:FB CYC:14 SL:173 EDA2 A9 LDA #$EB PC:EDA3 A:38 X:FF Y:BC P:A5 SP:FB CYC:20 SL:173 EDA4 8D STA $0647 PC:EDA5 A:EB X:FF Y:BC P:A5 SP:FB CYC:26 SL:173 EDA7 20 JSR $FAB1 PC:EDA8 A:EB X:FF Y:BC P:A5 SP:FB CYC:38 SL:173 FAB1 24 BIT $01 PC:FAB2 A:EB X:FF Y:BC P:A5 SP:F9 CYC:56 SL:173 FAB3 18 CLC PC:FAB4 A:EB X:FF Y:BC P:E5 SP:F9 CYC:65 SL:173 FAB4 A9 LDA #$40 PC:FAB5 A:EB X:FF Y:BC P:E4 SP:F9 CYC:71 SL:173 FAB6 60 RTS PC:FAB7 A:40 X:FF Y:BC P:64 SP:F9 CYC:77 SL:173 EDAA FF ISC $0548,x PC:EDAB A:40 X:FF Y:BC P:64 SP:FB CYC:95 SL:173 EDAD EA NOP PC:EDAE A:53 X:FF Y:BC P:24 SP:FB CYC:116 SL:173 EDAE EA NOP PC:EDAF A:53 X:FF Y:BC P:24 SP:FB CYC:122 SL:173 EDAF EA NOP PC:EDB0 A:53 X:FF Y:BC P:24 SP:FB CYC:128 SL:173 EDB0 EA NOP PC:EDB1 A:53 X:FF Y:BC P:24 SP:FB CYC:134 SL:173 EDB1 20 JSR $FAB7 PC:EDB2 A:53 X:FF Y:BC P:24 SP:FB CYC:140 SL:173 FAB7 70 BVS $FAE6 PC:FAB8 A:53 X:FF Y:BC P:24 SP:F9 CYC:158 SL:173 FAB9 B0 BCS $FAE6 PC:FABA A:53 X:FF Y:BC P:24 SP:F9 CYC:164 SL:173 FABB 30 BMI $FAE6 PC:FABC A:53 X:FF Y:BC P:24 SP:F9 CYC:170 SL:173 FABD C9 CMP #$53 PC:FABE A:53 X:FF Y:BC P:24 SP:F9 CYC:176 SL:173 FABF D0 BNE $FAE6 PC:FAC0 A:53 X:FF Y:BC P:27 SP:F9 CYC:182 SL:173 FAC1 60 RTS PC:FAC2 A:53 X:FF Y:BC P:27 SP:F9 CYC:188 SL:173 EDB4 AD LDA $0647 PC:EDB5 A:53 X:FF Y:BC P:27 SP:FB CYC:206 SL:173 EDB7 C9 CMP #$EC PC:EDB8 A:EC X:FF Y:BC P:A5 SP:FB CYC:218 SL:173 EDB9 F0 BEQ $EDBD PC:EDBA A:EC X:FF Y:BC P:27 SP:FB CYC:224 SL:173 EDBD C8 INY PC:EDBE A:EC X:FF Y:BC P:27 SP:FB CYC:233 SL:173 EDBE A9 LDA #$FF PC:EDBF A:EC X:FF Y:BD P:A5 SP:FB CYC:239 SL:173 EDC0 8D STA $0647 PC:EDC1 A:FF X:FF Y:BD P:A5 SP:FB CYC:245 SL:173 EDC3 20 JSR $FAC2 PC:EDC4 A:FF X:FF Y:BD P:A5 SP:FB CYC:257 SL:173 FAC2 B8 CLV PC:FAC3 A:FF X:FF Y:BD P:A5 SP:F9 CYC:275 SL:173 FAC3 38 SEC PC:FAC4 A:FF X:FF Y:BD P:A5 SP:F9 CYC:281 SL:173 FAC4 A9 LDA #$FF PC:FAC5 A:FF X:FF Y:BD P:A5 SP:F9 CYC:287 SL:173 FAC6 60 RTS PC:FAC7 A:FF X:FF Y:BD P:A5 SP:F9 CYC:293 SL:173 EDC6 FF ISC $0548,x PC:EDC7 A:FF X:FF Y:BD P:A5 SP:FB CYC:311 SL:173 EDC9 EA NOP PC:EDCA A:FF X:FF Y:BD P:A5 SP:FB CYC:332 SL:173 EDCA EA NOP PC:EDCB A:FF X:FF Y:BD P:A5 SP:FB CYC:338 SL:173 EDCB EA NOP PC:EDCC A:FF X:FF Y:BD P:A5 SP:FB CYC:3 SL:174 EDCC EA NOP PC:EDCD A:FF X:FF Y:BD P:A5 SP:FB CYC:9 SL:174 EDCD 20 JSR $FAC7 PC:EDCE A:FF X:FF Y:BD P:A5 SP:FB CYC:15 SL:174 FAC7 70 BVS $FAE6 PC:FAC8 A:FF X:FF Y:BD P:A5 SP:F9 CYC:33 SL:174 FAC9 F0 BEQ $FAE6 PC:FACA A:FF X:FF Y:BD P:A5 SP:F9 CYC:39 SL:174 FACB 10 BPL $FAE6 PC:FACC A:FF X:FF Y:BD P:A5 SP:F9 CYC:45 SL:174 FACD 90 BCC $FAE6 PC:FACE A:FF X:FF Y:BD P:A5 SP:F9 CYC:51 SL:174 FACF C9 CMP #$FF PC:FAD0 A:FF X:FF Y:BD P:A5 SP:F9 CYC:57 SL:174 FAD1 D0 BNE $FAE6 PC:FAD2 A:FF X:FF Y:BD P:27 SP:F9 CYC:63 SL:174 FAD3 60 RTS PC:FAD4 A:FF X:FF Y:BD P:27 SP:F9 CYC:69 SL:174 EDD0 AD LDA $0647 PC:EDD1 A:FF X:FF Y:BD P:27 SP:FB CYC:87 SL:174 EDD3 C9 CMP #$00 PC:EDD4 A:00 X:FF Y:BD P:27 SP:FB CYC:99 SL:174 EDD5 F0 BEQ $EDD9 PC:EDD6 A:00 X:FF Y:BD P:27 SP:FB CYC:105 SL:174 EDD9 C8 INY PC:EDDA A:00 X:FF Y:BD P:27 SP:FB CYC:114 SL:174 EDDA A9 LDA #$37 PC:EDDB A:00 X:FF Y:BE P:A5 SP:FB CYC:120 SL:174 EDDC 8D STA $0647 PC:EDDD A:37 X:FF Y:BE P:25 SP:FB CYC:126 SL:174 EDDF 20 JSR $FAD4 PC:EDE0 A:37 X:FF Y:BE P:25 SP:FB CYC:138 SL:174 FAD4 24 BIT $01 PC:FAD5 A:37 X:FF Y:BE P:25 SP:F9 CYC:156 SL:174 FAD6 38 SEC PC:FAD7 A:37 X:FF Y:BE P:E5 SP:F9 CYC:165 SL:174 FAD7 A9 LDA #$F0 PC:FAD8 A:37 X:FF Y:BE P:E5 SP:F9 CYC:171 SL:174 FAD9 60 RTS PC:FADA A:F0 X:FF Y:BE P:E5 SP:F9 CYC:177 SL:174 EDE2 FF ISC $0548,x PC:EDE3 A:F0 X:FF Y:BE P:E5 SP:FB CYC:195 SL:174 EDE5 EA NOP PC:EDE6 A:B8 X:FF Y:BE P:A5 SP:FB CYC:216 SL:174 EDE6 EA NOP PC:EDE7 A:B8 X:FF Y:BE P:A5 SP:FB CYC:222 SL:174 EDE7 EA NOP PC:EDE8 A:B8 X:FF Y:BE P:A5 SP:FB CYC:228 SL:174 EDE8 EA NOP PC:EDE9 A:B8 X:FF Y:BE P:A5 SP:FB CYC:234 SL:174 EDE9 20 JSR $FADA PC:EDEA A:B8 X:FF Y:BE P:A5 SP:FB CYC:240 SL:174 FADA 70 BVS $FAE6 PC:FADB A:B8 X:FF Y:BE P:A5 SP:F9 CYC:258 SL:174 FADC F0 BEQ $FAE6 PC:FADD A:B8 X:FF Y:BE P:A5 SP:F9 CYC:264 SL:174 FADE 10 BPL $FAE6 PC:FADF A:B8 X:FF Y:BE P:A5 SP:F9 CYC:270 SL:174 FAE0 90 BCC $FAE6 PC:FAE1 A:B8 X:FF Y:BE P:A5 SP:F9 CYC:276 SL:174 FAE2 C9 CMP #$B8 PC:FAE3 A:B8 X:FF Y:BE P:A5 SP:F9 CYC:282 SL:174 FAE4 F0 BEQ $FAE8 PC:FAE5 A:B8 X:FF Y:BE P:27 SP:F9 CYC:288 SL:174 FAE8 60 RTS PC:FAE9 A:B8 X:FF Y:BE P:27 SP:F9 CYC:297 SL:174 EDEC AD LDA $0647 PC:EDED A:B8 X:FF Y:BE P:27 SP:FB CYC:315 SL:174 EDEF C9 CMP #$38 PC:EDF0 A:38 X:FF Y:BE P:25 SP:FB CYC:327 SL:174 EDF1 F0 BEQ $EDF5 PC:EDF2 A:38 X:FF Y:BE P:27 SP:FB CYC:333 SL:174 EDF5 60 RTS PC:EDF6 A:38 X:FF Y:BE P:27 SP:FB CYC:1 SL:175 C641 20 JSR $EDF6 PC:C642 A:38 X:FF Y:BE P:27 SP:FD CYC:19 SL:175 EDF6 A9 LDA #$FF PC:EDF7 A:38 X:FF Y:BE P:27 SP:FB CYC:37 SL:175 EDF8 85 STA $01 PC:EDF9 A:FF X:FF Y:BE P:A5 SP:FB CYC:43 SL:175 EDFA A0 LDY #$BF PC:EDFB A:FF X:FF Y:BE P:A5 SP:FB CYC:52 SL:175 EDFC A2 LDX #$02 PC:EDFD A:FF X:FF Y:BF P:A5 SP:FB CYC:58 SL:175 EDFE A9 LDA #$47 PC:EDFF A:FF X:02 Y:BF P:25 SP:FB CYC:64 SL:175 EE00 85 STA $47 PC:EE01 A:47 X:02 Y:BF P:25 SP:FB CYC:70 SL:175 EE02 A9 LDA #$06 PC:EE03 A:47 X:02 Y:BF P:25 SP:FB CYC:79 SL:175 EE04 85 STA $48 PC:EE05 A:06 X:02 Y:BF P:25 SP:FB CYC:85 SL:175 EE06 A9 LDA #$A5 PC:EE07 A:06 X:02 Y:BF P:25 SP:FB CYC:94 SL:175 EE08 8D STA $0647 PC:EE09 A:A5 X:02 Y:BF P:A5 SP:FB CYC:100 SL:175 EE0B 20 JSR $FA7B PC:EE0C A:A5 X:02 Y:BF P:A5 SP:FB CYC:112 SL:175 FA7B 24 BIT $01 PC:FA7C A:A5 X:02 Y:BF P:A5 SP:F9 CYC:130 SL:175 FA7D 18 CLC PC:FA7E A:A5 X:02 Y:BF P:E5 SP:F9 CYC:139 SL:175 FA7E A9 LDA #$B3 PC:FA7F A:A5 X:02 Y:BF P:E4 SP:F9 CYC:145 SL:175 FA80 60 RTS PC:FA81 A:B3 X:02 Y:BF P:E4 SP:F9 CYC:151 SL:175 EE0E 03 SLO $(EA45,x) PC:EE0F A:B3 X:02 Y:BF P:E4 SP:FB CYC:169 SL:175 EE10 EA NOP PC:EE11 A:FB X:02 Y:BF P:E5 SP:FB CYC:193 SL:175 EE11 EA NOP PC:EE12 A:FB X:02 Y:BF P:E5 SP:FB CYC:199 SL:175 EE12 EA NOP PC:EE13 A:FB X:02 Y:BF P:E5 SP:FB CYC:205 SL:175 EE13 EA NOP PC:EE14 A:FB X:02 Y:BF P:E5 SP:FB CYC:211 SL:175 EE14 20 JSR $FA81 PC:EE15 A:FB X:02 Y:BF P:E5 SP:FB CYC:217 SL:175 FA81 50 BVC $FAE6 PC:FA82 A:FB X:02 Y:BF P:E5 SP:F9 CYC:235 SL:175 FA83 90 BCC $FAE6 PC:FA84 A:FB X:02 Y:BF P:E5 SP:F9 CYC:241 SL:175 FA85 10 BPL $FAE6 PC:FA86 A:FB X:02 Y:BF P:E5 SP:F9 CYC:247 SL:175 FA87 C9 CMP #$FB PC:FA88 A:FB X:02 Y:BF P:E5 SP:F9 CYC:253 SL:175 FA89 D0 BNE $FAE6 PC:FA8A A:FB X:02 Y:BF P:67 SP:F9 CYC:259 SL:175 FA8B 60 RTS PC:FA8C A:FB X:02 Y:BF P:67 SP:F9 CYC:265 SL:175 EE17 AD LDA $0647 PC:EE18 A:FB X:02 Y:BF P:67 SP:FB CYC:283 SL:175 EE1A C9 CMP #$4A PC:EE1B A:4A X:02 Y:BF P:65 SP:FB CYC:295 SL:175 EE1C F0 BEQ $EE20 PC:EE1D A:4A X:02 Y:BF P:67 SP:FB CYC:301 SL:175 EE20 C8 INY PC:EE21 A:4A X:02 Y:BF P:67 SP:FB CYC:310 SL:175 EE21 A9 LDA #$29 PC:EE22 A:4A X:02 Y:C0 P:E5 SP:FB CYC:316 SL:175 EE23 8D STA $0647 PC:EE24 A:29 X:02 Y:C0 P:65 SP:FB CYC:322 SL:175 EE26 20 JSR $FA8C PC:EE27 A:29 X:02 Y:C0 P:65 SP:FB CYC:334 SL:175 FA8C B8 CLV PC:FA8D A:29 X:02 Y:C0 P:65 SP:F9 CYC:11 SL:176 FA8D 18 CLC PC:FA8E A:29 X:02 Y:C0 P:25 SP:F9 CYC:17 SL:176 FA8E A9 LDA #$C3 PC:FA8F A:29 X:02 Y:C0 P:24 SP:F9 CYC:23 SL:176 FA90 60 RTS PC:FA91 A:C3 X:02 Y:C0 P:A4 SP:F9 CYC:29 SL:176 EE29 03 SLO $(EA45,x) PC:EE2A A:C3 X:02 Y:C0 P:A4 SP:FB CYC:47 SL:176 EE2B EA NOP PC:EE2C A:D3 X:02 Y:C0 P:A4 SP:FB CYC:71 SL:176 EE2C EA NOP PC:EE2D A:D3 X:02 Y:C0 P:A4 SP:FB CYC:77 SL:176 EE2D EA NOP PC:EE2E A:D3 X:02 Y:C0 P:A4 SP:FB CYC:83 SL:176 EE2E EA NOP PC:EE2F A:D3 X:02 Y:C0 P:A4 SP:FB CYC:89 SL:176 EE2F 20 JSR $FA91 PC:EE30 A:D3 X:02 Y:C0 P:A4 SP:FB CYC:95 SL:176 FA91 70 BVS $FAE6 PC:FA92 A:D3 X:02 Y:C0 P:A4 SP:F9 CYC:113 SL:176 FA93 F0 BEQ $FAE6 PC:FA94 A:D3 X:02 Y:C0 P:A4 SP:F9 CYC:119 SL:176 FA95 10 BPL $FAE6 PC:FA96 A:D3 X:02 Y:C0 P:A4 SP:F9 CYC:125 SL:176 FA97 B0 BCS $FAE6 PC:FA98 A:D3 X:02 Y:C0 P:A4 SP:F9 CYC:131 SL:176 FA99 C9 CMP #$D3 PC:FA9A A:D3 X:02 Y:C0 P:A4 SP:F9 CYC:137 SL:176 FA9B D0 BNE $FAE6 PC:FA9C A:D3 X:02 Y:C0 P:27 SP:F9 CYC:143 SL:176 FA9D 60 RTS PC:FA9E A:D3 X:02 Y:C0 P:27 SP:F9 CYC:149 SL:176 EE32 AD LDA $0647 PC:EE33 A:D3 X:02 Y:C0 P:27 SP:FB CYC:167 SL:176 EE35 C9 CMP #$52 PC:EE36 A:52 X:02 Y:C0 P:25 SP:FB CYC:179 SL:176 EE37 F0 BEQ $EE3B PC:EE38 A:52 X:02 Y:C0 P:27 SP:FB CYC:185 SL:176 EE3B C8 INY PC:EE3C A:52 X:02 Y:C0 P:27 SP:FB CYC:194 SL:176 EE3C A9 LDA #$37 PC:EE3D A:52 X:02 Y:C1 P:A5 SP:FB CYC:200 SL:176 EE3E 8D STA $0647 PC:EE3F A:37 X:02 Y:C1 P:25 SP:FB CYC:206 SL:176 EE41 20 JSR $FA9E PC:EE42 A:37 X:02 Y:C1 P:25 SP:FB CYC:218 SL:176 FA9E 24 BIT $01 PC:FA9F A:37 X:02 Y:C1 P:25 SP:F9 CYC:236 SL:176 FAA0 38 SEC PC:FAA1 A:37 X:02 Y:C1 P:E5 SP:F9 CYC:245 SL:176 FAA1 A9 LDA #$10 PC:FAA2 A:37 X:02 Y:C1 P:E5 SP:F9 CYC:251 SL:176 FAA3 60 RTS PC:FAA4 A:10 X:02 Y:C1 P:65 SP:F9 CYC:257 SL:176 EE44 03 SLO $(EA45,x) PC:EE45 A:10 X:02 Y:C1 P:65 SP:FB CYC:275 SL:176 EE46 EA NOP PC:EE47 A:7E X:02 Y:C1 P:64 SP:FB CYC:299 SL:176 EE47 EA NOP PC:EE48 A:7E X:02 Y:C1 P:64 SP:FB CYC:305 SL:176 EE48 EA NOP PC:EE49 A:7E X:02 Y:C1 P:64 SP:FB CYC:311 SL:176 EE49 EA NOP PC:EE4A A:7E X:02 Y:C1 P:64 SP:FB CYC:317 SL:176 EE4A 20 JSR $FAA4 PC:EE4B A:7E X:02 Y:C1 P:64 SP:FB CYC:323 SL:176 FAA4 50 BVC $FAE6 PC:FAA5 A:7E X:02 Y:C1 P:64 SP:F9 CYC:0 SL:177 FAA6 F0 BEQ $FAE6 PC:FAA7 A:7E X:02 Y:C1 P:64 SP:F9 CYC:6 SL:177 FAA8 30 BMI $FAE6 PC:FAA9 A:7E X:02 Y:C1 P:64 SP:F9 CYC:12 SL:177 FAAA B0 BCS $FAE6 PC:FAAB A:7E X:02 Y:C1 P:64 SP:F9 CYC:18 SL:177 FAAC C9 CMP #$7E PC:FAAD A:7E X:02 Y:C1 P:64 SP:F9 CYC:24 SL:177 FAAE D0 BNE $FAE6 PC:FAAF A:7E X:02 Y:C1 P:67 SP:F9 CYC:30 SL:177 FAB0 60 RTS PC:FAB1 A:7E X:02 Y:C1 P:67 SP:F9 CYC:36 SL:177 EE4D AD LDA $0647 PC:EE4E A:7E X:02 Y:C1 P:67 SP:FB CYC:54 SL:177 EE50 C9 CMP #$6E PC:EE51 A:6E X:02 Y:C1 P:65 SP:FB CYC:66 SL:177 EE52 F0 BEQ $EE56 PC:EE53 A:6E X:02 Y:C1 P:67 SP:FB CYC:72 SL:177 EE56 C8 INY PC:EE57 A:6E X:02 Y:C1 P:67 SP:FB CYC:81 SL:177 EE57 A9 LDA #$A5 PC:EE58 A:6E X:02 Y:C2 P:E5 SP:FB CYC:87 SL:177 EE59 85 STA $47 PC:EE5A A:A5 X:02 Y:C2 P:E5 SP:FB CYC:93 SL:177 EE5B 20 JSR $FA7B PC:EE5C A:A5 X:02 Y:C2 P:E5 SP:FB CYC:102 SL:177 FA7B 24 BIT $01 PC:FA7C A:A5 X:02 Y:C2 P:E5 SP:F9 CYC:120 SL:177 FA7D 18 CLC PC:FA7E A:A5 X:02 Y:C2 P:E5 SP:F9 CYC:129 SL:177 FA7E A9 LDA #$B3 PC:FA7F A:A5 X:02 Y:C2 P:E4 SP:F9 CYC:135 SL:177 FA80 60 RTS PC:FA81 A:B3 X:02 Y:C2 P:E4 SP:F9 CYC:141 SL:177 EE5E 07 SLO $47 PC:EE5F A:B3 X:02 Y:C2 P:E4 SP:FB CYC:159 SL:177 EE60 EA NOP PC:EE61 A:FB X:02 Y:C2 P:E5 SP:FB CYC:174 SL:177 EE61 EA NOP PC:EE62 A:FB X:02 Y:C2 P:E5 SP:FB CYC:180 SL:177 EE62 EA NOP PC:EE63 A:FB X:02 Y:C2 P:E5 SP:FB CYC:186 SL:177 EE63 EA NOP PC:EE64 A:FB X:02 Y:C2 P:E5 SP:FB CYC:192 SL:177 EE64 20 JSR $FA81 PC:EE65 A:FB X:02 Y:C2 P:E5 SP:FB CYC:198 SL:177 FA81 50 BVC $FAE6 PC:FA82 A:FB X:02 Y:C2 P:E5 SP:F9 CYC:216 SL:177 FA83 90 BCC $FAE6 PC:FA84 A:FB X:02 Y:C2 P:E5 SP:F9 CYC:222 SL:177 FA85 10 BPL $FAE6 PC:FA86 A:FB X:02 Y:C2 P:E5 SP:F9 CYC:228 SL:177 FA87 C9 CMP #$FB PC:FA88 A:FB X:02 Y:C2 P:E5 SP:F9 CYC:234 SL:177 FA89 D0 BNE $FAE6 PC:FA8A A:FB X:02 Y:C2 P:67 SP:F9 CYC:240 SL:177 FA8B 60 RTS PC:FA8C A:FB X:02 Y:C2 P:67 SP:F9 CYC:246 SL:177 EE67 A5 LDA $47 PC:EE68 A:FB X:02 Y:C2 P:67 SP:FB CYC:264 SL:177 EE69 C9 CMP #$4A PC:EE6A A:4A X:02 Y:C2 P:65 SP:FB CYC:273 SL:177 EE6B F0 BEQ $EE6F PC:EE6C A:4A X:02 Y:C2 P:67 SP:FB CYC:279 SL:177 EE6F C8 INY PC:EE70 A:4A X:02 Y:C2 P:67 SP:FB CYC:288 SL:177 EE70 A9 LDA #$29 PC:EE71 A:4A X:02 Y:C3 P:E5 SP:FB CYC:294 SL:177 EE72 85 STA $47 PC:EE73 A:29 X:02 Y:C3 P:65 SP:FB CYC:300 SL:177 EE74 20 JSR $FA8C PC:EE75 A:29 X:02 Y:C3 P:65 SP:FB CYC:309 SL:177 FA8C B8 CLV PC:FA8D A:29 X:02 Y:C3 P:65 SP:F9 CYC:327 SL:177 FA8D 18 CLC PC:FA8E A:29 X:02 Y:C3 P:25 SP:F9 CYC:333 SL:177 FA8E A9 LDA #$C3 PC:FA8F A:29 X:02 Y:C3 P:24 SP:F9 CYC:339 SL:177 FA90 60 RTS PC:FA91 A:C3 X:02 Y:C3 P:A4 SP:F9 CYC:4 SL:178 EE77 07 SLO $47 PC:EE78 A:C3 X:02 Y:C3 P:A4 SP:FB CYC:22 SL:178 EE79 EA NOP PC:EE7A A:D3 X:02 Y:C3 P:A4 SP:FB CYC:37 SL:178 EE7A EA NOP PC:EE7B A:D3 X:02 Y:C3 P:A4 SP:FB CYC:43 SL:178 EE7B EA NOP PC:EE7C A:D3 X:02 Y:C3 P:A4 SP:FB CYC:49 SL:178 EE7C EA NOP PC:EE7D A:D3 X:02 Y:C3 P:A4 SP:FB CYC:55 SL:178 EE7D 20 JSR $FA91 PC:EE7E A:D3 X:02 Y:C3 P:A4 SP:FB CYC:61 SL:178 FA91 70 BVS $FAE6 PC:FA92 A:D3 X:02 Y:C3 P:A4 SP:F9 CYC:79 SL:178 FA93 F0 BEQ $FAE6 PC:FA94 A:D3 X:02 Y:C3 P:A4 SP:F9 CYC:85 SL:178 FA95 10 BPL $FAE6 PC:FA96 A:D3 X:02 Y:C3 P:A4 SP:F9 CYC:91 SL:178 FA97 B0 BCS $FAE6 PC:FA98 A:D3 X:02 Y:C3 P:A4 SP:F9 CYC:97 SL:178 FA99 C9 CMP #$D3 PC:FA9A A:D3 X:02 Y:C3 P:A4 SP:F9 CYC:103 SL:178 FA9B D0 BNE $FAE6 PC:FA9C A:D3 X:02 Y:C3 P:27 SP:F9 CYC:109 SL:178 FA9D 60 RTS PC:FA9E A:D3 X:02 Y:C3 P:27 SP:F9 CYC:115 SL:178 EE80 A5 LDA $47 PC:EE81 A:D3 X:02 Y:C3 P:27 SP:FB CYC:133 SL:178 EE82 C9 CMP #$52 PC:EE83 A:52 X:02 Y:C3 P:25 SP:FB CYC:142 SL:178 EE84 F0 BEQ $EE88 PC:EE85 A:52 X:02 Y:C3 P:27 SP:FB CYC:148 SL:178 EE88 C8 INY PC:EE89 A:52 X:02 Y:C3 P:27 SP:FB CYC:157 SL:178 EE89 A9 LDA #$37 PC:EE8A A:52 X:02 Y:C4 P:A5 SP:FB CYC:163 SL:178 EE8B 85 STA $47 PC:EE8C A:37 X:02 Y:C4 P:25 SP:FB CYC:169 SL:178 EE8D 20 JSR $FA9E PC:EE8E A:37 X:02 Y:C4 P:25 SP:FB CYC:178 SL:178 FA9E 24 BIT $01 PC:FA9F A:37 X:02 Y:C4 P:25 SP:F9 CYC:196 SL:178 FAA0 38 SEC PC:FAA1 A:37 X:02 Y:C4 P:E5 SP:F9 CYC:205 SL:178 FAA1 A9 LDA #$10 PC:FAA2 A:37 X:02 Y:C4 P:E5 SP:F9 CYC:211 SL:178 FAA3 60 RTS PC:FAA4 A:10 X:02 Y:C4 P:65 SP:F9 CYC:217 SL:178 EE90 07 SLO $47 PC:EE91 A:10 X:02 Y:C4 P:65 SP:FB CYC:235 SL:178 EE92 EA NOP PC:EE93 A:7E X:02 Y:C4 P:64 SP:FB CYC:250 SL:178 EE93 EA NOP PC:EE94 A:7E X:02 Y:C4 P:64 SP:FB CYC:256 SL:178 EE94 EA NOP PC:EE95 A:7E X:02 Y:C4 P:64 SP:FB CYC:262 SL:178 EE95 EA NOP PC:EE96 A:7E X:02 Y:C4 P:64 SP:FB CYC:268 SL:178 EE96 20 JSR $FAA4 PC:EE97 A:7E X:02 Y:C4 P:64 SP:FB CYC:274 SL:178 FAA4 50 BVC $FAE6 PC:FAA5 A:7E X:02 Y:C4 P:64 SP:F9 CYC:292 SL:178 FAA6 F0 BEQ $FAE6 PC:FAA7 A:7E X:02 Y:C4 P:64 SP:F9 CYC:298 SL:178 FAA8 30 BMI $FAE6 PC:FAA9 A:7E X:02 Y:C4 P:64 SP:F9 CYC:304 SL:178 FAAA B0 BCS $FAE6 PC:FAAB A:7E X:02 Y:C4 P:64 SP:F9 CYC:310 SL:178 FAAC C9 CMP #$7E PC:FAAD A:7E X:02 Y:C4 P:64 SP:F9 CYC:316 SL:178 FAAE D0 BNE $FAE6 PC:FAAF A:7E X:02 Y:C4 P:67 SP:F9 CYC:322 SL:178 FAB0 60 RTS PC:FAB1 A:7E X:02 Y:C4 P:67 SP:F9 CYC:328 SL:178 EE99 A5 LDA $47 PC:EE9A A:7E X:02 Y:C4 P:67 SP:FB CYC:5 SL:179 EE9B C9 CMP #$6E PC:EE9C A:6E X:02 Y:C4 P:65 SP:FB CYC:14 SL:179 EE9D F0 BEQ $EEA1 PC:EE9E A:6E X:02 Y:C4 P:67 SP:FB CYC:20 SL:179 EEA1 C8 INY PC:EEA2 A:6E X:02 Y:C4 P:67 SP:FB CYC:29 SL:179 EEA2 A9 LDA #$A5 PC:EEA3 A:6E X:02 Y:C5 P:E5 SP:FB CYC:35 SL:179 EEA4 8D STA $0647 PC:EEA5 A:A5 X:02 Y:C5 P:E5 SP:FB CYC:41 SL:179 EEA7 20 JSR $FA7B PC:EEA8 A:A5 X:02 Y:C5 P:E5 SP:FB CYC:53 SL:179 FA7B 24 BIT $01 PC:FA7C A:A5 X:02 Y:C5 P:E5 SP:F9 CYC:71 SL:179 FA7D 18 CLC PC:FA7E A:A5 X:02 Y:C5 P:E5 SP:F9 CYC:80 SL:179 FA7E A9 LDA #$B3 PC:FA7F A:A5 X:02 Y:C5 P:E4 SP:F9 CYC:86 SL:179 FA80 60 RTS PC:FA81 A:B3 X:02 Y:C5 P:E4 SP:F9 CYC:92 SL:179 EEAA 0F SLO $0647 PC:EEAB A:B3 X:02 Y:C5 P:E4 SP:FB CYC:110 SL:179 EEAD EA NOP PC:EEAE A:FB X:02 Y:C5 P:E5 SP:FB CYC:128 SL:179 EEAE EA NOP PC:EEAF A:FB X:02 Y:C5 P:E5 SP:FB CYC:134 SL:179 EEAF EA NOP PC:EEB0 A:FB X:02 Y:C5 P:E5 SP:FB CYC:140 SL:179 EEB0 EA NOP PC:EEB1 A:FB X:02 Y:C5 P:E5 SP:FB CYC:146 SL:179 EEB1 20 JSR $FA81 PC:EEB2 A:FB X:02 Y:C5 P:E5 SP:FB CYC:152 SL:179 FA81 50 BVC $FAE6 PC:FA82 A:FB X:02 Y:C5 P:E5 SP:F9 CYC:170 SL:179 FA83 90 BCC $FAE6 PC:FA84 A:FB X:02 Y:C5 P:E5 SP:F9 CYC:176 SL:179 FA85 10 BPL $FAE6 PC:FA86 A:FB X:02 Y:C5 P:E5 SP:F9 CYC:182 SL:179 FA87 C9 CMP #$FB PC:FA88 A:FB X:02 Y:C5 P:E5 SP:F9 CYC:188 SL:179 FA89 D0 BNE $FAE6 PC:FA8A A:FB X:02 Y:C5 P:67 SP:F9 CYC:194 SL:179 FA8B 60 RTS PC:FA8C A:FB X:02 Y:C5 P:67 SP:F9 CYC:200 SL:179 EEB4 AD LDA $0647 PC:EEB5 A:FB X:02 Y:C5 P:67 SP:FB CYC:218 SL:179 EEB7 C9 CMP #$4A PC:EEB8 A:4A X:02 Y:C5 P:65 SP:FB CYC:230 SL:179 EEB9 F0 BEQ $EEBD PC:EEBA A:4A X:02 Y:C5 P:67 SP:FB CYC:236 SL:179 EEBD C8 INY PC:EEBE A:4A X:02 Y:C5 P:67 SP:FB CYC:245 SL:179 EEBE A9 LDA #$29 PC:EEBF A:4A X:02 Y:C6 P:E5 SP:FB CYC:251 SL:179 EEC0 8D STA $0647 PC:EEC1 A:29 X:02 Y:C6 P:65 SP:FB CYC:257 SL:179 EEC3 20 JSR $FA8C PC:EEC4 A:29 X:02 Y:C6 P:65 SP:FB CYC:269 SL:179 FA8C B8 CLV PC:FA8D A:29 X:02 Y:C6 P:65 SP:F9 CYC:287 SL:179 FA8D 18 CLC PC:FA8E A:29 X:02 Y:C6 P:25 SP:F9 CYC:293 SL:179 FA8E A9 LDA #$C3 PC:FA8F A:29 X:02 Y:C6 P:24 SP:F9 CYC:299 SL:179 FA90 60 RTS PC:FA91 A:C3 X:02 Y:C6 P:A4 SP:F9 CYC:305 SL:179 EEC6 0F SLO $0647 PC:EEC7 A:C3 X:02 Y:C6 P:A4 SP:FB CYC:323 SL:179 EEC9 EA NOP PC:EECA A:D3 X:02 Y:C6 P:A4 SP:FB CYC:0 SL:180 EECA EA NOP PC:EECB A:D3 X:02 Y:C6 P:A4 SP:FB CYC:6 SL:180 EECB EA NOP PC:EECC A:D3 X:02 Y:C6 P:A4 SP:FB CYC:12 SL:180 EECC EA NOP PC:EECD A:D3 X:02 Y:C6 P:A4 SP:FB CYC:18 SL:180 EECD 20 JSR $FA91 PC:EECE A:D3 X:02 Y:C6 P:A4 SP:FB CYC:24 SL:180 FA91 70 BVS $FAE6 PC:FA92 A:D3 X:02 Y:C6 P:A4 SP:F9 CYC:42 SL:180 FA93 F0 BEQ $FAE6 PC:FA94 A:D3 X:02 Y:C6 P:A4 SP:F9 CYC:48 SL:180 FA95 10 BPL $FAE6 PC:FA96 A:D3 X:02 Y:C6 P:A4 SP:F9 CYC:54 SL:180 FA97 B0 BCS $FAE6 PC:FA98 A:D3 X:02 Y:C6 P:A4 SP:F9 CYC:60 SL:180 FA99 C9 CMP #$D3 PC:FA9A A:D3 X:02 Y:C6 P:A4 SP:F9 CYC:66 SL:180 FA9B D0 BNE $FAE6 PC:FA9C A:D3 X:02 Y:C6 P:27 SP:F9 CYC:72 SL:180 FA9D 60 RTS PC:FA9E A:D3 X:02 Y:C6 P:27 SP:F9 CYC:78 SL:180 EED0 AD LDA $0647 PC:EED1 A:D3 X:02 Y:C6 P:27 SP:FB CYC:96 SL:180 EED3 C9 CMP #$52 PC:EED4 A:52 X:02 Y:C6 P:25 SP:FB CYC:108 SL:180 EED5 F0 BEQ $EED9 PC:EED6 A:52 X:02 Y:C6 P:27 SP:FB CYC:114 SL:180 EED9 C8 INY PC:EEDA A:52 X:02 Y:C6 P:27 SP:FB CYC:123 SL:180 EEDA A9 LDA #$37 PC:EEDB A:52 X:02 Y:C7 P:A5 SP:FB CYC:129 SL:180 EEDC 8D STA $0647 PC:EEDD A:37 X:02 Y:C7 P:25 SP:FB CYC:135 SL:180 EEDF 20 JSR $FA9E PC:EEE0 A:37 X:02 Y:C7 P:25 SP:FB CYC:147 SL:180 FA9E 24 BIT $01 PC:FA9F A:37 X:02 Y:C7 P:25 SP:F9 CYC:165 SL:180 FAA0 38 SEC PC:FAA1 A:37 X:02 Y:C7 P:E5 SP:F9 CYC:174 SL:180 FAA1 A9 LDA #$10 PC:FAA2 A:37 X:02 Y:C7 P:E5 SP:F9 CYC:180 SL:180 FAA3 60 RTS PC:FAA4 A:10 X:02 Y:C7 P:65 SP:F9 CYC:186 SL:180 EEE2 0F SLO $0647 PC:EEE3 A:10 X:02 Y:C7 P:65 SP:FB CYC:204 SL:180 EEE5 EA NOP PC:EEE6 A:7E X:02 Y:C7 P:64 SP:FB CYC:222 SL:180 EEE6 EA NOP PC:EEE7 A:7E X:02 Y:C7 P:64 SP:FB CYC:228 SL:180 EEE7 EA NOP PC:EEE8 A:7E X:02 Y:C7 P:64 SP:FB CYC:234 SL:180 EEE8 EA NOP PC:EEE9 A:7E X:02 Y:C7 P:64 SP:FB CYC:240 SL:180 EEE9 20 JSR $FAA4 PC:EEEA A:7E X:02 Y:C7 P:64 SP:FB CYC:246 SL:180 FAA4 50 BVC $FAE6 PC:FAA5 A:7E X:02 Y:C7 P:64 SP:F9 CYC:264 SL:180 FAA6 F0 BEQ $FAE6 PC:FAA7 A:7E X:02 Y:C7 P:64 SP:F9 CYC:270 SL:180 FAA8 30 BMI $FAE6 PC:FAA9 A:7E X:02 Y:C7 P:64 SP:F9 CYC:276 SL:180 FAAA B0 BCS $FAE6 PC:FAAB A:7E X:02 Y:C7 P:64 SP:F9 CYC:282 SL:180 FAAC C9 CMP #$7E PC:FAAD A:7E X:02 Y:C7 P:64 SP:F9 CYC:288 SL:180 FAAE D0 BNE $FAE6 PC:FAAF A:7E X:02 Y:C7 P:67 SP:F9 CYC:294 SL:180 FAB0 60 RTS PC:FAB1 A:7E X:02 Y:C7 P:67 SP:F9 CYC:300 SL:180 EEEC AD LDA $0647 PC:EEED A:7E X:02 Y:C7 P:67 SP:FB CYC:318 SL:180 EEEF C9 CMP #$6E PC:EEF0 A:6E X:02 Y:C7 P:65 SP:FB CYC:330 SL:180 EEF1 F0 BEQ $EEF5 PC:EEF2 A:6E X:02 Y:C7 P:67 SP:FB CYC:336 SL:180 EEF5 A9 LDA #$A5 PC:EEF6 A:6E X:02 Y:C7 P:67 SP:FB CYC:4 SL:181 EEF7 8D STA $0647 PC:EEF8 A:A5 X:02 Y:C7 P:E5 SP:FB CYC:10 SL:181 EEFA A9 LDA #$48 PC:EEFB A:A5 X:02 Y:C7 P:E5 SP:FB CYC:22 SL:181 EEFC 85 STA $45 PC:EEFD A:48 X:02 Y:C7 P:65 SP:FB CYC:28 SL:181 EEFE A9 LDA #$05 PC:EEFF A:48 X:02 Y:C7 P:65 SP:FB CYC:37 SL:181 EF00 85 STA $46 PC:EF01 A:05 X:02 Y:C7 P:65 SP:FB CYC:43 SL:181 EF02 A0 LDY #$FF PC:EF03 A:05 X:02 Y:C7 P:65 SP:FB CYC:52 SL:181 EF04 20 JSR $FA7B PC:EF05 A:05 X:02 Y:FF P:E5 SP:FB CYC:58 SL:181 FA7B 24 BIT $01 PC:FA7C A:05 X:02 Y:FF P:E5 SP:F9 CYC:76 SL:181 FA7D 18 CLC PC:FA7E A:05 X:02 Y:FF P:E5 SP:F9 CYC:85 SL:181 FA7E A9 LDA #$B3 PC:FA7F A:05 X:02 Y:FF P:E4 SP:F9 CYC:91 SL:181 FA80 60 RTS PC:FA81 A:B3 X:02 Y:FF P:E4 SP:F9 CYC:97 SL:181 EF07 13 SLO ($45), y PC:EF08 A:B3 X:02 Y:FF P:E4 SP:FB CYC:115 SL:181 EF09 EA NOP PC:EF0A A:FB X:02 Y:FF P:E5 SP:FB CYC:139 SL:181 EF0A EA NOP PC:EF0B A:FB X:02 Y:FF P:E5 SP:FB CYC:145 SL:181 EF0B 08 PHP PC:EF0C A:FB X:02 Y:FF P:E5 SP:FB CYC:151 SL:181 EF0C 48 PHA PC:EF0D A:FB X:02 Y:FF P:E5 SP:FA CYC:160 SL:181 EF0D A0 LDY #$C8 PC:EF0E A:FB X:02 Y:FF P:E5 SP:F9 CYC:169 SL:181 EF0F 68 PLA PC:EF10 A:FB X:02 Y:C8 P:E5 SP:F9 CYC:175 SL:181 EF10 28 PLP PC:EF11 A:FB X:02 Y:C8 P:E5 SP:FA CYC:187 SL:181 EF11 20 JSR $FA81 PC:EF12 A:FB X:02 Y:C8 P:E5 SP:FB CYC:199 SL:181 FA81 50 BVC $FAE6 PC:FA82 A:FB X:02 Y:C8 P:E5 SP:F9 CYC:217 SL:181 FA83 90 BCC $FAE6 PC:FA84 A:FB X:02 Y:C8 P:E5 SP:F9 CYC:223 SL:181 FA85 10 BPL $FAE6 PC:FA86 A:FB X:02 Y:C8 P:E5 SP:F9 CYC:229 SL:181 FA87 C9 CMP #$FB PC:FA88 A:FB X:02 Y:C8 P:E5 SP:F9 CYC:235 SL:181 FA89 D0 BNE $FAE6 PC:FA8A A:FB X:02 Y:C8 P:67 SP:F9 CYC:241 SL:181 FA8B 60 RTS PC:FA8C A:FB X:02 Y:C8 P:67 SP:F9 CYC:247 SL:181 EF14 AD LDA $0647 PC:EF15 A:FB X:02 Y:C8 P:67 SP:FB CYC:265 SL:181 EF17 C9 CMP #$4A PC:EF18 A:4A X:02 Y:C8 P:65 SP:FB CYC:277 SL:181 EF19 F0 BEQ $EF1D PC:EF1A A:4A X:02 Y:C8 P:67 SP:FB CYC:283 SL:181 EF1D A0 LDY #$FF PC:EF1E A:4A X:02 Y:C8 P:67 SP:FB CYC:292 SL:181 EF1F A9 LDA #$29 PC:EF20 A:4A X:02 Y:FF P:E5 SP:FB CYC:298 SL:181 EF21 8D STA $0647 PC:EF22 A:29 X:02 Y:FF P:65 SP:FB CYC:304 SL:181 EF24 20 JSR $FA8C PC:EF25 A:29 X:02 Y:FF P:65 SP:FB CYC:316 SL:181 FA8C B8 CLV PC:FA8D A:29 X:02 Y:FF P:65 SP:F9 CYC:334 SL:181 FA8D 18 CLC PC:FA8E A:29 X:02 Y:FF P:25 SP:F9 CYC:340 SL:181 FA8E A9 LDA #$C3 PC:FA8F A:29 X:02 Y:FF P:24 SP:F9 CYC:5 SL:182 FA90 60 RTS PC:FA91 A:C3 X:02 Y:FF P:A4 SP:F9 CYC:11 SL:182 EF27 13 SLO ($45), y PC:EF28 A:C3 X:02 Y:FF P:A4 SP:FB CYC:29 SL:182 EF29 EA NOP PC:EF2A A:D3 X:02 Y:FF P:A4 SP:FB CYC:53 SL:182 EF2A EA NOP PC:EF2B A:D3 X:02 Y:FF P:A4 SP:FB CYC:59 SL:182 EF2B 08 PHP PC:EF2C A:D3 X:02 Y:FF P:A4 SP:FB CYC:65 SL:182 EF2C 48 PHA PC:EF2D A:D3 X:02 Y:FF P:A4 SP:FA CYC:74 SL:182 EF2D A0 LDY #$C9 PC:EF2E A:D3 X:02 Y:FF P:A4 SP:F9 CYC:83 SL:182 EF2F 68 PLA PC:EF30 A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:89 SL:182 EF30 28 PLP PC:EF31 A:D3 X:02 Y:C9 P:A4 SP:FA CYC:101 SL:182 EF31 20 JSR $FA91 PC:EF32 A:D3 X:02 Y:C9 P:A4 SP:FB CYC:113 SL:182 FA91 70 BVS $FAE6 PC:FA92 A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:131 SL:182 FA93 F0 BEQ $FAE6 PC:FA94 A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:137 SL:182 FA95 10 BPL $FAE6 PC:FA96 A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:143 SL:182 FA97 B0 BCS $FAE6 PC:FA98 A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:149 SL:182 FA99 C9 CMP #$D3 PC:FA9A A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:155 SL:182 FA9B D0 BNE $FAE6 PC:FA9C A:D3 X:02 Y:C9 P:27 SP:F9 CYC:161 SL:182 FA9D 60 RTS PC:FA9E A:D3 X:02 Y:C9 P:27 SP:F9 CYC:167 SL:182 EF34 AD LDA $0647 PC:EF35 A:D3 X:02 Y:C9 P:27 SP:FB CYC:185 SL:182 EF37 C9 CMP #$52 PC:EF38 A:52 X:02 Y:C9 P:25 SP:FB CYC:197 SL:182 EF39 F0 BEQ $EF3D PC:EF3A A:52 X:02 Y:C9 P:27 SP:FB CYC:203 SL:182 EF3D A0 LDY #$FF PC:EF3E A:52 X:02 Y:C9 P:27 SP:FB CYC:212 SL:182 EF3F A9 LDA #$37 PC:EF40 A:52 X:02 Y:FF P:A5 SP:FB CYC:218 SL:182 EF41 8D STA $0647 PC:EF42 A:37 X:02 Y:FF P:25 SP:FB CYC:224 SL:182 EF44 20 JSR $FA9E PC:EF45 A:37 X:02 Y:FF P:25 SP:FB CYC:236 SL:182 FA9E 24 BIT $01 PC:FA9F A:37 X:02 Y:FF P:25 SP:F9 CYC:254 SL:182 FAA0 38 SEC PC:FAA1 A:37 X:02 Y:FF P:E5 SP:F9 CYC:263 SL:182 FAA1 A9 LDA #$10 PC:FAA2 A:37 X:02 Y:FF P:E5 SP:F9 CYC:269 SL:182 FAA3 60 RTS PC:FAA4 A:10 X:02 Y:FF P:65 SP:F9 CYC:275 SL:182 EF47 13 SLO ($45), y PC:EF48 A:10 X:02 Y:FF P:65 SP:FB CYC:293 SL:182 EF49 EA NOP PC:EF4A A:7E X:02 Y:FF P:64 SP:FB CYC:317 SL:182 EF4A EA NOP PC:EF4B A:7E X:02 Y:FF P:64 SP:FB CYC:323 SL:182 EF4B 08 PHP PC:EF4C A:7E X:02 Y:FF P:64 SP:FB CYC:329 SL:182 EF4C 48 PHA PC:EF4D A:7E X:02 Y:FF P:64 SP:FA CYC:338 SL:182 EF4D A0 LDY #$CA PC:EF4E A:7E X:02 Y:FF P:64 SP:F9 CYC:6 SL:183 EF4F 68 PLA PC:EF50 A:7E X:02 Y:CA P:E4 SP:F9 CYC:12 SL:183 EF50 28 PLP PC:EF51 A:7E X:02 Y:CA P:64 SP:FA CYC:24 SL:183 EF51 20 JSR $FAA4 PC:EF52 A:7E X:02 Y:CA P:64 SP:FB CYC:36 SL:183 FAA4 50 BVC $FAE6 PC:FAA5 A:7E X:02 Y:CA P:64 SP:F9 CYC:54 SL:183 FAA6 F0 BEQ $FAE6 PC:FAA7 A:7E X:02 Y:CA P:64 SP:F9 CYC:60 SL:183 FAA8 30 BMI $FAE6 PC:FAA9 A:7E X:02 Y:CA P:64 SP:F9 CYC:66 SL:183 FAAA B0 BCS $FAE6 PC:FAAB A:7E X:02 Y:CA P:64 SP:F9 CYC:72 SL:183 FAAC C9 CMP #$7E PC:FAAD A:7E X:02 Y:CA P:64 SP:F9 CYC:78 SL:183 FAAE D0 BNE $FAE6 PC:FAAF A:7E X:02 Y:CA P:67 SP:F9 CYC:84 SL:183 FAB0 60 RTS PC:FAB1 A:7E X:02 Y:CA P:67 SP:F9 CYC:90 SL:183 EF54 AD LDA $0647 PC:EF55 A:7E X:02 Y:CA P:67 SP:FB CYC:108 SL:183 EF57 C9 CMP #$6E PC:EF58 A:6E X:02 Y:CA P:65 SP:FB CYC:120 SL:183 EF59 F0 BEQ $EF5D PC:EF5A A:6E X:02 Y:CA P:67 SP:FB CYC:126 SL:183 EF5D A0 LDY #$CB PC:EF5E A:6E X:02 Y:CA P:67 SP:FB CYC:135 SL:183 EF5F A2 LDX #$FF PC:EF60 A:6E X:02 Y:CB P:E5 SP:FB CYC:141 SL:183 EF61 A9 LDA #$A5 PC:EF62 A:6E X:FF Y:CB P:E5 SP:FB CYC:147 SL:183 EF63 85 STA $47 PC:EF64 A:A5 X:FF Y:CB P:E5 SP:FB CYC:153 SL:183 EF65 20 JSR $FA7B PC:EF66 A:A5 X:FF Y:CB P:E5 SP:FB CYC:162 SL:183 FA7B 24 BIT $01 PC:FA7C A:A5 X:FF Y:CB P:E5 SP:F9 CYC:180 SL:183 FA7D 18 CLC PC:FA7E A:A5 X:FF Y:CB P:E5 SP:F9 CYC:189 SL:183 FA7E A9 LDA #$B3 PC:FA7F A:A5 X:FF Y:CB P:E4 SP:F9 CYC:195 SL:183 FA80 60 RTS PC:FA81 A:B3 X:FF Y:CB P:E4 SP:F9 CYC:201 SL:183 EF68 17 SLO $48,x PC:EF69 A:B3 X:FF Y:CB P:E4 SP:FB CYC:219 SL:183 EF6A EA NOP PC:EF6B A:FB X:FF Y:CB P:E5 SP:FB CYC:237 SL:183 EF6B EA NOP PC:EF6C A:FB X:FF Y:CB P:E5 SP:FB CYC:243 SL:183 EF6C EA NOP PC:EF6D A:FB X:FF Y:CB P:E5 SP:FB CYC:249 SL:183 EF6D EA NOP PC:EF6E A:FB X:FF Y:CB P:E5 SP:FB CYC:255 SL:183 EF6E 20 JSR $FA81 PC:EF6F A:FB X:FF Y:CB P:E5 SP:FB CYC:261 SL:183 FA81 50 BVC $FAE6 PC:FA82 A:FB X:FF Y:CB P:E5 SP:F9 CYC:279 SL:183 FA83 90 BCC $FAE6 PC:FA84 A:FB X:FF Y:CB P:E5 SP:F9 CYC:285 SL:183 FA85 10 BPL $FAE6 PC:FA86 A:FB X:FF Y:CB P:E5 SP:F9 CYC:291 SL:183 FA87 C9 CMP #$FB PC:FA88 A:FB X:FF Y:CB P:E5 SP:F9 CYC:297 SL:183 FA89 D0 BNE $FAE6 PC:FA8A A:FB X:FF Y:CB P:67 SP:F9 CYC:303 SL:183 FA8B 60 RTS PC:FA8C A:FB X:FF Y:CB P:67 SP:F9 CYC:309 SL:183 EF71 A5 LDA $47 PC:EF72 A:FB X:FF Y:CB P:67 SP:FB CYC:327 SL:183 EF73 C9 CMP #$4A PC:EF74 A:4A X:FF Y:CB P:65 SP:FB CYC:336 SL:183 EF75 F0 BEQ $EF79 PC:EF76 A:4A X:FF Y:CB P:67 SP:FB CYC:1 SL:184 EF79 C8 INY PC:EF7A A:4A X:FF Y:CB P:67 SP:FB CYC:10 SL:184 EF7A A9 LDA #$29 PC:EF7B A:4A X:FF Y:CC P:E5 SP:FB CYC:16 SL:184 EF7C 85 STA $47 PC:EF7D A:29 X:FF Y:CC P:65 SP:FB CYC:22 SL:184 EF7E 20 JSR $FA8C PC:EF7F A:29 X:FF Y:CC P:65 SP:FB CYC:31 SL:184 FA8C B8 CLV PC:FA8D A:29 X:FF Y:CC P:65 SP:F9 CYC:49 SL:184 FA8D 18 CLC PC:FA8E A:29 X:FF Y:CC P:25 SP:F9 CYC:55 SL:184 FA8E A9 LDA #$C3 PC:FA8F A:29 X:FF Y:CC P:24 SP:F9 CYC:61 SL:184 FA90 60 RTS PC:FA91 A:C3 X:FF Y:CC P:A4 SP:F9 CYC:67 SL:184 EF81 17 SLO $48,x PC:EF82 A:C3 X:FF Y:CC P:A4 SP:FB CYC:85 SL:184 EF83 EA NOP PC:EF84 A:D3 X:FF Y:CC P:A4 SP:FB CYC:103 SL:184 EF84 EA NOP PC:EF85 A:D3 X:FF Y:CC P:A4 SP:FB CYC:109 SL:184 EF85 EA NOP PC:EF86 A:D3 X:FF Y:CC P:A4 SP:FB CYC:115 SL:184 EF86 EA NOP PC:EF87 A:D3 X:FF Y:CC P:A4 SP:FB CYC:121 SL:184 EF87 20 JSR $FA91 PC:EF88 A:D3 X:FF Y:CC P:A4 SP:FB CYC:127 SL:184 FA91 70 BVS $FAE6 PC:FA92 A:D3 X:FF Y:CC P:A4 SP:F9 CYC:145 SL:184 FA93 F0 BEQ $FAE6 PC:FA94 A:D3 X:FF Y:CC P:A4 SP:F9 CYC:151 SL:184 FA95 10 BPL $FAE6 PC:FA96 A:D3 X:FF Y:CC P:A4 SP:F9 CYC:157 SL:184 FA97 B0 BCS $FAE6 PC:FA98 A:D3 X:FF Y:CC P:A4 SP:F9 CYC:163 SL:184 FA99 C9 CMP #$D3 PC:FA9A A:D3 X:FF Y:CC P:A4 SP:F9 CYC:169 SL:184 FA9B D0 BNE $FAE6 PC:FA9C A:D3 X:FF Y:CC P:27 SP:F9 CYC:175 SL:184 FA9D 60 RTS PC:FA9E A:D3 X:FF Y:CC P:27 SP:F9 CYC:181 SL:184 EF8A A5 LDA $47 PC:EF8B A:D3 X:FF Y:CC P:27 SP:FB CYC:199 SL:184 EF8C C9 CMP #$52 PC:EF8D A:52 X:FF Y:CC P:25 SP:FB CYC:208 SL:184 EF8E F0 BEQ $EF92 PC:EF8F A:52 X:FF Y:CC P:27 SP:FB CYC:214 SL:184 EF92 C8 INY PC:EF93 A:52 X:FF Y:CC P:27 SP:FB CYC:223 SL:184 EF93 A9 LDA #$37 PC:EF94 A:52 X:FF Y:CD P:A5 SP:FB CYC:229 SL:184 EF95 85 STA $47 PC:EF96 A:37 X:FF Y:CD P:25 SP:FB CYC:235 SL:184 EF97 20 JSR $FA9E PC:EF98 A:37 X:FF Y:CD P:25 SP:FB CYC:244 SL:184 FA9E 24 BIT $01 PC:FA9F A:37 X:FF Y:CD P:25 SP:F9 CYC:262 SL:184 FAA0 38 SEC PC:FAA1 A:37 X:FF Y:CD P:E5 SP:F9 CYC:271 SL:184 FAA1 A9 LDA #$10 PC:FAA2 A:37 X:FF Y:CD P:E5 SP:F9 CYC:277 SL:184 FAA3 60 RTS PC:FAA4 A:10 X:FF Y:CD P:65 SP:F9 CYC:283 SL:184 EF9A 17 SLO $48,x PC:EF9B A:10 X:FF Y:CD P:65 SP:FB CYC:301 SL:184 EF9C EA NOP PC:EF9D A:7E X:FF Y:CD P:64 SP:FB CYC:319 SL:184 EF9D EA NOP PC:EF9E A:7E X:FF Y:CD P:64 SP:FB CYC:325 SL:184 EF9E EA NOP PC:EF9F A:7E X:FF Y:CD P:64 SP:FB CYC:331 SL:184 EF9F EA NOP PC:EFA0 A:7E X:FF Y:CD P:64 SP:FB CYC:337 SL:184 EFA0 20 JSR $FAA4 PC:EFA1 A:7E X:FF Y:CD P:64 SP:FB CYC:2 SL:185 FAA4 50 BVC $FAE6 PC:FAA5 A:7E X:FF Y:CD P:64 SP:F9 CYC:20 SL:185 FAA6 F0 BEQ $FAE6 PC:FAA7 A:7E X:FF Y:CD P:64 SP:F9 CYC:26 SL:185 FAA8 30 BMI $FAE6 PC:FAA9 A:7E X:FF Y:CD P:64 SP:F9 CYC:32 SL:185 FAAA B0 BCS $FAE6 PC:FAAB A:7E X:FF Y:CD P:64 SP:F9 CYC:38 SL:185 FAAC C9 CMP #$7E PC:FAAD A:7E X:FF Y:CD P:64 SP:F9 CYC:44 SL:185 FAAE D0 BNE $FAE6 PC:FAAF A:7E X:FF Y:CD P:67 SP:F9 CYC:50 SL:185 FAB0 60 RTS PC:FAB1 A:7E X:FF Y:CD P:67 SP:F9 CYC:56 SL:185 EFA3 A5 LDA $47 PC:EFA4 A:7E X:FF Y:CD P:67 SP:FB CYC:74 SL:185 EFA5 C9 CMP #$6E PC:EFA6 A:6E X:FF Y:CD P:65 SP:FB CYC:83 SL:185 EFA7 F0 BEQ $EFAB PC:EFA8 A:6E X:FF Y:CD P:67 SP:FB CYC:89 SL:185 EFAB A9 LDA #$A5 PC:EFAC A:6E X:FF Y:CD P:67 SP:FB CYC:98 SL:185 EFAD 8D STA $0647 PC:EFAE A:A5 X:FF Y:CD P:E5 SP:FB CYC:104 SL:185 EFB0 A0 LDY #$FF PC:EFB1 A:A5 X:FF Y:CD P:E5 SP:FB CYC:116 SL:185 EFB2 20 JSR $FA7B PC:EFB3 A:A5 X:FF Y:FF P:E5 SP:FB CYC:122 SL:185 FA7B 24 BIT $01 PC:FA7C A:A5 X:FF Y:FF P:E5 SP:F9 CYC:140 SL:185 FA7D 18 CLC PC:FA7E A:A5 X:FF Y:FF P:E5 SP:F9 CYC:149 SL:185 FA7E A9 LDA #$B3 PC:FA7F A:A5 X:FF Y:FF P:E4 SP:F9 CYC:155 SL:185 FA80 60 RTS PC:FA81 A:B3 X:FF Y:FF P:E4 SP:F9 CYC:161 SL:185 EFB5 1B SLO $0548,y PC:EFB6 A:B3 X:FF Y:FF P:E4 SP:FB CYC:179 SL:185 EFB8 EA NOP PC:EFB9 A:FB X:FF Y:FF P:E5 SP:FB CYC:200 SL:185 EFB9 EA NOP PC:EFBA A:FB X:FF Y:FF P:E5 SP:FB CYC:206 SL:185 EFBA 08 PHP PC:EFBB A:FB X:FF Y:FF P:E5 SP:FB CYC:212 SL:185 EFBB 48 PHA PC:EFBC A:FB X:FF Y:FF P:E5 SP:FA CYC:221 SL:185 EFBC A0 LDY #$CE PC:EFBD A:FB X:FF Y:FF P:E5 SP:F9 CYC:230 SL:185 EFBE 68 PLA PC:EFBF A:FB X:FF Y:CE P:E5 SP:F9 CYC:236 SL:185 EFBF 28 PLP PC:EFC0 A:FB X:FF Y:CE P:E5 SP:FA CYC:248 SL:185 EFC0 20 JSR $FA81 PC:EFC1 A:FB X:FF Y:CE P:E5 SP:FB CYC:260 SL:185 FA81 50 BVC $FAE6 PC:FA82 A:FB X:FF Y:CE P:E5 SP:F9 CYC:278 SL:185 FA83 90 BCC $FAE6 PC:FA84 A:FB X:FF Y:CE P:E5 SP:F9 CYC:284 SL:185 FA85 10 BPL $FAE6 PC:FA86 A:FB X:FF Y:CE P:E5 SP:F9 CYC:290 SL:185 FA87 C9 CMP #$FB PC:FA88 A:FB X:FF Y:CE P:E5 SP:F9 CYC:296 SL:185 FA89 D0 BNE $FAE6 PC:FA8A A:FB X:FF Y:CE P:67 SP:F9 CYC:302 SL:185 FA8B 60 RTS PC:FA8C A:FB X:FF Y:CE P:67 SP:F9 CYC:308 SL:185 EFC3 AD LDA $0647 PC:EFC4 A:FB X:FF Y:CE P:67 SP:FB CYC:326 SL:185 EFC6 C9 CMP #$4A PC:EFC7 A:4A X:FF Y:CE P:65 SP:FB CYC:338 SL:185 EFC8 F0 BEQ $EFCC PC:EFC9 A:4A X:FF Y:CE P:67 SP:FB CYC:3 SL:186 EFCC A0 LDY #$FF PC:EFCD A:4A X:FF Y:CE P:67 SP:FB CYC:12 SL:186 EFCE A9 LDA #$29 PC:EFCF A:4A X:FF Y:FF P:E5 SP:FB CYC:18 SL:186 EFD0 8D STA $0647 PC:EFD1 A:29 X:FF Y:FF P:65 SP:FB CYC:24 SL:186 EFD3 20 JSR $FA8C PC:EFD4 A:29 X:FF Y:FF P:65 SP:FB CYC:36 SL:186 FA8C B8 CLV PC:FA8D A:29 X:FF Y:FF P:65 SP:F9 CYC:54 SL:186 FA8D 18 CLC PC:FA8E A:29 X:FF Y:FF P:25 SP:F9 CYC:60 SL:186 FA8E A9 LDA #$C3 PC:FA8F A:29 X:FF Y:FF P:24 SP:F9 CYC:66 SL:186 FA90 60 RTS PC:FA91 A:C3 X:FF Y:FF P:A4 SP:F9 CYC:72 SL:186 EFD6 1B SLO $0548,y PC:EFD7 A:C3 X:FF Y:FF P:A4 SP:FB CYC:90 SL:186 EFD9 EA NOP PC:EFDA A:D3 X:FF Y:FF P:A4 SP:FB CYC:111 SL:186 EFDA EA NOP PC:EFDB A:D3 X:FF Y:FF P:A4 SP:FB CYC:117 SL:186 EFDB 08 PHP PC:EFDC A:D3 X:FF Y:FF P:A4 SP:FB CYC:123 SL:186 EFDC 48 PHA PC:EFDD A:D3 X:FF Y:FF P:A4 SP:FA CYC:132 SL:186 EFDD A0 LDY #$CF PC:EFDE A:D3 X:FF Y:FF P:A4 SP:F9 CYC:141 SL:186 EFDF 68 PLA PC:EFE0 A:D3 X:FF Y:CF P:A4 SP:F9 CYC:147 SL:186 EFE0 28 PLP PC:EFE1 A:D3 X:FF Y:CF P:A4 SP:FA CYC:159 SL:186 EFE1 20 JSR $FA91 PC:EFE2 A:D3 X:FF Y:CF P:A4 SP:FB CYC:171 SL:186 FA91 70 BVS $FAE6 PC:FA92 A:D3 X:FF Y:CF P:A4 SP:F9 CYC:189 SL:186 FA93 F0 BEQ $FAE6 PC:FA94 A:D3 X:FF Y:CF P:A4 SP:F9 CYC:195 SL:186 FA95 10 BPL $FAE6 PC:FA96 A:D3 X:FF Y:CF P:A4 SP:F9 CYC:201 SL:186 FA97 B0 BCS $FAE6 PC:FA98 A:D3 X:FF Y:CF P:A4 SP:F9 CYC:207 SL:186 FA99 C9 CMP #$D3 PC:FA9A A:D3 X:FF Y:CF P:A4 SP:F9 CYC:213 SL:186 FA9B D0 BNE $FAE6 PC:FA9C A:D3 X:FF Y:CF P:27 SP:F9 CYC:219 SL:186 FA9D 60 RTS PC:FA9E A:D3 X:FF Y:CF P:27 SP:F9 CYC:225 SL:186 EFE4 AD LDA $0647 PC:EFE5 A:D3 X:FF Y:CF P:27 SP:FB CYC:243 SL:186 EFE7 C9 CMP #$52 PC:EFE8 A:52 X:FF Y:CF P:25 SP:FB CYC:255 SL:186 EFE9 F0 BEQ $EFED PC:EFEA A:52 X:FF Y:CF P:27 SP:FB CYC:261 SL:186 EFED A0 LDY #$FF PC:EFEE A:52 X:FF Y:CF P:27 SP:FB CYC:270 SL:186 EFEF A9 LDA #$37 PC:EFF0 A:52 X:FF Y:FF P:A5 SP:FB CYC:276 SL:186 EFF1 8D STA $0647 PC:EFF2 A:37 X:FF Y:FF P:25 SP:FB CYC:282 SL:186 EFF4 20 JSR $FA9E PC:EFF5 A:37 X:FF Y:FF P:25 SP:FB CYC:294 SL:186 FA9E 24 BIT $01 PC:FA9F A:37 X:FF Y:FF P:25 SP:F9 CYC:312 SL:186 FAA0 38 SEC PC:FAA1 A:37 X:FF Y:FF P:E5 SP:F9 CYC:321 SL:186 FAA1 A9 LDA #$10 PC:FAA2 A:37 X:FF Y:FF P:E5 SP:F9 CYC:327 SL:186 FAA3 60 RTS PC:FAA4 A:10 X:FF Y:FF P:65 SP:F9 CYC:333 SL:186 EFF7 1B SLO $0548,y PC:EFF8 A:10 X:FF Y:FF P:65 SP:FB CYC:10 SL:187 EFFA EA NOP PC:EFFB A:7E X:FF Y:FF P:64 SP:FB CYC:31 SL:187 EFFB EA NOP PC:EFFC A:7E X:FF Y:FF P:64 SP:FB CYC:37 SL:187 EFFC 08 PHP PC:EFFD A:7E X:FF Y:FF P:64 SP:FB CYC:43 SL:187 EFFD 48 PHA PC:EFFE A:7E X:FF Y:FF P:64 SP:FA CYC:52 SL:187 EFFE A0 LDY #$D0 PC:EFFF A:7E X:FF Y:FF P:64 SP:F9 CYC:61 SL:187 F000 68 PLA PC:F001 A:7E X:FF Y:D0 P:E4 SP:F9 CYC:67 SL:187 F001 28 PLP PC:F002 A:7E X:FF Y:D0 P:64 SP:FA CYC:79 SL:187 F002 20 JSR $FAA4 PC:F003 A:7E X:FF Y:D0 P:64 SP:FB CYC:91 SL:187 FAA4 50 BVC $FAE6 PC:FAA5 A:7E X:FF Y:D0 P:64 SP:F9 CYC:109 SL:187 FAA6 F0 BEQ $FAE6 PC:FAA7 A:7E X:FF Y:D0 P:64 SP:F9 CYC:115 SL:187 FAA8 30 BMI $FAE6 PC:FAA9 A:7E X:FF Y:D0 P:64 SP:F9 CYC:121 SL:187 FAAA B0 BCS $FAE6 PC:FAAB A:7E X:FF Y:D0 P:64 SP:F9 CYC:127 SL:187 FAAC C9 CMP #$7E PC:FAAD A:7E X:FF Y:D0 P:64 SP:F9 CYC:133 SL:187 FAAE D0 BNE $FAE6 PC:FAAF A:7E X:FF Y:D0 P:67 SP:F9 CYC:139 SL:187 FAB0 60 RTS PC:FAB1 A:7E X:FF Y:D0 P:67 SP:F9 CYC:145 SL:187 F005 AD LDA $0647 PC:F006 A:7E X:FF Y:D0 P:67 SP:FB CYC:163 SL:187 F008 C9 CMP #$6E PC:F009 A:6E X:FF Y:D0 P:65 SP:FB CYC:175 SL:187 F00A F0 BEQ $F00E PC:F00B A:6E X:FF Y:D0 P:67 SP:FB CYC:181 SL:187 F00E A0 LDY #$D1 PC:F00F A:6E X:FF Y:D0 P:67 SP:FB CYC:190 SL:187 F010 A2 LDX #$FF PC:F011 A:6E X:FF Y:D1 P:E5 SP:FB CYC:196 SL:187 F012 A9 LDA #$A5 PC:F013 A:6E X:FF Y:D1 P:E5 SP:FB CYC:202 SL:187 F014 8D STA $0647 PC:F015 A:A5 X:FF Y:D1 P:E5 SP:FB CYC:208 SL:187 F017 20 JSR $FA7B PC:F018 A:A5 X:FF Y:D1 P:E5 SP:FB CYC:220 SL:187 FA7B 24 BIT $01 PC:FA7C A:A5 X:FF Y:D1 P:E5 SP:F9 CYC:238 SL:187 FA7D 18 CLC PC:FA7E A:A5 X:FF Y:D1 P:E5 SP:F9 CYC:247 SL:187 FA7E A9 LDA #$B3 PC:FA7F A:A5 X:FF Y:D1 P:E4 SP:F9 CYC:253 SL:187 FA80 60 RTS PC:FA81 A:B3 X:FF Y:D1 P:E4 SP:F9 CYC:259 SL:187 F01A 1F SLO $0548,x PC:F01B A:B3 X:FF Y:D1 P:E4 SP:FB CYC:277 SL:187 F01D EA NOP PC:F01E A:FB X:FF Y:D1 P:E5 SP:FB CYC:298 SL:187 F01E EA NOP PC:F01F A:FB X:FF Y:D1 P:E5 SP:FB CYC:304 SL:187 F01F EA NOP PC:F020 A:FB X:FF Y:D1 P:E5 SP:FB CYC:310 SL:187 F020 EA NOP PC:F021 A:FB X:FF Y:D1 P:E5 SP:FB CYC:316 SL:187 F021 20 JSR $FA81 PC:F022 A:FB X:FF Y:D1 P:E5 SP:FB CYC:322 SL:187 FA81 50 BVC $FAE6 PC:FA82 A:FB X:FF Y:D1 P:E5 SP:F9 CYC:340 SL:187 FA83 90 BCC $FAE6 PC:FA84 A:FB X:FF Y:D1 P:E5 SP:F9 CYC:5 SL:188 FA85 10 BPL $FAE6 PC:FA86 A:FB X:FF Y:D1 P:E5 SP:F9 CYC:11 SL:188 FA87 C9 CMP #$FB PC:FA88 A:FB X:FF Y:D1 P:E5 SP:F9 CYC:17 SL:188 FA89 D0 BNE $FAE6 PC:FA8A A:FB X:FF Y:D1 P:67 SP:F9 CYC:23 SL:188 FA8B 60 RTS PC:FA8C A:FB X:FF Y:D1 P:67 SP:F9 CYC:29 SL:188 F024 AD LDA $0647 PC:F025 A:FB X:FF Y:D1 P:67 SP:FB CYC:47 SL:188 F027 C9 CMP #$4A PC:F028 A:4A X:FF Y:D1 P:65 SP:FB CYC:59 SL:188 F029 F0 BEQ $F02D PC:F02A A:4A X:FF Y:D1 P:67 SP:FB CYC:65 SL:188 F02D C8 INY PC:F02E A:4A X:FF Y:D1 P:67 SP:FB CYC:74 SL:188 F02E A9 LDA #$29 PC:F02F A:4A X:FF Y:D2 P:E5 SP:FB CYC:80 SL:188 F030 8D STA $0647 PC:F031 A:29 X:FF Y:D2 P:65 SP:FB CYC:86 SL:188 F033 20 JSR $FA8C PC:F034 A:29 X:FF Y:D2 P:65 SP:FB CYC:98 SL:188 FA8C B8 CLV PC:FA8D A:29 X:FF Y:D2 P:65 SP:F9 CYC:116 SL:188 FA8D 18 CLC PC:FA8E A:29 X:FF Y:D2 P:25 SP:F9 CYC:122 SL:188 FA8E A9 LDA #$C3 PC:FA8F A:29 X:FF Y:D2 P:24 SP:F9 CYC:128 SL:188 FA90 60 RTS PC:FA91 A:C3 X:FF Y:D2 P:A4 SP:F9 CYC:134 SL:188 F036 1F SLO $0548,x PC:F037 A:C3 X:FF Y:D2 P:A4 SP:FB CYC:152 SL:188 F039 EA NOP PC:F03A A:D3 X:FF Y:D2 P:A4 SP:FB CYC:173 SL:188 F03A EA NOP PC:F03B A:D3 X:FF Y:D2 P:A4 SP:FB CYC:179 SL:188 F03B EA NOP PC:F03C A:D3 X:FF Y:D2 P:A4 SP:FB CYC:185 SL:188 F03C EA NOP PC:F03D A:D3 X:FF Y:D2 P:A4 SP:FB CYC:191 SL:188 F03D 20 JSR $FA91 PC:F03E A:D3 X:FF Y:D2 P:A4 SP:FB CYC:197 SL:188 FA91 70 BVS $FAE6 PC:FA92 A:D3 X:FF Y:D2 P:A4 SP:F9 CYC:215 SL:188 FA93 F0 BEQ $FAE6 PC:FA94 A:D3 X:FF Y:D2 P:A4 SP:F9 CYC:221 SL:188 FA95 10 BPL $FAE6 PC:FA96 A:D3 X:FF Y:D2 P:A4 SP:F9 CYC:227 SL:188 FA97 B0 BCS $FAE6 PC:FA98 A:D3 X:FF Y:D2 P:A4 SP:F9 CYC:233 SL:188 FA99 C9 CMP #$D3 PC:FA9A A:D3 X:FF Y:D2 P:A4 SP:F9 CYC:239 SL:188 FA9B D0 BNE $FAE6 PC:FA9C A:D3 X:FF Y:D2 P:27 SP:F9 CYC:245 SL:188 FA9D 60 RTS PC:FA9E A:D3 X:FF Y:D2 P:27 SP:F9 CYC:251 SL:188 F040 AD LDA $0647 PC:F041 A:D3 X:FF Y:D2 P:27 SP:FB CYC:269 SL:188 F043 C9 CMP #$52 PC:F044 A:52 X:FF Y:D2 P:25 SP:FB CYC:281 SL:188 F045 F0 BEQ $F049 PC:F046 A:52 X:FF Y:D2 P:27 SP:FB CYC:287 SL:188 F049 C8 INY PC:F04A A:52 X:FF Y:D2 P:27 SP:FB CYC:296 SL:188 F04A A9 LDA #$37 PC:F04B A:52 X:FF Y:D3 P:A5 SP:FB CYC:302 SL:188 F04C 8D STA $0647 PC:F04D A:37 X:FF Y:D3 P:25 SP:FB CYC:308 SL:188 F04F 20 JSR $FA9E PC:F050 A:37 X:FF Y:D3 P:25 SP:FB CYC:320 SL:188 FA9E 24 BIT $01 PC:FA9F A:37 X:FF Y:D3 P:25 SP:F9 CYC:338 SL:188 FAA0 38 SEC PC:FAA1 A:37 X:FF Y:D3 P:E5 SP:F9 CYC:6 SL:189 FAA1 A9 LDA #$10 PC:FAA2 A:37 X:FF Y:D3 P:E5 SP:F9 CYC:12 SL:189 FAA3 60 RTS PC:FAA4 A:10 X:FF Y:D3 P:65 SP:F9 CYC:18 SL:189 F052 1F SLO $0548,x PC:F053 A:10 X:FF Y:D3 P:65 SP:FB CYC:36 SL:189 F055 EA NOP PC:F056 A:7E X:FF Y:D3 P:64 SP:FB CYC:57 SL:189 F056 EA NOP PC:F057 A:7E X:FF Y:D3 P:64 SP:FB CYC:63 SL:189 F057 EA NOP PC:F058 A:7E X:FF Y:D3 P:64 SP:FB CYC:69 SL:189 F058 EA NOP PC:F059 A:7E X:FF Y:D3 P:64 SP:FB CYC:75 SL:189 F059 20 JSR $FAA4 PC:F05A A:7E X:FF Y:D3 P:64 SP:FB CYC:81 SL:189 FAA4 50 BVC $FAE6 PC:FAA5 A:7E X:FF Y:D3 P:64 SP:F9 CYC:99 SL:189 FAA6 F0 BEQ $FAE6 PC:FAA7 A:7E X:FF Y:D3 P:64 SP:F9 CYC:105 SL:189 FAA8 30 BMI $FAE6 PC:FAA9 A:7E X:FF Y:D3 P:64 SP:F9 CYC:111 SL:189 FAAA B0 BCS $FAE6 PC:FAAB A:7E X:FF Y:D3 P:64 SP:F9 CYC:117 SL:189 FAAC C9 CMP #$7E PC:FAAD A:7E X:FF Y:D3 P:64 SP:F9 CYC:123 SL:189 FAAE D0 BNE $FAE6 PC:FAAF A:7E X:FF Y:D3 P:67 SP:F9 CYC:129 SL:189 FAB0 60 RTS PC:FAB1 A:7E X:FF Y:D3 P:67 SP:F9 CYC:135 SL:189 F05C AD LDA $0647 PC:F05D A:7E X:FF Y:D3 P:67 SP:FB CYC:153 SL:189 F05F C9 CMP #$6E PC:F060 A:6E X:FF Y:D3 P:65 SP:FB CYC:165 SL:189 F061 F0 BEQ $F065 PC:F062 A:6E X:FF Y:D3 P:67 SP:FB CYC:171 SL:189 F065 60 RTS PC:F066 A:6E X:FF Y:D3 P:67 SP:FB CYC:180 SL:189 C644 20 JSR $F066 PC:C645 A:6E X:FF Y:D3 P:67 SP:FD CYC:198 SL:189 F066 A9 LDA #$FF PC:F067 A:6E X:FF Y:D3 P:67 SP:FB CYC:216 SL:189 F068 85 STA $01 PC:F069 A:FF X:FF Y:D3 P:E5 SP:FB CYC:222 SL:189 F06A A0 LDY #$D4 PC:F06B A:FF X:FF Y:D3 P:E5 SP:FB CYC:231 SL:189 F06C A2 LDX #$02 PC:F06D A:FF X:FF Y:D4 P:E5 SP:FB CYC:237 SL:189 F06E A9 LDA #$47 PC:F06F A:FF X:02 Y:D4 P:65 SP:FB CYC:243 SL:189 F070 85 STA $47 PC:F071 A:47 X:02 Y:D4 P:65 SP:FB CYC:249 SL:189 F072 A9 LDA #$06 PC:F073 A:47 X:02 Y:D4 P:65 SP:FB CYC:258 SL:189 F074 85 STA $48 PC:F075 A:06 X:02 Y:D4 P:65 SP:FB CYC:264 SL:189 F076 A9 LDA #$A5 PC:F077 A:06 X:02 Y:D4 P:65 SP:FB CYC:273 SL:189 F078 8D STA $0647 PC:F079 A:A5 X:02 Y:D4 P:E5 SP:FB CYC:279 SL:189 F07B 20 JSR $FB53 PC:F07C A:A5 X:02 Y:D4 P:E5 SP:FB CYC:291 SL:189 FB53 24 BIT $01 PC:FB54 A:A5 X:02 Y:D4 P:E5 SP:F9 CYC:309 SL:189 FB55 18 CLC PC:FB56 A:A5 X:02 Y:D4 P:E5 SP:F9 CYC:318 SL:189 FB56 A9 LDA #$B3 PC:FB57 A:A5 X:02 Y:D4 P:E4 SP:F9 CYC:324 SL:189 FB58 60 RTS PC:FB59 A:B3 X:02 Y:D4 P:E4 SP:F9 CYC:330 SL:189 F07E 23 RLA $(EA45,x) PC:F07F A:B3 X:02 Y:D4 P:E4 SP:FB CYC:7 SL:190 F080 EA NOP PC:F081 A:02 X:02 Y:D4 P:65 SP:FB CYC:31 SL:190 F081 EA NOP PC:F082 A:02 X:02 Y:D4 P:65 SP:FB CYC:37 SL:190 F082 EA NOP PC:F083 A:02 X:02 Y:D4 P:65 SP:FB CYC:43 SL:190 F083 EA NOP PC:F084 A:02 X:02 Y:D4 P:65 SP:FB CYC:49 SL:190 F084 20 JSR $FB59 PC:F085 A:02 X:02 Y:D4 P:65 SP:FB CYC:55 SL:190 FB59 50 BVC $FB75 PC:FB5A A:02 X:02 Y:D4 P:65 SP:F9 CYC:73 SL:190 FB5B 90 BCC $FB75 PC:FB5C A:02 X:02 Y:D4 P:65 SP:F9 CYC:79 SL:190 FB5D 30 BMI $FB75 PC:FB5E A:02 X:02 Y:D4 P:65 SP:F9 CYC:85 SL:190 FB5F C9 CMP #$02 PC:FB60 A:02 X:02 Y:D4 P:65 SP:F9 CYC:91 SL:190 FB61 D0 BNE $FB75 PC:FB62 A:02 X:02 Y:D4 P:67 SP:F9 CYC:97 SL:190 FB63 60 RTS PC:FB64 A:02 X:02 Y:D4 P:67 SP:F9 CYC:103 SL:190 F087 AD LDA $0647 PC:F088 A:02 X:02 Y:D4 P:67 SP:FB CYC:121 SL:190 F08A C9 CMP #$4A PC:F08B A:4A X:02 Y:D4 P:65 SP:FB CYC:133 SL:190 F08C F0 BEQ $F090 PC:F08D A:4A X:02 Y:D4 P:67 SP:FB CYC:139 SL:190 F090 C8 INY PC:F091 A:4A X:02 Y:D4 P:67 SP:FB CYC:148 SL:190 F091 A9 LDA #$29 PC:F092 A:4A X:02 Y:D5 P:E5 SP:FB CYC:154 SL:190 F093 8D STA $0647 PC:F094 A:29 X:02 Y:D5 P:65 SP:FB CYC:160 SL:190 F096 20 JSR $FB64 PC:F097 A:29 X:02 Y:D5 P:65 SP:FB CYC:172 SL:190 FB64 B8 CLV PC:FB65 A:29 X:02 Y:D5 P:65 SP:F9 CYC:190 SL:190 FB65 18 CLC PC:FB66 A:29 X:02 Y:D5 P:25 SP:F9 CYC:196 SL:190 FB66 A9 LDA #$42 PC:FB67 A:29 X:02 Y:D5 P:24 SP:F9 CYC:202 SL:190 FB68 60 RTS PC:FB69 A:42 X:02 Y:D5 P:24 SP:F9 CYC:208 SL:190 F099 23 RLA $(EA45,x) PC:F09A A:42 X:02 Y:D5 P:24 SP:FB CYC:226 SL:190 F09B EA NOP PC:F09C A:42 X:02 Y:D5 P:24 SP:FB CYC:250 SL:190 F09C EA NOP PC:F09D A:42 X:02 Y:D5 P:24 SP:FB CYC:256 SL:190 F09D EA NOP PC:F09E A:42 X:02 Y:D5 P:24 SP:FB CYC:262 SL:190 F09E EA NOP PC:F09F A:42 X:02 Y:D5 P:24 SP:FB CYC:268 SL:190 F09F 20 JSR $FB69 PC:F0A0 A:42 X:02 Y:D5 P:24 SP:FB CYC:274 SL:190 FB69 70 BVS $FB75 PC:FB6A A:42 X:02 Y:D5 P:24 SP:F9 CYC:292 SL:190 FB6B F0 BEQ $FB75 PC:FB6C A:42 X:02 Y:D5 P:24 SP:F9 CYC:298 SL:190 FB6D 30 BMI $FB75 PC:FB6E A:42 X:02 Y:D5 P:24 SP:F9 CYC:304 SL:190 FB6F B0 BCS $FB75 PC:FB70 A:42 X:02 Y:D5 P:24 SP:F9 CYC:310 SL:190 FB71 C9 CMP #$42 PC:FB72 A:42 X:02 Y:D5 P:24 SP:F9 CYC:316 SL:190 FB73 F0 BEQ $FB77 PC:FB74 A:42 X:02 Y:D5 P:27 SP:F9 CYC:322 SL:190 FB77 60 RTS PC:FB78 A:42 X:02 Y:D5 P:27 SP:F9 CYC:331 SL:190 F0A2 AD LDA $0647 PC:F0A3 A:42 X:02 Y:D5 P:27 SP:FB CYC:8 SL:191 F0A5 C9 CMP #$52 PC:F0A6 A:52 X:02 Y:D5 P:25 SP:FB CYC:20 SL:191 F0A7 F0 BEQ $F0AB PC:F0A8 A:52 X:02 Y:D5 P:27 SP:FB CYC:26 SL:191 F0AB C8 INY PC:F0AC A:52 X:02 Y:D5 P:27 SP:FB CYC:35 SL:191 F0AC A9 LDA #$37 PC:F0AD A:52 X:02 Y:D6 P:A5 SP:FB CYC:41 SL:191 F0AE 8D STA $0647 PC:F0AF A:37 X:02 Y:D6 P:25 SP:FB CYC:47 SL:191 F0B1 20 JSR $FA68 PC:F0B2 A:37 X:02 Y:D6 P:25 SP:FB CYC:59 SL:191 FA68 24 BIT $01 PC:FA69 A:37 X:02 Y:D6 P:25 SP:F9 CYC:77 SL:191 FA6A 38 SEC PC:FA6B A:37 X:02 Y:D6 P:E5 SP:F9 CYC:86 SL:191 FA6B A9 LDA #$75 PC:FA6C A:37 X:02 Y:D6 P:E5 SP:F9 CYC:92 SL:191 FA6D 60 RTS PC:FA6E A:75 X:02 Y:D6 P:65 SP:F9 CYC:98 SL:191 F0B4 23 RLA $(EA45,x) PC:F0B5 A:75 X:02 Y:D6 P:65 SP:FB CYC:116 SL:191 F0B6 EA NOP PC:F0B7 A:65 X:02 Y:D6 P:64 SP:FB CYC:140 SL:191 F0B7 EA NOP PC:F0B8 A:65 X:02 Y:D6 P:64 SP:FB CYC:146 SL:191 F0B8 EA NOP PC:F0B9 A:65 X:02 Y:D6 P:64 SP:FB CYC:152 SL:191 F0B9 EA NOP PC:F0BA A:65 X:02 Y:D6 P:64 SP:FB CYC:158 SL:191 F0BA 20 JSR $FA6E PC:F0BB A:65 X:02 Y:D6 P:64 SP:FB CYC:164 SL:191 FA6E 50 BVC $FAE6 PC:FA6F A:65 X:02 Y:D6 P:64 SP:F9 CYC:182 SL:191 FA70 F0 BEQ $FAE6 PC:FA71 A:65 X:02 Y:D6 P:64 SP:F9 CYC:188 SL:191 FA72 30 BMI $FAE6 PC:FA73 A:65 X:02 Y:D6 P:64 SP:F9 CYC:194 SL:191 FA74 B0 BCS $FAE6 PC:FA75 A:65 X:02 Y:D6 P:64 SP:F9 CYC:200 SL:191 FA76 C9 CMP #$65 PC:FA77 A:65 X:02 Y:D6 P:64 SP:F9 CYC:206 SL:191 FA78 D0 BNE $FAE6 PC:FA79 A:65 X:02 Y:D6 P:67 SP:F9 CYC:212 SL:191 FA7A 60 RTS PC:FA7B A:65 X:02 Y:D6 P:67 SP:F9 CYC:218 SL:191 F0BD AD LDA $0647 PC:F0BE A:65 X:02 Y:D6 P:67 SP:FB CYC:236 SL:191 F0C0 C9 CMP #$6F PC:F0C1 A:6F X:02 Y:D6 P:65 SP:FB CYC:248 SL:191 F0C2 F0 BEQ $F0C6 PC:F0C3 A:6F X:02 Y:D6 P:67 SP:FB CYC:254 SL:191 F0C6 C8 INY PC:F0C7 A:6F X:02 Y:D6 P:67 SP:FB CYC:263 SL:191 F0C7 A9 LDA #$A5 PC:F0C8 A:6F X:02 Y:D7 P:E5 SP:FB CYC:269 SL:191 F0C9 85 STA $47 PC:F0CA A:A5 X:02 Y:D7 P:E5 SP:FB CYC:275 SL:191 F0CB 20 JSR $FB53 PC:F0CC A:A5 X:02 Y:D7 P:E5 SP:FB CYC:284 SL:191 FB53 24 BIT $01 PC:FB54 A:A5 X:02 Y:D7 P:E5 SP:F9 CYC:302 SL:191 FB55 18 CLC PC:FB56 A:A5 X:02 Y:D7 P:E5 SP:F9 CYC:311 SL:191 FB56 A9 LDA #$B3 PC:FB57 A:A5 X:02 Y:D7 P:E4 SP:F9 CYC:317 SL:191 FB58 60 RTS PC:FB59 A:B3 X:02 Y:D7 P:E4 SP:F9 CYC:323 SL:191 F0CE 27 RLA $47 PC:F0CF A:B3 X:02 Y:D7 P:E4 SP:FB CYC:0 SL:192 F0D0 EA NOP PC:F0D1 A:02 X:02 Y:D7 P:65 SP:FB CYC:15 SL:192 F0D1 EA NOP PC:F0D2 A:02 X:02 Y:D7 P:65 SP:FB CYC:21 SL:192 F0D2 EA NOP PC:F0D3 A:02 X:02 Y:D7 P:65 SP:FB CYC:27 SL:192 F0D3 EA NOP PC:F0D4 A:02 X:02 Y:D7 P:65 SP:FB CYC:33 SL:192 F0D4 20 JSR $FB59 PC:F0D5 A:02 X:02 Y:D7 P:65 SP:FB CYC:39 SL:192 FB59 50 BVC $FB75 PC:FB5A A:02 X:02 Y:D7 P:65 SP:F9 CYC:57 SL:192 FB5B 90 BCC $FB75 PC:FB5C A:02 X:02 Y:D7 P:65 SP:F9 CYC:63 SL:192 FB5D 30 BMI $FB75 PC:FB5E A:02 X:02 Y:D7 P:65 SP:F9 CYC:69 SL:192 FB5F C9 CMP #$02 PC:FB60 A:02 X:02 Y:D7 P:65 SP:F9 CYC:75 SL:192 FB61 D0 BNE $FB75 PC:FB62 A:02 X:02 Y:D7 P:67 SP:F9 CYC:81 SL:192 FB63 60 RTS PC:FB64 A:02 X:02 Y:D7 P:67 SP:F9 CYC:87 SL:192 F0D7 A5 LDA $47 PC:F0D8 A:02 X:02 Y:D7 P:67 SP:FB CYC:105 SL:192 F0D9 C9 CMP #$4A PC:F0DA A:4A X:02 Y:D7 P:65 SP:FB CYC:114 SL:192 F0DB F0 BEQ $F0DF PC:F0DC A:4A X:02 Y:D7 P:67 SP:FB CYC:120 SL:192 F0DF C8 INY PC:F0E0 A:4A X:02 Y:D7 P:67 SP:FB CYC:129 SL:192 F0E0 A9 LDA #$29 PC:F0E1 A:4A X:02 Y:D8 P:E5 SP:FB CYC:135 SL:192 F0E2 85 STA $47 PC:F0E3 A:29 X:02 Y:D8 P:65 SP:FB CYC:141 SL:192 F0E4 20 JSR $FB64 PC:F0E5 A:29 X:02 Y:D8 P:65 SP:FB CYC:150 SL:192 FB64 B8 CLV PC:FB65 A:29 X:02 Y:D8 P:65 SP:F9 CYC:168 SL:192 FB65 18 CLC PC:FB66 A:29 X:02 Y:D8 P:25 SP:F9 CYC:174 SL:192 FB66 A9 LDA #$42 PC:FB67 A:29 X:02 Y:D8 P:24 SP:F9 CYC:180 SL:192 FB68 60 RTS PC:FB69 A:42 X:02 Y:D8 P:24 SP:F9 CYC:186 SL:192 F0E7 27 RLA $47 PC:F0E8 A:42 X:02 Y:D8 P:24 SP:FB CYC:204 SL:192 F0E9 EA NOP PC:F0EA A:42 X:02 Y:D8 P:24 SP:FB CYC:219 SL:192 F0EA EA NOP PC:F0EB A:42 X:02 Y:D8 P:24 SP:FB CYC:225 SL:192 F0EB EA NOP PC:F0EC A:42 X:02 Y:D8 P:24 SP:FB CYC:231 SL:192 F0EC EA NOP PC:F0ED A:42 X:02 Y:D8 P:24 SP:FB CYC:237 SL:192 F0ED 20 JSR $FB69 PC:F0EE A:42 X:02 Y:D8 P:24 SP:FB CYC:243 SL:192 FB69 70 BVS $FB75 PC:FB6A A:42 X:02 Y:D8 P:24 SP:F9 CYC:261 SL:192 FB6B F0 BEQ $FB75 PC:FB6C A:42 X:02 Y:D8 P:24 SP:F9 CYC:267 SL:192 FB6D 30 BMI $FB75 PC:FB6E A:42 X:02 Y:D8 P:24 SP:F9 CYC:273 SL:192 FB6F B0 BCS $FB75 PC:FB70 A:42 X:02 Y:D8 P:24 SP:F9 CYC:279 SL:192 FB71 C9 CMP #$42 PC:FB72 A:42 X:02 Y:D8 P:24 SP:F9 CYC:285 SL:192 FB73 F0 BEQ $FB77 PC:FB74 A:42 X:02 Y:D8 P:27 SP:F9 CYC:291 SL:192 FB77 60 RTS PC:FB78 A:42 X:02 Y:D8 P:27 SP:F9 CYC:300 SL:192 F0F0 A5 LDA $47 PC:F0F1 A:42 X:02 Y:D8 P:27 SP:FB CYC:318 SL:192 F0F2 C9 CMP #$52 PC:F0F3 A:52 X:02 Y:D8 P:25 SP:FB CYC:327 SL:192 F0F4 F0 BEQ $F0F8 PC:F0F5 A:52 X:02 Y:D8 P:27 SP:FB CYC:333 SL:192 F0F8 C8 INY PC:F0F9 A:52 X:02 Y:D8 P:27 SP:FB CYC:1 SL:193 F0F9 A9 LDA #$37 PC:F0FA A:52 X:02 Y:D9 P:A5 SP:FB CYC:7 SL:193 F0FB 85 STA $47 PC:F0FC A:37 X:02 Y:D9 P:25 SP:FB CYC:13 SL:193 F0FD 20 JSR $FA68 PC:F0FE A:37 X:02 Y:D9 P:25 SP:FB CYC:22 SL:193 FA68 24 BIT $01 PC:FA69 A:37 X:02 Y:D9 P:25 SP:F9 CYC:40 SL:193 FA6A 38 SEC PC:FA6B A:37 X:02 Y:D9 P:E5 SP:F9 CYC:49 SL:193 FA6B A9 LDA #$75 PC:FA6C A:37 X:02 Y:D9 P:E5 SP:F9 CYC:55 SL:193 FA6D 60 RTS PC:FA6E A:75 X:02 Y:D9 P:65 SP:F9 CYC:61 SL:193 F100 27 RLA $47 PC:F101 A:75 X:02 Y:D9 P:65 SP:FB CYC:79 SL:193 F102 EA NOP PC:F103 A:65 X:02 Y:D9 P:64 SP:FB CYC:94 SL:193 F103 EA NOP PC:F104 A:65 X:02 Y:D9 P:64 SP:FB CYC:100 SL:193 F104 EA NOP PC:F105 A:65 X:02 Y:D9 P:64 SP:FB CYC:106 SL:193 F105 EA NOP PC:F106 A:65 X:02 Y:D9 P:64 SP:FB CYC:112 SL:193 F106 20 JSR $FA6E PC:F107 A:65 X:02 Y:D9 P:64 SP:FB CYC:118 SL:193 FA6E 50 BVC $FAE6 PC:FA6F A:65 X:02 Y:D9 P:64 SP:F9 CYC:136 SL:193 FA70 F0 BEQ $FAE6 PC:FA71 A:65 X:02 Y:D9 P:64 SP:F9 CYC:142 SL:193 FA72 30 BMI $FAE6 PC:FA73 A:65 X:02 Y:D9 P:64 SP:F9 CYC:148 SL:193 FA74 B0 BCS $FAE6 PC:FA75 A:65 X:02 Y:D9 P:64 SP:F9 CYC:154 SL:193 FA76 C9 CMP #$65 PC:FA77 A:65 X:02 Y:D9 P:64 SP:F9 CYC:160 SL:193 FA78 D0 BNE $FAE6 PC:FA79 A:65 X:02 Y:D9 P:67 SP:F9 CYC:166 SL:193 FA7A 60 RTS PC:FA7B A:65 X:02 Y:D9 P:67 SP:F9 CYC:172 SL:193 F109 A5 LDA $47 PC:F10A A:65 X:02 Y:D9 P:67 SP:FB CYC:190 SL:193 F10B C9 CMP #$6F PC:F10C A:6F X:02 Y:D9 P:65 SP:FB CYC:199 SL:193 F10D F0 BEQ $F111 PC:F10E A:6F X:02 Y:D9 P:67 SP:FB CYC:205 SL:193 F111 C8 INY PC:F112 A:6F X:02 Y:D9 P:67 SP:FB CYC:214 SL:193 F112 A9 LDA #$A5 PC:F113 A:6F X:02 Y:DA P:E5 SP:FB CYC:220 SL:193 F114 8D STA $0647 PC:F115 A:A5 X:02 Y:DA P:E5 SP:FB CYC:226 SL:193 F117 20 JSR $FB53 PC:F118 A:A5 X:02 Y:DA P:E5 SP:FB CYC:238 SL:193 FB53 24 BIT $01 PC:FB54 A:A5 X:02 Y:DA P:E5 SP:F9 CYC:256 SL:193 FB55 18 CLC PC:FB56 A:A5 X:02 Y:DA P:E5 SP:F9 CYC:265 SL:193 FB56 A9 LDA #$B3 PC:FB57 A:A5 X:02 Y:DA P:E4 SP:F9 CYC:271 SL:193 FB58 60 RTS PC:FB59 A:B3 X:02 Y:DA P:E4 SP:F9 CYC:277 SL:193 F11A 2F RLA $0647 PC:F11B A:B3 X:02 Y:DA P:E4 SP:FB CYC:295 SL:193 F11D EA NOP PC:F11E A:02 X:02 Y:DA P:65 SP:FB CYC:313 SL:193 F11E EA NOP PC:F11F A:02 X:02 Y:DA P:65 SP:FB CYC:319 SL:193 F11F EA NOP PC:F120 A:02 X:02 Y:DA P:65 SP:FB CYC:325 SL:193 F120 EA NOP PC:F121 A:02 X:02 Y:DA P:65 SP:FB CYC:331 SL:193 F121 20 JSR $FB59 PC:F122 A:02 X:02 Y:DA P:65 SP:FB CYC:337 SL:193 FB59 50 BVC $FB75 PC:FB5A A:02 X:02 Y:DA P:65 SP:F9 CYC:14 SL:194 FB5B 90 BCC $FB75 PC:FB5C A:02 X:02 Y:DA P:65 SP:F9 CYC:20 SL:194 FB5D 30 BMI $FB75 PC:FB5E A:02 X:02 Y:DA P:65 SP:F9 CYC:26 SL:194 FB5F C9 CMP #$02 PC:FB60 A:02 X:02 Y:DA P:65 SP:F9 CYC:32 SL:194 FB61 D0 BNE $FB75 PC:FB62 A:02 X:02 Y:DA P:67 SP:F9 CYC:38 SL:194 FB63 60 RTS PC:FB64 A:02 X:02 Y:DA P:67 SP:F9 CYC:44 SL:194 F124 AD LDA $0647 PC:F125 A:02 X:02 Y:DA P:67 SP:FB CYC:62 SL:194 F127 C9 CMP #$4A PC:F128 A:4A X:02 Y:DA P:65 SP:FB CYC:74 SL:194 F129 F0 BEQ $F12D PC:F12A A:4A X:02 Y:DA P:67 SP:FB CYC:80 SL:194 F12D C8 INY PC:F12E A:4A X:02 Y:DA P:67 SP:FB CYC:89 SL:194 F12E A9 LDA #$29 PC:F12F A:4A X:02 Y:DB P:E5 SP:FB CYC:95 SL:194 F130 8D STA $0647 PC:F131 A:29 X:02 Y:DB P:65 SP:FB CYC:101 SL:194 F133 20 JSR $FB64 PC:F134 A:29 X:02 Y:DB P:65 SP:FB CYC:113 SL:194 FB64 B8 CLV PC:FB65 A:29 X:02 Y:DB P:65 SP:F9 CYC:131 SL:194 FB65 18 CLC PC:FB66 A:29 X:02 Y:DB P:25 SP:F9 CYC:137 SL:194 FB66 A9 LDA #$42 PC:FB67 A:29 X:02 Y:DB P:24 SP:F9 CYC:143 SL:194 FB68 60 RTS PC:FB69 A:42 X:02 Y:DB P:24 SP:F9 CYC:149 SL:194 F136 2F RLA $0647 PC:F137 A:42 X:02 Y:DB P:24 SP:FB CYC:167 SL:194 F139 EA NOP PC:F13A A:42 X:02 Y:DB P:24 SP:FB CYC:185 SL:194 F13A EA NOP PC:F13B A:42 X:02 Y:DB P:24 SP:FB CYC:191 SL:194 F13B EA NOP PC:F13C A:42 X:02 Y:DB P:24 SP:FB CYC:197 SL:194 F13C EA NOP PC:F13D A:42 X:02 Y:DB P:24 SP:FB CYC:203 SL:194 F13D 20 JSR $FB69 PC:F13E A:42 X:02 Y:DB P:24 SP:FB CYC:209 SL:194 FB69 70 BVS $FB75 PC:FB6A A:42 X:02 Y:DB P:24 SP:F9 CYC:227 SL:194 FB6B F0 BEQ $FB75 PC:FB6C A:42 X:02 Y:DB P:24 SP:F9 CYC:233 SL:194 FB6D 30 BMI $FB75 PC:FB6E A:42 X:02 Y:DB P:24 SP:F9 CYC:239 SL:194 FB6F B0 BCS $FB75 PC:FB70 A:42 X:02 Y:DB P:24 SP:F9 CYC:245 SL:194 FB71 C9 CMP #$42 PC:FB72 A:42 X:02 Y:DB P:24 SP:F9 CYC:251 SL:194 FB73 F0 BEQ $FB77 PC:FB74 A:42 X:02 Y:DB P:27 SP:F9 CYC:257 SL:194 FB77 60 RTS PC:FB78 A:42 X:02 Y:DB P:27 SP:F9 CYC:266 SL:194 F140 AD LDA $0647 PC:F141 A:42 X:02 Y:DB P:27 SP:FB CYC:284 SL:194 F143 C9 CMP #$52 PC:F144 A:52 X:02 Y:DB P:25 SP:FB CYC:296 SL:194 F145 F0 BEQ $F149 PC:F146 A:52 X:02 Y:DB P:27 SP:FB CYC:302 SL:194 F149 C8 INY PC:F14A A:52 X:02 Y:DB P:27 SP:FB CYC:311 SL:194 F14A A9 LDA #$37 PC:F14B A:52 X:02 Y:DC P:A5 SP:FB CYC:317 SL:194 F14C 8D STA $0647 PC:F14D A:37 X:02 Y:DC P:25 SP:FB CYC:323 SL:194 F14F 20 JSR $FA68 PC:F150 A:37 X:02 Y:DC P:25 SP:FB CYC:335 SL:194 FA68 24 BIT $01 PC:FA69 A:37 X:02 Y:DC P:25 SP:F9 CYC:12 SL:195 FA6A 38 SEC PC:FA6B A:37 X:02 Y:DC P:E5 SP:F9 CYC:21 SL:195 FA6B A9 LDA #$75 PC:FA6C A:37 X:02 Y:DC P:E5 SP:F9 CYC:27 SL:195 FA6D 60 RTS PC:FA6E A:75 X:02 Y:DC P:65 SP:F9 CYC:33 SL:195 F152 2F RLA $0647 PC:F153 A:75 X:02 Y:DC P:65 SP:FB CYC:51 SL:195 F155 EA NOP PC:F156 A:65 X:02 Y:DC P:64 SP:FB CYC:69 SL:195 F156 EA NOP PC:F157 A:65 X:02 Y:DC P:64 SP:FB CYC:75 SL:195 F157 EA NOP PC:F158 A:65 X:02 Y:DC P:64 SP:FB CYC:81 SL:195 F158 EA NOP PC:F159 A:65 X:02 Y:DC P:64 SP:FB CYC:87 SL:195 F159 20 JSR $FA6E PC:F15A A:65 X:02 Y:DC P:64 SP:FB CYC:93 SL:195 FA6E 50 BVC $FAE6 PC:FA6F A:65 X:02 Y:DC P:64 SP:F9 CYC:111 SL:195 FA70 F0 BEQ $FAE6 PC:FA71 A:65 X:02 Y:DC P:64 SP:F9 CYC:117 SL:195 FA72 30 BMI $FAE6 PC:FA73 A:65 X:02 Y:DC P:64 SP:F9 CYC:123 SL:195 FA74 B0 BCS $FAE6 PC:FA75 A:65 X:02 Y:DC P:64 SP:F9 CYC:129 SL:195 FA76 C9 CMP #$65 PC:FA77 A:65 X:02 Y:DC P:64 SP:F9 CYC:135 SL:195 FA78 D0 BNE $FAE6 PC:FA79 A:65 X:02 Y:DC P:67 SP:F9 CYC:141 SL:195 FA7A 60 RTS PC:FA7B A:65 X:02 Y:DC P:67 SP:F9 CYC:147 SL:195 F15C AD LDA $0647 PC:F15D A:65 X:02 Y:DC P:67 SP:FB CYC:165 SL:195 F15F C9 CMP #$6F PC:F160 A:6F X:02 Y:DC P:65 SP:FB CYC:177 SL:195 F161 F0 BEQ $F165 PC:F162 A:6F X:02 Y:DC P:67 SP:FB CYC:183 SL:195 F165 A9 LDA #$A5 PC:F166 A:6F X:02 Y:DC P:67 SP:FB CYC:192 SL:195 F167 8D STA $0647 PC:F168 A:A5 X:02 Y:DC P:E5 SP:FB CYC:198 SL:195 F16A A9 LDA #$48 PC:F16B A:A5 X:02 Y:DC P:E5 SP:FB CYC:210 SL:195 F16C 85 STA $45 PC:F16D A:48 X:02 Y:DC P:65 SP:FB CYC:216 SL:195 F16E A9 LDA #$05 PC:F16F A:48 X:02 Y:DC P:65 SP:FB CYC:225 SL:195 F170 85 STA $46 PC:F171 A:05 X:02 Y:DC P:65 SP:FB CYC:231 SL:195 F172 A0 LDY #$FF PC:F173 A:05 X:02 Y:DC P:65 SP:FB CYC:240 SL:195 F174 20 JSR $FB53 PC:F175 A:05 X:02 Y:FF P:E5 SP:FB CYC:246 SL:195 FB53 24 BIT $01 PC:FB54 A:05 X:02 Y:FF P:E5 SP:F9 CYC:264 SL:195 FB55 18 CLC PC:FB56 A:05 X:02 Y:FF P:E5 SP:F9 CYC:273 SL:195 FB56 A9 LDA #$B3 PC:FB57 A:05 X:02 Y:FF P:E4 SP:F9 CYC:279 SL:195 FB58 60 RTS PC:FB59 A:B3 X:02 Y:FF P:E4 SP:F9 CYC:285 SL:195 F177 33 RLA ($45), y PC:F178 A:B3 X:02 Y:FF P:E4 SP:FB CYC:303 SL:195 F179 EA NOP PC:F17A A:02 X:02 Y:FF P:65 SP:FB CYC:327 SL:195 F17A EA NOP PC:F17B A:02 X:02 Y:FF P:65 SP:FB CYC:333 SL:195 F17B 08 PHP PC:F17C A:02 X:02 Y:FF P:65 SP:FB CYC:339 SL:195 F17C 48 PHA PC:F17D A:02 X:02 Y:FF P:65 SP:FA CYC:7 SL:196 F17D A0 LDY #$DD PC:F17E A:02 X:02 Y:FF P:65 SP:F9 CYC:16 SL:196 F17F 68 PLA PC:F180 A:02 X:02 Y:DD P:E5 SP:F9 CYC:22 SL:196 F180 28 PLP PC:F181 A:02 X:02 Y:DD P:65 SP:FA CYC:34 SL:196 F181 20 JSR $FB59 PC:F182 A:02 X:02 Y:DD P:65 SP:FB CYC:46 SL:196 FB59 50 BVC $FB75 PC:FB5A A:02 X:02 Y:DD P:65 SP:F9 CYC:64 SL:196 FB5B 90 BCC $FB75 PC:FB5C A:02 X:02 Y:DD P:65 SP:F9 CYC:70 SL:196 FB5D 30 BMI $FB75 PC:FB5E A:02 X:02 Y:DD P:65 SP:F9 CYC:76 SL:196 FB5F C9 CMP #$02 PC:FB60 A:02 X:02 Y:DD P:65 SP:F9 CYC:82 SL:196 FB61 D0 BNE $FB75 PC:FB62 A:02 X:02 Y:DD P:67 SP:F9 CYC:88 SL:196 FB63 60 RTS PC:FB64 A:02 X:02 Y:DD P:67 SP:F9 CYC:94 SL:196 F184 AD LDA $0647 PC:F185 A:02 X:02 Y:DD P:67 SP:FB CYC:112 SL:196 F187 C9 CMP #$4A PC:F188 A:4A X:02 Y:DD P:65 SP:FB CYC:124 SL:196 F189 F0 BEQ $F18D PC:F18A A:4A X:02 Y:DD P:67 SP:FB CYC:130 SL:196 F18D A0 LDY #$FF PC:F18E A:4A X:02 Y:DD P:67 SP:FB CYC:139 SL:196 F18F A9 LDA #$29 PC:F190 A:4A X:02 Y:FF P:E5 SP:FB CYC:145 SL:196 F191 8D STA $0647 PC:F192 A:29 X:02 Y:FF P:65 SP:FB CYC:151 SL:196 F194 20 JSR $FB64 PC:F195 A:29 X:02 Y:FF P:65 SP:FB CYC:163 SL:196 FB64 B8 CLV PC:FB65 A:29 X:02 Y:FF P:65 SP:F9 CYC:181 SL:196 FB65 18 CLC PC:FB66 A:29 X:02 Y:FF P:25 SP:F9 CYC:187 SL:196 FB66 A9 LDA #$42 PC:FB67 A:29 X:02 Y:FF P:24 SP:F9 CYC:193 SL:196 FB68 60 RTS PC:FB69 A:42 X:02 Y:FF P:24 SP:F9 CYC:199 SL:196 F197 33 RLA ($45), y PC:F198 A:42 X:02 Y:FF P:24 SP:FB CYC:217 SL:196 F199 EA NOP PC:F19A A:42 X:02 Y:FF P:24 SP:FB CYC:241 SL:196 F19A EA NOP PC:F19B A:42 X:02 Y:FF P:24 SP:FB CYC:247 SL:196 F19B 08 PHP PC:F19C A:42 X:02 Y:FF P:24 SP:FB CYC:253 SL:196 F19C 48 PHA PC:F19D A:42 X:02 Y:FF P:24 SP:FA CYC:262 SL:196 F19D A0 LDY #$DE PC:F19E A:42 X:02 Y:FF P:24 SP:F9 CYC:271 SL:196 F19F 68 PLA PC:F1A0 A:42 X:02 Y:DE P:A4 SP:F9 CYC:277 SL:196 F1A0 28 PLP PC:F1A1 A:42 X:02 Y:DE P:24 SP:FA CYC:289 SL:196 F1A1 20 JSR $FB69 PC:F1A2 A:42 X:02 Y:DE P:24 SP:FB CYC:301 SL:196 FB69 70 BVS $FB75 PC:FB6A A:42 X:02 Y:DE P:24 SP:F9 CYC:319 SL:196 FB6B F0 BEQ $FB75 PC:FB6C A:42 X:02 Y:DE P:24 SP:F9 CYC:325 SL:196 FB6D 30 BMI $FB75 PC:FB6E A:42 X:02 Y:DE P:24 SP:F9 CYC:331 SL:196 FB6F B0 BCS $FB75 PC:FB70 A:42 X:02 Y:DE P:24 SP:F9 CYC:337 SL:196 FB71 C9 CMP #$42 PC:FB72 A:42 X:02 Y:DE P:24 SP:F9 CYC:2 SL:197 FB73 F0 BEQ $FB77 PC:FB74 A:42 X:02 Y:DE P:27 SP:F9 CYC:8 SL:197 FB77 60 RTS PC:FB78 A:42 X:02 Y:DE P:27 SP:F9 CYC:17 SL:197 F1A4 AD LDA $0647 PC:F1A5 A:42 X:02 Y:DE P:27 SP:FB CYC:35 SL:197 F1A7 C9 CMP #$52 PC:F1A8 A:52 X:02 Y:DE P:25 SP:FB CYC:47 SL:197 F1A9 F0 BEQ $F1AD PC:F1AA A:52 X:02 Y:DE P:27 SP:FB CYC:53 SL:197 F1AD A0 LDY #$FF PC:F1AE A:52 X:02 Y:DE P:27 SP:FB CYC:62 SL:197 F1AF A9 LDA #$37 PC:F1B0 A:52 X:02 Y:FF P:A5 SP:FB CYC:68 SL:197 F1B1 8D STA $0647 PC:F1B2 A:37 X:02 Y:FF P:25 SP:FB CYC:74 SL:197 F1B4 20 JSR $FA68 PC:F1B5 A:37 X:02 Y:FF P:25 SP:FB CYC:86 SL:197 FA68 24 BIT $01 PC:FA69 A:37 X:02 Y:FF P:25 SP:F9 CYC:104 SL:197 FA6A 38 SEC PC:FA6B A:37 X:02 Y:FF P:E5 SP:F9 CYC:113 SL:197 FA6B A9 LDA #$75 PC:FA6C A:37 X:02 Y:FF P:E5 SP:F9 CYC:119 SL:197 FA6D 60 RTS PC:FA6E A:75 X:02 Y:FF P:65 SP:F9 CYC:125 SL:197 F1B7 33 RLA ($45), y PC:F1B8 A:75 X:02 Y:FF P:65 SP:FB CYC:143 SL:197 F1B9 EA NOP PC:F1BA A:65 X:02 Y:FF P:64 SP:FB CYC:167 SL:197 F1BA EA NOP PC:F1BB A:65 X:02 Y:FF P:64 SP:FB CYC:173 SL:197 F1BB 08 PHP PC:F1BC A:65 X:02 Y:FF P:64 SP:FB CYC:179 SL:197 F1BC 48 PHA PC:F1BD A:65 X:02 Y:FF P:64 SP:FA CYC:188 SL:197 F1BD A0 LDY #$DF PC:F1BE A:65 X:02 Y:FF P:64 SP:F9 CYC:197 SL:197 F1BF 68 PLA PC:F1C0 A:65 X:02 Y:DF P:E4 SP:F9 CYC:203 SL:197 F1C0 28 PLP PC:F1C1 A:65 X:02 Y:DF P:64 SP:FA CYC:215 SL:197 F1C1 20 JSR $FA6E PC:F1C2 A:65 X:02 Y:DF P:64 SP:FB CYC:227 SL:197 FA6E 50 BVC $FAE6 PC:FA6F A:65 X:02 Y:DF P:64 SP:F9 CYC:245 SL:197 FA70 F0 BEQ $FAE6 PC:FA71 A:65 X:02 Y:DF P:64 SP:F9 CYC:251 SL:197 FA72 30 BMI $FAE6 PC:FA73 A:65 X:02 Y:DF P:64 SP:F9 CYC:257 SL:197 FA74 B0 BCS $FAE6 PC:FA75 A:65 X:02 Y:DF P:64 SP:F9 CYC:263 SL:197 FA76 C9 CMP #$65 PC:FA77 A:65 X:02 Y:DF P:64 SP:F9 CYC:269 SL:197 FA78 D0 BNE $FAE6 PC:FA79 A:65 X:02 Y:DF P:67 SP:F9 CYC:275 SL:197 FA7A 60 RTS PC:FA7B A:65 X:02 Y:DF P:67 SP:F9 CYC:281 SL:197 F1C4 AD LDA $0647 PC:F1C5 A:65 X:02 Y:DF P:67 SP:FB CYC:299 SL:197 F1C7 C9 CMP #$6F PC:F1C8 A:6F X:02 Y:DF P:65 SP:FB CYC:311 SL:197 F1C9 F0 BEQ $F1CD PC:F1CA A:6F X:02 Y:DF P:67 SP:FB CYC:317 SL:197 F1CD A0 LDY #$E0 PC:F1CE A:6F X:02 Y:DF P:67 SP:FB CYC:326 SL:197 F1CF A2 LDX #$FF PC:F1D0 A:6F X:02 Y:E0 P:E5 SP:FB CYC:332 SL:197 F1D1 A9 LDA #$A5 PC:F1D2 A:6F X:FF Y:E0 P:E5 SP:FB CYC:338 SL:197 F1D3 85 STA $47 PC:F1D4 A:A5 X:FF Y:E0 P:E5 SP:FB CYC:3 SL:198 F1D5 20 JSR $FB53 PC:F1D6 A:A5 X:FF Y:E0 P:E5 SP:FB CYC:12 SL:198 FB53 24 BIT $01 PC:FB54 A:A5 X:FF Y:E0 P:E5 SP:F9 CYC:30 SL:198 FB55 18 CLC PC:FB56 A:A5 X:FF Y:E0 P:E5 SP:F9 CYC:39 SL:198 FB56 A9 LDA #$B3 PC:FB57 A:A5 X:FF Y:E0 P:E4 SP:F9 CYC:45 SL:198 FB58 60 RTS PC:FB59 A:B3 X:FF Y:E0 P:E4 SP:F9 CYC:51 SL:198 F1D8 37 RLA $48,x PC:F1D9 A:B3 X:FF Y:E0 P:E4 SP:FB CYC:69 SL:198 F1DA EA NOP PC:F1DB A:02 X:FF Y:E0 P:65 SP:FB CYC:87 SL:198 F1DB EA NOP PC:F1DC A:02 X:FF Y:E0 P:65 SP:FB CYC:93 SL:198 F1DC EA NOP PC:F1DD A:02 X:FF Y:E0 P:65 SP:FB CYC:99 SL:198 F1DD EA NOP PC:F1DE A:02 X:FF Y:E0 P:65 SP:FB CYC:105 SL:198 F1DE 20 JSR $FB59 PC:F1DF A:02 X:FF Y:E0 P:65 SP:FB CYC:111 SL:198 FB59 50 BVC $FB75 PC:FB5A A:02 X:FF Y:E0 P:65 SP:F9 CYC:129 SL:198 FB5B 90 BCC $FB75 PC:FB5C A:02 X:FF Y:E0 P:65 SP:F9 CYC:135 SL:198 FB5D 30 BMI $FB75 PC:FB5E A:02 X:FF Y:E0 P:65 SP:F9 CYC:141 SL:198 FB5F C9 CMP #$02 PC:FB60 A:02 X:FF Y:E0 P:65 SP:F9 CYC:147 SL:198 FB61 D0 BNE $FB75 PC:FB62 A:02 X:FF Y:E0 P:67 SP:F9 CYC:153 SL:198 FB63 60 RTS PC:FB64 A:02 X:FF Y:E0 P:67 SP:F9 CYC:159 SL:198 F1E1 A5 LDA $47 PC:F1E2 A:02 X:FF Y:E0 P:67 SP:FB CYC:177 SL:198 F1E3 C9 CMP #$4A PC:F1E4 A:4A X:FF Y:E0 P:65 SP:FB CYC:186 SL:198 F1E5 F0 BEQ $F1E9 PC:F1E6 A:4A X:FF Y:E0 P:67 SP:FB CYC:192 SL:198 F1E9 C8 INY PC:F1EA A:4A X:FF Y:E0 P:67 SP:FB CYC:201 SL:198 F1EA A9 LDA #$29 PC:F1EB A:4A X:FF Y:E1 P:E5 SP:FB CYC:207 SL:198 F1EC 85 STA $47 PC:F1ED A:29 X:FF Y:E1 P:65 SP:FB CYC:213 SL:198 F1EE 20 JSR $FB64 PC:F1EF A:29 X:FF Y:E1 P:65 SP:FB CYC:222 SL:198 FB64 B8 CLV PC:FB65 A:29 X:FF Y:E1 P:65 SP:F9 CYC:240 SL:198 FB65 18 CLC PC:FB66 A:29 X:FF Y:E1 P:25 SP:F9 CYC:246 SL:198 FB66 A9 LDA #$42 PC:FB67 A:29 X:FF Y:E1 P:24 SP:F9 CYC:252 SL:198 FB68 60 RTS PC:FB69 A:42 X:FF Y:E1 P:24 SP:F9 CYC:258 SL:198 F1F1 37 RLA $48,x PC:F1F2 A:42 X:FF Y:E1 P:24 SP:FB CYC:276 SL:198 F1F3 EA NOP PC:F1F4 A:42 X:FF Y:E1 P:24 SP:FB CYC:294 SL:198 F1F4 EA NOP PC:F1F5 A:42 X:FF Y:E1 P:24 SP:FB CYC:300 SL:198 F1F5 EA NOP PC:F1F6 A:42 X:FF Y:E1 P:24 SP:FB CYC:306 SL:198 F1F6 EA NOP PC:F1F7 A:42 X:FF Y:E1 P:24 SP:FB CYC:312 SL:198 F1F7 20 JSR $FB69 PC:F1F8 A:42 X:FF Y:E1 P:24 SP:FB CYC:318 SL:198 FB69 70 BVS $FB75 PC:FB6A A:42 X:FF Y:E1 P:24 SP:F9 CYC:336 SL:198 FB6B F0 BEQ $FB75 PC:FB6C A:42 X:FF Y:E1 P:24 SP:F9 CYC:1 SL:199 FB6D 30 BMI $FB75 PC:FB6E A:42 X:FF Y:E1 P:24 SP:F9 CYC:7 SL:199 FB6F B0 BCS $FB75 PC:FB70 A:42 X:FF Y:E1 P:24 SP:F9 CYC:13 SL:199 FB71 C9 CMP #$42 PC:FB72 A:42 X:FF Y:E1 P:24 SP:F9 CYC:19 SL:199 FB73 F0 BEQ $FB77 PC:FB74 A:42 X:FF Y:E1 P:27 SP:F9 CYC:25 SL:199 FB77 60 RTS PC:FB78 A:42 X:FF Y:E1 P:27 SP:F9 CYC:34 SL:199 F1FA A5 LDA $47 PC:F1FB A:42 X:FF Y:E1 P:27 SP:FB CYC:52 SL:199 F1FC C9 CMP #$52 PC:F1FD A:52 X:FF Y:E1 P:25 SP:FB CYC:61 SL:199 F1FE F0 BEQ $F202 PC:F1FF A:52 X:FF Y:E1 P:27 SP:FB CYC:67 SL:199 F202 C8 INY PC:F203 A:52 X:FF Y:E1 P:27 SP:FB CYC:76 SL:199 F203 A9 LDA #$37 PC:F204 A:52 X:FF Y:E2 P:A5 SP:FB CYC:82 SL:199 F205 85 STA $47 PC:F206 A:37 X:FF Y:E2 P:25 SP:FB CYC:88 SL:199 F207 20 JSR $FA68 PC:F208 A:37 X:FF Y:E2 P:25 SP:FB CYC:97 SL:199 FA68 24 BIT $01 PC:FA69 A:37 X:FF Y:E2 P:25 SP:F9 CYC:115 SL:199 FA6A 38 SEC PC:FA6B A:37 X:FF Y:E2 P:E5 SP:F9 CYC:124 SL:199 FA6B A9 LDA #$75 PC:FA6C A:37 X:FF Y:E2 P:E5 SP:F9 CYC:130 SL:199 FA6D 60 RTS PC:FA6E A:75 X:FF Y:E2 P:65 SP:F9 CYC:136 SL:199 F20A 37 RLA $48,x PC:F20B A:75 X:FF Y:E2 P:65 SP:FB CYC:154 SL:199 F20C EA NOP PC:F20D A:65 X:FF Y:E2 P:64 SP:FB CYC:172 SL:199 F20D EA NOP PC:F20E A:65 X:FF Y:E2 P:64 SP:FB CYC:178 SL:199 F20E EA NOP PC:F20F A:65 X:FF Y:E2 P:64 SP:FB CYC:184 SL:199 F20F EA NOP PC:F210 A:65 X:FF Y:E2 P:64 SP:FB CYC:190 SL:199 F210 20 JSR $FA6E PC:F211 A:65 X:FF Y:E2 P:64 SP:FB CYC:196 SL:199 FA6E 50 BVC $FAE6 PC:FA6F A:65 X:FF Y:E2 P:64 SP:F9 CYC:214 SL:199 FA70 F0 BEQ $FAE6 PC:FA71 A:65 X:FF Y:E2 P:64 SP:F9 CYC:220 SL:199 FA72 30 BMI $FAE6 PC:FA73 A:65 X:FF Y:E2 P:64 SP:F9 CYC:226 SL:199 FA74 B0 BCS $FAE6 PC:FA75 A:65 X:FF Y:E2 P:64 SP:F9 CYC:232 SL:199 FA76 C9 CMP #$65 PC:FA77 A:65 X:FF Y:E2 P:64 SP:F9 CYC:238 SL:199 FA78 D0 BNE $FAE6 PC:FA79 A:65 X:FF Y:E2 P:67 SP:F9 CYC:244 SL:199 FA7A 60 RTS PC:FA7B A:65 X:FF Y:E2 P:67 SP:F9 CYC:250 SL:199 F213 A5 LDA $47 PC:F214 A:65 X:FF Y:E2 P:67 SP:FB CYC:268 SL:199 F215 C9 CMP #$6F PC:F216 A:6F X:FF Y:E2 P:65 SP:FB CYC:277 SL:199 F217 F0 BEQ $F21B PC:F218 A:6F X:FF Y:E2 P:67 SP:FB CYC:283 SL:199 F21B A9 LDA #$A5 PC:F21C A:6F X:FF Y:E2 P:67 SP:FB CYC:292 SL:199 F21D 8D STA $0647 PC:F21E A:A5 X:FF Y:E2 P:E5 SP:FB CYC:298 SL:199 F220 A0 LDY #$FF PC:F221 A:A5 X:FF Y:E2 P:E5 SP:FB CYC:310 SL:199 F222 20 JSR $FB53 PC:F223 A:A5 X:FF Y:FF P:E5 SP:FB CYC:316 SL:199 FB53 24 BIT $01 PC:FB54 A:A5 X:FF Y:FF P:E5 SP:F9 CYC:334 SL:199 FB55 18 CLC PC:FB56 A:A5 X:FF Y:FF P:E5 SP:F9 CYC:2 SL:200 FB56 A9 LDA #$B3 PC:FB57 A:A5 X:FF Y:FF P:E4 SP:F9 CYC:8 SL:200 FB58 60 RTS PC:FB59 A:B3 X:FF Y:FF P:E4 SP:F9 CYC:14 SL:200 F225 3B RLA $0548,y PC:F226 A:B3 X:FF Y:FF P:E4 SP:FB CYC:32 SL:200 F228 EA NOP PC:F229 A:02 X:FF Y:FF P:65 SP:FB CYC:53 SL:200 F229 EA NOP PC:F22A A:02 X:FF Y:FF P:65 SP:FB CYC:59 SL:200 F22A 08 PHP PC:F22B A:02 X:FF Y:FF P:65 SP:FB CYC:65 SL:200 F22B 48 PHA PC:F22C A:02 X:FF Y:FF P:65 SP:FA CYC:74 SL:200 F22C A0 LDY #$E3 PC:F22D A:02 X:FF Y:FF P:65 SP:F9 CYC:83 SL:200 F22E 68 PLA PC:F22F A:02 X:FF Y:E3 P:E5 SP:F9 CYC:89 SL:200 F22F 28 PLP PC:F230 A:02 X:FF Y:E3 P:65 SP:FA CYC:101 SL:200 F230 20 JSR $FB59 PC:F231 A:02 X:FF Y:E3 P:65 SP:FB CYC:113 SL:200 FB59 50 BVC $FB75 PC:FB5A A:02 X:FF Y:E3 P:65 SP:F9 CYC:131 SL:200 FB5B 90 BCC $FB75 PC:FB5C A:02 X:FF Y:E3 P:65 SP:F9 CYC:137 SL:200 FB5D 30 BMI $FB75 PC:FB5E A:02 X:FF Y:E3 P:65 SP:F9 CYC:143 SL:200 FB5F C9 CMP #$02 PC:FB60 A:02 X:FF Y:E3 P:65 SP:F9 CYC:149 SL:200 FB61 D0 BNE $FB75 PC:FB62 A:02 X:FF Y:E3 P:67 SP:F9 CYC:155 SL:200 FB63 60 RTS PC:FB64 A:02 X:FF Y:E3 P:67 SP:F9 CYC:161 SL:200 F233 AD LDA $0647 PC:F234 A:02 X:FF Y:E3 P:67 SP:FB CYC:179 SL:200 F236 C9 CMP #$4A PC:F237 A:4A X:FF Y:E3 P:65 SP:FB CYC:191 SL:200 F238 F0 BEQ $F23C PC:F239 A:4A X:FF Y:E3 P:67 SP:FB CYC:197 SL:200 F23C A0 LDY #$FF PC:F23D A:4A X:FF Y:E3 P:67 SP:FB CYC:206 SL:200 F23E A9 LDA #$29 PC:F23F A:4A X:FF Y:FF P:E5 SP:FB CYC:212 SL:200 F240 8D STA $0647 PC:F241 A:29 X:FF Y:FF P:65 SP:FB CYC:218 SL:200 F243 20 JSR $FB64 PC:F244 A:29 X:FF Y:FF P:65 SP:FB CYC:230 SL:200 FB64 B8 CLV PC:FB65 A:29 X:FF Y:FF P:65 SP:F9 CYC:248 SL:200 FB65 18 CLC PC:FB66 A:29 X:FF Y:FF P:25 SP:F9 CYC:254 SL:200 FB66 A9 LDA #$42 PC:FB67 A:29 X:FF Y:FF P:24 SP:F9 CYC:260 SL:200 FB68 60 RTS PC:FB69 A:42 X:FF Y:FF P:24 SP:F9 CYC:266 SL:200 F246 3B RLA $0548,y PC:F247 A:42 X:FF Y:FF P:24 SP:FB CYC:284 SL:200 F249 EA NOP PC:F24A A:42 X:FF Y:FF P:24 SP:FB CYC:305 SL:200 F24A EA NOP PC:F24B A:42 X:FF Y:FF P:24 SP:FB CYC:311 SL:200 F24B 08 PHP PC:F24C A:42 X:FF Y:FF P:24 SP:FB CYC:317 SL:200 F24C 48 PHA PC:F24D A:42 X:FF Y:FF P:24 SP:FA CYC:326 SL:200 F24D A0 LDY #$E4 PC:F24E A:42 X:FF Y:FF P:24 SP:F9 CYC:335 SL:200 F24F 68 PLA PC:F250 A:42 X:FF Y:E4 P:A4 SP:F9 CYC:0 SL:201 F250 28 PLP PC:F251 A:42 X:FF Y:E4 P:24 SP:FA CYC:12 SL:201 F251 20 JSR $FB69 PC:F252 A:42 X:FF Y:E4 P:24 SP:FB CYC:24 SL:201 FB69 70 BVS $FB75 PC:FB6A A:42 X:FF Y:E4 P:24 SP:F9 CYC:42 SL:201 FB6B F0 BEQ $FB75 PC:FB6C A:42 X:FF Y:E4 P:24 SP:F9 CYC:48 SL:201 FB6D 30 BMI $FB75 PC:FB6E A:42 X:FF Y:E4 P:24 SP:F9 CYC:54 SL:201 FB6F B0 BCS $FB75 PC:FB70 A:42 X:FF Y:E4 P:24 SP:F9 CYC:60 SL:201 FB71 C9 CMP #$42 PC:FB72 A:42 X:FF Y:E4 P:24 SP:F9 CYC:66 SL:201 FB73 F0 BEQ $FB77 PC:FB74 A:42 X:FF Y:E4 P:27 SP:F9 CYC:72 SL:201 FB77 60 RTS PC:FB78 A:42 X:FF Y:E4 P:27 SP:F9 CYC:81 SL:201 F254 AD LDA $0647 PC:F255 A:42 X:FF Y:E4 P:27 SP:FB CYC:99 SL:201 F257 C9 CMP #$52 PC:F258 A:52 X:FF Y:E4 P:25 SP:FB CYC:111 SL:201 F259 F0 BEQ $F25D PC:F25A A:52 X:FF Y:E4 P:27 SP:FB CYC:117 SL:201 F25D A0 LDY #$FF PC:F25E A:52 X:FF Y:E4 P:27 SP:FB CYC:126 SL:201 F25F A9 LDA #$37 PC:F260 A:52 X:FF Y:FF P:A5 SP:FB CYC:132 SL:201 F261 8D STA $0647 PC:F262 A:37 X:FF Y:FF P:25 SP:FB CYC:138 SL:201 F264 20 JSR $FA68 PC:F265 A:37 X:FF Y:FF P:25 SP:FB CYC:150 SL:201 FA68 24 BIT $01 PC:FA69 A:37 X:FF Y:FF P:25 SP:F9 CYC:168 SL:201 FA6A 38 SEC PC:FA6B A:37 X:FF Y:FF P:E5 SP:F9 CYC:177 SL:201 FA6B A9 LDA #$75 PC:FA6C A:37 X:FF Y:FF P:E5 SP:F9 CYC:183 SL:201 FA6D 60 RTS PC:FA6E A:75 X:FF Y:FF P:65 SP:F9 CYC:189 SL:201 F267 3B RLA $0548,y PC:F268 A:75 X:FF Y:FF P:65 SP:FB CYC:207 SL:201 F26A EA NOP PC:F26B A:65 X:FF Y:FF P:64 SP:FB CYC:228 SL:201 F26B EA NOP PC:F26C A:65 X:FF Y:FF P:64 SP:FB CYC:234 SL:201 F26C 08 PHP PC:F26D A:65 X:FF Y:FF P:64 SP:FB CYC:240 SL:201 F26D 48 PHA PC:F26E A:65 X:FF Y:FF P:64 SP:FA CYC:249 SL:201 F26E A0 LDY #$E5 PC:F26F A:65 X:FF Y:FF P:64 SP:F9 CYC:258 SL:201 F270 68 PLA PC:F271 A:65 X:FF Y:E5 P:E4 SP:F9 CYC:264 SL:201 F271 28 PLP PC:F272 A:65 X:FF Y:E5 P:64 SP:FA CYC:276 SL:201 F272 20 JSR $FA6E PC:F273 A:65 X:FF Y:E5 P:64 SP:FB CYC:288 SL:201 FA6E 50 BVC $FAE6 PC:FA6F A:65 X:FF Y:E5 P:64 SP:F9 CYC:306 SL:201 FA70 F0 BEQ $FAE6 PC:FA71 A:65 X:FF Y:E5 P:64 SP:F9 CYC:312 SL:201 FA72 30 BMI $FAE6 PC:FA73 A:65 X:FF Y:E5 P:64 SP:F9 CYC:318 SL:201 FA74 B0 BCS $FAE6 PC:FA75 A:65 X:FF Y:E5 P:64 SP:F9 CYC:324 SL:201 FA76 C9 CMP #$65 PC:FA77 A:65 X:FF Y:E5 P:64 SP:F9 CYC:330 SL:201 FA78 D0 BNE $FAE6 PC:FA79 A:65 X:FF Y:E5 P:67 SP:F9 CYC:336 SL:201 FA7A 60 RTS PC:FA7B A:65 X:FF Y:E5 P:67 SP:F9 CYC:1 SL:202 F275 AD LDA $0647 PC:F276 A:65 X:FF Y:E5 P:67 SP:FB CYC:19 SL:202 F278 C9 CMP #$6F PC:F279 A:6F X:FF Y:E5 P:65 SP:FB CYC:31 SL:202 F27A F0 BEQ $F27E PC:F27B A:6F X:FF Y:E5 P:67 SP:FB CYC:37 SL:202 F27E A0 LDY #$E6 PC:F27F A:6F X:FF Y:E5 P:67 SP:FB CYC:46 SL:202 F280 A2 LDX #$FF PC:F281 A:6F X:FF Y:E6 P:E5 SP:FB CYC:52 SL:202 F282 A9 LDA #$A5 PC:F283 A:6F X:FF Y:E6 P:E5 SP:FB CYC:58 SL:202 F284 8D STA $0647 PC:F285 A:A5 X:FF Y:E6 P:E5 SP:FB CYC:64 SL:202 F287 20 JSR $FB53 PC:F288 A:A5 X:FF Y:E6 P:E5 SP:FB CYC:76 SL:202 FB53 24 BIT $01 PC:FB54 A:A5 X:FF Y:E6 P:E5 SP:F9 CYC:94 SL:202 FB55 18 CLC PC:FB56 A:A5 X:FF Y:E6 P:E5 SP:F9 CYC:103 SL:202 FB56 A9 LDA #$B3 PC:FB57 A:A5 X:FF Y:E6 P:E4 SP:F9 CYC:109 SL:202 FB58 60 RTS PC:FB59 A:B3 X:FF Y:E6 P:E4 SP:F9 CYC:115 SL:202 F28A 3F RLA $0548,x PC:F28B A:B3 X:FF Y:E6 P:E4 SP:FB CYC:133 SL:202 F28D EA NOP PC:F28E A:02 X:FF Y:E6 P:65 SP:FB CYC:154 SL:202 F28E EA NOP PC:F28F A:02 X:FF Y:E6 P:65 SP:FB CYC:160 SL:202 F28F EA NOP PC:F290 A:02 X:FF Y:E6 P:65 SP:FB CYC:166 SL:202 F290 EA NOP PC:F291 A:02 X:FF Y:E6 P:65 SP:FB CYC:172 SL:202 F291 20 JSR $FB59 PC:F292 A:02 X:FF Y:E6 P:65 SP:FB CYC:178 SL:202 FB59 50 BVC $FB75 PC:FB5A A:02 X:FF Y:E6 P:65 SP:F9 CYC:196 SL:202 FB5B 90 BCC $FB75 PC:FB5C A:02 X:FF Y:E6 P:65 SP:F9 CYC:202 SL:202 FB5D 30 BMI $FB75 PC:FB5E A:02 X:FF Y:E6 P:65 SP:F9 CYC:208 SL:202 FB5F C9 CMP #$02 PC:FB60 A:02 X:FF Y:E6 P:65 SP:F9 CYC:214 SL:202 FB61 D0 BNE $FB75 PC:FB62 A:02 X:FF Y:E6 P:67 SP:F9 CYC:220 SL:202 FB63 60 RTS PC:FB64 A:02 X:FF Y:E6 P:67 SP:F9 CYC:226 SL:202 F294 AD LDA $0647 PC:F295 A:02 X:FF Y:E6 P:67 SP:FB CYC:244 SL:202 F297 C9 CMP #$4A PC:F298 A:4A X:FF Y:E6 P:65 SP:FB CYC:256 SL:202 F299 F0 BEQ $F29D PC:F29A A:4A X:FF Y:E6 P:67 SP:FB CYC:262 SL:202 F29D C8 INY PC:F29E A:4A X:FF Y:E6 P:67 SP:FB CYC:271 SL:202 F29E A9 LDA #$29 PC:F29F A:4A X:FF Y:E7 P:E5 SP:FB CYC:277 SL:202 F2A0 8D STA $0647 PC:F2A1 A:29 X:FF Y:E7 P:65 SP:FB CYC:283 SL:202 F2A3 20 JSR $FB64 PC:F2A4 A:29 X:FF Y:E7 P:65 SP:FB CYC:295 SL:202 FB64 B8 CLV PC:FB65 A:29 X:FF Y:E7 P:65 SP:F9 CYC:313 SL:202 FB65 18 CLC PC:FB66 A:29 X:FF Y:E7 P:25 SP:F9 CYC:319 SL:202 FB66 A9 LDA #$42 PC:FB67 A:29 X:FF Y:E7 P:24 SP:F9 CYC:325 SL:202 FB68 60 RTS PC:FB69 A:42 X:FF Y:E7 P:24 SP:F9 CYC:331 SL:202 F2A6 3F RLA $0548,x PC:F2A7 A:42 X:FF Y:E7 P:24 SP:FB CYC:8 SL:203 F2A9 EA NOP PC:F2AA A:42 X:FF Y:E7 P:24 SP:FB CYC:29 SL:203 F2AA EA NOP PC:F2AB A:42 X:FF Y:E7 P:24 SP:FB CYC:35 SL:203 F2AB EA NOP PC:F2AC A:42 X:FF Y:E7 P:24 SP:FB CYC:41 SL:203 F2AC EA NOP PC:F2AD A:42 X:FF Y:E7 P:24 SP:FB CYC:47 SL:203 F2AD 20 JSR $FB69 PC:F2AE A:42 X:FF Y:E7 P:24 SP:FB CYC:53 SL:203 FB69 70 BVS $FB75 PC:FB6A A:42 X:FF Y:E7 P:24 SP:F9 CYC:71 SL:203 FB6B F0 BEQ $FB75 PC:FB6C A:42 X:FF Y:E7 P:24 SP:F9 CYC:77 SL:203 FB6D 30 BMI $FB75 PC:FB6E A:42 X:FF Y:E7 P:24 SP:F9 CYC:83 SL:203 FB6F B0 BCS $FB75 PC:FB70 A:42 X:FF Y:E7 P:24 SP:F9 CYC:89 SL:203 FB71 C9 CMP #$42 PC:FB72 A:42 X:FF Y:E7 P:24 SP:F9 CYC:95 SL:203 FB73 F0 BEQ $FB77 PC:FB74 A:42 X:FF Y:E7 P:27 SP:F9 CYC:101 SL:203 FB77 60 RTS PC:FB78 A:42 X:FF Y:E7 P:27 SP:F9 CYC:110 SL:203 F2B0 AD LDA $0647 PC:F2B1 A:42 X:FF Y:E7 P:27 SP:FB CYC:128 SL:203 F2B3 C9 CMP #$52 PC:F2B4 A:52 X:FF Y:E7 P:25 SP:FB CYC:140 SL:203 F2B5 F0 BEQ $F2B9 PC:F2B6 A:52 X:FF Y:E7 P:27 SP:FB CYC:146 SL:203 F2B9 C8 INY PC:F2BA A:52 X:FF Y:E7 P:27 SP:FB CYC:155 SL:203 F2BA A9 LDA #$37 PC:F2BB A:52 X:FF Y:E8 P:A5 SP:FB CYC:161 SL:203 F2BC 8D STA $0647 PC:F2BD A:37 X:FF Y:E8 P:25 SP:FB CYC:167 SL:203 F2BF 20 JSR $FA68 PC:F2C0 A:37 X:FF Y:E8 P:25 SP:FB CYC:179 SL:203 FA68 24 BIT $01 PC:FA69 A:37 X:FF Y:E8 P:25 SP:F9 CYC:197 SL:203 FA6A 38 SEC PC:FA6B A:37 X:FF Y:E8 P:E5 SP:F9 CYC:206 SL:203 FA6B A9 LDA #$75 PC:FA6C A:37 X:FF Y:E8 P:E5 SP:F9 CYC:212 SL:203 FA6D 60 RTS PC:FA6E A:75 X:FF Y:E8 P:65 SP:F9 CYC:218 SL:203 F2C2 3F RLA $0548,x PC:F2C3 A:75 X:FF Y:E8 P:65 SP:FB CYC:236 SL:203 F2C5 EA NOP PC:F2C6 A:65 X:FF Y:E8 P:64 SP:FB CYC:257 SL:203 F2C6 EA NOP PC:F2C7 A:65 X:FF Y:E8 P:64 SP:FB CYC:263 SL:203 F2C7 EA NOP PC:F2C8 A:65 X:FF Y:E8 P:64 SP:FB CYC:269 SL:203 F2C8 EA NOP PC:F2C9 A:65 X:FF Y:E8 P:64 SP:FB CYC:275 SL:203 F2C9 20 JSR $FA6E PC:F2CA A:65 X:FF Y:E8 P:64 SP:FB CYC:281 SL:203 FA6E 50 BVC $FAE6 PC:FA6F A:65 X:FF Y:E8 P:64 SP:F9 CYC:299 SL:203 FA70 F0 BEQ $FAE6 PC:FA71 A:65 X:FF Y:E8 P:64 SP:F9 CYC:305 SL:203 FA72 30 BMI $FAE6 PC:FA73 A:65 X:FF Y:E8 P:64 SP:F9 CYC:311 SL:203 FA74 B0 BCS $FAE6 PC:FA75 A:65 X:FF Y:E8 P:64 SP:F9 CYC:317 SL:203 FA76 C9 CMP #$65 PC:FA77 A:65 X:FF Y:E8 P:64 SP:F9 CYC:323 SL:203 FA78 D0 BNE $FAE6 PC:FA79 A:65 X:FF Y:E8 P:67 SP:F9 CYC:329 SL:203 FA7A 60 RTS PC:FA7B A:65 X:FF Y:E8 P:67 SP:F9 CYC:335 SL:203 F2CC AD LDA $0647 PC:F2CD A:65 X:FF Y:E8 P:67 SP:FB CYC:12 SL:204 F2CF C9 CMP #$6F PC:F2D0 A:6F X:FF Y:E8 P:65 SP:FB CYC:24 SL:204 F2D1 F0 BEQ $F2D5 PC:F2D2 A:6F X:FF Y:E8 P:67 SP:FB CYC:30 SL:204 F2D5 60 RTS PC:F2D6 A:6F X:FF Y:E8 P:67 SP:FB CYC:39 SL:204 C647 20 JSR $F2D6 PC:C648 A:6F X:FF Y:E8 P:67 SP:FD CYC:57 SL:204 F2D6 A9 LDA #$FF PC:F2D7 A:6F X:FF Y:E8 P:67 SP:FB CYC:75 SL:204 F2D8 85 STA $01 PC:F2D9 A:FF X:FF Y:E8 P:E5 SP:FB CYC:81 SL:204 F2DA A0 LDY #$E9 PC:F2DB A:FF X:FF Y:E8 P:E5 SP:FB CYC:90 SL:204 F2DC A2 LDX #$02 PC:F2DD A:FF X:FF Y:E9 P:E5 SP:FB CYC:96 SL:204 F2DE A9 LDA #$47 PC:F2DF A:FF X:02 Y:E9 P:65 SP:FB CYC:102 SL:204 F2E0 85 STA $47 PC:F2E1 A:47 X:02 Y:E9 P:65 SP:FB CYC:108 SL:204 F2E2 A9 LDA #$06 PC:F2E3 A:47 X:02 Y:E9 P:65 SP:FB CYC:117 SL:204 F2E4 85 STA $48 PC:F2E5 A:06 X:02 Y:E9 P:65 SP:FB CYC:123 SL:204 F2E6 A9 LDA #$A5 PC:F2E7 A:06 X:02 Y:E9 P:65 SP:FB CYC:132 SL:204 F2E8 8D STA $0647 PC:F2E9 A:A5 X:02 Y:E9 P:E5 SP:FB CYC:138 SL:204 F2EB 20 JSR $FB1D PC:F2EC A:A5 X:02 Y:E9 P:E5 SP:FB CYC:150 SL:204 FB1D 24 BIT $01 PC:FB1E A:A5 X:02 Y:E9 P:E5 SP:F9 CYC:168 SL:204 FB1F 18 CLC PC:FB20 A:A5 X:02 Y:E9 P:E5 SP:F9 CYC:177 SL:204 FB20 A9 LDA #$B3 PC:FB21 A:A5 X:02 Y:E9 P:E4 SP:F9 CYC:183 SL:204 FB22 60 RTS PC:FB23 A:B3 X:02 Y:E9 P:E4 SP:F9 CYC:189 SL:204 F2EE 43 SRE $(EA45,x) PC:F2EF A:B3 X:02 Y:E9 P:E4 SP:FB CYC:207 SL:204 F2F0 EA NOP PC:F2F1 A:E1 X:02 Y:E9 P:E5 SP:FB CYC:231 SL:204 F2F1 EA NOP PC:F2F2 A:E1 X:02 Y:E9 P:E5 SP:FB CYC:237 SL:204 F2F2 EA NOP PC:F2F3 A:E1 X:02 Y:E9 P:E5 SP:FB CYC:243 SL:204 F2F3 EA NOP PC:F2F4 A:E1 X:02 Y:E9 P:E5 SP:FB CYC:249 SL:204 F2F4 20 JSR $FB23 PC:F2F5 A:E1 X:02 Y:E9 P:E5 SP:FB CYC:255 SL:204 FB23 50 BVC $FB75 PC:FB24 A:E1 X:02 Y:E9 P:E5 SP:F9 CYC:273 SL:204 FB25 90 BCC $FB75 PC:FB26 A:E1 X:02 Y:E9 P:E5 SP:F9 CYC:279 SL:204 FB27 10 BPL $FB75 PC:FB28 A:E1 X:02 Y:E9 P:E5 SP:F9 CYC:285 SL:204 FB29 C9 CMP #$E1 PC:FB2A A:E1 X:02 Y:E9 P:E5 SP:F9 CYC:291 SL:204 FB2B D0 BNE $FB75 PC:FB2C A:E1 X:02 Y:E9 P:67 SP:F9 CYC:297 SL:204 FB2D 60 RTS PC:FB2E A:E1 X:02 Y:E9 P:67 SP:F9 CYC:303 SL:204 F2F7 AD LDA $0647 PC:F2F8 A:E1 X:02 Y:E9 P:67 SP:FB CYC:321 SL:204 F2FA C9 CMP #$52 PC:F2FB A:52 X:02 Y:E9 P:65 SP:FB CYC:333 SL:204 F2FC F0 BEQ $F300 PC:F2FD A:52 X:02 Y:E9 P:67 SP:FB CYC:339 SL:204 F300 C8 INY PC:F301 A:52 X:02 Y:E9 P:67 SP:FB CYC:10 SL:205 F301 A9 LDA #$29 PC:F302 A:52 X:02 Y:EA P:E5 SP:FB CYC:16 SL:205 F303 8D STA $0647 PC:F304 A:29 X:02 Y:EA P:65 SP:FB CYC:22 SL:205 F306 20 JSR $FB2E PC:F307 A:29 X:02 Y:EA P:65 SP:FB CYC:34 SL:205 FB2E B8 CLV PC:FB2F A:29 X:02 Y:EA P:65 SP:F9 CYC:52 SL:205 FB2F 18 CLC PC:FB30 A:29 X:02 Y:EA P:25 SP:F9 CYC:58 SL:205 FB30 A9 LDA #$42 PC:FB31 A:29 X:02 Y:EA P:24 SP:F9 CYC:64 SL:205 FB32 60 RTS PC:FB33 A:42 X:02 Y:EA P:24 SP:F9 CYC:70 SL:205 F309 43 SRE $(EA45,x) PC:F30A A:42 X:02 Y:EA P:24 SP:FB CYC:88 SL:205 F30B EA NOP PC:F30C A:56 X:02 Y:EA P:25 SP:FB CYC:112 SL:205 F30C EA NOP PC:F30D A:56 X:02 Y:EA P:25 SP:FB CYC:118 SL:205 F30D EA NOP PC:F30E A:56 X:02 Y:EA P:25 SP:FB CYC:124 SL:205 F30E EA NOP PC:F30F A:56 X:02 Y:EA P:25 SP:FB CYC:130 SL:205 F30F 20 JSR $FB33 PC:F310 A:56 X:02 Y:EA P:25 SP:FB CYC:136 SL:205 FB33 70 BVS $FB75 PC:FB34 A:56 X:02 Y:EA P:25 SP:F9 CYC:154 SL:205 FB35 F0 BEQ $FB75 PC:FB36 A:56 X:02 Y:EA P:25 SP:F9 CYC:160 SL:205 FB37 30 BMI $FB75 PC:FB38 A:56 X:02 Y:EA P:25 SP:F9 CYC:166 SL:205 FB39 90 BCC $FB75 PC:FB3A A:56 X:02 Y:EA P:25 SP:F9 CYC:172 SL:205 FB3B C9 CMP #$56 PC:FB3C A:56 X:02 Y:EA P:25 SP:F9 CYC:178 SL:205 FB3D D0 BNE $FB75 PC:FB3E A:56 X:02 Y:EA P:27 SP:F9 CYC:184 SL:205 FB3F 60 RTS PC:FB40 A:56 X:02 Y:EA P:27 SP:F9 CYC:190 SL:205 F312 AD LDA $0647 PC:F313 A:56 X:02 Y:EA P:27 SP:FB CYC:208 SL:205 F315 C9 CMP #$14 PC:F316 A:14 X:02 Y:EA P:25 SP:FB CYC:220 SL:205 F317 F0 BEQ $F31B PC:F318 A:14 X:02 Y:EA P:27 SP:FB CYC:226 SL:205 F31B C8 INY PC:F31C A:14 X:02 Y:EA P:27 SP:FB CYC:235 SL:205 F31C A9 LDA #$37 PC:F31D A:14 X:02 Y:EB P:A5 SP:FB CYC:241 SL:205 F31E 8D STA $0647 PC:F31F A:37 X:02 Y:EB P:25 SP:FB CYC:247 SL:205 F321 20 JSR $FB40 PC:F322 A:37 X:02 Y:EB P:25 SP:FB CYC:259 SL:205 FB40 24 BIT $01 PC:FB41 A:37 X:02 Y:EB P:25 SP:F9 CYC:277 SL:205 FB42 38 SEC PC:FB43 A:37 X:02 Y:EB P:E5 SP:F9 CYC:286 SL:205 FB43 A9 LDA #$75 PC:FB44 A:37 X:02 Y:EB P:E5 SP:F9 CYC:292 SL:205 FB45 60 RTS PC:FB46 A:75 X:02 Y:EB P:65 SP:F9 CYC:298 SL:205 F324 43 SRE $(EA45,x) PC:F325 A:75 X:02 Y:EB P:65 SP:FB CYC:316 SL:205 F326 EA NOP PC:F327 A:6E X:02 Y:EB P:65 SP:FB CYC:340 SL:205 F327 EA NOP PC:F328 A:6E X:02 Y:EB P:65 SP:FB CYC:5 SL:206 F328 EA NOP PC:F329 A:6E X:02 Y:EB P:65 SP:FB CYC:11 SL:206 F329 EA NOP PC:F32A A:6E X:02 Y:EB P:65 SP:FB CYC:17 SL:206 F32A 20 JSR $FB46 PC:F32B A:6E X:02 Y:EB P:65 SP:FB CYC:23 SL:206 FB46 50 BVC $FB75 PC:FB47 A:6E X:02 Y:EB P:65 SP:F9 CYC:41 SL:206 FB48 F0 BEQ $FB75 PC:FB49 A:6E X:02 Y:EB P:65 SP:F9 CYC:47 SL:206 FB4A 30 BMI $FB75 PC:FB4B A:6E X:02 Y:EB P:65 SP:F9 CYC:53 SL:206 FB4C 90 BCC $FB75 PC:FB4D A:6E X:02 Y:EB P:65 SP:F9 CYC:59 SL:206 FB4E C9 CMP #$6E PC:FB4F A:6E X:02 Y:EB P:65 SP:F9 CYC:65 SL:206 FB50 D0 BNE $FB75 PC:FB51 A:6E X:02 Y:EB P:67 SP:F9 CYC:71 SL:206 FB52 60 RTS PC:FB53 A:6E X:02 Y:EB P:67 SP:F9 CYC:77 SL:206 F32D AD LDA $0647 PC:F32E A:6E X:02 Y:EB P:67 SP:FB CYC:95 SL:206 F330 C9 CMP #$1B PC:F331 A:1B X:02 Y:EB P:65 SP:FB CYC:107 SL:206 F332 F0 BEQ $F336 PC:F333 A:1B X:02 Y:EB P:67 SP:FB CYC:113 SL:206 F336 C8 INY PC:F337 A:1B X:02 Y:EB P:67 SP:FB CYC:122 SL:206 F337 A9 LDA #$A5 PC:F338 A:1B X:02 Y:EC P:E5 SP:FB CYC:128 SL:206 F339 85 STA $47 PC:F33A A:A5 X:02 Y:EC P:E5 SP:FB CYC:134 SL:206 F33B 20 JSR $FB1D PC:F33C A:A5 X:02 Y:EC P:E5 SP:FB CYC:143 SL:206 FB1D 24 BIT $01 PC:FB1E A:A5 X:02 Y:EC P:E5 SP:F9 CYC:161 SL:206 FB1F 18 CLC PC:FB20 A:A5 X:02 Y:EC P:E5 SP:F9 CYC:170 SL:206 FB20 A9 LDA #$B3 PC:FB21 A:A5 X:02 Y:EC P:E4 SP:F9 CYC:176 SL:206 FB22 60 RTS PC:FB23 A:B3 X:02 Y:EC P:E4 SP:F9 CYC:182 SL:206 F33E 47 SRE $47 PC:F33F A:B3 X:02 Y:EC P:E4 SP:FB CYC:200 SL:206 F340 EA NOP PC:F341 A:E1 X:02 Y:EC P:E5 SP:FB CYC:215 SL:206 F341 EA NOP PC:F342 A:E1 X:02 Y:EC P:E5 SP:FB CYC:221 SL:206 F342 EA NOP PC:F343 A:E1 X:02 Y:EC P:E5 SP:FB CYC:227 SL:206 F343 EA NOP PC:F344 A:E1 X:02 Y:EC P:E5 SP:FB CYC:233 SL:206 F344 20 JSR $FB23 PC:F345 A:E1 X:02 Y:EC P:E5 SP:FB CYC:239 SL:206 FB23 50 BVC $FB75 PC:FB24 A:E1 X:02 Y:EC P:E5 SP:F9 CYC:257 SL:206 FB25 90 BCC $FB75 PC:FB26 A:E1 X:02 Y:EC P:E5 SP:F9 CYC:263 SL:206 FB27 10 BPL $FB75 PC:FB28 A:E1 X:02 Y:EC P:E5 SP:F9 CYC:269 SL:206 FB29 C9 CMP #$E1 PC:FB2A A:E1 X:02 Y:EC P:E5 SP:F9 CYC:275 SL:206 FB2B D0 BNE $FB75 PC:FB2C A:E1 X:02 Y:EC P:67 SP:F9 CYC:281 SL:206 FB2D 60 RTS PC:FB2E A:E1 X:02 Y:EC P:67 SP:F9 CYC:287 SL:206 F347 A5 LDA $47 PC:F348 A:E1 X:02 Y:EC P:67 SP:FB CYC:305 SL:206 F349 C9 CMP #$52 PC:F34A A:52 X:02 Y:EC P:65 SP:FB CYC:314 SL:206 F34B F0 BEQ $F34F PC:F34C A:52 X:02 Y:EC P:67 SP:FB CYC:320 SL:206 F34F C8 INY PC:F350 A:52 X:02 Y:EC P:67 SP:FB CYC:329 SL:206 F350 A9 LDA #$29 PC:F351 A:52 X:02 Y:ED P:E5 SP:FB CYC:335 SL:206 F352 85 STA $47 PC:F353 A:29 X:02 Y:ED P:65 SP:FB CYC:0 SL:207 F354 20 JSR $FB2E PC:F355 A:29 X:02 Y:ED P:65 SP:FB CYC:9 SL:207 FB2E B8 CLV PC:FB2F A:29 X:02 Y:ED P:65 SP:F9 CYC:27 SL:207 FB2F 18 CLC PC:FB30 A:29 X:02 Y:ED P:25 SP:F9 CYC:33 SL:207 FB30 A9 LDA #$42 PC:FB31 A:29 X:02 Y:ED P:24 SP:F9 CYC:39 SL:207 FB32 60 RTS PC:FB33 A:42 X:02 Y:ED P:24 SP:F9 CYC:45 SL:207 F357 47 SRE $47 PC:F358 A:42 X:02 Y:ED P:24 SP:FB CYC:63 SL:207 F359 EA NOP PC:F35A A:56 X:02 Y:ED P:25 SP:FB CYC:78 SL:207 F35A EA NOP PC:F35B A:56 X:02 Y:ED P:25 SP:FB CYC:84 SL:207 F35B EA NOP PC:F35C A:56 X:02 Y:ED P:25 SP:FB CYC:90 SL:207 F35C EA NOP PC:F35D A:56 X:02 Y:ED P:25 SP:FB CYC:96 SL:207 F35D 20 JSR $FB33 PC:F35E A:56 X:02 Y:ED P:25 SP:FB CYC:102 SL:207 FB33 70 BVS $FB75 PC:FB34 A:56 X:02 Y:ED P:25 SP:F9 CYC:120 SL:207 FB35 F0 BEQ $FB75 PC:FB36 A:56 X:02 Y:ED P:25 SP:F9 CYC:126 SL:207 FB37 30 BMI $FB75 PC:FB38 A:56 X:02 Y:ED P:25 SP:F9 CYC:132 SL:207 FB39 90 BCC $FB75 PC:FB3A A:56 X:02 Y:ED P:25 SP:F9 CYC:138 SL:207 FB3B C9 CMP #$56 PC:FB3C A:56 X:02 Y:ED P:25 SP:F9 CYC:144 SL:207 FB3D D0 BNE $FB75 PC:FB3E A:56 X:02 Y:ED P:27 SP:F9 CYC:150 SL:207 FB3F 60 RTS PC:FB40 A:56 X:02 Y:ED P:27 SP:F9 CYC:156 SL:207 F360 A5 LDA $47 PC:F361 A:56 X:02 Y:ED P:27 SP:FB CYC:174 SL:207 F362 C9 CMP #$14 PC:F363 A:14 X:02 Y:ED P:25 SP:FB CYC:183 SL:207 F364 F0 BEQ $F368 PC:F365 A:14 X:02 Y:ED P:27 SP:FB CYC:189 SL:207 F368 C8 INY PC:F369 A:14 X:02 Y:ED P:27 SP:FB CYC:198 SL:207 F369 A9 LDA #$37 PC:F36A A:14 X:02 Y:EE P:A5 SP:FB CYC:204 SL:207 F36B 85 STA $47 PC:F36C A:37 X:02 Y:EE P:25 SP:FB CYC:210 SL:207 F36D 20 JSR $FB40 PC:F36E A:37 X:02 Y:EE P:25 SP:FB CYC:219 SL:207 FB40 24 BIT $01 PC:FB41 A:37 X:02 Y:EE P:25 SP:F9 CYC:237 SL:207 FB42 38 SEC PC:FB43 A:37 X:02 Y:EE P:E5 SP:F9 CYC:246 SL:207 FB43 A9 LDA #$75 PC:FB44 A:37 X:02 Y:EE P:E5 SP:F9 CYC:252 SL:207 FB45 60 RTS PC:FB46 A:75 X:02 Y:EE P:65 SP:F9 CYC:258 SL:207 F370 47 SRE $47 PC:F371 A:75 X:02 Y:EE P:65 SP:FB CYC:276 SL:207 F372 EA NOP PC:F373 A:6E X:02 Y:EE P:65 SP:FB CYC:291 SL:207 F373 EA NOP PC:F374 A:6E X:02 Y:EE P:65 SP:FB CYC:297 SL:207 F374 EA NOP PC:F375 A:6E X:02 Y:EE P:65 SP:FB CYC:303 SL:207 F375 EA NOP PC:F376 A:6E X:02 Y:EE P:65 SP:FB CYC:309 SL:207 F376 20 JSR $FB46 PC:F377 A:6E X:02 Y:EE P:65 SP:FB CYC:315 SL:207 FB46 50 BVC $FB75 PC:FB47 A:6E X:02 Y:EE P:65 SP:F9 CYC:333 SL:207 FB48 F0 BEQ $FB75 PC:FB49 A:6E X:02 Y:EE P:65 SP:F9 CYC:339 SL:207 FB4A 30 BMI $FB75 PC:FB4B A:6E X:02 Y:EE P:65 SP:F9 CYC:4 SL:208 FB4C 90 BCC $FB75 PC:FB4D A:6E X:02 Y:EE P:65 SP:F9 CYC:10 SL:208 FB4E C9 CMP #$6E PC:FB4F A:6E X:02 Y:EE P:65 SP:F9 CYC:16 SL:208 FB50 D0 BNE $FB75 PC:FB51 A:6E X:02 Y:EE P:67 SP:F9 CYC:22 SL:208 FB52 60 RTS PC:FB53 A:6E X:02 Y:EE P:67 SP:F9 CYC:28 SL:208 F379 A5 LDA $47 PC:F37A A:6E X:02 Y:EE P:67 SP:FB CYC:46 SL:208 F37B C9 CMP #$1B PC:F37C A:1B X:02 Y:EE P:65 SP:FB CYC:55 SL:208 F37D F0 BEQ $F381 PC:F37E A:1B X:02 Y:EE P:67 SP:FB CYC:61 SL:208 F381 C8 INY PC:F382 A:1B X:02 Y:EE P:67 SP:FB CYC:70 SL:208 F382 A9 LDA #$A5 PC:F383 A:1B X:02 Y:EF P:E5 SP:FB CYC:76 SL:208 F384 8D STA $0647 PC:F385 A:A5 X:02 Y:EF P:E5 SP:FB CYC:82 SL:208 F387 20 JSR $FB1D PC:F388 A:A5 X:02 Y:EF P:E5 SP:FB CYC:94 SL:208 FB1D 24 BIT $01 PC:FB1E A:A5 X:02 Y:EF P:E5 SP:F9 CYC:112 SL:208 FB1F 18 CLC PC:FB20 A:A5 X:02 Y:EF P:E5 SP:F9 CYC:121 SL:208 FB20 A9 LDA #$B3 PC:FB21 A:A5 X:02 Y:EF P:E4 SP:F9 CYC:127 SL:208 FB22 60 RTS PC:FB23 A:B3 X:02 Y:EF P:E4 SP:F9 CYC:133 SL:208 F38A 4F SRE $0647 PC:F38B A:B3 X:02 Y:EF P:E4 SP:FB CYC:151 SL:208 F38D EA NOP PC:F38E A:E1 X:02 Y:EF P:E5 SP:FB CYC:169 SL:208 F38E EA NOP PC:F38F A:E1 X:02 Y:EF P:E5 SP:FB CYC:175 SL:208 F38F EA NOP PC:F390 A:E1 X:02 Y:EF P:E5 SP:FB CYC:181 SL:208 F390 EA NOP PC:F391 A:E1 X:02 Y:EF P:E5 SP:FB CYC:187 SL:208 F391 20 JSR $FB23 PC:F392 A:E1 X:02 Y:EF P:E5 SP:FB CYC:193 SL:208 FB23 50 BVC $FB75 PC:FB24 A:E1 X:02 Y:EF P:E5 SP:F9 CYC:211 SL:208 FB25 90 BCC $FB75 PC:FB26 A:E1 X:02 Y:EF P:E5 SP:F9 CYC:217 SL:208 FB27 10 BPL $FB75 PC:FB28 A:E1 X:02 Y:EF P:E5 SP:F9 CYC:223 SL:208 FB29 C9 CMP #$E1 PC:FB2A A:E1 X:02 Y:EF P:E5 SP:F9 CYC:229 SL:208 FB2B D0 BNE $FB75 PC:FB2C A:E1 X:02 Y:EF P:67 SP:F9 CYC:235 SL:208 FB2D 60 RTS PC:FB2E A:E1 X:02 Y:EF P:67 SP:F9 CYC:241 SL:208 F394 AD LDA $0647 PC:F395 A:E1 X:02 Y:EF P:67 SP:FB CYC:259 SL:208 F397 C9 CMP #$52 PC:F398 A:52 X:02 Y:EF P:65 SP:FB CYC:271 SL:208 F399 F0 BEQ $F39D PC:F39A A:52 X:02 Y:EF P:67 SP:FB CYC:277 SL:208 F39D C8 INY PC:F39E A:52 X:02 Y:EF P:67 SP:FB CYC:286 SL:208 F39E A9 LDA #$29 PC:F39F A:52 X:02 Y:F0 P:E5 SP:FB CYC:292 SL:208 F3A0 8D STA $0647 PC:F3A1 A:29 X:02 Y:F0 P:65 SP:FB CYC:298 SL:208 F3A3 20 JSR $FB2E PC:F3A4 A:29 X:02 Y:F0 P:65 SP:FB CYC:310 SL:208 FB2E B8 CLV PC:FB2F A:29 X:02 Y:F0 P:65 SP:F9 CYC:328 SL:208 FB2F 18 CLC PC:FB30 A:29 X:02 Y:F0 P:25 SP:F9 CYC:334 SL:208 FB30 A9 LDA #$42 PC:FB31 A:29 X:02 Y:F0 P:24 SP:F9 CYC:340 SL:208 FB32 60 RTS PC:FB33 A:42 X:02 Y:F0 P:24 SP:F9 CYC:5 SL:209 F3A6 4F SRE $0647 PC:F3A7 A:42 X:02 Y:F0 P:24 SP:FB CYC:23 SL:209 F3A9 EA NOP PC:F3AA A:56 X:02 Y:F0 P:25 SP:FB CYC:41 SL:209 F3AA EA NOP PC:F3AB A:56 X:02 Y:F0 P:25 SP:FB CYC:47 SL:209 F3AB EA NOP PC:F3AC A:56 X:02 Y:F0 P:25 SP:FB CYC:53 SL:209 F3AC EA NOP PC:F3AD A:56 X:02 Y:F0 P:25 SP:FB CYC:59 SL:209 F3AD 20 JSR $FB33 PC:F3AE A:56 X:02 Y:F0 P:25 SP:FB CYC:65 SL:209 FB33 70 BVS $FB75 PC:FB34 A:56 X:02 Y:F0 P:25 SP:F9 CYC:83 SL:209 FB35 F0 BEQ $FB75 PC:FB36 A:56 X:02 Y:F0 P:25 SP:F9 CYC:89 SL:209 FB37 30 BMI $FB75 PC:FB38 A:56 X:02 Y:F0 P:25 SP:F9 CYC:95 SL:209 FB39 90 BCC $FB75 PC:FB3A A:56 X:02 Y:F0 P:25 SP:F9 CYC:101 SL:209 FB3B C9 CMP #$56 PC:FB3C A:56 X:02 Y:F0 P:25 SP:F9 CYC:107 SL:209 FB3D D0 BNE $FB75 PC:FB3E A:56 X:02 Y:F0 P:27 SP:F9 CYC:113 SL:209 FB3F 60 RTS PC:FB40 A:56 X:02 Y:F0 P:27 SP:F9 CYC:119 SL:209 F3B0 AD LDA $0647 PC:F3B1 A:56 X:02 Y:F0 P:27 SP:FB CYC:137 SL:209 F3B3 C9 CMP #$14 PC:F3B4 A:14 X:02 Y:F0 P:25 SP:FB CYC:149 SL:209 F3B5 F0 BEQ $F3B9 PC:F3B6 A:14 X:02 Y:F0 P:27 SP:FB CYC:155 SL:209 F3B9 C8 INY PC:F3BA A:14 X:02 Y:F0 P:27 SP:FB CYC:164 SL:209 F3BA A9 LDA #$37 PC:F3BB A:14 X:02 Y:F1 P:A5 SP:FB CYC:170 SL:209 F3BC 8D STA $0647 PC:F3BD A:37 X:02 Y:F1 P:25 SP:FB CYC:176 SL:209 F3BF 20 JSR $FB40 PC:F3C0 A:37 X:02 Y:F1 P:25 SP:FB CYC:188 SL:209 FB40 24 BIT $01 PC:FB41 A:37 X:02 Y:F1 P:25 SP:F9 CYC:206 SL:209 FB42 38 SEC PC:FB43 A:37 X:02 Y:F1 P:E5 SP:F9 CYC:215 SL:209 FB43 A9 LDA #$75 PC:FB44 A:37 X:02 Y:F1 P:E5 SP:F9 CYC:221 SL:209 FB45 60 RTS PC:FB46 A:75 X:02 Y:F1 P:65 SP:F9 CYC:227 SL:209 F3C2 4F SRE $0647 PC:F3C3 A:75 X:02 Y:F1 P:65 SP:FB CYC:245 SL:209 F3C5 EA NOP PC:F3C6 A:6E X:02 Y:F1 P:65 SP:FB CYC:263 SL:209 F3C6 EA NOP PC:F3C7 A:6E X:02 Y:F1 P:65 SP:FB CYC:269 SL:209 F3C7 EA NOP PC:F3C8 A:6E X:02 Y:F1 P:65 SP:FB CYC:275 SL:209 F3C8 EA NOP PC:F3C9 A:6E X:02 Y:F1 P:65 SP:FB CYC:281 SL:209 F3C9 20 JSR $FB46 PC:F3CA A:6E X:02 Y:F1 P:65 SP:FB CYC:287 SL:209 FB46 50 BVC $FB75 PC:FB47 A:6E X:02 Y:F1 P:65 SP:F9 CYC:305 SL:209 FB48 F0 BEQ $FB75 PC:FB49 A:6E X:02 Y:F1 P:65 SP:F9 CYC:311 SL:209 FB4A 30 BMI $FB75 PC:FB4B A:6E X:02 Y:F1 P:65 SP:F9 CYC:317 SL:209 FB4C 90 BCC $FB75 PC:FB4D A:6E X:02 Y:F1 P:65 SP:F9 CYC:323 SL:209 FB4E C9 CMP #$6E PC:FB4F A:6E X:02 Y:F1 P:65 SP:F9 CYC:329 SL:209 FB50 D0 BNE $FB75 PC:FB51 A:6E X:02 Y:F1 P:67 SP:F9 CYC:335 SL:209 FB52 60 RTS PC:FB53 A:6E X:02 Y:F1 P:67 SP:F9 CYC:0 SL:210 F3CC AD LDA $0647 PC:F3CD A:6E X:02 Y:F1 P:67 SP:FB CYC:18 SL:210 F3CF C9 CMP #$1B PC:F3D0 A:1B X:02 Y:F1 P:65 SP:FB CYC:30 SL:210 F3D1 F0 BEQ $F3D5 PC:F3D2 A:1B X:02 Y:F1 P:67 SP:FB CYC:36 SL:210 F3D5 A9 LDA #$A5 PC:F3D6 A:1B X:02 Y:F1 P:67 SP:FB CYC:45 SL:210 F3D7 8D STA $0647 PC:F3D8 A:A5 X:02 Y:F1 P:E5 SP:FB CYC:51 SL:210 F3DA A9 LDA #$48 PC:F3DB A:A5 X:02 Y:F1 P:E5 SP:FB CYC:63 SL:210 F3DC 85 STA $45 PC:F3DD A:48 X:02 Y:F1 P:65 SP:FB CYC:69 SL:210 F3DE A9 LDA #$05 PC:F3DF A:48 X:02 Y:F1 P:65 SP:FB CYC:78 SL:210 F3E0 85 STA $46 PC:F3E1 A:05 X:02 Y:F1 P:65 SP:FB CYC:84 SL:210 F3E2 A0 LDY #$FF PC:F3E3 A:05 X:02 Y:F1 P:65 SP:FB CYC:93 SL:210 F3E4 20 JSR $FB1D PC:F3E5 A:05 X:02 Y:FF P:E5 SP:FB CYC:99 SL:210 FB1D 24 BIT $01 PC:FB1E A:05 X:02 Y:FF P:E5 SP:F9 CYC:117 SL:210 FB1F 18 CLC PC:FB20 A:05 X:02 Y:FF P:E5 SP:F9 CYC:126 SL:210 FB20 A9 LDA #$B3 PC:FB21 A:05 X:02 Y:FF P:E4 SP:F9 CYC:132 SL:210 FB22 60 RTS PC:FB23 A:B3 X:02 Y:FF P:E4 SP:F9 CYC:138 SL:210 F3E7 53 SRE ($45), y PC:F3E8 A:B3 X:02 Y:FF P:E4 SP:FB CYC:156 SL:210 F3E9 EA NOP PC:F3EA A:E1 X:02 Y:FF P:E5 SP:FB CYC:180 SL:210 F3EA EA NOP PC:F3EB A:E1 X:02 Y:FF P:E5 SP:FB CYC:186 SL:210 F3EB 08 PHP PC:F3EC A:E1 X:02 Y:FF P:E5 SP:FB CYC:192 SL:210 F3EC 48 PHA PC:F3ED A:E1 X:02 Y:FF P:E5 SP:FA CYC:201 SL:210 F3ED A0 LDY #$F2 PC:F3EE A:E1 X:02 Y:FF P:E5 SP:F9 CYC:210 SL:210 F3EF 68 PLA PC:F3F0 A:E1 X:02 Y:F2 P:E5 SP:F9 CYC:216 SL:210 F3F0 28 PLP PC:F3F1 A:E1 X:02 Y:F2 P:E5 SP:FA CYC:228 SL:210 F3F1 20 JSR $FB23 PC:F3F2 A:E1 X:02 Y:F2 P:E5 SP:FB CYC:240 SL:210 FB23 50 BVC $FB75 PC:FB24 A:E1 X:02 Y:F2 P:E5 SP:F9 CYC:258 SL:210 FB25 90 BCC $FB75 PC:FB26 A:E1 X:02 Y:F2 P:E5 SP:F9 CYC:264 SL:210 FB27 10 BPL $FB75 PC:FB28 A:E1 X:02 Y:F2 P:E5 SP:F9 CYC:270 SL:210 FB29 C9 CMP #$E1 PC:FB2A A:E1 X:02 Y:F2 P:E5 SP:F9 CYC:276 SL:210 FB2B D0 BNE $FB75 PC:FB2C A:E1 X:02 Y:F2 P:67 SP:F9 CYC:282 SL:210 FB2D 60 RTS PC:FB2E A:E1 X:02 Y:F2 P:67 SP:F9 CYC:288 SL:210 F3F4 AD LDA $0647 PC:F3F5 A:E1 X:02 Y:F2 P:67 SP:FB CYC:306 SL:210 F3F7 C9 CMP #$52 PC:F3F8 A:52 X:02 Y:F2 P:65 SP:FB CYC:318 SL:210 F3F9 F0 BEQ $F3FD PC:F3FA A:52 X:02 Y:F2 P:67 SP:FB CYC:324 SL:210 F3FD A0 LDY #$FF PC:F3FE A:52 X:02 Y:F2 P:67 SP:FB CYC:333 SL:210 F3FF A9 LDA #$29 PC:F400 A:52 X:02 Y:FF P:E5 SP:FB CYC:339 SL:210 F401 8D STA $0647 PC:F402 A:29 X:02 Y:FF P:65 SP:FB CYC:4 SL:211 F404 20 JSR $FB2E PC:F405 A:29 X:02 Y:FF P:65 SP:FB CYC:16 SL:211 FB2E B8 CLV PC:FB2F A:29 X:02 Y:FF P:65 SP:F9 CYC:34 SL:211 FB2F 18 CLC PC:FB30 A:29 X:02 Y:FF P:25 SP:F9 CYC:40 SL:211 FB30 A9 LDA #$42 PC:FB31 A:29 X:02 Y:FF P:24 SP:F9 CYC:46 SL:211 FB32 60 RTS PC:FB33 A:42 X:02 Y:FF P:24 SP:F9 CYC:52 SL:211 F407 53 SRE ($45), y PC:F408 A:42 X:02 Y:FF P:24 SP:FB CYC:70 SL:211 F409 EA NOP PC:F40A A:56 X:02 Y:FF P:25 SP:FB CYC:94 SL:211 F40A EA NOP PC:F40B A:56 X:02 Y:FF P:25 SP:FB CYC:100 SL:211 F40B 08 PHP PC:F40C A:56 X:02 Y:FF P:25 SP:FB CYC:106 SL:211 F40C 48 PHA PC:F40D A:56 X:02 Y:FF P:25 SP:FA CYC:115 SL:211 F40D A0 LDY #$F3 PC:F40E A:56 X:02 Y:FF P:25 SP:F9 CYC:124 SL:211 F40F 68 PLA PC:F410 A:56 X:02 Y:F3 P:A5 SP:F9 CYC:130 SL:211 F410 28 PLP PC:F411 A:56 X:02 Y:F3 P:25 SP:FA CYC:142 SL:211 F411 20 JSR $FB33 PC:F412 A:56 X:02 Y:F3 P:25 SP:FB CYC:154 SL:211 FB33 70 BVS $FB75 PC:FB34 A:56 X:02 Y:F3 P:25 SP:F9 CYC:172 SL:211 FB35 F0 BEQ $FB75 PC:FB36 A:56 X:02 Y:F3 P:25 SP:F9 CYC:178 SL:211 FB37 30 BMI $FB75 PC:FB38 A:56 X:02 Y:F3 P:25 SP:F9 CYC:184 SL:211 FB39 90 BCC $FB75 PC:FB3A A:56 X:02 Y:F3 P:25 SP:F9 CYC:190 SL:211 FB3B C9 CMP #$56 PC:FB3C A:56 X:02 Y:F3 P:25 SP:F9 CYC:196 SL:211 FB3D D0 BNE $FB75 PC:FB3E A:56 X:02 Y:F3 P:27 SP:F9 CYC:202 SL:211 FB3F 60 RTS PC:FB40 A:56 X:02 Y:F3 P:27 SP:F9 CYC:208 SL:211 F414 AD LDA $0647 PC:F415 A:56 X:02 Y:F3 P:27 SP:FB CYC:226 SL:211 F417 C9 CMP #$14 PC:F418 A:14 X:02 Y:F3 P:25 SP:FB CYC:238 SL:211 F419 F0 BEQ $F41D PC:F41A A:14 X:02 Y:F3 P:27 SP:FB CYC:244 SL:211 F41D A0 LDY #$FF PC:F41E A:14 X:02 Y:F3 P:27 SP:FB CYC:253 SL:211 F41F A9 LDA #$37 PC:F420 A:14 X:02 Y:FF P:A5 SP:FB CYC:259 SL:211 F421 8D STA $0647 PC:F422 A:37 X:02 Y:FF P:25 SP:FB CYC:265 SL:211 F424 20 JSR $FB40 PC:F425 A:37 X:02 Y:FF P:25 SP:FB CYC:277 SL:211 FB40 24 BIT $01 PC:FB41 A:37 X:02 Y:FF P:25 SP:F9 CYC:295 SL:211 FB42 38 SEC PC:FB43 A:37 X:02 Y:FF P:E5 SP:F9 CYC:304 SL:211 FB43 A9 LDA #$75 PC:FB44 A:37 X:02 Y:FF P:E5 SP:F9 CYC:310 SL:211 FB45 60 RTS PC:FB46 A:75 X:02 Y:FF P:65 SP:F9 CYC:316 SL:211 F427 53 SRE ($45), y PC:F428 A:75 X:02 Y:FF P:65 SP:FB CYC:334 SL:211 F429 EA NOP PC:F42A A:6E X:02 Y:FF P:65 SP:FB CYC:17 SL:212 F42A EA NOP PC:F42B A:6E X:02 Y:FF P:65 SP:FB CYC:23 SL:212 F42B 08 PHP PC:F42C A:6E X:02 Y:FF P:65 SP:FB CYC:29 SL:212 F42C 48 PHA PC:F42D A:6E X:02 Y:FF P:65 SP:FA CYC:38 SL:212 F42D A0 LDY #$F4 PC:F42E A:6E X:02 Y:FF P:65 SP:F9 CYC:47 SL:212 F42F 68 PLA PC:F430 A:6E X:02 Y:F4 P:E5 SP:F9 CYC:53 SL:212 F430 28 PLP PC:F431 A:6E X:02 Y:F4 P:65 SP:FA CYC:65 SL:212 F431 20 JSR $FB46 PC:F432 A:6E X:02 Y:F4 P:65 SP:FB CYC:77 SL:212 FB46 50 BVC $FB75 PC:FB47 A:6E X:02 Y:F4 P:65 SP:F9 CYC:95 SL:212 FB48 F0 BEQ $FB75 PC:FB49 A:6E X:02 Y:F4 P:65 SP:F9 CYC:101 SL:212 FB4A 30 BMI $FB75 PC:FB4B A:6E X:02 Y:F4 P:65 SP:F9 CYC:107 SL:212 FB4C 90 BCC $FB75 PC:FB4D A:6E X:02 Y:F4 P:65 SP:F9 CYC:113 SL:212 FB4E C9 CMP #$6E PC:FB4F A:6E X:02 Y:F4 P:65 SP:F9 CYC:119 SL:212 FB50 D0 BNE $FB75 PC:FB51 A:6E X:02 Y:F4 P:67 SP:F9 CYC:125 SL:212 FB52 60 RTS PC:FB53 A:6E X:02 Y:F4 P:67 SP:F9 CYC:131 SL:212 F434 AD LDA $0647 PC:F435 A:6E X:02 Y:F4 P:67 SP:FB CYC:149 SL:212 F437 C9 CMP #$1B PC:F438 A:1B X:02 Y:F4 P:65 SP:FB CYC:161 SL:212 F439 F0 BEQ $F43D PC:F43A A:1B X:02 Y:F4 P:67 SP:FB CYC:167 SL:212 F43D A0 LDY #$F5 PC:F43E A:1B X:02 Y:F4 P:67 SP:FB CYC:176 SL:212 F43F A2 LDX #$FF PC:F440 A:1B X:02 Y:F5 P:E5 SP:FB CYC:182 SL:212 F441 A9 LDA #$A5 PC:F442 A:1B X:FF Y:F5 P:E5 SP:FB CYC:188 SL:212 F443 85 STA $47 PC:F444 A:A5 X:FF Y:F5 P:E5 SP:FB CYC:194 SL:212 F445 20 JSR $FB1D PC:F446 A:A5 X:FF Y:F5 P:E5 SP:FB CYC:203 SL:212 FB1D 24 BIT $01 PC:FB1E A:A5 X:FF Y:F5 P:E5 SP:F9 CYC:221 SL:212 FB1F 18 CLC PC:FB20 A:A5 X:FF Y:F5 P:E5 SP:F9 CYC:230 SL:212 FB20 A9 LDA #$B3 PC:FB21 A:A5 X:FF Y:F5 P:E4 SP:F9 CYC:236 SL:212 FB22 60 RTS PC:FB23 A:B3 X:FF Y:F5 P:E4 SP:F9 CYC:242 SL:212 F448 57 SRE $48,x PC:F449 A:B3 X:FF Y:F5 P:E4 SP:FB CYC:260 SL:212 F44A EA NOP PC:F44B A:E1 X:FF Y:F5 P:E5 SP:FB CYC:278 SL:212 F44B EA NOP PC:F44C A:E1 X:FF Y:F5 P:E5 SP:FB CYC:284 SL:212 F44C EA NOP PC:F44D A:E1 X:FF Y:F5 P:E5 SP:FB CYC:290 SL:212 F44D EA NOP PC:F44E A:E1 X:FF Y:F5 P:E5 SP:FB CYC:296 SL:212 F44E 20 JSR $FB23 PC:F44F A:E1 X:FF Y:F5 P:E5 SP:FB CYC:302 SL:212 FB23 50 BVC $FB75 PC:FB24 A:E1 X:FF Y:F5 P:E5 SP:F9 CYC:320 SL:212 FB25 90 BCC $FB75 PC:FB26 A:E1 X:FF Y:F5 P:E5 SP:F9 CYC:326 SL:212 FB27 10 BPL $FB75 PC:FB28 A:E1 X:FF Y:F5 P:E5 SP:F9 CYC:332 SL:212 FB29 C9 CMP #$E1 PC:FB2A A:E1 X:FF Y:F5 P:E5 SP:F9 CYC:338 SL:212 FB2B D0 BNE $FB75 PC:FB2C A:E1 X:FF Y:F5 P:67 SP:F9 CYC:3 SL:213 FB2D 60 RTS PC:FB2E A:E1 X:FF Y:F5 P:67 SP:F9 CYC:9 SL:213 F451 A5 LDA $47 PC:F452 A:E1 X:FF Y:F5 P:67 SP:FB CYC:27 SL:213 F453 C9 CMP #$52 PC:F454 A:52 X:FF Y:F5 P:65 SP:FB CYC:36 SL:213 F455 F0 BEQ $F459 PC:F456 A:52 X:FF Y:F5 P:67 SP:FB CYC:42 SL:213 F459 C8 INY PC:F45A A:52 X:FF Y:F5 P:67 SP:FB CYC:51 SL:213 F45A A9 LDA #$29 PC:F45B A:52 X:FF Y:F6 P:E5 SP:FB CYC:57 SL:213 F45C 85 STA $47 PC:F45D A:29 X:FF Y:F6 P:65 SP:FB CYC:63 SL:213 F45E 20 JSR $FB2E PC:F45F A:29 X:FF Y:F6 P:65 SP:FB CYC:72 SL:213 FB2E B8 CLV PC:FB2F A:29 X:FF Y:F6 P:65 SP:F9 CYC:90 SL:213 FB2F 18 CLC PC:FB30 A:29 X:FF Y:F6 P:25 SP:F9 CYC:96 SL:213 FB30 A9 LDA #$42 PC:FB31 A:29 X:FF Y:F6 P:24 SP:F9 CYC:102 SL:213 FB32 60 RTS PC:FB33 A:42 X:FF Y:F6 P:24 SP:F9 CYC:108 SL:213 F461 57 SRE $48,x PC:F462 A:42 X:FF Y:F6 P:24 SP:FB CYC:126 SL:213 F463 EA NOP PC:F464 A:56 X:FF Y:F6 P:25 SP:FB CYC:144 SL:213 F464 EA NOP PC:F465 A:56 X:FF Y:F6 P:25 SP:FB CYC:150 SL:213 F465 EA NOP PC:F466 A:56 X:FF Y:F6 P:25 SP:FB CYC:156 SL:213 F466 EA NOP PC:F467 A:56 X:FF Y:F6 P:25 SP:FB CYC:162 SL:213 F467 20 JSR $FB33 PC:F468 A:56 X:FF Y:F6 P:25 SP:FB CYC:168 SL:213 FB33 70 BVS $FB75 PC:FB34 A:56 X:FF Y:F6 P:25 SP:F9 CYC:186 SL:213 FB35 F0 BEQ $FB75 PC:FB36 A:56 X:FF Y:F6 P:25 SP:F9 CYC:192 SL:213 FB37 30 BMI $FB75 PC:FB38 A:56 X:FF Y:F6 P:25 SP:F9 CYC:198 SL:213 FB39 90 BCC $FB75 PC:FB3A A:56 X:FF Y:F6 P:25 SP:F9 CYC:204 SL:213 FB3B C9 CMP #$56 PC:FB3C A:56 X:FF Y:F6 P:25 SP:F9 CYC:210 SL:213 FB3D D0 BNE $FB75 PC:FB3E A:56 X:FF Y:F6 P:27 SP:F9 CYC:216 SL:213 FB3F 60 RTS PC:FB40 A:56 X:FF Y:F6 P:27 SP:F9 CYC:222 SL:213 F46A A5 LDA $47 PC:F46B A:56 X:FF Y:F6 P:27 SP:FB CYC:240 SL:213 F46C C9 CMP #$14 PC:F46D A:14 X:FF Y:F6 P:25 SP:FB CYC:249 SL:213 F46E F0 BEQ $F472 PC:F46F A:14 X:FF Y:F6 P:27 SP:FB CYC:255 SL:213 F472 C8 INY PC:F473 A:14 X:FF Y:F6 P:27 SP:FB CYC:264 SL:213 F473 A9 LDA #$37 PC:F474 A:14 X:FF Y:F7 P:A5 SP:FB CYC:270 SL:213 F475 85 STA $47 PC:F476 A:37 X:FF Y:F7 P:25 SP:FB CYC:276 SL:213 F477 20 JSR $FB40 PC:F478 A:37 X:FF Y:F7 P:25 SP:FB CYC:285 SL:213 FB40 24 BIT $01 PC:FB41 A:37 X:FF Y:F7 P:25 SP:F9 CYC:303 SL:213 FB42 38 SEC PC:FB43 A:37 X:FF Y:F7 P:E5 SP:F9 CYC:312 SL:213 FB43 A9 LDA #$75 PC:FB44 A:37 X:FF Y:F7 P:E5 SP:F9 CYC:318 SL:213 FB45 60 RTS PC:FB46 A:75 X:FF Y:F7 P:65 SP:F9 CYC:324 SL:213 F47A 57 SRE $48,x PC:F47B A:75 X:FF Y:F7 P:65 SP:FB CYC:1 SL:214 F47C EA NOP PC:F47D A:6E X:FF Y:F7 P:65 SP:FB CYC:19 SL:214 F47D EA NOP PC:F47E A:6E X:FF Y:F7 P:65 SP:FB CYC:25 SL:214 F47E EA NOP PC:F47F A:6E X:FF Y:F7 P:65 SP:FB CYC:31 SL:214 F47F EA NOP PC:F480 A:6E X:FF Y:F7 P:65 SP:FB CYC:37 SL:214 F480 20 JSR $FB46 PC:F481 A:6E X:FF Y:F7 P:65 SP:FB CYC:43 SL:214 FB46 50 BVC $FB75 PC:FB47 A:6E X:FF Y:F7 P:65 SP:F9 CYC:61 SL:214 FB48 F0 BEQ $FB75 PC:FB49 A:6E X:FF Y:F7 P:65 SP:F9 CYC:67 SL:214 FB4A 30 BMI $FB75 PC:FB4B A:6E X:FF Y:F7 P:65 SP:F9 CYC:73 SL:214 FB4C 90 BCC $FB75 PC:FB4D A:6E X:FF Y:F7 P:65 SP:F9 CYC:79 SL:214 FB4E C9 CMP #$6E PC:FB4F A:6E X:FF Y:F7 P:65 SP:F9 CYC:85 SL:214 FB50 D0 BNE $FB75 PC:FB51 A:6E X:FF Y:F7 P:67 SP:F9 CYC:91 SL:214 FB52 60 RTS PC:FB53 A:6E X:FF Y:F7 P:67 SP:F9 CYC:97 SL:214 F483 A5 LDA $47 PC:F484 A:6E X:FF Y:F7 P:67 SP:FB CYC:115 SL:214 F485 C9 CMP #$1B PC:F486 A:1B X:FF Y:F7 P:65 SP:FB CYC:124 SL:214 F487 F0 BEQ $F48B PC:F488 A:1B X:FF Y:F7 P:67 SP:FB CYC:130 SL:214 F48B A9 LDA #$A5 PC:F48C A:1B X:FF Y:F7 P:67 SP:FB CYC:139 SL:214 F48D 8D STA $0647 PC:F48E A:A5 X:FF Y:F7 P:E5 SP:FB CYC:145 SL:214 F490 A0 LDY #$FF PC:F491 A:A5 X:FF Y:F7 P:E5 SP:FB CYC:157 SL:214 F492 20 JSR $FB1D PC:F493 A:A5 X:FF Y:FF P:E5 SP:FB CYC:163 SL:214 FB1D 24 BIT $01 PC:FB1E A:A5 X:FF Y:FF P:E5 SP:F9 CYC:181 SL:214 FB1F 18 CLC PC:FB20 A:A5 X:FF Y:FF P:E5 SP:F9 CYC:190 SL:214 FB20 A9 LDA #$B3 PC:FB21 A:A5 X:FF Y:FF P:E4 SP:F9 CYC:196 SL:214 FB22 60 RTS PC:FB23 A:B3 X:FF Y:FF P:E4 SP:F9 CYC:202 SL:214 F495 5B SRE $0548,y PC:F496 A:B3 X:FF Y:FF P:E4 SP:FB CYC:220 SL:214 F498 EA NOP PC:F499 A:E1 X:FF Y:FF P:E5 SP:FB CYC:241 SL:214 F499 EA NOP PC:F49A A:E1 X:FF Y:FF P:E5 SP:FB CYC:247 SL:214 F49A 08 PHP PC:F49B A:E1 X:FF Y:FF P:E5 SP:FB CYC:253 SL:214 F49B 48 PHA PC:F49C A:E1 X:FF Y:FF P:E5 SP:FA CYC:262 SL:214 F49C A0 LDY #$F8 PC:F49D A:E1 X:FF Y:FF P:E5 SP:F9 CYC:271 SL:214 F49E 68 PLA PC:F49F A:E1 X:FF Y:F8 P:E5 SP:F9 CYC:277 SL:214 F49F 28 PLP PC:F4A0 A:E1 X:FF Y:F8 P:E5 SP:FA CYC:289 SL:214 F4A0 20 JSR $FB23 PC:F4A1 A:E1 X:FF Y:F8 P:E5 SP:FB CYC:301 SL:214 FB23 50 BVC $FB75 PC:FB24 A:E1 X:FF Y:F8 P:E5 SP:F9 CYC:319 SL:214 FB25 90 BCC $FB75 PC:FB26 A:E1 X:FF Y:F8 P:E5 SP:F9 CYC:325 SL:214 FB27 10 BPL $FB75 PC:FB28 A:E1 X:FF Y:F8 P:E5 SP:F9 CYC:331 SL:214 FB29 C9 CMP #$E1 PC:FB2A A:E1 X:FF Y:F8 P:E5 SP:F9 CYC:337 SL:214 FB2B D0 BNE $FB75 PC:FB2C A:E1 X:FF Y:F8 P:67 SP:F9 CYC:2 SL:215 FB2D 60 RTS PC:FB2E A:E1 X:FF Y:F8 P:67 SP:F9 CYC:8 SL:215 F4A3 AD LDA $0647 PC:F4A4 A:E1 X:FF Y:F8 P:67 SP:FB CYC:26 SL:215 F4A6 C9 CMP #$52 PC:F4A7 A:52 X:FF Y:F8 P:65 SP:FB CYC:38 SL:215 F4A8 F0 BEQ $F4AC PC:F4A9 A:52 X:FF Y:F8 P:67 SP:FB CYC:44 SL:215 F4AC A0 LDY #$FF PC:F4AD A:52 X:FF Y:F8 P:67 SP:FB CYC:53 SL:215 F4AE A9 LDA #$29 PC:F4AF A:52 X:FF Y:FF P:E5 SP:FB CYC:59 SL:215 F4B0 8D STA $0647 PC:F4B1 A:29 X:FF Y:FF P:65 SP:FB CYC:65 SL:215 F4B3 20 JSR $FB2E PC:F4B4 A:29 X:FF Y:FF P:65 SP:FB CYC:77 SL:215 FB2E B8 CLV PC:FB2F A:29 X:FF Y:FF P:65 SP:F9 CYC:95 SL:215 FB2F 18 CLC PC:FB30 A:29 X:FF Y:FF P:25 SP:F9 CYC:101 SL:215 FB30 A9 LDA #$42 PC:FB31 A:29 X:FF Y:FF P:24 SP:F9 CYC:107 SL:215 FB32 60 RTS PC:FB33 A:42 X:FF Y:FF P:24 SP:F9 CYC:113 SL:215 F4B6 5B SRE $0548,y PC:F4B7 A:42 X:FF Y:FF P:24 SP:FB CYC:131 SL:215 F4B9 EA NOP PC:F4BA A:56 X:FF Y:FF P:25 SP:FB CYC:152 SL:215 F4BA EA NOP PC:F4BB A:56 X:FF Y:FF P:25 SP:FB CYC:158 SL:215 F4BB 08 PHP PC:F4BC A:56 X:FF Y:FF P:25 SP:FB CYC:164 SL:215 F4BC 48 PHA PC:F4BD A:56 X:FF Y:FF P:25 SP:FA CYC:173 SL:215 F4BD A0 LDY #$F9 PC:F4BE A:56 X:FF Y:FF P:25 SP:F9 CYC:182 SL:215 F4BF 68 PLA PC:F4C0 A:56 X:FF Y:F9 P:A5 SP:F9 CYC:188 SL:215 F4C0 28 PLP PC:F4C1 A:56 X:FF Y:F9 P:25 SP:FA CYC:200 SL:215 F4C1 20 JSR $FB33 PC:F4C2 A:56 X:FF Y:F9 P:25 SP:FB CYC:212 SL:215 FB33 70 BVS $FB75 PC:FB34 A:56 X:FF Y:F9 P:25 SP:F9 CYC:230 SL:215 FB35 F0 BEQ $FB75 PC:FB36 A:56 X:FF Y:F9 P:25 SP:F9 CYC:236 SL:215 FB37 30 BMI $FB75 PC:FB38 A:56 X:FF Y:F9 P:25 SP:F9 CYC:242 SL:215 FB39 90 BCC $FB75 PC:FB3A A:56 X:FF Y:F9 P:25 SP:F9 CYC:248 SL:215 FB3B C9 CMP #$56 PC:FB3C A:56 X:FF Y:F9 P:25 SP:F9 CYC:254 SL:215 FB3D D0 BNE $FB75 PC:FB3E A:56 X:FF Y:F9 P:27 SP:F9 CYC:260 SL:215 FB3F 60 RTS PC:FB40 A:56 X:FF Y:F9 P:27 SP:F9 CYC:266 SL:215 F4C4 AD LDA $0647 PC:F4C5 A:56 X:FF Y:F9 P:27 SP:FB CYC:284 SL:215 F4C7 C9 CMP #$14 PC:F4C8 A:14 X:FF Y:F9 P:25 SP:FB CYC:296 SL:215 F4C9 F0 BEQ $F4CD PC:F4CA A:14 X:FF Y:F9 P:27 SP:FB CYC:302 SL:215 F4CD A0 LDY #$FF PC:F4CE A:14 X:FF Y:F9 P:27 SP:FB CYC:311 SL:215 F4CF A9 LDA #$37 PC:F4D0 A:14 X:FF Y:FF P:A5 SP:FB CYC:317 SL:215 F4D1 8D STA $0647 PC:F4D2 A:37 X:FF Y:FF P:25 SP:FB CYC:323 SL:215 F4D4 20 JSR $FB40 PC:F4D5 A:37 X:FF Y:FF P:25 SP:FB CYC:335 SL:215 FB40 24 BIT $01 PC:FB41 A:37 X:FF Y:FF P:25 SP:F9 CYC:12 SL:216 FB42 38 SEC PC:FB43 A:37 X:FF Y:FF P:E5 SP:F9 CYC:21 SL:216 FB43 A9 LDA #$75 PC:FB44 A:37 X:FF Y:FF P:E5 SP:F9 CYC:27 SL:216 FB45 60 RTS PC:FB46 A:75 X:FF Y:FF P:65 SP:F9 CYC:33 SL:216 F4D7 5B SRE $0548,y PC:F4D8 A:75 X:FF Y:FF P:65 SP:FB CYC:51 SL:216 F4DA EA NOP PC:F4DB A:6E X:FF Y:FF P:65 SP:FB CYC:72 SL:216 F4DB EA NOP PC:F4DC A:6E X:FF Y:FF P:65 SP:FB CYC:78 SL:216 F4DC 08 PHP PC:F4DD A:6E X:FF Y:FF P:65 SP:FB CYC:84 SL:216 F4DD 48 PHA PC:F4DE A:6E X:FF Y:FF P:65 SP:FA CYC:93 SL:216 F4DE A0 LDY #$FA PC:F4DF A:6E X:FF Y:FF P:65 SP:F9 CYC:102 SL:216 F4E0 68 PLA PC:F4E1 A:6E X:FF Y:FA P:E5 SP:F9 CYC:108 SL:216 F4E1 28 PLP PC:F4E2 A:6E X:FF Y:FA P:65 SP:FA CYC:120 SL:216 F4E2 20 JSR $FB46 PC:F4E3 A:6E X:FF Y:FA P:65 SP:FB CYC:132 SL:216 FB46 50 BVC $FB75 PC:FB47 A:6E X:FF Y:FA P:65 SP:F9 CYC:150 SL:216 FB48 F0 BEQ $FB75 PC:FB49 A:6E X:FF Y:FA P:65 SP:F9 CYC:156 SL:216 FB4A 30 BMI $FB75 PC:FB4B A:6E X:FF Y:FA P:65 SP:F9 CYC:162 SL:216 FB4C 90 BCC $FB75 PC:FB4D A:6E X:FF Y:FA P:65 SP:F9 CYC:168 SL:216 FB4E C9 CMP #$6E PC:FB4F A:6E X:FF Y:FA P:65 SP:F9 CYC:174 SL:216 FB50 D0 BNE $FB75 PC:FB51 A:6E X:FF Y:FA P:67 SP:F9 CYC:180 SL:216 FB52 60 RTS PC:FB53 A:6E X:FF Y:FA P:67 SP:F9 CYC:186 SL:216 F4E5 AD LDA $0647 PC:F4E6 A:6E X:FF Y:FA P:67 SP:FB CYC:204 SL:216 F4E8 C9 CMP #$1B PC:F4E9 A:1B X:FF Y:FA P:65 SP:FB CYC:216 SL:216 F4EA F0 BEQ $F4EE PC:F4EB A:1B X:FF Y:FA P:67 SP:FB CYC:222 SL:216 F4EE A0 LDY #$FB PC:F4EF A:1B X:FF Y:FA P:67 SP:FB CYC:231 SL:216 F4F0 A2 LDX #$FF PC:F4F1 A:1B X:FF Y:FB P:E5 SP:FB CYC:237 SL:216 F4F2 A9 LDA #$A5 PC:F4F3 A:1B X:FF Y:FB P:E5 SP:FB CYC:243 SL:216 F4F4 8D STA $0647 PC:F4F5 A:A5 X:FF Y:FB P:E5 SP:FB CYC:249 SL:216 F4F7 20 JSR $FB1D PC:F4F8 A:A5 X:FF Y:FB P:E5 SP:FB CYC:261 SL:216 FB1D 24 BIT $01 PC:FB1E A:A5 X:FF Y:FB P:E5 SP:F9 CYC:279 SL:216 FB1F 18 CLC PC:FB20 A:A5 X:FF Y:FB P:E5 SP:F9 CYC:288 SL:216 FB20 A9 LDA #$B3 PC:FB21 A:A5 X:FF Y:FB P:E4 SP:F9 CYC:294 SL:216 FB22 60 RTS PC:FB23 A:B3 X:FF Y:FB P:E4 SP:F9 CYC:300 SL:216 F4FA 5F SRE $0548,x PC:F4FB A:B3 X:FF Y:FB P:E4 SP:FB CYC:318 SL:216 F4FD EA NOP PC:F4FE A:E1 X:FF Y:FB P:E5 SP:FB CYC:339 SL:216 F4FE EA NOP PC:F4FF A:E1 X:FF Y:FB P:E5 SP:FB CYC:4 SL:217 F4FF EA NOP PC:F500 A:E1 X:FF Y:FB P:E5 SP:FB CYC:10 SL:217 F500 EA NOP PC:F501 A:E1 X:FF Y:FB P:E5 SP:FB CYC:16 SL:217 F501 20 JSR $FB23 PC:F502 A:E1 X:FF Y:FB P:E5 SP:FB CYC:22 SL:217 FB23 50 BVC $FB75 PC:FB24 A:E1 X:FF Y:FB P:E5 SP:F9 CYC:40 SL:217 FB25 90 BCC $FB75 PC:FB26 A:E1 X:FF Y:FB P:E5 SP:F9 CYC:46 SL:217 FB27 10 BPL $FB75 PC:FB28 A:E1 X:FF Y:FB P:E5 SP:F9 CYC:52 SL:217 FB29 C9 CMP #$E1 PC:FB2A A:E1 X:FF Y:FB P:E5 SP:F9 CYC:58 SL:217 FB2B D0 BNE $FB75 PC:FB2C A:E1 X:FF Y:FB P:67 SP:F9 CYC:64 SL:217 FB2D 60 RTS PC:FB2E A:E1 X:FF Y:FB P:67 SP:F9 CYC:70 SL:217 F504 AD LDA $0647 PC:F505 A:E1 X:FF Y:FB P:67 SP:FB CYC:88 SL:217 F507 C9 CMP #$52 PC:F508 A:52 X:FF Y:FB P:65 SP:FB CYC:100 SL:217 F509 F0 BEQ $F50D PC:F50A A:52 X:FF Y:FB P:67 SP:FB CYC:106 SL:217 F50D C8 INY PC:F50E A:52 X:FF Y:FB P:67 SP:FB CYC:115 SL:217 F50E A9 LDA #$29 PC:F50F A:52 X:FF Y:FC P:E5 SP:FB CYC:121 SL:217 F510 8D STA $0647 PC:F511 A:29 X:FF Y:FC P:65 SP:FB CYC:127 SL:217 F513 20 JSR $FB2E PC:F514 A:29 X:FF Y:FC P:65 SP:FB CYC:139 SL:217 FB2E B8 CLV PC:FB2F A:29 X:FF Y:FC P:65 SP:F9 CYC:157 SL:217 FB2F 18 CLC PC:FB30 A:29 X:FF Y:FC P:25 SP:F9 CYC:163 SL:217 FB30 A9 LDA #$42 PC:FB31 A:29 X:FF Y:FC P:24 SP:F9 CYC:169 SL:217 FB32 60 RTS PC:FB33 A:42 X:FF Y:FC P:24 SP:F9 CYC:175 SL:217 F516 5F SRE $0548,x PC:F517 A:42 X:FF Y:FC P:24 SP:FB CYC:193 SL:217 F519 EA NOP PC:F51A A:56 X:FF Y:FC P:25 SP:FB CYC:214 SL:217 F51A EA NOP PC:F51B A:56 X:FF Y:FC P:25 SP:FB CYC:220 SL:217 F51B EA NOP PC:F51C A:56 X:FF Y:FC P:25 SP:FB CYC:226 SL:217 F51C EA NOP PC:F51D A:56 X:FF Y:FC P:25 SP:FB CYC:232 SL:217 F51D 20 JSR $FB33 PC:F51E A:56 X:FF Y:FC P:25 SP:FB CYC:238 SL:217 FB33 70 BVS $FB75 PC:FB34 A:56 X:FF Y:FC P:25 SP:F9 CYC:256 SL:217 FB35 F0 BEQ $FB75 PC:FB36 A:56 X:FF Y:FC P:25 SP:F9 CYC:262 SL:217 FB37 30 BMI $FB75 PC:FB38 A:56 X:FF Y:FC P:25 SP:F9 CYC:268 SL:217 FB39 90 BCC $FB75 PC:FB3A A:56 X:FF Y:FC P:25 SP:F9 CYC:274 SL:217 FB3B C9 CMP #$56 PC:FB3C A:56 X:FF Y:FC P:25 SP:F9 CYC:280 SL:217 FB3D D0 BNE $FB75 PC:FB3E A:56 X:FF Y:FC P:27 SP:F9 CYC:286 SL:217 FB3F 60 RTS PC:FB40 A:56 X:FF Y:FC P:27 SP:F9 CYC:292 SL:217 F520 AD LDA $0647 PC:F521 A:56 X:FF Y:FC P:27 SP:FB CYC:310 SL:217 F523 C9 CMP #$14 PC:F524 A:14 X:FF Y:FC P:25 SP:FB CYC:322 SL:217 F525 F0 BEQ $F529 PC:F526 A:14 X:FF Y:FC P:27 SP:FB CYC:328 SL:217 F529 C8 INY PC:F52A A:14 X:FF Y:FC P:27 SP:FB CYC:337 SL:217 F52A A9 LDA #$37 PC:F52B A:14 X:FF Y:FD P:A5 SP:FB CYC:2 SL:218 F52C 8D STA $0647 PC:F52D A:37 X:FF Y:FD P:25 SP:FB CYC:8 SL:218 F52F 20 JSR $FB40 PC:F530 A:37 X:FF Y:FD P:25 SP:FB CYC:20 SL:218 FB40 24 BIT $01 PC:FB41 A:37 X:FF Y:FD P:25 SP:F9 CYC:38 SL:218 FB42 38 SEC PC:FB43 A:37 X:FF Y:FD P:E5 SP:F9 CYC:47 SL:218 FB43 A9 LDA #$75 PC:FB44 A:37 X:FF Y:FD P:E5 SP:F9 CYC:53 SL:218 FB45 60 RTS PC:FB46 A:75 X:FF Y:FD P:65 SP:F9 CYC:59 SL:218 F532 5F SRE $0548,x PC:F533 A:75 X:FF Y:FD P:65 SP:FB CYC:77 SL:218 F535 EA NOP PC:F536 A:6E X:FF Y:FD P:65 SP:FB CYC:98 SL:218 F536 EA NOP PC:F537 A:6E X:FF Y:FD P:65 SP:FB CYC:104 SL:218 F537 EA NOP PC:F538 A:6E X:FF Y:FD P:65 SP:FB CYC:110 SL:218 F538 EA NOP PC:F539 A:6E X:FF Y:FD P:65 SP:FB CYC:116 SL:218 F539 20 JSR $FB46 PC:F53A A:6E X:FF Y:FD P:65 SP:FB CYC:122 SL:218 FB46 50 BVC $FB75 PC:FB47 A:6E X:FF Y:FD P:65 SP:F9 CYC:140 SL:218 FB48 F0 BEQ $FB75 PC:FB49 A:6E X:FF Y:FD P:65 SP:F9 CYC:146 SL:218 FB4A 30 BMI $FB75 PC:FB4B A:6E X:FF Y:FD P:65 SP:F9 CYC:152 SL:218 FB4C 90 BCC $FB75 PC:FB4D A:6E X:FF Y:FD P:65 SP:F9 CYC:158 SL:218 FB4E C9 CMP #$6E PC:FB4F A:6E X:FF Y:FD P:65 SP:F9 CYC:164 SL:218 FB50 D0 BNE $FB75 PC:FB51 A:6E X:FF Y:FD P:67 SP:F9 CYC:170 SL:218 FB52 60 RTS PC:FB53 A:6E X:FF Y:FD P:67 SP:F9 CYC:176 SL:218 F53C AD LDA $0647 PC:F53D A:6E X:FF Y:FD P:67 SP:FB CYC:194 SL:218 F53F C9 CMP #$1B PC:F540 A:1B X:FF Y:FD P:65 SP:FB CYC:206 SL:218 F541 F0 BEQ $F545 PC:F542 A:1B X:FF Y:FD P:67 SP:FB CYC:212 SL:218 F545 60 RTS PC:F546 A:1B X:FF Y:FD P:67 SP:FB CYC:221 SL:218 C64A A5 LDA $00 PC:C64B A:1B X:FF Y:FD P:67 SP:FD CYC:239 SL:218 C64C 85 STA $11 PC:C64D A:00 X:FF Y:FD P:67 SP:FD CYC:248 SL:218 C64E A9 LDA #$00 PC:C64F A:00 X:FF Y:FD P:67 SP:FD CYC:257 SL:218 C650 85 STA $00 PC:C651 A:00 X:FF Y:FD P:67 SP:FD CYC:263 SL:218 C652 20 JSR $F546 PC:C653 A:00 X:FF Y:FD P:67 SP:FD CYC:272 SL:218 F546 A9 LDA #$FF PC:F547 A:00 X:FF Y:FD P:67 SP:FB CYC:290 SL:218 F548 85 STA $01 PC:F549 A:FF X:FF Y:FD P:E5 SP:FB CYC:296 SL:218 F54A A0 LDY #$01 PC:F54B A:FF X:FF Y:FD P:E5 SP:FB CYC:305 SL:218 F54C A2 LDX #$02 PC:F54D A:FF X:FF Y:01 P:65 SP:FB CYC:311 SL:218 F54E A9 LDA #$47 PC:F54F A:FF X:02 Y:01 P:65 SP:FB CYC:317 SL:218 F550 85 STA $47 PC:F551 A:47 X:02 Y:01 P:65 SP:FB CYC:323 SL:218 F552 A9 LDA #$06 PC:F553 A:47 X:02 Y:01 P:65 SP:FB CYC:332 SL:218 F554 85 STA $48 PC:F555 A:06 X:02 Y:01 P:65 SP:FB CYC:338 SL:218 F556 A9 LDA #$A5 PC:F557 A:06 X:02 Y:01 P:65 SP:FB CYC:6 SL:219 F558 8D STA $0647 PC:F559 A:A5 X:02 Y:01 P:E5 SP:FB CYC:12 SL:219 F55B 20 JSR $FAE9 PC:F55C A:A5 X:02 Y:01 P:E5 SP:FB CYC:24 SL:219 FAE9 24 BIT $01 PC:FAEA A:A5 X:02 Y:01 P:E5 SP:F9 CYC:42 SL:219 FAEB 18 CLC PC:FAEC A:A5 X:02 Y:01 P:E5 SP:F9 CYC:51 SL:219 FAEC A9 LDA #$B2 PC:FAED A:A5 X:02 Y:01 P:E4 SP:F9 CYC:57 SL:219 FAEE 60 RTS PC:FAEF A:B2 X:02 Y:01 P:E4 SP:F9 CYC:63 SL:219 F55E 63 RRA $(EA45,x) PC:F55F A:B2 X:02 Y:01 P:E4 SP:FB CYC:81 SL:219 F560 EA NOP PC:F561 A:05 X:02 Y:01 P:25 SP:FB CYC:105 SL:219 F561 EA NOP PC:F562 A:05 X:02 Y:01 P:25 SP:FB CYC:111 SL:219 F562 EA NOP PC:F563 A:05 X:02 Y:01 P:25 SP:FB CYC:117 SL:219 F563 EA NOP PC:F564 A:05 X:02 Y:01 P:25 SP:FB CYC:123 SL:219 F564 20 JSR $FAEF PC:F565 A:05 X:02 Y:01 P:25 SP:FB CYC:129 SL:219 FAEF 70 BVS $FB1B PC:FAF0 A:05 X:02 Y:01 P:25 SP:F9 CYC:147 SL:219 FAF1 90 BCC $FB1B PC:FAF2 A:05 X:02 Y:01 P:25 SP:F9 CYC:153 SL:219 FAF3 30 BMI $FB1B PC:FAF4 A:05 X:02 Y:01 P:25 SP:F9 CYC:159 SL:219 FAF5 C9 CMP #$05 PC:FAF6 A:05 X:02 Y:01 P:25 SP:F9 CYC:165 SL:219 FAF7 D0 BNE $FB1B PC:FAF8 A:05 X:02 Y:01 P:27 SP:F9 CYC:171 SL:219 FAF9 60 RTS PC:FAFA A:05 X:02 Y:01 P:27 SP:F9 CYC:177 SL:219 F567 AD LDA $0647 PC:F568 A:05 X:02 Y:01 P:27 SP:FB CYC:195 SL:219 F56A C9 CMP #$52 PC:F56B A:52 X:02 Y:01 P:25 SP:FB CYC:207 SL:219 F56C F0 BEQ $F570 PC:F56D A:52 X:02 Y:01 P:27 SP:FB CYC:213 SL:219 F570 C8 INY PC:F571 A:52 X:02 Y:01 P:27 SP:FB CYC:222 SL:219 F571 A9 LDA #$29 PC:F572 A:52 X:02 Y:02 P:25 SP:FB CYC:228 SL:219 F573 8D STA $0647 PC:F574 A:29 X:02 Y:02 P:25 SP:FB CYC:234 SL:219 F576 20 JSR $FAFA PC:F577 A:29 X:02 Y:02 P:25 SP:FB CYC:246 SL:219 FAFA B8 CLV PC:FAFB A:29 X:02 Y:02 P:25 SP:F9 CYC:264 SL:219 FAFB 18 CLC PC:FAFC A:29 X:02 Y:02 P:25 SP:F9 CYC:270 SL:219 FAFC A9 LDA #$42 PC:FAFD A:29 X:02 Y:02 P:24 SP:F9 CYC:276 SL:219 FAFE 60 RTS PC:FAFF A:42 X:02 Y:02 P:24 SP:F9 CYC:282 SL:219 F579 63 RRA $(EA45,x) PC:F57A A:42 X:02 Y:02 P:24 SP:FB CYC:300 SL:219 F57B EA NOP PC:F57C A:57 X:02 Y:02 P:24 SP:FB CYC:324 SL:219 F57C EA NOP PC:F57D A:57 X:02 Y:02 P:24 SP:FB CYC:330 SL:219 F57D EA NOP PC:F57E A:57 X:02 Y:02 P:24 SP:FB CYC:336 SL:219 F57E EA NOP PC:F57F A:57 X:02 Y:02 P:24 SP:FB CYC:1 SL:220 F57F 20 JSR $FAFF PC:F580 A:57 X:02 Y:02 P:24 SP:FB CYC:7 SL:220 FAFF 70 BVS $FB1B PC:FB00 A:57 X:02 Y:02 P:24 SP:F9 CYC:25 SL:220 FB01 30 BMI $FB1B PC:FB02 A:57 X:02 Y:02 P:24 SP:F9 CYC:31 SL:220 FB03 B0 BCS $FB1B PC:FB04 A:57 X:02 Y:02 P:24 SP:F9 CYC:37 SL:220 FB05 C9 CMP #$57 PC:FB06 A:57 X:02 Y:02 P:24 SP:F9 CYC:43 SL:220 FB07 D0 BNE $FB1B PC:FB08 A:57 X:02 Y:02 P:27 SP:F9 CYC:49 SL:220 FB09 60 RTS PC:FB0A A:57 X:02 Y:02 P:27 SP:F9 CYC:55 SL:220 F582 AD LDA $0647 PC:F583 A:57 X:02 Y:02 P:27 SP:FB CYC:73 SL:220 F585 C9 CMP #$14 PC:F586 A:14 X:02 Y:02 P:25 SP:FB CYC:85 SL:220 F587 F0 BEQ $F58B PC:F588 A:14 X:02 Y:02 P:27 SP:FB CYC:91 SL:220 F58B C8 INY PC:F58C A:14 X:02 Y:02 P:27 SP:FB CYC:100 SL:220 F58C A9 LDA #$37 PC:F58D A:14 X:02 Y:03 P:25 SP:FB CYC:106 SL:220 F58E 8D STA $0647 PC:F58F A:37 X:02 Y:03 P:25 SP:FB CYC:112 SL:220 F591 20 JSR $FB0A PC:F592 A:37 X:02 Y:03 P:25 SP:FB CYC:124 SL:220 FB0A 24 BIT $01 PC:FB0B A:37 X:02 Y:03 P:25 SP:F9 CYC:142 SL:220 FB0C 38 SEC PC:FB0D A:37 X:02 Y:03 P:E5 SP:F9 CYC:151 SL:220 FB0D A9 LDA #$75 PC:FB0E A:37 X:02 Y:03 P:E5 SP:F9 CYC:157 SL:220 FB0F 60 RTS PC:FB10 A:75 X:02 Y:03 P:65 SP:F9 CYC:163 SL:220 F594 63 RRA $(EA45,x) PC:F595 A:75 X:02 Y:03 P:65 SP:FB CYC:181 SL:220 F596 EA NOP PC:F597 A:11 X:02 Y:03 P:25 SP:FB CYC:205 SL:220 F597 EA NOP PC:F598 A:11 X:02 Y:03 P:25 SP:FB CYC:211 SL:220 F598 EA NOP PC:F599 A:11 X:02 Y:03 P:25 SP:FB CYC:217 SL:220 F599 EA NOP PC:F59A A:11 X:02 Y:03 P:25 SP:FB CYC:223 SL:220 F59A 20 JSR $FB10 PC:F59B A:11 X:02 Y:03 P:25 SP:FB CYC:229 SL:220 FB10 70 BVS $FB1B PC:FB11 A:11 X:02 Y:03 P:25 SP:F9 CYC:247 SL:220 FB12 30 BMI $FB1B PC:FB13 A:11 X:02 Y:03 P:25 SP:F9 CYC:253 SL:220 FB14 90 BCC $FB1B PC:FB15 A:11 X:02 Y:03 P:25 SP:F9 CYC:259 SL:220 FB16 C9 CMP #$11 PC:FB17 A:11 X:02 Y:03 P:25 SP:F9 CYC:265 SL:220 FB18 D0 BNE $FB1B PC:FB19 A:11 X:02 Y:03 P:27 SP:F9 CYC:271 SL:220 FB1A 60 RTS PC:FB1B A:11 X:02 Y:03 P:27 SP:F9 CYC:277 SL:220 F59D AD LDA $0647 PC:F59E A:11 X:02 Y:03 P:27 SP:FB CYC:295 SL:220 F5A0 C9 CMP #$9B PC:F5A1 A:9B X:02 Y:03 P:A5 SP:FB CYC:307 SL:220 F5A2 F0 BEQ $F5A6 PC:F5A3 A:9B X:02 Y:03 P:27 SP:FB CYC:313 SL:220 F5A6 C8 INY PC:F5A7 A:9B X:02 Y:03 P:27 SP:FB CYC:322 SL:220 F5A7 A9 LDA #$A5 PC:F5A8 A:9B X:02 Y:04 P:25 SP:FB CYC:328 SL:220 F5A9 85 STA $47 PC:F5AA A:A5 X:02 Y:04 P:A5 SP:FB CYC:334 SL:220 F5AB 20 JSR $FAE9 PC:F5AC A:A5 X:02 Y:04 P:A5 SP:FB CYC:2 SL:221 FAE9 24 BIT $01 PC:FAEA A:A5 X:02 Y:04 P:A5 SP:F9 CYC:20 SL:221 FAEB 18 CLC PC:FAEC A:A5 X:02 Y:04 P:E5 SP:F9 CYC:29 SL:221 FAEC A9 LDA #$B2 PC:FAED A:A5 X:02 Y:04 P:E4 SP:F9 CYC:35 SL:221 FAEE 60 RTS PC:FAEF A:B2 X:02 Y:04 P:E4 SP:F9 CYC:41 SL:221 F5AE 67 RRA $47 PC:F5AF A:B2 X:02 Y:04 P:E4 SP:FB CYC:59 SL:221 F5B0 EA NOP PC:F5B1 A:05 X:02 Y:04 P:25 SP:FB CYC:74 SL:221 F5B1 EA NOP PC:F5B2 A:05 X:02 Y:04 P:25 SP:FB CYC:80 SL:221 F5B2 EA NOP PC:F5B3 A:05 X:02 Y:04 P:25 SP:FB CYC:86 SL:221 F5B3 EA NOP PC:F5B4 A:05 X:02 Y:04 P:25 SP:FB CYC:92 SL:221 F5B4 20 JSR $FAEF PC:F5B5 A:05 X:02 Y:04 P:25 SP:FB CYC:98 SL:221 FAEF 70 BVS $FB1B PC:FAF0 A:05 X:02 Y:04 P:25 SP:F9 CYC:116 SL:221 FAF1 90 BCC $FB1B PC:FAF2 A:05 X:02 Y:04 P:25 SP:F9 CYC:122 SL:221 FAF3 30 BMI $FB1B PC:FAF4 A:05 X:02 Y:04 P:25 SP:F9 CYC:128 SL:221 FAF5 C9 CMP #$05 PC:FAF6 A:05 X:02 Y:04 P:25 SP:F9 CYC:134 SL:221 FAF7 D0 BNE $FB1B PC:FAF8 A:05 X:02 Y:04 P:27 SP:F9 CYC:140 SL:221 FAF9 60 RTS PC:FAFA A:05 X:02 Y:04 P:27 SP:F9 CYC:146 SL:221 F5B7 A5 LDA $47 PC:F5B8 A:05 X:02 Y:04 P:27 SP:FB CYC:164 SL:221 F5B9 C9 CMP #$52 PC:F5BA A:52 X:02 Y:04 P:25 SP:FB CYC:173 SL:221 F5BB F0 BEQ $F5BF PC:F5BC A:52 X:02 Y:04 P:27 SP:FB CYC:179 SL:221 F5BF C8 INY PC:F5C0 A:52 X:02 Y:04 P:27 SP:FB CYC:188 SL:221 F5C0 A9 LDA #$29 PC:F5C1 A:52 X:02 Y:05 P:25 SP:FB CYC:194 SL:221 F5C2 85 STA $47 PC:F5C3 A:29 X:02 Y:05 P:25 SP:FB CYC:200 SL:221 F5C4 20 JSR $FAFA PC:F5C5 A:29 X:02 Y:05 P:25 SP:FB CYC:209 SL:221 FAFA B8 CLV PC:FAFB A:29 X:02 Y:05 P:25 SP:F9 CYC:227 SL:221 FAFB 18 CLC PC:FAFC A:29 X:02 Y:05 P:25 SP:F9 CYC:233 SL:221 FAFC A9 LDA #$42 PC:FAFD A:29 X:02 Y:05 P:24 SP:F9 CYC:239 SL:221 FAFE 60 RTS PC:FAFF A:42 X:02 Y:05 P:24 SP:F9 CYC:245 SL:221 F5C7 67 RRA $47 PC:F5C8 A:42 X:02 Y:05 P:24 SP:FB CYC:263 SL:221 F5C9 EA NOP PC:F5CA A:57 X:02 Y:05 P:24 SP:FB CYC:278 SL:221 F5CA EA NOP PC:F5CB A:57 X:02 Y:05 P:24 SP:FB CYC:284 SL:221 F5CB EA NOP PC:F5CC A:57 X:02 Y:05 P:24 SP:FB CYC:290 SL:221 F5CC EA NOP PC:F5CD A:57 X:02 Y:05 P:24 SP:FB CYC:296 SL:221 F5CD 20 JSR $FAFF PC:F5CE A:57 X:02 Y:05 P:24 SP:FB CYC:302 SL:221 FAFF 70 BVS $FB1B PC:FB00 A:57 X:02 Y:05 P:24 SP:F9 CYC:320 SL:221 FB01 30 BMI $FB1B PC:FB02 A:57 X:02 Y:05 P:24 SP:F9 CYC:326 SL:221 FB03 B0 BCS $FB1B PC:FB04 A:57 X:02 Y:05 P:24 SP:F9 CYC:332 SL:221 FB05 C9 CMP #$57 PC:FB06 A:57 X:02 Y:05 P:24 SP:F9 CYC:338 SL:221 FB07 D0 BNE $FB1B PC:FB08 A:57 X:02 Y:05 P:27 SP:F9 CYC:3 SL:222 FB09 60 RTS PC:FB0A A:57 X:02 Y:05 P:27 SP:F9 CYC:9 SL:222 F5D0 A5 LDA $47 PC:F5D1 A:57 X:02 Y:05 P:27 SP:FB CYC:27 SL:222 F5D2 C9 CMP #$14 PC:F5D3 A:14 X:02 Y:05 P:25 SP:FB CYC:36 SL:222 F5D4 F0 BEQ $F5D8 PC:F5D5 A:14 X:02 Y:05 P:27 SP:FB CYC:42 SL:222 F5D8 C8 INY PC:F5D9 A:14 X:02 Y:05 P:27 SP:FB CYC:51 SL:222 F5D9 A9 LDA #$37 PC:F5DA A:14 X:02 Y:06 P:25 SP:FB CYC:57 SL:222 F5DB 85 STA $47 PC:F5DC A:37 X:02 Y:06 P:25 SP:FB CYC:63 SL:222 F5DD 20 JSR $FB0A PC:F5DE A:37 X:02 Y:06 P:25 SP:FB CYC:72 SL:222 FB0A 24 BIT $01 PC:FB0B A:37 X:02 Y:06 P:25 SP:F9 CYC:90 SL:222 FB0C 38 SEC PC:FB0D A:37 X:02 Y:06 P:E5 SP:F9 CYC:99 SL:222 FB0D A9 LDA #$75 PC:FB0E A:37 X:02 Y:06 P:E5 SP:F9 CYC:105 SL:222 FB0F 60 RTS PC:FB10 A:75 X:02 Y:06 P:65 SP:F9 CYC:111 SL:222 F5E0 67 RRA $47 PC:F5E1 A:75 X:02 Y:06 P:65 SP:FB CYC:129 SL:222 F5E2 EA NOP PC:F5E3 A:11 X:02 Y:06 P:25 SP:FB CYC:144 SL:222 F5E3 EA NOP PC:F5E4 A:11 X:02 Y:06 P:25 SP:FB CYC:150 SL:222 F5E4 EA NOP PC:F5E5 A:11 X:02 Y:06 P:25 SP:FB CYC:156 SL:222 F5E5 EA NOP PC:F5E6 A:11 X:02 Y:06 P:25 SP:FB CYC:162 SL:222 F5E6 20 JSR $FB10 PC:F5E7 A:11 X:02 Y:06 P:25 SP:FB CYC:168 SL:222 FB10 70 BVS $FB1B PC:FB11 A:11 X:02 Y:06 P:25 SP:F9 CYC:186 SL:222 FB12 30 BMI $FB1B PC:FB13 A:11 X:02 Y:06 P:25 SP:F9 CYC:192 SL:222 FB14 90 BCC $FB1B PC:FB15 A:11 X:02 Y:06 P:25 SP:F9 CYC:198 SL:222 FB16 C9 CMP #$11 PC:FB17 A:11 X:02 Y:06 P:25 SP:F9 CYC:204 SL:222 FB18 D0 BNE $FB1B PC:FB19 A:11 X:02 Y:06 P:27 SP:F9 CYC:210 SL:222 FB1A 60 RTS PC:FB1B A:11 X:02 Y:06 P:27 SP:F9 CYC:216 SL:222 F5E9 A5 LDA $47 PC:F5EA A:11 X:02 Y:06 P:27 SP:FB CYC:234 SL:222 F5EB C9 CMP #$9B PC:F5EC A:9B X:02 Y:06 P:A5 SP:FB CYC:243 SL:222 F5ED F0 BEQ $F5F1 PC:F5EE A:9B X:02 Y:06 P:27 SP:FB CYC:249 SL:222 F5F1 C8 INY PC:F5F2 A:9B X:02 Y:06 P:27 SP:FB CYC:258 SL:222 F5F2 A9 LDA #$A5 PC:F5F3 A:9B X:02 Y:07 P:25 SP:FB CYC:264 SL:222 F5F4 8D STA $0647 PC:F5F5 A:A5 X:02 Y:07 P:A5 SP:FB CYC:270 SL:222 F5F7 20 JSR $FAE9 PC:F5F8 A:A5 X:02 Y:07 P:A5 SP:FB CYC:282 SL:222 FAE9 24 BIT $01 PC:FAEA A:A5 X:02 Y:07 P:A5 SP:F9 CYC:300 SL:222 FAEB 18 CLC PC:FAEC A:A5 X:02 Y:07 P:E5 SP:F9 CYC:309 SL:222 FAEC A9 LDA #$B2 PC:FAED A:A5 X:02 Y:07 P:E4 SP:F9 CYC:315 SL:222 FAEE 60 RTS PC:FAEF A:B2 X:02 Y:07 P:E4 SP:F9 CYC:321 SL:222 F5FA 6F RRA $0647 PC:F5FB A:B2 X:02 Y:07 P:E4 SP:FB CYC:339 SL:222 F5FD EA NOP PC:F5FE A:05 X:02 Y:07 P:25 SP:FB CYC:16 SL:223 F5FE EA NOP PC:F5FF A:05 X:02 Y:07 P:25 SP:FB CYC:22 SL:223 F5FF EA NOP PC:F600 A:05 X:02 Y:07 P:25 SP:FB CYC:28 SL:223 F600 EA NOP PC:F601 A:05 X:02 Y:07 P:25 SP:FB CYC:34 SL:223 F601 20 JSR $FAEF PC:F602 A:05 X:02 Y:07 P:25 SP:FB CYC:40 SL:223 FAEF 70 BVS $FB1B PC:FAF0 A:05 X:02 Y:07 P:25 SP:F9 CYC:58 SL:223 FAF1 90 BCC $FB1B PC:FAF2 A:05 X:02 Y:07 P:25 SP:F9 CYC:64 SL:223 FAF3 30 BMI $FB1B PC:FAF4 A:05 X:02 Y:07 P:25 SP:F9 CYC:70 SL:223 FAF5 C9 CMP #$05 PC:FAF6 A:05 X:02 Y:07 P:25 SP:F9 CYC:76 SL:223 FAF7 D0 BNE $FB1B PC:FAF8 A:05 X:02 Y:07 P:27 SP:F9 CYC:82 SL:223 FAF9 60 RTS PC:FAFA A:05 X:02 Y:07 P:27 SP:F9 CYC:88 SL:223 F604 AD LDA $0647 PC:F605 A:05 X:02 Y:07 P:27 SP:FB CYC:106 SL:223 F607 C9 CMP #$52 PC:F608 A:52 X:02 Y:07 P:25 SP:FB CYC:118 SL:223 F609 F0 BEQ $F60D PC:F60A A:52 X:02 Y:07 P:27 SP:FB CYC:124 SL:223 F60D C8 INY PC:F60E A:52 X:02 Y:07 P:27 SP:FB CYC:133 SL:223 F60E A9 LDA #$29 PC:F60F A:52 X:02 Y:08 P:25 SP:FB CYC:139 SL:223 F610 8D STA $0647 PC:F611 A:29 X:02 Y:08 P:25 SP:FB CYC:145 SL:223 F613 20 JSR $FAFA PC:F614 A:29 X:02 Y:08 P:25 SP:FB CYC:157 SL:223 FAFA B8 CLV PC:FAFB A:29 X:02 Y:08 P:25 SP:F9 CYC:175 SL:223 FAFB 18 CLC PC:FAFC A:29 X:02 Y:08 P:25 SP:F9 CYC:181 SL:223 FAFC A9 LDA #$42 PC:FAFD A:29 X:02 Y:08 P:24 SP:F9 CYC:187 SL:223 FAFE 60 RTS PC:FAFF A:42 X:02 Y:08 P:24 SP:F9 CYC:193 SL:223 F616 6F RRA $0647 PC:F617 A:42 X:02 Y:08 P:24 SP:FB CYC:211 SL:223 F619 EA NOP PC:F61A A:57 X:02 Y:08 P:24 SP:FB CYC:229 SL:223 F61A EA NOP PC:F61B A:57 X:02 Y:08 P:24 SP:FB CYC:235 SL:223 F61B EA NOP PC:F61C A:57 X:02 Y:08 P:24 SP:FB CYC:241 SL:223 F61C EA NOP PC:F61D A:57 X:02 Y:08 P:24 SP:FB CYC:247 SL:223 F61D 20 JSR $FAFF PC:F61E A:57 X:02 Y:08 P:24 SP:FB CYC:253 SL:223 FAFF 70 BVS $FB1B PC:FB00 A:57 X:02 Y:08 P:24 SP:F9 CYC:271 SL:223 FB01 30 BMI $FB1B PC:FB02 A:57 X:02 Y:08 P:24 SP:F9 CYC:277 SL:223 FB03 B0 BCS $FB1B PC:FB04 A:57 X:02 Y:08 P:24 SP:F9 CYC:283 SL:223 FB05 C9 CMP #$57 PC:FB06 A:57 X:02 Y:08 P:24 SP:F9 CYC:289 SL:223 FB07 D0 BNE $FB1B PC:FB08 A:57 X:02 Y:08 P:27 SP:F9 CYC:295 SL:223 FB09 60 RTS PC:FB0A A:57 X:02 Y:08 P:27 SP:F9 CYC:301 SL:223 F620 AD LDA $0647 PC:F621 A:57 X:02 Y:08 P:27 SP:FB CYC:319 SL:223 F623 C9 CMP #$14 PC:F624 A:14 X:02 Y:08 P:25 SP:FB CYC:331 SL:223 F625 F0 BEQ $F629 PC:F626 A:14 X:02 Y:08 P:27 SP:FB CYC:337 SL:223 F629 C8 INY PC:F62A A:14 X:02 Y:08 P:27 SP:FB CYC:5 SL:224 F62A A9 LDA #$37 PC:F62B A:14 X:02 Y:09 P:25 SP:FB CYC:11 SL:224 F62C 8D STA $0647 PC:F62D A:37 X:02 Y:09 P:25 SP:FB CYC:17 SL:224 F62F 20 JSR $FB0A PC:F630 A:37 X:02 Y:09 P:25 SP:FB CYC:29 SL:224 FB0A 24 BIT $01 PC:FB0B A:37 X:02 Y:09 P:25 SP:F9 CYC:47 SL:224 FB0C 38 SEC PC:FB0D A:37 X:02 Y:09 P:E5 SP:F9 CYC:56 SL:224 FB0D A9 LDA #$75 PC:FB0E A:37 X:02 Y:09 P:E5 SP:F9 CYC:62 SL:224 FB0F 60 RTS PC:FB10 A:75 X:02 Y:09 P:65 SP:F9 CYC:68 SL:224 F632 6F RRA $0647 PC:F633 A:75 X:02 Y:09 P:65 SP:FB CYC:86 SL:224 F635 EA NOP PC:F636 A:11 X:02 Y:09 P:25 SP:FB CYC:104 SL:224 F636 EA NOP PC:F637 A:11 X:02 Y:09 P:25 SP:FB CYC:110 SL:224 F637 EA NOP PC:F638 A:11 X:02 Y:09 P:25 SP:FB CYC:116 SL:224 F638 EA NOP PC:F639 A:11 X:02 Y:09 P:25 SP:FB CYC:122 SL:224 F639 20 JSR $FB10 PC:F63A A:11 X:02 Y:09 P:25 SP:FB CYC:128 SL:224 FB10 70 BVS $FB1B PC:FB11 A:11 X:02 Y:09 P:25 SP:F9 CYC:146 SL:224 FB12 30 BMI $FB1B PC:FB13 A:11 X:02 Y:09 P:25 SP:F9 CYC:152 SL:224 FB14 90 BCC $FB1B PC:FB15 A:11 X:02 Y:09 P:25 SP:F9 CYC:158 SL:224 FB16 C9 CMP #$11 PC:FB17 A:11 X:02 Y:09 P:25 SP:F9 CYC:164 SL:224 FB18 D0 BNE $FB1B PC:FB19 A:11 X:02 Y:09 P:27 SP:F9 CYC:170 SL:224 FB1A 60 RTS PC:FB1B A:11 X:02 Y:09 P:27 SP:F9 CYC:176 SL:224 F63C AD LDA $0647 PC:F63D A:11 X:02 Y:09 P:27 SP:FB CYC:194 SL:224 F63F C9 CMP #$9B PC:F640 A:9B X:02 Y:09 P:A5 SP:FB CYC:206 SL:224 F641 F0 BEQ $F645 PC:F642 A:9B X:02 Y:09 P:27 SP:FB CYC:212 SL:224 F645 A9 LDA #$A5 PC:F646 A:9B X:02 Y:09 P:27 SP:FB CYC:221 SL:224 F647 8D STA $0647 PC:F648 A:A5 X:02 Y:09 P:A5 SP:FB CYC:227 SL:224 F64A A9 LDA #$48 PC:F64B A:A5 X:02 Y:09 P:A5 SP:FB CYC:239 SL:224 F64C 85 STA $45 PC:F64D A:48 X:02 Y:09 P:25 SP:FB CYC:245 SL:224 F64E A9 LDA #$05 PC:F64F A:48 X:02 Y:09 P:25 SP:FB CYC:254 SL:224 F650 85 STA $46 PC:F651 A:05 X:02 Y:09 P:25 SP:FB CYC:260 SL:224 F652 A0 LDY #$FF PC:F653 A:05 X:02 Y:09 P:25 SP:FB CYC:269 SL:224 F654 20 JSR $FAE9 PC:F655 A:05 X:02 Y:FF P:A5 SP:FB CYC:275 SL:224 FAE9 24 BIT $01 PC:FAEA A:05 X:02 Y:FF P:A5 SP:F9 CYC:293 SL:224 FAEB 18 CLC PC:FAEC A:05 X:02 Y:FF P:E5 SP:F9 CYC:302 SL:224 FAEC A9 LDA #$B2 PC:FAED A:05 X:02 Y:FF P:E4 SP:F9 CYC:308 SL:224 FAEE 60 RTS PC:FAEF A:B2 X:02 Y:FF P:E4 SP:F9 CYC:314 SL:224 F657 73 RRA ($45), y PC:F658 A:B2 X:02 Y:FF P:E4 SP:FB CYC:332 SL:224 F659 EA NOP PC:F65A A:05 X:02 Y:FF P:25 SP:FB CYC:15 SL:225 F65A EA NOP PC:F65B A:05 X:02 Y:FF P:25 SP:FB CYC:21 SL:225 F65B 08 PHP PC:F65C A:05 X:02 Y:FF P:25 SP:FB CYC:27 SL:225 F65C 48 PHA PC:F65D A:05 X:02 Y:FF P:25 SP:FA CYC:36 SL:225 F65D A0 LDY #$0A PC:F65E A:05 X:02 Y:FF P:25 SP:F9 CYC:45 SL:225 F65F 68 PLA PC:F660 A:05 X:02 Y:0A P:25 SP:F9 CYC:51 SL:225 F660 28 PLP PC:F661 A:05 X:02 Y:0A P:25 SP:FA CYC:63 SL:225 F661 20 JSR $FAEF PC:F662 A:05 X:02 Y:0A P:25 SP:FB CYC:75 SL:225 FAEF 70 BVS $FB1B PC:FAF0 A:05 X:02 Y:0A P:25 SP:F9 CYC:93 SL:225 FAF1 90 BCC $FB1B PC:FAF2 A:05 X:02 Y:0A P:25 SP:F9 CYC:99 SL:225 FAF3 30 BMI $FB1B PC:FAF4 A:05 X:02 Y:0A P:25 SP:F9 CYC:105 SL:225 FAF5 C9 CMP #$05 PC:FAF6 A:05 X:02 Y:0A P:25 SP:F9 CYC:111 SL:225 FAF7 D0 BNE $FB1B PC:FAF8 A:05 X:02 Y:0A P:27 SP:F9 CYC:117 SL:225 FAF9 60 RTS PC:FAFA A:05 X:02 Y:0A P:27 SP:F9 CYC:123 SL:225 F664 AD LDA $0647 PC:F665 A:05 X:02 Y:0A P:27 SP:FB CYC:141 SL:225 F667 C9 CMP #$52 PC:F668 A:52 X:02 Y:0A P:25 SP:FB CYC:153 SL:225 F669 F0 BEQ $F66D PC:F66A A:52 X:02 Y:0A P:27 SP:FB CYC:159 SL:225 F66D A0 LDY #$FF PC:F66E A:52 X:02 Y:0A P:27 SP:FB CYC:168 SL:225 F66F A9 LDA #$29 PC:F670 A:52 X:02 Y:FF P:A5 SP:FB CYC:174 SL:225 F671 8D STA $0647 PC:F672 A:29 X:02 Y:FF P:25 SP:FB CYC:180 SL:225 F674 20 JSR $FAFA PC:F675 A:29 X:02 Y:FF P:25 SP:FB CYC:192 SL:225 FAFA B8 CLV PC:FAFB A:29 X:02 Y:FF P:25 SP:F9 CYC:210 SL:225 FAFB 18 CLC PC:FAFC A:29 X:02 Y:FF P:25 SP:F9 CYC:216 SL:225 FAFC A9 LDA #$42 PC:FAFD A:29 X:02 Y:FF P:24 SP:F9 CYC:222 SL:225 FAFE 60 RTS PC:FAFF A:42 X:02 Y:FF P:24 SP:F9 CYC:228 SL:225 F677 73 RRA ($45), y PC:F678 A:42 X:02 Y:FF P:24 SP:FB CYC:246 SL:225 F679 EA NOP PC:F67A A:57 X:02 Y:FF P:24 SP:FB CYC:270 SL:225 F67A EA NOP PC:F67B A:57 X:02 Y:FF P:24 SP:FB CYC:276 SL:225 F67B 08 PHP PC:F67C A:57 X:02 Y:FF P:24 SP:FB CYC:282 SL:225 F67C 48 PHA PC:F67D A:57 X:02 Y:FF P:24 SP:FA CYC:291 SL:225 F67D A0 LDY #$0B PC:F67E A:57 X:02 Y:FF P:24 SP:F9 CYC:300 SL:225 F67F 68 PLA PC:F680 A:57 X:02 Y:0B P:24 SP:F9 CYC:306 SL:225 F680 28 PLP PC:F681 A:57 X:02 Y:0B P:24 SP:FA CYC:318 SL:225 F681 20 JSR $FAFF PC:F682 A:57 X:02 Y:0B P:24 SP:FB CYC:330 SL:225 FAFF 70 BVS $FB1B PC:FB00 A:57 X:02 Y:0B P:24 SP:F9 CYC:7 SL:226 FB01 30 BMI $FB1B PC:FB02 A:57 X:02 Y:0B P:24 SP:F9 CYC:13 SL:226 FB03 B0 BCS $FB1B PC:FB04 A:57 X:02 Y:0B P:24 SP:F9 CYC:19 SL:226 FB05 C9 CMP #$57 PC:FB06 A:57 X:02 Y:0B P:24 SP:F9 CYC:25 SL:226 FB07 D0 BNE $FB1B PC:FB08 A:57 X:02 Y:0B P:27 SP:F9 CYC:31 SL:226 FB09 60 RTS PC:FB0A A:57 X:02 Y:0B P:27 SP:F9 CYC:37 SL:226 F684 AD LDA $0647 PC:F685 A:57 X:02 Y:0B P:27 SP:FB CYC:55 SL:226 F687 C9 CMP #$14 PC:F688 A:14 X:02 Y:0B P:25 SP:FB CYC:67 SL:226 F689 F0 BEQ $F68D PC:F68A A:14 X:02 Y:0B P:27 SP:FB CYC:73 SL:226 F68D A0 LDY #$FF PC:F68E A:14 X:02 Y:0B P:27 SP:FB CYC:82 SL:226 F68F A9 LDA #$37 PC:F690 A:14 X:02 Y:FF P:A5 SP:FB CYC:88 SL:226 F691 8D STA $0647 PC:F692 A:37 X:02 Y:FF P:25 SP:FB CYC:94 SL:226 F694 20 JSR $FB0A PC:F695 A:37 X:02 Y:FF P:25 SP:FB CYC:106 SL:226 FB0A 24 BIT $01 PC:FB0B A:37 X:02 Y:FF P:25 SP:F9 CYC:124 SL:226 FB0C 38 SEC PC:FB0D A:37 X:02 Y:FF P:E5 SP:F9 CYC:133 SL:226 FB0D A9 LDA #$75 PC:FB0E A:37 X:02 Y:FF P:E5 SP:F9 CYC:139 SL:226 FB0F 60 RTS PC:FB10 A:75 X:02 Y:FF P:65 SP:F9 CYC:145 SL:226 F697 73 RRA ($45), y PC:F698 A:75 X:02 Y:FF P:65 SP:FB CYC:163 SL:226 F699 EA NOP PC:F69A A:11 X:02 Y:FF P:25 SP:FB CYC:187 SL:226 F69A EA NOP PC:F69B A:11 X:02 Y:FF P:25 SP:FB CYC:193 SL:226 F69B 08 PHP PC:F69C A:11 X:02 Y:FF P:25 SP:FB CYC:199 SL:226 F69C 48 PHA PC:F69D A:11 X:02 Y:FF P:25 SP:FA CYC:208 SL:226 F69D A0 LDY #$0C PC:F69E A:11 X:02 Y:FF P:25 SP:F9 CYC:217 SL:226 F69F 68 PLA PC:F6A0 A:11 X:02 Y:0C P:25 SP:F9 CYC:223 SL:226 F6A0 28 PLP PC:F6A1 A:11 X:02 Y:0C P:25 SP:FA CYC:235 SL:226 F6A1 20 JSR $FB10 PC:F6A2 A:11 X:02 Y:0C P:25 SP:FB CYC:247 SL:226 FB10 70 BVS $FB1B PC:FB11 A:11 X:02 Y:0C P:25 SP:F9 CYC:265 SL:226 FB12 30 BMI $FB1B PC:FB13 A:11 X:02 Y:0C P:25 SP:F9 CYC:271 SL:226 FB14 90 BCC $FB1B PC:FB15 A:11 X:02 Y:0C P:25 SP:F9 CYC:277 SL:226 FB16 C9 CMP #$11 PC:FB17 A:11 X:02 Y:0C P:25 SP:F9 CYC:283 SL:226 FB18 D0 BNE $FB1B PC:FB19 A:11 X:02 Y:0C P:27 SP:F9 CYC:289 SL:226 FB1A 60 RTS PC:FB1B A:11 X:02 Y:0C P:27 SP:F9 CYC:295 SL:226 F6A4 AD LDA $0647 PC:F6A5 A:11 X:02 Y:0C P:27 SP:FB CYC:313 SL:226 F6A7 C9 CMP #$9B PC:F6A8 A:9B X:02 Y:0C P:A5 SP:FB CYC:325 SL:226 F6A9 F0 BEQ $F6AD PC:F6AA A:9B X:02 Y:0C P:27 SP:FB CYC:331 SL:226 F6AD A0 LDY #$0D PC:F6AE A:9B X:02 Y:0C P:27 SP:FB CYC:340 SL:226 F6AF A2 LDX #$FF PC:F6B0 A:9B X:02 Y:0D P:25 SP:FB CYC:5 SL:227 F6B1 A9 LDA #$A5 PC:F6B2 A:9B X:FF Y:0D P:A5 SP:FB CYC:11 SL:227 F6B3 85 STA $47 PC:F6B4 A:A5 X:FF Y:0D P:A5 SP:FB CYC:17 SL:227 F6B5 20 JSR $FAE9 PC:F6B6 A:A5 X:FF Y:0D P:A5 SP:FB CYC:26 SL:227 FAE9 24 BIT $01 PC:FAEA A:A5 X:FF Y:0D P:A5 SP:F9 CYC:44 SL:227 FAEB 18 CLC PC:FAEC A:A5 X:FF Y:0D P:E5 SP:F9 CYC:53 SL:227 FAEC A9 LDA #$B2 PC:FAED A:A5 X:FF Y:0D P:E4 SP:F9 CYC:59 SL:227 FAEE 60 RTS PC:FAEF A:B2 X:FF Y:0D P:E4 SP:F9 CYC:65 SL:227 F6B8 77 RRA $48,x PC:F6B9 A:B2 X:FF Y:0D P:E4 SP:FB CYC:83 SL:227 F6BA EA NOP PC:F6BB A:05 X:FF Y:0D P:25 SP:FB CYC:101 SL:227 F6BB EA NOP PC:F6BC A:05 X:FF Y:0D P:25 SP:FB CYC:107 SL:227 F6BC EA NOP PC:F6BD A:05 X:FF Y:0D P:25 SP:FB CYC:113 SL:227 F6BD EA NOP PC:F6BE A:05 X:FF Y:0D P:25 SP:FB CYC:119 SL:227 F6BE 20 JSR $FAEF PC:F6BF A:05 X:FF Y:0D P:25 SP:FB CYC:125 SL:227 FAEF 70 BVS $FB1B PC:FAF0 A:05 X:FF Y:0D P:25 SP:F9 CYC:143 SL:227 FAF1 90 BCC $FB1B PC:FAF2 A:05 X:FF Y:0D P:25 SP:F9 CYC:149 SL:227 FAF3 30 BMI $FB1B PC:FAF4 A:05 X:FF Y:0D P:25 SP:F9 CYC:155 SL:227 FAF5 C9 CMP #$05 PC:FAF6 A:05 X:FF Y:0D P:25 SP:F9 CYC:161 SL:227 FAF7 D0 BNE $FB1B PC:FAF8 A:05 X:FF Y:0D P:27 SP:F9 CYC:167 SL:227 FAF9 60 RTS PC:FAFA A:05 X:FF Y:0D P:27 SP:F9 CYC:173 SL:227 F6C1 A5 LDA $47 PC:F6C2 A:05 X:FF Y:0D P:27 SP:FB CYC:191 SL:227 F6C3 C9 CMP #$52 PC:F6C4 A:52 X:FF Y:0D P:25 SP:FB CYC:200 SL:227 F6C5 F0 BEQ $F6C9 PC:F6C6 A:52 X:FF Y:0D P:27 SP:FB CYC:206 SL:227 F6C9 C8 INY PC:F6CA A:52 X:FF Y:0D P:27 SP:FB CYC:215 SL:227 F6CA A9 LDA #$29 PC:F6CB A:52 X:FF Y:0E P:25 SP:FB CYC:221 SL:227 F6CC 85 STA $47 PC:F6CD A:29 X:FF Y:0E P:25 SP:FB CYC:227 SL:227 F6CE 20 JSR $FAFA PC:F6CF A:29 X:FF Y:0E P:25 SP:FB CYC:236 SL:227 FAFA B8 CLV PC:FAFB A:29 X:FF Y:0E P:25 SP:F9 CYC:254 SL:227 FAFB 18 CLC PC:FAFC A:29 X:FF Y:0E P:25 SP:F9 CYC:260 SL:227 FAFC A9 LDA #$42 PC:FAFD A:29 X:FF Y:0E P:24 SP:F9 CYC:266 SL:227 FAFE 60 RTS PC:FAFF A:42 X:FF Y:0E P:24 SP:F9 CYC:272 SL:227 F6D1 77 RRA $48,x PC:F6D2 A:42 X:FF Y:0E P:24 SP:FB CYC:290 SL:227 F6D3 EA NOP PC:F6D4 A:57 X:FF Y:0E P:24 SP:FB CYC:308 SL:227 F6D4 EA NOP PC:F6D5 A:57 X:FF Y:0E P:24 SP:FB CYC:314 SL:227 F6D5 EA NOP PC:F6D6 A:57 X:FF Y:0E P:24 SP:FB CYC:320 SL:227 F6D6 EA NOP PC:F6D7 A:57 X:FF Y:0E P:24 SP:FB CYC:326 SL:227 F6D7 20 JSR $FAFF PC:F6D8 A:57 X:FF Y:0E P:24 SP:FB CYC:332 SL:227 FAFF 70 BVS $FB1B PC:FB00 A:57 X:FF Y:0E P:24 SP:F9 CYC:9 SL:228 FB01 30 BMI $FB1B PC:FB02 A:57 X:FF Y:0E P:24 SP:F9 CYC:15 SL:228 FB03 B0 BCS $FB1B PC:FB04 A:57 X:FF Y:0E P:24 SP:F9 CYC:21 SL:228 FB05 C9 CMP #$57 PC:FB06 A:57 X:FF Y:0E P:24 SP:F9 CYC:27 SL:228 FB07 D0 BNE $FB1B PC:FB08 A:57 X:FF Y:0E P:27 SP:F9 CYC:33 SL:228 FB09 60 RTS PC:FB0A A:57 X:FF Y:0E P:27 SP:F9 CYC:39 SL:228 F6DA A5 LDA $47 PC:F6DB A:57 X:FF Y:0E P:27 SP:FB CYC:57 SL:228 F6DC C9 CMP #$14 PC:F6DD A:14 X:FF Y:0E P:25 SP:FB CYC:66 SL:228 F6DE F0 BEQ $F6E2 PC:F6DF A:14 X:FF Y:0E P:27 SP:FB CYC:72 SL:228 F6E2 C8 INY PC:F6E3 A:14 X:FF Y:0E P:27 SP:FB CYC:81 SL:228 F6E3 A9 LDA #$37 PC:F6E4 A:14 X:FF Y:0F P:25 SP:FB CYC:87 SL:228 F6E5 85 STA $47 PC:F6E6 A:37 X:FF Y:0F P:25 SP:FB CYC:93 SL:228 F6E7 20 JSR $FB0A PC:F6E8 A:37 X:FF Y:0F P:25 SP:FB CYC:102 SL:228 FB0A 24 BIT $01 PC:FB0B A:37 X:FF Y:0F P:25 SP:F9 CYC:120 SL:228 FB0C 38 SEC PC:FB0D A:37 X:FF Y:0F P:E5 SP:F9 CYC:129 SL:228 FB0D A9 LDA #$75 PC:FB0E A:37 X:FF Y:0F P:E5 SP:F9 CYC:135 SL:228 FB0F 60 RTS PC:FB10 A:75 X:FF Y:0F P:65 SP:F9 CYC:141 SL:228 F6EA 77 RRA $48,x PC:F6EB A:75 X:FF Y:0F P:65 SP:FB CYC:159 SL:228 F6EC EA NOP PC:F6ED A:11 X:FF Y:0F P:25 SP:FB CYC:177 SL:228 F6ED EA NOP PC:F6EE A:11 X:FF Y:0F P:25 SP:FB CYC:183 SL:228 F6EE EA NOP PC:F6EF A:11 X:FF Y:0F P:25 SP:FB CYC:189 SL:228 F6EF EA NOP PC:F6F0 A:11 X:FF Y:0F P:25 SP:FB CYC:195 SL:228 F6F0 20 JSR $FB10 PC:F6F1 A:11 X:FF Y:0F P:25 SP:FB CYC:201 SL:228 FB10 70 BVS $FB1B PC:FB11 A:11 X:FF Y:0F P:25 SP:F9 CYC:219 SL:228 FB12 30 BMI $FB1B PC:FB13 A:11 X:FF Y:0F P:25 SP:F9 CYC:225 SL:228 FB14 90 BCC $FB1B PC:FB15 A:11 X:FF Y:0F P:25 SP:F9 CYC:231 SL:228 FB16 C9 CMP #$11 PC:FB17 A:11 X:FF Y:0F P:25 SP:F9 CYC:237 SL:228 FB18 D0 BNE $FB1B PC:FB19 A:11 X:FF Y:0F P:27 SP:F9 CYC:243 SL:228 FB1A 60 RTS PC:FB1B A:11 X:FF Y:0F P:27 SP:F9 CYC:249 SL:228 F6F3 A5 LDA $47 PC:F6F4 A:11 X:FF Y:0F P:27 SP:FB CYC:267 SL:228 F6F5 C9 CMP #$9B PC:F6F6 A:9B X:FF Y:0F P:A5 SP:FB CYC:276 SL:228 F6F7 F0 BEQ $F6FB PC:F6F8 A:9B X:FF Y:0F P:27 SP:FB CYC:282 SL:228 F6FB A9 LDA #$A5 PC:F6FC A:9B X:FF Y:0F P:27 SP:FB CYC:291 SL:228 F6FD 8D STA $0647 PC:F6FE A:A5 X:FF Y:0F P:A5 SP:FB CYC:297 SL:228 F700 A0 LDY #$FF PC:F701 A:A5 X:FF Y:0F P:A5 SP:FB CYC:309 SL:228 F702 20 JSR $FAE9 PC:F703 A:A5 X:FF Y:FF P:A5 SP:FB CYC:315 SL:228 FAE9 24 BIT $01 PC:FAEA A:A5 X:FF Y:FF P:A5 SP:F9 CYC:333 SL:228 FAEB 18 CLC PC:FAEC A:A5 X:FF Y:FF P:E5 SP:F9 CYC:1 SL:229 FAEC A9 LDA #$B2 PC:FAED A:A5 X:FF Y:FF P:E4 SP:F9 CYC:7 SL:229 FAEE 60 RTS PC:FAEF A:B2 X:FF Y:FF P:E4 SP:F9 CYC:13 SL:229 F705 7B RRA $0548,y PC:F706 A:B2 X:FF Y:FF P:E4 SP:FB CYC:31 SL:229 F708 EA NOP PC:F709 A:05 X:FF Y:FF P:25 SP:FB CYC:52 SL:229 F709 EA NOP PC:F70A A:05 X:FF Y:FF P:25 SP:FB CYC:58 SL:229 F70A 08 PHP PC:F70B A:05 X:FF Y:FF P:25 SP:FB CYC:64 SL:229 F70B 48 PHA PC:F70C A:05 X:FF Y:FF P:25 SP:FA CYC:73 SL:229 F70C A0 LDY #$10 PC:F70D A:05 X:FF Y:FF P:25 SP:F9 CYC:82 SL:229 F70E 68 PLA PC:F70F A:05 X:FF Y:10 P:25 SP:F9 CYC:88 SL:229 F70F 28 PLP PC:F710 A:05 X:FF Y:10 P:25 SP:FA CYC:100 SL:229 F710 20 JSR $FAEF PC:F711 A:05 X:FF Y:10 P:25 SP:FB CYC:112 SL:229 FAEF 70 BVS $FB1B PC:FAF0 A:05 X:FF Y:10 P:25 SP:F9 CYC:130 SL:229 FAF1 90 BCC $FB1B PC:FAF2 A:05 X:FF Y:10 P:25 SP:F9 CYC:136 SL:229 FAF3 30 BMI $FB1B PC:FAF4 A:05 X:FF Y:10 P:25 SP:F9 CYC:142 SL:229 FAF5 C9 CMP #$05 PC:FAF6 A:05 X:FF Y:10 P:25 SP:F9 CYC:148 SL:229 FAF7 D0 BNE $FB1B PC:FAF8 A:05 X:FF Y:10 P:27 SP:F9 CYC:154 SL:229 FAF9 60 RTS PC:FAFA A:05 X:FF Y:10 P:27 SP:F9 CYC:160 SL:229 F713 AD LDA $0647 PC:F714 A:05 X:FF Y:10 P:27 SP:FB CYC:178 SL:229 F716 C9 CMP #$52 PC:F717 A:52 X:FF Y:10 P:25 SP:FB CYC:190 SL:229 F718 F0 BEQ $F71C PC:F719 A:52 X:FF Y:10 P:27 SP:FB CYC:196 SL:229 F71C A0 LDY #$FF PC:F71D A:52 X:FF Y:10 P:27 SP:FB CYC:205 SL:229 F71E A9 LDA #$29 PC:F71F A:52 X:FF Y:FF P:A5 SP:FB CYC:211 SL:229 F720 8D STA $0647 PC:F721 A:29 X:FF Y:FF P:25 SP:FB CYC:217 SL:229 F723 20 JSR $FAFA PC:F724 A:29 X:FF Y:FF P:25 SP:FB CYC:229 SL:229 FAFA B8 CLV PC:FAFB A:29 X:FF Y:FF P:25 SP:F9 CYC:247 SL:229 FAFB 18 CLC PC:FAFC A:29 X:FF Y:FF P:25 SP:F9 CYC:253 SL:229 FAFC A9 LDA #$42 PC:FAFD A:29 X:FF Y:FF P:24 SP:F9 CYC:259 SL:229 FAFE 60 RTS PC:FAFF A:42 X:FF Y:FF P:24 SP:F9 CYC:265 SL:229 F726 7B RRA $0548,y PC:F727 A:42 X:FF Y:FF P:24 SP:FB CYC:283 SL:229 F729 EA NOP PC:F72A A:57 X:FF Y:FF P:24 SP:FB CYC:304 SL:229 F72A EA NOP PC:F72B A:57 X:FF Y:FF P:24 SP:FB CYC:310 SL:229 F72B 08 PHP PC:F72C A:57 X:FF Y:FF P:24 SP:FB CYC:316 SL:229 F72C 48 PHA PC:F72D A:57 X:FF Y:FF P:24 SP:FA CYC:325 SL:229 F72D A0 LDY #$11 PC:F72E A:57 X:FF Y:FF P:24 SP:F9 CYC:334 SL:229 F72F 68 PLA PC:F730 A:57 X:FF Y:11 P:24 SP:F9 CYC:340 SL:229 F730 28 PLP PC:F731 A:57 X:FF Y:11 P:24 SP:FA CYC:11 SL:230 F731 20 JSR $FAFF PC:F732 A:57 X:FF Y:11 P:24 SP:FB CYC:23 SL:230 FAFF 70 BVS $FB1B PC:FB00 A:57 X:FF Y:11 P:24 SP:F9 CYC:41 SL:230 FB01 30 BMI $FB1B PC:FB02 A:57 X:FF Y:11 P:24 SP:F9 CYC:47 SL:230 FB03 B0 BCS $FB1B PC:FB04 A:57 X:FF Y:11 P:24 SP:F9 CYC:53 SL:230 FB05 C9 CMP #$57 PC:FB06 A:57 X:FF Y:11 P:24 SP:F9 CYC:59 SL:230 FB07 D0 BNE $FB1B PC:FB08 A:57 X:FF Y:11 P:27 SP:F9 CYC:65 SL:230 FB09 60 RTS PC:FB0A A:57 X:FF Y:11 P:27 SP:F9 CYC:71 SL:230 F734 AD LDA $0647 PC:F735 A:57 X:FF Y:11 P:27 SP:FB CYC:89 SL:230 F737 C9 CMP #$14 PC:F738 A:14 X:FF Y:11 P:25 SP:FB CYC:101 SL:230 F739 F0 BEQ $F73D PC:F73A A:14 X:FF Y:11 P:27 SP:FB CYC:107 SL:230 F73D A0 LDY #$FF PC:F73E A:14 X:FF Y:11 P:27 SP:FB CYC:116 SL:230 F73F A9 LDA #$37 PC:F740 A:14 X:FF Y:FF P:A5 SP:FB CYC:122 SL:230 F741 8D STA $0647 PC:F742 A:37 X:FF Y:FF P:25 SP:FB CYC:128 SL:230 F744 20 JSR $FB0A PC:F745 A:37 X:FF Y:FF P:25 SP:FB CYC:140 SL:230 FB0A 24 BIT $01 PC:FB0B A:37 X:FF Y:FF P:25 SP:F9 CYC:158 SL:230 FB0C 38 SEC PC:FB0D A:37 X:FF Y:FF P:E5 SP:F9 CYC:167 SL:230 FB0D A9 LDA #$75 PC:FB0E A:37 X:FF Y:FF P:E5 SP:F9 CYC:173 SL:230 FB0F 60 RTS PC:FB10 A:75 X:FF Y:FF P:65 SP:F9 CYC:179 SL:230 F747 7B RRA $0548,y PC:F748 A:75 X:FF Y:FF P:65 SP:FB CYC:197 SL:230 F74A EA NOP PC:F74B A:11 X:FF Y:FF P:25 SP:FB CYC:218 SL:230 F74B EA NOP PC:F74C A:11 X:FF Y:FF P:25 SP:FB CYC:224 SL:230 F74C 08 PHP PC:F74D A:11 X:FF Y:FF P:25 SP:FB CYC:230 SL:230 F74D 48 PHA PC:F74E A:11 X:FF Y:FF P:25 SP:FA CYC:239 SL:230 F74E A0 LDY #$12 PC:F74F A:11 X:FF Y:FF P:25 SP:F9 CYC:248 SL:230 F750 68 PLA PC:F751 A:11 X:FF Y:12 P:25 SP:F9 CYC:254 SL:230 F751 28 PLP PC:F752 A:11 X:FF Y:12 P:25 SP:FA CYC:266 SL:230 F752 20 JSR $FB10 PC:F753 A:11 X:FF Y:12 P:25 SP:FB CYC:278 SL:230 FB10 70 BVS $FB1B PC:FB11 A:11 X:FF Y:12 P:25 SP:F9 CYC:296 SL:230 FB12 30 BMI $FB1B PC:FB13 A:11 X:FF Y:12 P:25 SP:F9 CYC:302 SL:230 FB14 90 BCC $FB1B PC:FB15 A:11 X:FF Y:12 P:25 SP:F9 CYC:308 SL:230 FB16 C9 CMP #$11 PC:FB17 A:11 X:FF Y:12 P:25 SP:F9 CYC:314 SL:230 FB18 D0 BNE $FB1B PC:FB19 A:11 X:FF Y:12 P:27 SP:F9 CYC:320 SL:230 FB1A 60 RTS PC:FB1B A:11 X:FF Y:12 P:27 SP:F9 CYC:326 SL:230 F755 AD LDA $0647 PC:F756 A:11 X:FF Y:12 P:27 SP:FB CYC:3 SL:231 F758 C9 CMP #$9B PC:F759 A:9B X:FF Y:12 P:A5 SP:FB CYC:15 SL:231 F75A F0 BEQ $F75E PC:F75B A:9B X:FF Y:12 P:27 SP:FB CYC:21 SL:231 F75E A0 LDY #$13 PC:F75F A:9B X:FF Y:12 P:27 SP:FB CYC:30 SL:231 F760 A2 LDX #$FF PC:F761 A:9B X:FF Y:13 P:25 SP:FB CYC:36 SL:231 F762 A9 LDA #$A5 PC:F763 A:9B X:FF Y:13 P:A5 SP:FB CYC:42 SL:231 F764 8D STA $0647 PC:F765 A:A5 X:FF Y:13 P:A5 SP:FB CYC:48 SL:231 F767 20 JSR $FAE9 PC:F768 A:A5 X:FF Y:13 P:A5 SP:FB CYC:60 SL:231 FAE9 24 BIT $01 PC:FAEA A:A5 X:FF Y:13 P:A5 SP:F9 CYC:78 SL:231 FAEB 18 CLC PC:FAEC A:A5 X:FF Y:13 P:E5 SP:F9 CYC:87 SL:231 FAEC A9 LDA #$B2 PC:FAED A:A5 X:FF Y:13 P:E4 SP:F9 CYC:93 SL:231 FAEE 60 RTS PC:FAEF A:B2 X:FF Y:13 P:E4 SP:F9 CYC:99 SL:231 F76A 7F RRA $0548,x PC:F76B A:B2 X:FF Y:13 P:E4 SP:FB CYC:117 SL:231 F76D EA NOP PC:F76E A:05 X:FF Y:13 P:25 SP:FB CYC:138 SL:231 F76E EA NOP PC:F76F A:05 X:FF Y:13 P:25 SP:FB CYC:144 SL:231 F76F EA NOP PC:F770 A:05 X:FF Y:13 P:25 SP:FB CYC:150 SL:231 F770 EA NOP PC:F771 A:05 X:FF Y:13 P:25 SP:FB CYC:156 SL:231 F771 20 JSR $FAEF PC:F772 A:05 X:FF Y:13 P:25 SP:FB CYC:162 SL:231 FAEF 70 BVS $FB1B PC:FAF0 A:05 X:FF Y:13 P:25 SP:F9 CYC:180 SL:231 FAF1 90 BCC $FB1B PC:FAF2 A:05 X:FF Y:13 P:25 SP:F9 CYC:186 SL:231 FAF3 30 BMI $FB1B PC:FAF4 A:05 X:FF Y:13 P:25 SP:F9 CYC:192 SL:231 FAF5 C9 CMP #$05 PC:FAF6 A:05 X:FF Y:13 P:25 SP:F9 CYC:198 SL:231 FAF7 D0 BNE $FB1B PC:FAF8 A:05 X:FF Y:13 P:27 SP:F9 CYC:204 SL:231 FAF9 60 RTS PC:FAFA A:05 X:FF Y:13 P:27 SP:F9 CYC:210 SL:231 F774 AD LDA $0647 PC:F775 A:05 X:FF Y:13 P:27 SP:FB CYC:228 SL:231 F777 C9 CMP #$52 PC:F778 A:52 X:FF Y:13 P:25 SP:FB CYC:240 SL:231 F779 F0 BEQ $F77D PC:F77A A:52 X:FF Y:13 P:27 SP:FB CYC:246 SL:231 F77D C8 INY PC:F77E A:52 X:FF Y:13 P:27 SP:FB CYC:255 SL:231 F77E A9 LDA #$29 PC:F77F A:52 X:FF Y:14 P:25 SP:FB CYC:261 SL:231 F780 8D STA $0647 PC:F781 A:29 X:FF Y:14 P:25 SP:FB CYC:267 SL:231 F783 20 JSR $FAFA PC:F784 A:29 X:FF Y:14 P:25 SP:FB CYC:279 SL:231 FAFA B8 CLV PC:FAFB A:29 X:FF Y:14 P:25 SP:F9 CYC:297 SL:231 FAFB 18 CLC PC:FAFC A:29 X:FF Y:14 P:25 SP:F9 CYC:303 SL:231 FAFC A9 LDA #$42 PC:FAFD A:29 X:FF Y:14 P:24 SP:F9 CYC:309 SL:231 FAFE 60 RTS PC:FAFF A:42 X:FF Y:14 P:24 SP:F9 CYC:315 SL:231 F786 7F RRA $0548,x PC:F787 A:42 X:FF Y:14 P:24 SP:FB CYC:333 SL:231 F789 EA NOP PC:F78A A:57 X:FF Y:14 P:24 SP:FB CYC:13 SL:232 F78A EA NOP PC:F78B A:57 X:FF Y:14 P:24 SP:FB CYC:19 SL:232 F78B EA NOP PC:F78C A:57 X:FF Y:14 P:24 SP:FB CYC:25 SL:232 F78C EA NOP PC:F78D A:57 X:FF Y:14 P:24 SP:FB CYC:31 SL:232 F78D 20 JSR $FAFF PC:F78E A:57 X:FF Y:14 P:24 SP:FB CYC:37 SL:232 FAFF 70 BVS $FB1B PC:FB00 A:57 X:FF Y:14 P:24 SP:F9 CYC:55 SL:232 FB01 30 BMI $FB1B PC:FB02 A:57 X:FF Y:14 P:24 SP:F9 CYC:61 SL:232 FB03 B0 BCS $FB1B PC:FB04 A:57 X:FF Y:14 P:24 SP:F9 CYC:67 SL:232 FB05 C9 CMP #$57 PC:FB06 A:57 X:FF Y:14 P:24 SP:F9 CYC:73 SL:232 FB07 D0 BNE $FB1B PC:FB08 A:57 X:FF Y:14 P:27 SP:F9 CYC:79 SL:232 FB09 60 RTS PC:FB0A A:57 X:FF Y:14 P:27 SP:F9 CYC:85 SL:232 F790 AD LDA $0647 PC:F791 A:57 X:FF Y:14 P:27 SP:FB CYC:103 SL:232 F793 C9 CMP #$14 PC:F794 A:14 X:FF Y:14 P:25 SP:FB CYC:115 SL:232 F795 F0 BEQ $F799 PC:F796 A:14 X:FF Y:14 P:27 SP:FB CYC:121 SL:232 F799 C8 INY PC:F79A A:14 X:FF Y:14 P:27 SP:FB CYC:130 SL:232 F79A A9 LDA #$37 PC:F79B A:14 X:FF Y:15 P:25 SP:FB CYC:136 SL:232 F79C 8D STA $0647 PC:F79D A:37 X:FF Y:15 P:25 SP:FB CYC:142 SL:232 F79F 20 JSR $FB0A PC:F7A0 A:37 X:FF Y:15 P:25 SP:FB CYC:154 SL:232 FB0A 24 BIT $01 PC:FB0B A:37 X:FF Y:15 P:25 SP:F9 CYC:172 SL:232 FB0C 38 SEC PC:FB0D A:37 X:FF Y:15 P:E5 SP:F9 CYC:181 SL:232 FB0D A9 LDA #$75 PC:FB0E A:37 X:FF Y:15 P:E5 SP:F9 CYC:187 SL:232 FB0F 60 RTS PC:FB10 A:75 X:FF Y:15 P:65 SP:F9 CYC:193 SL:232 F7A2 7F RRA $0548,x PC:F7A3 A:75 X:FF Y:15 P:65 SP:FB CYC:211 SL:232 F7A5 EA NOP PC:F7A6 A:11 X:FF Y:15 P:25 SP:FB CYC:232 SL:232 F7A6 EA NOP PC:F7A7 A:11 X:FF Y:15 P:25 SP:FB CYC:238 SL:232 F7A7 EA NOP PC:F7A8 A:11 X:FF Y:15 P:25 SP:FB CYC:244 SL:232 F7A8 EA NOP PC:F7A9 A:11 X:FF Y:15 P:25 SP:FB CYC:250 SL:232 F7A9 20 JSR $FB10 PC:F7AA A:11 X:FF Y:15 P:25 SP:FB CYC:256 SL:232 FB10 70 BVS $FB1B PC:FB11 A:11 X:FF Y:15 P:25 SP:F9 CYC:274 SL:232 FB12 30 BMI $FB1B PC:FB13 A:11 X:FF Y:15 P:25 SP:F9 CYC:280 SL:232 FB14 90 BCC $FB1B PC:FB15 A:11 X:FF Y:15 P:25 SP:F9 CYC:286 SL:232 FB16 C9 CMP #$11 PC:FB17 A:11 X:FF Y:15 P:25 SP:F9 CYC:292 SL:232 FB18 D0 BNE $FB1B PC:FB19 A:11 X:FF Y:15 P:27 SP:F9 CYC:298 SL:232 FB1A 60 RTS PC:FB1B A:11 X:FF Y:15 P:27 SP:F9 CYC:304 SL:232 F7AC AD LDA $0647 PC:F7AD A:11 X:FF Y:15 P:27 SP:FB CYC:322 SL:232 F7AF C9 CMP #$9B PC:F7B0 A:9B X:FF Y:15 P:A5 SP:FB CYC:334 SL:232 F7B1 F0 BEQ $F7B5 PC:F7B2 A:9B X:FF Y:15 P:27 SP:FB CYC:340 SL:232 F7B5 60 RTS PC:F7B6 A:9B X:FF Y:15 P:27 SP:FB CYC:8 SL:233 C655 A5 LDA $00 PC:C656 A:9B X:FF Y:15 P:27 SP:FD CYC:26 SL:233 C657 05 ORA $10 PC:C658 A:00 X:FF Y:15 P:27 SP:FD CYC:35 SL:233 C659 05 ORA $11 PC:C65A A:00 X:FF Y:15 P:27 SP:FD CYC:44 SL:233 C65B F0 BEQ $C66B PC:C65C A:00 X:FF Y:15 P:27 SP:FD CYC:53 SL:233 C66B 20 JSR $C689 PC:C66C A:00 X:FF Y:15 P:27 SP:FD CYC:62 SL:233 C689 A9 LDA #$02 PC:C68A A:00 X:FF Y:15 P:27 SP:FB CYC:80 SL:233 C68B 8D STA $4015 PC:C68C A:02 X:FF Y:15 P:25 SP:FB CYC:86 SL:233 C68E A9 LDA #$3F PC:C68F A:02 X:FF Y:15 P:25 SP:FB CYC:98 SL:233 C690 8D STA $4004 PC:C691 A:3F X:FF Y:15 P:25 SP:FB CYC:104 SL:233 C693 A9 LDA #$9A PC:C694 A:3F X:FF Y:15 P:25 SP:FB CYC:116 SL:233 C695 8D STA $4005 PC:C696 A:9A X:FF Y:15 P:A5 SP:FB CYC:122 SL:233 C698 A9 LDA #$FF PC:C699 A:9A X:FF Y:15 P:A5 SP:FB CYC:134 SL:233 C69A 8D STA $4006 PC:C69B A:FF X:FF Y:15 P:A5 SP:FB CYC:140 SL:233 C69D A9 LDA #$00 PC:C69E A:FF X:FF Y:15 P:A5 SP:FB CYC:152 SL:233 C69F 8D STA $4007 PC:C6A0 A:00 X:FF Y:15 P:27 SP:FB CYC:158 SL:233 C6A2 60 RTS PC:C6A3 A:00 X:FF Y:15 P:27 SP:FB CYC:170 SL:233 C66E 60 RTS PC:C66F A:00 X:FF Y:15 P:27 SP:FD CYC:188 SL:233 00 00 BRK PC:01 A:00 X:FF Y:15 P:27 SP:FF CYC:206 SL:233 **BREAK**C5F4 40 RTI PC:C5F5 A:00 X:FF Y:15 P:27 SP:FC CYC:227 SL:233 02 FF ISC $FFFF,x PC:03 A:00 X:FF Y:15 P:27 SP:FF CYC:245 SL:233 05 99 STA $FFFF,y PC:06 A:00 X:FF Y:15 P:27 SP:FF CYC:266 SL:233 08 F7 ISC $EF,x PC:09 A:00 X:FF Y:15 P:27 SP:FF CYC:281 SL:233 0A DF DCP $FFFF,x PC:0B A:00 X:FF Y:15 P:27 SP:FF CYC:299 SL:233 0D FF ISC $BFFF,x PC:0E A:00 X:FF Y:15 P:24 SP:FF CYC:320 SL:233 10 00 BRK PC:11 A:3E X:FF Y:15 P:24 SP:FF CYC:0 SL:234 **BREAK**C5F4 40 RTI PC:C5F5 A:3E X:FF Y:15 P:24 SP:FC CYC:21 SL:234 12 FF ISC $00FF,x PC:13 A:3E X:FF Y:15 P:24 SP:FF CYC:39 SL:234 15 FF ISC $FFFF,x PC:16 A:2A X:FF Y:15 P:25 SP:FF CYC:60 SL:234 18 FF ISC $FFFF,x PC:19 A:2A X:FF Y:15 P:25 SP:FF CYC:81 SL:234 1B FF ISC $FFFF,x PC:1C A:29 X:FF Y:15 P:25 SP:FF CYC:102 SL:234 1E FF ISC $FFFF,x PC:1F A:27 X:FF Y:15 P:25 SP:FF CYC:123 SL:234 21 FF ISC $FFFF,x PC:22 A:24 X:FF Y:15 P:25 SP:FF CYC:144 SL:234 24 FF ISC $FFFF,x PC:25 A:20 X:FF Y:15 P:25 SP:FF CYC:165 SL:234 27 FF ISC $FFFF,x PC:28 A:1B X:FF Y:15 P:25 SP:FF CYC:186 SL:234 2A FF ISC $FFFF,x PC:2B A:15 X:FF Y:15 P:25 SP:FF CYC:207 SL:234 2D FF ISC $FFFF,x PC:2E A:0E X:FF Y:15 P:25 SP:FF CYC:228 SL:234 30 FF ISC $FFFF,x PC:31 A:06 X:FF Y:15 P:25 SP:FF CYC:249 SL:234 33 44 NOP $04 PC:34 A:FD X:FF Y:15 P:A4 SP:FF CYC:270 SL:234 35 FF ISC $FFFF,x PC:36 A:FD X:FF Y:15 P:A4 SP:FF CYC:279 SL:234 38 FF ISC $FFFF,x PC:39 A:F2 X:FF Y:15 P:A5 SP:FF CYC:300 SL:234 3B FF ISC $FFFF,x PC:3C A:E7 X:FF Y:15 P:A5 SP:FF CYC:321 SL:234 3E FF ISC $FFFF,x PC:3F A:DB X:FF Y:15 P:A5 SP:FF CYC:1 SL:235 41 FF ISC $FFFF,x PC:42 A:CE X:FF Y:15 P:A5 SP:FF CYC:22 SL:235 44 04 NOP $48 PC:45 A:C0 X:FF Y:15 P:A5 SP:FF CYC:43 SL:235 46 05 ORA $9B PC:47 A:C0 X:FF Y:15 P:A5 SP:FF CYC:52 SL:235 48 06 ASL $00 PC:49 A:FF X:FF Y:15 P:A5 SP:FF CYC:61 SL:235 4A FF ISC $FFFF,x PC:4B A:FF X:FF Y:15 P:26 SP:FF CYC:76 SL:235 4D FF ISC $00FF,x PC:4E A:EF X:FF Y:15 P:A5 SP:FF CYC:97 SL:235 50 FF ISC $FFFF,x PC:51 A:DB X:FF Y:15 P:A5 SP:FF CYC:118 SL:235 53 FF ISC $00FF,x PC:54 A:CB X:FF Y:15 P:A5 SP:FF CYC:139 SL:235 56 66 ROR $FF PC:57 A:B6 X:FF Y:15 P:A5 SP:FF CYC:160 SL:235 58 FF ISC $FFFF,x PC:59 A:B6 X:FF Y:15 P:A4 SP:FF CYC:175 SL:235 5B FF ISC $FFFF,x PC:5C A:A4 X:FF Y:15 P:A5 SP:FF CYC:196 SL:235 5E FF ISC $89FF,x PC:5F A:92 X:FF Y:15 P:A5 SP:FF CYC:217 SL:235 61 04 NOP $FF PC:62 A:C2 X:FF Y:15 P:A4 SP:FF CYC:238 SL:235 63 FF ISC $FFFF,x PC:64 A:C2 X:FF Y:15 P:A4 SP:FF CYC:247 SL:235 66 FF ISC $3287,x PC:67 A:AE X:FF Y:15 P:A5 SP:FF CYC:268 SL:235 69 FF ISC $FFFF,x PC:6A A:AD X:FF Y:15 P:A5 SP:FF CYC:289 SL:235 6C FF ISC $FFFF,x PC:6D A:99 X:FF Y:15 P:A5 SP:FF CYC:310 SL:235 6F FF ISC $FFFF,x PC:70 A:84 X:FF Y:15 P:A5 SP:FF CYC:331 SL:235 72 FF ISC $FFFF,x PC:73 A:6E X:FF Y:15 P:65 SP:FF CYC:11 SL:236 75 FF ISC $FFFF,x PC:76 A:57 X:FF Y:15 P:25 SP:FF CYC:32 SL:236 78 33 RLA ($FF), y PC:79 A:3F X:FF Y:15 P:25 SP:FF CYC:53 SL:236 7A FF ISC $FFFF,x PC:7B A:3F X:FF Y:15 P:25 SP:FF CYC:77 SL:236 7D FF ISC $69FF,x PC:7E A:26 X:FF Y:15 P:25 SP:FF CYC:98 SL:236 80 00 BRK PC:81 A:25 X:FF Y:15 P:25 SP:FF CYC:119 SL:236 **BREAK**C5F4 40 RTI PC:C5F5 A:25 X:FF Y:15 P:25 SP:FC CYC:140 SL:236 82 00 BRK PC:83 A:25 X:FF Y:15 P:25 SP:FF CYC:158 SL:236 **BREAK**C5F4 40 RTI PC:C5F5 A:25 X:FF Y:15 P:25 SP:FC CYC:179 SL:236 84 03 SLO $(FFFF,x) PC:85 A:25 X:FF Y:15 P:25 SP:FF CYC:197 SL:236 86 FF ISC $FFFF,x PC:87 A:7D X:FF Y:15 P:24 SP:FF CYC:221 SL:236 89 BB LAS $FF03,y PC:8A A:62 X:FF Y:15 P:25 SP:FF CYC:242 SL:236 8C FF ISC $FFFF,x PC:8D A:06 X:06 Y:15 P:25 SP:06 CYC:254 SL:236 8F FF ISC $FFFF,x PC:90 A:6C X:06 Y:15 P:24 SP:06 CYC:275 SL:236 92 FF ISC $FFFF,x PC:93 A:D0 X:06 Y:15 P:E4 SP:06 CYC:296 SL:236 95 FF ISC $FFFF,x PC:96 A:33 X:06 Y:15 P:25 SP:06 CYC:317 SL:236 98 FF ISC $FFFF,x PC:99 A:96 X:06 Y:15 P:E4 SP:06 CYC:338 SL:236 9B FF ISC $FFFF,x PC:9C A:F7 X:06 Y:15 P:A4 SP:06 CYC:18 SL:237 9E FF ISC $FFFF,x PC:9F A:57 X:06 Y:15 P:25 SP:06 CYC:39 SL:237 A1 FF ISC $FFFF,x PC:A2 A:B7 X:06 Y:15 P:E4 SP:06 CYC:60 SL:237 A4 FF ISC $FFFF,x PC:A5 A:15 X:06 Y:15 P:25 SP:06 CYC:81 SL:237 A7 FF ISC $FFFF,x PC:A8 A:73 X:06 Y:15 P:24 SP:06 CYC:102 SL:237 AA FF ISC $FFFF,x PC:AB A:CF X:06 Y:15 P:E4 SP:06 CYC:123 SL:237 AD FF ISC $FFFF,x PC:AE A:2A X:06 Y:15 P:25 SP:06 CYC:144 SL:237 B0 FF ISC $FFFF,x PC:B1 A:85 X:06 Y:15 P:E4 SP:06 CYC:165 SL:237 B3 FF ISC $FFFF,x PC:B4 A:DE X:06 Y:15 P:A4 SP:06 CYC:186 SL:237 B6 FF ISC $FFFF,x PC:B7 A:36 X:06 Y:15 P:25 SP:06 CYC:207 SL:237 B9 FF ISC $FFFF,x PC:BA A:8E X:06 Y:15 P:E4 SP:06 CYC:228 SL:237 BC FF ISC $FFFF,x PC:BD A:E4 X:06 Y:15 P:A4 SP:06 CYC:249 SL:237 BF FF ISC $FFFF,x PC:C0 A:39 X:06 Y:15 P:25 SP:06 CYC:270 SL:237 C2 FF ISC $FFFF,x PC:C3 A:8E X:06 Y:15 P:E4 SP:06 CYC:291 SL:237 C5 FF ISC $FFFF,x PC:C6 A:E1 X:06 Y:15 P:A4 SP:06 CYC:312 SL:237 C8 FF ISC $FFFF,x PC:C9 A:33 X:06 Y:15 P:25 SP:06 CYC:333 SL:237 CB FF ISC $FFFF,x PC:CC A:85 X:06 Y:15 P:E4 SP:06 CYC:13 SL:238 CE FF ISC $FFFF,x PC:CF A:D5 X:06 Y:15 P:A4 SP:06 CYC:34 SL:238 D1 FF ISC $FFFF,x PC:D2 A:24 X:06 Y:15 P:25 SP:06 CYC:55 SL:238 D4 FF ISC $FFFF,x PC:D5 A:73 X:06 Y:15 P:24 SP:06 CYC:76 SL:238 D7 FF ISC $FFFF,x PC:D8 A:C0 X:06 Y:15 P:E4 SP:06 CYC:97 SL:238 DA FF ISC $FFFF,x PC:DB A:0C X:06 Y:15 P:25 SP:06 CYC:118 SL:238 DD FF ISC $FFFF,x PC:DE A:58 X:06 Y:15 P:24 SP:06 CYC:139 SL:238 E0 FF ISC $FFFF,x PC:E1 A:A2 X:06 Y:15 P:E4 SP:06 CYC:160 SL:238 E3 FF ISC $FFFF,x PC:E4 A:EB X:06 Y:15 P:A4 SP:06 CYC:181 SL:238 E6 FF ISC $FFFF,x PC:E7 A:33 X:06 Y:15 P:25 SP:06 CYC:202 SL:238 E9 FF ISC $FFFF,x PC:EA A:7B X:06 Y:15 P:24 SP:06 CYC:223 SL:238 EC FF ISC $00FF,x PC:ED A:C1 X:06 Y:15 P:E4 SP:06 CYC:244 SL:238 EF FF ISC $FFFF,x PC:F0 A:C0 X:06 Y:15 P:A5 SP:06 CYC:265 SL:238 F2 FF ISC $FFFF,x PC:F3 A:06 X:06 Y:15 P:25 SP:06 CYC:286 SL:238 F5 FF ISC $FFFF,x PC:F6 A:4B X:06 Y:15 P:24 SP:06 CYC:307 SL:238 F8 FF ISC $FFFF,x PC:F9 A:8E X:06 Y:15 P:E4 SP:06 CYC:328 SL:238 FB FF ISC $FFFF,x PC:FC A:D0 X:06 Y:15 P:A4 SP:06 CYC:8 SL:239 FE 1A NOP PC:FF A:11 X:06 Y:15 P:25 SP:06 CYC:29 SL:239 FF A3 LAX $(55A9,x) PC:0100 A:11 X:06 Y:15 P:25 SP:06 CYC:35 SL:239 0101 55 EOR $60,x PC:0102 A:C5 X:C5 Y:15 P:A5 SP:06 CYC:53 SL:239 0103 FF ISC $00FF,x PC:0104 A:3A X:C5 Y:15 P:25 SP:06 CYC:65 SL:239 0106 FF ISC $FFFF,x PC:0107 A:3A X:C5 Y:15 P:25 SP:06 CYC:86 SL:239 0109 FF ISC $FFFF,x PC:010A A:3A X:C5 Y:15 P:25 SP:06 CYC:107 SL:239 010C FF ISC $FFFF,x PC:010D A:39 X:C5 Y:15 P:25 SP:06 CYC:128 SL:239 010F FF ISC $FFFF,x PC:0110 A:37 X:C5 Y:15 P:25 SP:06 CYC:149 SL:239 0112 FF ISC $FFFF,x PC:0113 A:34 X:C5 Y:15 P:25 SP:06 CYC:170 SL:239 0115 FF ISC $FFFF,x PC:0116 A:30 X:C5 Y:15 P:25 SP:06 CYC:191 SL:239 0118 FF ISC $FFFF,x PC:0119 A:2B X:C5 Y:15 P:25 SP:06 CYC:212 SL:239 011B FF ISC $FFFF,x PC:011C A:25 X:C5 Y:15 P:25 SP:06 CYC:233 SL:239 011E FF ISC $FFFF,x PC:011F A:1E X:C5 Y:15 P:25 SP:06 CYC:254 SL:239 0121 FF ISC $FFFF,x PC:0122 A:16 X:C5 Y:15 P:25 SP:06 CYC:275 SL:239 0124 FF ISC $FFFF,x PC:0125 A:0D X:C5 Y:15 P:25 SP:06 CYC:296 SL:239 0127 FF ISC $FFFF,x PC:0128 A:03 X:C5 Y:15 P:25 SP:06 CYC:317 SL:239 012A FF ISC $FFFF,x PC:012B A:F8 X:C5 Y:15 P:A4 SP:06 CYC:338 SL:239 012D FF ISC $FFFF,x PC:012E A:EB X:C5 Y:15 P:A5 SP:06 CYC:18 SL:240 0130 FF ISC $FFFF,x PC:0131 A:DE X:C5 Y:15 P:A5 SP:06 CYC:39 SL:240 0133 FF ISC $FFFF,x PC:0134 A:D0 X:C5 Y:15 P:A5 SP:06 CYC:60 SL:240 0136 FF ISC $FFFF,x PC:0137 A:C1 X:C5 Y:15 P:A5 SP:06 CYC:81 SL:240 0139 FF ISC $FFFF,x PC:013A A:B1 X:C5 Y:15 P:A5 SP:06 CYC:102 SL:240 013C FF ISC $FFFF,x PC:013D A:A0 X:C5 Y:15 P:A5 SP:06 CYC:123 SL:240 013F FF ISC $FFFF,x PC:0140 A:8E X:C5 Y:15 P:A5 SP:06 CYC:144 SL:240 0142 FF ISC $FFFF,x PC:0143 A:7B X:C5 Y:15 P:65 SP:06 CYC:165 SL:240 0145 FF ISC $FFFF,x PC:0146 A:67 X:C5 Y:15 P:25 SP:06 CYC:186 SL:240 0148 FF ISC $FFFF,x PC:0149 A:52 X:C5 Y:15 P:25 SP:06 CYC:207 SL:240 014B FF ISC $FFFF,x PC:014C A:3C X:C5 Y:15 P:25 SP:06 CYC:228 SL:240 014E FF ISC $FFFF,x PC:014F A:25 X:C5 Y:15 P:25 SP:06 CYC:249 SL:240 0151 FF ISC $FFFF,x PC:0152 A:0D X:C5 Y:15 P:25 SP:06 CYC:270 SL:240 0154 FF ISC $FFFF,x PC:0155 A:F4 X:C5 Y:15 P:A4 SP:06 CYC:291 SL:240 0157 FF ISC $FFFF,x PC:0158 A:D9 X:C5 Y:15 P:A5 SP:06 CYC:312 SL:240 015A FF ISC $FFFF,x PC:015B A:BE X:C5 Y:15 P:A5 SP:06 CYC:333 SL:240 015D FF ISC $FFFF,x PC:015E A:A2 X:C5 Y:15 P:A5 SP:06 CYC:13 SL:241 0160 FF ISC $FFFF,x PC:0161 A:85 X:C5 Y:15 P:A5 SP:06 CYC:34 SL:241 0163 FF ISC $FFFF,x PC:0164 A:67 X:C5 Y:15 P:65 SP:06 CYC:55 SL:241 0166 FF ISC $FFFF,x PC:0167 A:48 X:C5 Y:15 P:25 SP:06 CYC:76 SL:241 0169 FF ISC $FFFF,x PC:016A A:28 X:C5 Y:15 P:25 SP:06 CYC:97 SL:241 016C FF ISC $FFFF,x PC:016D A:07 X:C5 Y:15 P:25 SP:06 CYC:118 SL:241 016F FF ISC $FFFF,x PC:0170 A:E5 X:C5 Y:15 P:A4 SP:06 CYC:139 SL:241 0172 FF ISC $FFFF,x PC:0173 A:C1 X:C5 Y:15 P:A5 SP:06 CYC:160 SL:241 0175 FF ISC $FFFF,x PC:0176 A:9D X:C5 Y:15 P:A5 SP:06 CYC:181 SL:241 0178 FF ISC $FFFF,x PC:0179 A:78 X:C5 Y:15 P:65 SP:06 CYC:202 SL:241 017B FF ISC $FFFF,x PC:017C A:52 X:C5 Y:15 P:25 SP:06 CYC:223 SL:241 017E 87 SAX $CE PC:017F A:2B X:C5 Y:15 P:25 SP:06 CYC:244 SL:241 0180 CE DEC $FFFF PC:0181 A:2B X:C5 Y:15 P:25 SP:06 CYC:253 SL:241 0183 FF ISC $FFFF,x PC:0184 A:2B X:C5 Y:15 P:A5 SP:06 CYC:271 SL:241 0186 FF ISC $FFFF,x PC:0187 A:03 X:C5 Y:15 P:25 SP:06 CYC:292 SL:241 0189 FF ISC $FFFF,x PC:018A A:DA X:C5 Y:15 P:A4 SP:06 CYC:313 SL:241 018C FF ISC $FFFF,x PC:018D A:AF X:C5 Y:15 P:A5 SP:06 CYC:334 SL:241 018F FF ISC $FFFF,x PC:0190 A:84 X:C5 Y:15 P:A5 SP:06 CYC:14 SL:242 0192 FF ISC $FFFF,x PC:0193 A:58 X:C5 Y:15 P:65 SP:06 CYC:35 SL:242 0195 FF ISC $FFFF,x PC:0196 A:2B X:C5 Y:15 P:25 SP:06 CYC:56 SL:242 0198 FF ISC $FFFF,x PC:0199 A:FD X:C5 Y:15 P:A4 SP:06 CYC:77 SL:242 019B FF ISC $FFFF,x PC:019C A:CD X:C5 Y:15 P:A5 SP:06 CYC:98 SL:242 019E FF ISC $FFFF,x PC:019F A:9D X:C5 Y:15 P:A5 SP:06 CYC:119 SL:242 01A1 FF ISC $FFFF,x PC:01A2 A:6C X:C5 Y:15 P:65 SP:06 CYC:140 SL:242 01A4 FF ISC $FFFF,x PC:01A5 A:3A X:C5 Y:15 P:25 SP:06 CYC:161 SL:242 01A7 FF ISC $FFFF,x PC:01A8 A:07 X:C5 Y:15 P:25 SP:06 CYC:182 SL:242 01AA FF ISC $FFFF,x PC:01AB A:D3 X:C5 Y:15 P:A4 SP:06 CYC:203 SL:242 01AD FF ISC $FFFF,x PC:01AE A:9D X:C5 Y:15 P:A5 SP:06 CYC:224 SL:242 01B0 FF ISC $FFFF,x PC:01B1 A:67 X:C5 Y:15 P:65 SP:06 CYC:245 SL:242 01B3 FF ISC $FFFF,x PC:01B4 A:30 X:C5 Y:15 P:25 SP:06 CYC:266 SL:242 01B6 FF ISC $FFFF,x PC:01B7 A:F8 X:C5 Y:15 P:A4 SP:06 CYC:287 SL:242 01B9 FF ISC $FFFF,x PC:01BA A:BE X:C5 Y:15 P:A5 SP:06 CYC:308 SL:242 01BC FF ISC $FFFF,x PC:01BD A:84 X:C5 Y:15 P:A5 SP:06 CYC:329 SL:242 01BF FF ISC $FFFF,x PC:01C0 A:49 X:C5 Y:15 P:65 SP:06 CYC:9 SL:243 01C2 FF ISC $00FF,x PC:01C3 A:0D X:C5 Y:15 P:25 SP:06 CYC:30 SL:243 01C5 FF ISC $FFFF,x PC:01C6 A:0C X:C5 Y:15 P:25 SP:06 CYC:51 SL:243 01C8 FF ISC $FFFF,x PC:01C9 A:CF X:C5 Y:15 P:A4 SP:06 CYC:72 SL:243 01CB FF ISC $FFFF,x PC:01CC A:90 X:C5 Y:15 P:A5 SP:06 CYC:93 SL:243 01CE FF ISC $FFFF,x PC:01CF A:51 X:C5 Y:15 P:65 SP:06 CYC:114 SL:243 01D1 FF ISC $FFFF,x PC:01D2 A:11 X:C5 Y:15 P:25 SP:06 CYC:135 SL:243 01D4 FF ISC $FFFF,x PC:01D5 A:D0 X:C5 Y:15 P:A4 SP:06 CYC:156 SL:243 01D7 FF ISC $FFFF,x PC:01D8 A:8D X:C5 Y:15 P:A5 SP:06 CYC:177 SL:243 01DA FF ISC $FFFF,x PC:01DB A:4A X:C5 Y:15 P:65 SP:06 CYC:198 SL:243 01DD FF ISC $FFFF,x PC:01DE A:06 X:C5 Y:15 P:25 SP:06 CYC:219 SL:243 01E0 FF ISC $FFFF,x PC:01E1 A:C1 X:C5 Y:15 P:A4 SP:06 CYC:240 SL:243 01E3 FF ISC $FFFF,x PC:01E4 A:7A X:C5 Y:15 P:65 SP:06 CYC:261 SL:243 01E6 FF ISC $FFFF,x PC:01E7 A:33 X:C5 Y:15 P:25 SP:06 CYC:282 SL:243 01E9 FF ISC $FFFF,x PC:01EA A:EB X:C5 Y:15 P:A4 SP:06 CYC:303 SL:243 01EC FF ISC $FFFF,x PC:01ED A:A1 X:C5 Y:15 P:A5 SP:06 CYC:324 SL:243 01EF FF ISC $3455,x PC:01F0 A:57 X:C5 Y:15 P:65 SP:06 CYC:4 SL:244 01F2 55 EOR $34,x PC:01F3 A:55 X:C5 Y:15 P:25 SP:06 CYC:25 SL:244 01F4 55 EOR $34,x PC:01F5 A:AA X:C5 Y:15 P:A5 SP:06 CYC:37 SL:244 01F6 55 EOR $34,x PC:01F7 A:55 X:C5 Y:15 P:25 SP:06 CYC:49 SL:244 01F8 55 EOR $34,x PC:01F9 A:AA X:C5 Y:15 P:A5 SP:06 CYC:61 SL:244 01FA AB LAX #$F7 PC:01FB A:55 X:C5 Y:15 P:25 SP:06 CYC:73 SL:244 01FC 6D ADC $8435 PC:01FD A:F7 X:F7 Y:15 P:A5 SP:06 CYC:79 SL:244 01FF 00 BRK PC:0200 A:39 X:F7 Y:15 P:25 SP:06 CYC:91 SL:244 **BREAK**C5F4 40 RTI PC:C5F5 A:39 X:F7 Y:15 P:25 SP:03 CYC:112 SL:244 0201 DB DCP $FFFF,y PC:0202 A:39 X:F7 Y:15 P:25 SP:06 CYC:130 SL:244 0204 FF ISC $FFFF,x PC:0205 A:39 X:F7 Y:15 P:24 SP:06 CYC:151 SL:244 0207 FF ISC $FFFF,x PC:0208 A:38 X:F7 Y:15 P:25 SP:06 CYC:172 SL:244 020A FF ISC $FFFF,x PC:020B A:37 X:F7 Y:15 P:25 SP:06 CYC:193 SL:244 020D FF ISC $FFFF,x PC:020E A:35 X:F7 Y:15 P:25 SP:06 CYC:214 SL:244 0210 FF ISC $FFFF,x PC:0211 A:32 X:F7 Y:15 P:25 SP:06 CYC:235 SL:244 0213 FF ISC $FFFF,x PC:0214 A:2E X:F7 Y:15 P:25 SP:06 CYC:256 SL:244 0216 FF ISC $FFFF,x PC:0217 A:29 X:F7 Y:15 P:25 SP:06 CYC:277 SL:244 0219 FF ISC $FFFF,x PC:021A A:23 X:F7 Y:15 P:25 SP:06 CYC:298 SL:244 021C FF ISC $FFFF,x PC:021D A:1C X:F7 Y:15 P:25 SP:06 CYC:319 SL:244 021F FF ISC $FFFF,x PC:0220 A:14 X:F7 Y:15 P:25 SP:06 CYC:340 SL:244 0222 FF ISC $FFFF,x PC:0223 A:0B X:F7 Y:15 P:25 SP:06 CYC:20 SL:245 0225 FF ISC $FFFF,x PC:0226 A:01 X:F7 Y:15 P:25 SP:06 CYC:41 SL:245 0228 FF ISC $FFFF,x PC:0229 A:F6 X:F7 Y:15 P:A4 SP:06 CYC:62 SL:245 022B FF ISC $FFFF,x PC:022C A:E9 X:F7 Y:15 P:A5 SP:06 CYC:83 SL:245 022E FF ISC $FFFF,x PC:022F A:DC X:F7 Y:15 P:A5 SP:06 CYC:104 SL:245 0231 FF ISC $FFFF,x PC:0232 A:CE X:F7 Y:15 P:A5 SP:06 CYC:125 SL:245 0234 FF ISC $FFFF,x PC:0235 A:BF X:F7 Y:15 P:A5 SP:06 CYC:146 SL:245 0237 FF ISC $FFFF,x PC:0238 A:AF X:F7 Y:15 P:A5 SP:06 CYC:167 SL:245 023A FF ISC $FFFF,x PC:023B A:9E X:F7 Y:15 P:A5 SP:06 CYC:188 SL:245 023D FF ISC $FFFF,x PC:023E A:8C X:F7 Y:15 P:A5 SP:06 CYC:209 SL:245 0240 FF ISC $FFFF,x PC:0241 A:79 X:F7 Y:15 P:65 SP:06 CYC:230 SL:245 0243 FF ISC $12FF,x PC:0244 A:65 X:F7 Y:15 P:25 SP:06 CYC:251 SL:245 0246 FF ISC $FFFF,x PC:0247 A:65 X:F7 Y:15 P:25 SP:06 CYC:272 SL:245 0249 FF ISC $FFFF,x PC:024A A:50 X:F7 Y:15 P:25 SP:06 CYC:293 SL:245 024C FF ISC $FFFF,x PC:024D A:3A X:F7 Y:15 P:25 SP:06 CYC:314 SL:245 024F FF ISC $FFFF,x PC:0250 A:23 X:F7 Y:15 P:25 SP:06 CYC:335 SL:245 0252 FF ISC $FFFF,x PC:0253 A:0B X:F7 Y:15 P:25 SP:06 CYC:15 SL:246 0255 FF ISC $FFFF,x PC:0256 A:F2 X:F7 Y:15 P:A4 SP:06 CYC:36 SL:246 0258 FF ISC $FFFF,x PC:0259 A:D7 X:F7 Y:15 P:A5 SP:06 CYC:57 SL:246 025B FF ISC $FFFF,x PC:025C A:BC X:F7 Y:15 P:A5 SP:06 CYC:78 SL:246 025E FF ISC $FFFF,x PC:025F A:A0 X:F7 Y:15 P:A5 SP:06 CYC:99 SL:246 0261 FF ISC $FFFF,x PC:0262 A:83 X:F7 Y:15 P:A5 SP:06 CYC:120 SL:246 0264 FF ISC $FFFF,x PC:0265 A:65 X:F7 Y:15 P:65 SP:06 CYC:141 SL:246 0267 FF ISC $FFFF,x PC:0268 A:46 X:F7 Y:15 P:25 SP:06 CYC:162 SL:246 026A FF ISC $FFFF,x PC:026B A:26 X:F7 Y:15 P:25 SP:06 CYC:183 SL:246 026D FF ISC $FFFF,x PC:026E A:05 X:F7 Y:15 P:25 SP:06 CYC:204 SL:246 0270 FF ISC $FFFF,x PC:0271 A:E3 X:F7 Y:15 P:A4 SP:06 CYC:225 SL:246 0273 FF ISC $FFFF,x PC:0274 A:BF X:F7 Y:15 P:A5 SP:06 CYC:246 SL:246 0276 FF ISC $FFFF,x PC:0277 A:9B X:F7 Y:15 P:A5 SP:06 CYC:267 SL:246 0279 FF ISC $FFFF,x PC:027A A:76 X:F7 Y:15 P:65 SP:06 CYC:288 SL:246 027C FF ISC $FFFF,x PC:027D A:50 X:F7 Y:15 P:25 SP:06 CYC:309 SL:246 027F FF ISC $FFFF,x PC:0280 A:29 X:F7 Y:15 P:25 SP:06 CYC:330 SL:246 0282 FF ISC $FFFF,x PC:0283 A:01 X:F7 Y:15 P:25 SP:06 CYC:10 SL:247 0285 FF ISC $FFFF,x PC:0286 A:D8 X:F7 Y:15 P:A4 SP:06 CYC:31 SL:247 0288 FF ISC $FFFF,x PC:0289 A:AD X:F7 Y:15 P:A5 SP:06 CYC:52 SL:247 028B FF ISC $FFFF,x PC:028C A:82 X:F7 Y:15 P:A5 SP:06 CYC:73 SL:247 028E FF ISC $FFFF,x PC:028F A:56 X:F7 Y:15 P:65 SP:06 CYC:94 SL:247 0291 FF ISC $FFFF,x PC:0292 A:29 X:F7 Y:15 P:25 SP:06 CYC:115 SL:247 0294 FF ISC $FFFF,x PC:0295 A:FB X:F7 Y:15 P:A4 SP:06 CYC:136 SL:247 0297 FF ISC $FFFF,x PC:0298 A:CB X:F7 Y:15 P:A5 SP:06 CYC:157 SL:247 029A FF ISC $FFFF,x PC:029B A:9B X:F7 Y:15 P:A5 SP:06 CYC:178 SL:247 029D FF ISC $FFFF,x PC:029E A:6A X:F7 Y:15 P:65 SP:06 CYC:199 SL:247 02A0 FF ISC $FFFF,x PC:02A1 A:38 X:F7 Y:15 P:25 SP:06 CYC:220 SL:247 02A3 FF ISC $FFFF,x PC:02A4 A:05 X:F7 Y:15 P:25 SP:06 CYC:241 SL:247 02A6 FF ISC $FFFF,x PC:02A7 A:D1 X:F7 Y:15 P:A4 SP:06 CYC:262 SL:247 02A9 FF ISC $FFFF,x PC:02AA A:9B X:F7 Y:15 P:A5 SP:06 CYC:283 SL:247 02AC FF ISC $FFFF,x PC:02AD A:65 X:F7 Y:15 P:65 SP:06 CYC:304 SL:247 02AF FF ISC $FFFF,x PC:02B0 A:2E X:F7 Y:15 P:25 SP:06 CYC:325 SL:247 02B2 FF ISC $FFFF,x PC:02B3 A:F6 X:F7 Y:15 P:A4 SP:06 CYC:5 SL:248 02B5 FF ISC $FFFF,x PC:02B6 A:BC X:F7 Y:15 P:A5 SP:06 CYC:26 SL:248 02B8 FF ISC $FFFF,x PC:02B9 A:82 X:F7 Y:15 P:A5 SP:06 CYC:47 SL:248 02BB FF ISC $FFFF,x PC:02BC A:47 X:F7 Y:15 P:65 SP:06 CYC:68 SL:248 02BE FF ISC $FFFF,x PC:02BF A:0B X:F7 Y:15 P:25 SP:06 CYC:89 SL:248 02C1 FF ISC $FFFF,x PC:02C2 A:CE X:F7 Y:15 P:A4 SP:06 CYC:110 SL:248 02C4 FF ISC $FFFF,x PC:02C5 A:8F X:F7 Y:15 P:A5 SP:06 CYC:131 SL:248 02C7 FF ISC $FFFF,x PC:02C8 A:50 X:F7 Y:15 P:65 SP:06 CYC:152 SL:248 02CA FF ISC $FFFF,x PC:02CB A:10 X:F7 Y:15 P:25 SP:06 CYC:173 SL:248 02CD FF ISC $FFFF,x PC:02CE A:CF X:F7 Y:15 P:A4 SP:06 CYC:194 SL:248 02D0 FF ISC $FFFF,x PC:02D1 A:8C X:F7 Y:15 P:A5 SP:06 CYC:215 SL:248 02D3 FF ISC $FFFF,x PC:02D4 A:49 X:F7 Y:15 P:65 SP:06 CYC:236 SL:248 02D6 FF ISC $FFFF,x PC:02D7 A:05 X:F7 Y:15 P:25 SP:06 CYC:257 SL:248 02D9 FF ISC $FFFF,x PC:02DA A:C0 X:F7 Y:15 P:A4 SP:06 CYC:278 SL:248 02DC FF ISC $FFFF,x PC:02DD A:79 X:F7 Y:15 P:65 SP:06 CYC:299 SL:248 02DF FF ISC $FFFF,x PC:02E0 A:32 X:F7 Y:15 P:25 SP:06 CYC:320 SL:248 02E2 FF ISC $FFFF,x PC:02E3 A:EA X:F7 Y:15 P:A4 SP:06 CYC:0 SL:249 02E5 FF ISC $FFFF,x PC:02E6 A:A0 X:F7 Y:15 P:A5 SP:06 CYC:21 SL:249 02E8 FF ISC $FFFF,x PC:02E9 A:56 X:F7 Y:15 P:65 SP:06 CYC:42 SL:249 02EB FF ISC $FFFF,x PC:02EC A:0B X:F7 Y:15 P:25 SP:06 CYC:63 SL:249 02EE FF ISC $FFFF,x PC:02EF A:BF X:F7 Y:15 P:A4 SP:06 CYC:84 SL:249 02F1 FF ISC $FFFF,x PC:02F2 A:71 X:F7 Y:15 P:65 SP:06 CYC:105 SL:249 02F4 FF ISC $FFFF,x PC:02F5 A:23 X:F7 Y:15 P:25 SP:06 CYC:126 SL:249 02F7 FF ISC $FFFF,x PC:02F8 A:D4 X:F7 Y:15 P:A4 SP:06 CYC:147 SL:249 02FA FF ISC $FFFF,x PC:02FB A:83 X:F7 Y:15 P:A5 SP:06 CYC:168 SL:249 02FD FF ISC $00FF,x PC:02FE A:32 X:F7 Y:15 P:65 SP:06 CYC:189 SL:249 0300 89 NOP #$AA PC:0301 A:DC X:F7 Y:15 P:A4 SP:06 CYC:210 SL:249 0302 60 RTS PC:0303 A:DC X:F7 Y:15 P:A4 SP:06 CYC:216 SL:249 00 00 BRK PC:01 A:DC X:F7 Y:15 P:A4 SP:08 CYC:234 SL:249 **BREAK**C5F4 40 RTI PC:C5F5 A:DC X:F7 Y:15 P:A4 SP:05 CYC:255 SL:249 02 FF ISC $FFFF,x PC:03 A:DC X:F7 Y:15 P:A4 SP:08 CYC:273 SL:249 05 BE LDX $FFFF,y PC:06 A:89 X:F7 Y:15 P:A5 SP:08 CYC:294 SL:249 08 F7 ISC $EF,x PC:09 A:89 X:FF Y:15 P:A5 SP:08 CYC:309 SL:249 0A DF DCP $FFFF,x PC:0B A:88 X:FF Y:15 P:A5 SP:08 CYC:327 SL:249 0D FF ISC $BFFF,x PC:0E A:88 X:FF Y:15 P:25 SP:08 CYC:7 SL:250 10 00 BRK PC:11 A:C7 X:FF Y:15 P:A4 SP:08 CYC:28 SL:250 **BREAK**C5F4 40 RTI PC:C5F5 A:C7 X:FF Y:15 P:A4 SP:05 CYC:49 SL:250 12 FF ISC $FFFF,x PC:13 A:C7 X:FF Y:15 P:A4 SP:08 CYC:67 SL:250 15 FF ISC $FFFF,x PC:16 A:AC X:FF Y:15 P:A5 SP:08 CYC:88 SL:250 18 FF ISC $FFFF,x PC:19 A:91 X:FF Y:15 P:A5 SP:08 CYC:109 SL:250 1B FF ISC $FFFF,x PC:1C A:75 X:FF Y:15 P:65 SP:08 CYC:130 SL:250 1E FF ISC $FFFF,x PC:1F A:58 X:FF Y:15 P:25 SP:08 CYC:151 SL:250 21 FF ISC $FFFF,x PC:22 A:3A X:FF Y:15 P:25 SP:08 CYC:172 SL:250 24 FF ISC $FFFF,x PC:25 A:1B X:FF Y:15 P:25 SP:08 CYC:193 SL:250 27 FF ISC $FFFF,x PC:28 A:FB X:FF Y:15 P:A4 SP:08 CYC:214 SL:250 2A FF ISC $FFFF,x PC:2B A:D9 X:FF Y:15 P:A5 SP:08 CYC:235 SL:250 2D FF ISC $FFFF,x PC:2E A:B7 X:FF Y:15 P:A5 SP:08 CYC:256 SL:250 30 FF ISC $FFFF,x PC:31 A:94 X:FF Y:15 P:A5 SP:08 CYC:277 SL:250 33 44 NOP $04 PC:34 A:70 X:FF Y:15 P:65 SP:08 CYC:298 SL:250 35 FF ISC $FFFF,x PC:36 A:70 X:FF Y:15 P:65 SP:08 CYC:307 SL:250 38 FF ISC $FFFF,x PC:39 A:4B X:FF Y:15 P:25 SP:08 CYC:328 SL:250 3B FF ISC $FFFF,x PC:3C A:25 X:FF Y:15 P:25 SP:08 CYC:8 SL:251 3E FF ISC $FFFF,x PC:3F A:FE X:FF Y:15 P:A4 SP:08 CYC:29 SL:251 41 FF ISC $FFFF,x PC:42 A:D5 X:FF Y:15 P:A5 SP:08 CYC:50 SL:251 44 04 NOP $48 PC:45 A:AC X:FF Y:15 P:A5 SP:08 CYC:71 SL:251 46 05 ORA $9B PC:47 A:AC X:FF Y:15 P:A5 SP:08 CYC:80 SL:251 48 06 ASL $00 PC:49 A:FF X:FF Y:15 P:A5 SP:08 CYC:89 SL:251 4A FF ISC $FFFF,x PC:4B A:FF X:FF Y:15 P:26 SP:08 CYC:104 SL:251 4D FF ISC $00FF,x PC:4E A:D4 X:FF Y:15 P:A5 SP:08 CYC:125 SL:251 50 FF ISC $FFFF,x PC:51 A:4F X:FF Y:15 P:25 SP:08 CYC:146 SL:251 53 FF ISC $00FF,x PC:54 A:24 X:FF Y:15 P:25 SP:08 CYC:167 SL:251 56 66 ROR $FF PC:57 A:9E X:FF Y:15 P:E4 SP:08 CYC:188 SL:251 58 FF ISC $FFFF,x PC:59 A:9E X:FF Y:15 P:65 SP:08 CYC:203 SL:251 5B FF ISC $FFFF,x PC:5C A:72 X:FF Y:15 P:65 SP:08 CYC:224 SL:251 5E FF ISC $89FF,x PC:5F A:45 X:FF Y:15 P:25 SP:08 CYC:245 SL:251 61 04 NOP $FF PC:62 A:75 X:FF Y:15 P:24 SP:08 CYC:266 SL:251 63 FF ISC $FFFF,x PC:64 A:75 X:FF Y:15 P:24 SP:08 CYC:275 SL:251 66 FF ISC $3287,x PC:67 A:46 X:FF Y:15 P:25 SP:08 CYC:296 SL:251 69 FF ISC $FFFF,x PC:6A A:43 X:FF Y:15 P:25 SP:08 CYC:317 SL:251 6C FF ISC $FFFF,x PC:6D A:14 X:FF Y:15 P:25 SP:08 CYC:338 SL:251 6F FF ISC $FFFF,x PC:70 A:E4 X:FF Y:15 P:A4 SP:08 CYC:18 SL:252 72 FF ISC $FFFF,x PC:73 A:B2 X:FF Y:15 P:A5 SP:08 CYC:39 SL:252 75 FF ISC $FFFF,x PC:76 A:80 X:FF Y:15 P:A5 SP:08 CYC:60 SL:252 78 33 RLA ($FF), y PC:79 A:4D X:FF Y:15 P:65 SP:08 CYC:81 SL:252 7A FF ISC $FFFF,x PC:7B A:4D X:FF Y:15 P:65 SP:08 CYC:105 SL:252 7D FF ISC $69FF,x PC:7E A:19 X:FF Y:15 P:25 SP:08 CYC:126 SL:252 80 00 BRK PC:81 A:17 X:FF Y:15 P:25 SP:08 CYC:147 SL:252 **BREAK**C5F4 40 RTI PC:C5F5 A:17 X:FF Y:15 P:25 SP:05 CYC:168 SL:252 82 00 BRK PC:83 A:17 X:FF Y:15 P:25 SP:08 CYC:186 SL:252 **BREAK**C5F4 40 RTI PC:C5F5 A:17 X:FF Y:15 P:25 SP:05 CYC:207 SL:252 84 03 SLO $(FFFF,x) PC:85 A:17 X:FF Y:15 P:25 SP:08 CYC:225 SL:252 86 FF ISC $FFFF,x PC:87 A:57 X:FF Y:15 P:24 SP:08 CYC:249 SL:252 89 BB LAS $FF03,y PC:8A A:21 X:FF Y:15 P:25 SP:08 CYC:270 SL:252 8C FF ISC $FFFF,x PC:8D A:00 X:00 Y:15 P:27 SP:00 CYC:282 SL:252 8F FF ISC $FFFF,x PC:90 A:3B X:00 Y:15 P:24 SP:00 CYC:303 SL:252 92 FF ISC $FFFF,x PC:93 A:75 X:00 Y:15 P:24 SP:00 CYC:324 SL:252 95 FF ISC $FFFF,x PC:96 A:AF X:00 Y:15 P:E4 SP:00 CYC:4 SL:253 98 FF ISC $FFFF,x PC:99 A:E9 X:00 Y:15 P:A4 SP:00 CYC:25 SL:253 9B FF ISC $FFFF,x PC:9C A:23 X:00 Y:15 P:25 SP:00 CYC:46 SL:253 9E FF ISC $FFFF,x PC:9F A:5E X:00 Y:15 P:24 SP:00 CYC:67 SL:253 A1 FF ISC $FFFF,x PC:A2 A:98 X:00 Y:15 P:E4 SP:00 CYC:88 SL:253 A4 FF ISC $FFFF,x PC:A5 A:D2 X:00 Y:15 P:A4 SP:00 CYC:109 SL:253 A7 FF ISC $FFFF,x PC:A8 A:0C X:00 Y:15 P:25 SP:00 CYC:130 SL:253 AA FF ISC $FFFF,x PC:AB A:47 X:00 Y:15 P:24 SP:00 CYC:151 SL:253 AD FF ISC $FFFF,x PC:AE A:81 X:00 Y:15 P:E4 SP:00 CYC:172 SL:253 B0 FF ISC $FFFF,x PC:B1 A:BB X:00 Y:15 P:A4 SP:00 CYC:193 SL:253 B3 FF ISC $FFFF,x PC:B4 A:F5 X:00 Y:15 P:A4 SP:00 CYC:214 SL:253 B6 FF ISC $FFFF,x PC:B7 A:2F X:00 Y:15 P:25 SP:00 CYC:235 SL:253 B9 FF ISC $FFFF,x PC:BA A:6A X:00 Y:15 P:24 SP:00 CYC:256 SL:253 BC FF ISC $FFFF,x PC:BD A:A4 X:00 Y:15 P:E4 SP:00 CYC:277 SL:253 BF FF ISC $FFFF,x PC:C0 A:DE X:00 Y:15 P:A4 SP:00 CYC:298 SL:253 C2 FF ISC $4AFF,x PC:C3 A:18 X:00 Y:15 P:25 SP:00 CYC:319 SL:253 C5 FF ISC $FFFF,x PC:C6 A:CE X:00 Y:15 P:A4 SP:00 CYC:340 SL:253 C8 FF ISC $FFFF,x PC:C9 A:08 X:00 Y:15 P:25 SP:00 CYC:20 SL:254 CB FF ISC $FFFF,x PC:CC A:43 X:00 Y:15 P:24 SP:00 CYC:41 SL:254 CE 01 ORA $(FFFF,x) PC:CF A:7D X:00 Y:15 P:24 SP:00 CYC:62 SL:254 D0 FF ISC $FFFF,x PC:D1 A:FF X:00 Y:15 P:A4 SP:00 CYC:80 SL:254 D3 FF ISC $FFFF,x PC:D4 A:39 X:00 Y:15 P:25 SP:00 CYC:101 SL:254 D6 FF ISC $FFFF,x PC:D7 A:74 X:00 Y:15 P:24 SP:00 CYC:122 SL:254 D9 FF ISC $FFFF,x PC:DA A:AE X:00 Y:15 P:E4 SP:00 CYC:143 SL:254 DC FF ISC $FFFF,x PC:DD A:E8 X:00 Y:15 P:A4 SP:00 CYC:164 SL:254 DF FF ISC $FFFF,x PC:E0 A:22 X:00 Y:15 P:25 SP:00 CYC:185 SL:254 E2 FF ISC $FFFF,x PC:E3 A:5D X:00 Y:15 P:24 SP:00 CYC:206 SL:254 E5 FF ISC $FFFF,x PC:E6 A:97 X:00 Y:15 P:E4 SP:00 CYC:227 SL:254 E8 FF ISC $FFFF,x PC:E9 A:D1 X:00 Y:15 P:A4 SP:00 CYC:248 SL:254 EB FF ISC $FFFF,x PC:EC A:0B X:00 Y:15 P:25 SP:00 CYC:269 SL:254 EE 01 ORA $(FFFF,x) PC:EF A:46 X:00 Y:15 P:24 SP:00 CYC:290 SL:254 F0 FF ISC $FFFF,x PC:F1 A:FF X:00 Y:15 P:A4 SP:00 CYC:308 SL:254 F3 FF ISC $FFFF,x PC:F4 A:39 X:00 Y:15 P:25 SP:00 CYC:329 SL:254 F6 52 KIL PC:F7 A:74 X:00 Y:15 P:24 SP:00 CYC:9 SL:255 F7 FF ISC $FFFF,x PC:F8 A:74 X:00 Y:15 P:24 SP:00 CYC:12 SL:255 FA FF ISC $FFFF,x PC:FB A:AE X:00 Y:15 P:E4 SP:00 CYC:30 SL:255 FD FF ISC $5135,x PC:FE A:E8 X:00 Y:15 P:A4 SP:00 CYC:51 SL:255 0100 A9 LDA #$55 PC:0101 A:96 X:00 Y:15 P:A5 SP:00 CYC:72 SL:255 0102 60 RTS PC:0103 A:55 X:00 Y:15 P:25 SP:00 CYC:78 SL:255 6056 00 BRK PC:6057 A:55 X:00 Y:15 P:25 SP:02 CYC:96 SL:255 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:117 SL:255 6058 00 BRK PC:6059 A:55 X:00 Y:15 P:25 SP:02 CYC:135 SL:255 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:156 SL:255 605A 00 BRK PC:605B A:55 X:00 Y:15 P:25 SP:02 CYC:174 SL:255 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:195 SL:255 605C 00 BRK PC:605D A:55 X:00 Y:15 P:25 SP:02 CYC:213 SL:255 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:234 SL:255 605E 00 BRK PC:605F A:55 X:00 Y:15 P:25 SP:02 CYC:252 SL:255 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:273 SL:255 6060 00 BRK PC:6061 A:55 X:00 Y:15 P:25 SP:02 CYC:291 SL:255 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:312 SL:255 6062 00 BRK PC:6063 A:55 X:00 Y:15 P:25 SP:02 CYC:330 SL:255 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:10 SL:256 6064 00 BRK PC:6065 A:55 X:00 Y:15 P:25 SP:02 CYC:28 SL:256 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:49 SL:256 6066 00 BRK PC:6067 A:55 X:00 Y:15 P:25 SP:02 CYC:67 SL:256 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:88 SL:256 6068 00 BRK PC:6069 A:55 X:00 Y:15 P:25 SP:02 CYC:106 SL:256 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:127 SL:256 606A 00 BRK PC:606B A:55 X:00 Y:15 P:25 SP:02 CYC:145 SL:256 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:166 SL:256 606C 00 BRK PC:606D A:55 X:00 Y:15 P:25 SP:02 CYC:184 SL:256 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:205 SL:256 606E 00 BRK PC:606F A:55 X:00 Y:15 P:25 SP:02 CYC:223 SL:256 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:244 SL:256 6070 00 BRK PC:6071 A:55 X:00 Y:15 P:25 SP:02 CYC:262 SL:256 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:283 SL:256 6072 00 BRK PC:6073 A:55 X:00 Y:15 P:25 SP:02 CYC:301 SL:256 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:322 SL:256 6074 00 BRK PC:6075 A:55 X:00 Y:15 P:25 SP:02 CYC:340 SL:256 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:20 SL:257 6076 00 BRK PC:6077 A:55 X:00 Y:15 P:25 SP:02 CYC:38 SL:257 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:59 SL:257 6078 00 BRK PC:6079 A:55 X:00 Y:15 P:25 SP:02 CYC:77 SL:257 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:98 SL:257 607A 00 BRK PC:607B A:55 X:00 Y:15 P:25 SP:02 CYC:116 SL:257 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:137 SL:257 607C 00 BRK PC:607D A:55 X:00 Y:15 P:25 SP:02 CYC:155 SL:257 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:176 SL:257 607E 00 BRK PC:607F A:55 X:00 Y:15 P:25 SP:02 CYC:194 SL:257 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:215 SL:257 6080 00 BRK PC:6081 A:55 X:00 Y:15 P:25 SP:02 CYC:233 SL:257 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:254 SL:257 6082 00 BRK PC:6083 A:55 X:00 Y:15 P:25 SP:02 CYC:272 SL:257 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:293 SL:257 6084 00 BRK PC:6085 A:55 X:00 Y:15 P:25 SP:02 CYC:311 SL:257 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:332 SL:257 6086 00 BRK PC:6087 A:55 X:00 Y:15 P:25 SP:02 CYC:9 SL:258 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:30 SL:258 6088 00 BRK PC:6089 A:55 X:00 Y:15 P:25 SP:02 CYC:48 SL:258 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:69 SL:258 608A 00 BRK PC:608B A:55 X:00 Y:15 P:25 SP:02 CYC:87 SL:258 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:108 SL:258 608C 00 BRK PC:608D A:55 X:00 Y:15 P:25 SP:02 CYC:126 SL:258 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:147 SL:258 608E 00 BRK PC:608F A:55 X:00 Y:15 P:25 SP:02 CYC:165 SL:258 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:186 SL:258 6090 00 BRK PC:6091 A:55 X:00 Y:15 P:25 SP:02 CYC:204 SL:258 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:225 SL:258 6092 00 BRK PC:6093 A:55 X:00 Y:15 P:25 SP:02 CYC:243 SL:258 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:264 SL:258 6094 00 BRK PC:6095 A:55 X:00 Y:15 P:25 SP:02 CYC:282 SL:258 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:303 SL:258 6096 00 BRK PC:6097 A:55 X:00 Y:15 P:25 SP:02 CYC:321 SL:258 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:1 SL:259 6098 00 BRK PC:6099 A:55 X:00 Y:15 P:25 SP:02 CYC:19 SL:259 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:40 SL:259 609A 00 BRK PC:609B A:55 X:00 Y:15 P:25 SP:02 CYC:58 SL:259 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:79 SL:259 609C 00 BRK PC:609D A:55 X:00 Y:15 P:25 SP:02 CYC:97 SL:259 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:118 SL:259 609E 00 BRK PC:609F A:55 X:00 Y:15 P:25 SP:02 CYC:136 SL:259 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:157 SL:259 60A0 00 BRK PC:60A1 A:55 X:00 Y:15 P:25 SP:02 CYC:175 SL:259 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:196 SL:259 60A2 00 BRK PC:60A3 A:55 X:00 Y:15 P:25 SP:02 CYC:214 SL:259 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:235 SL:259 60A4 00 BRK PC:60A5 A:55 X:00 Y:15 P:25 SP:02 CYC:253 SL:259 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:274 SL:259 60A6 00 BRK PC:60A7 A:55 X:00 Y:15 P:25 SP:02 CYC:292 SL:259 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:313 SL:259 60A8 00 BRK PC:60A9 A:55 X:00 Y:15 P:25 SP:02 CYC:331 SL:259 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:11 SL:260 60AA 00 BRK PC:60AB A:55 X:00 Y:15 P:25 SP:02 CYC:29 SL:260 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:50 SL:260 60AC 00 BRK PC:60AD A:55 X:00 Y:15 P:25 SP:02 CYC:68 SL:260 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:89 SL:260 60AE 00 BRK PC:60AF A:55 X:00 Y:15 P:25 SP:02 CYC:107 SL:260 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:128 SL:260 60B0 00 BRK PC:60B1 A:55 X:00 Y:15 P:25 SP:02 CYC:146 SL:260 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:167 SL:260 60B2 00 BRK PC:60B3 A:55 X:00 Y:15 P:25 SP:02 CYC:185 SL:260 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:206 SL:260 60B4 00 BRK PC:60B5 A:55 X:00 Y:15 P:25 SP:02 CYC:224 SL:260 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:245 SL:260 60B6 00 BRK PC:60B7 A:55 X:00 Y:15 P:25 SP:02 CYC:263 SL:260 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:284 SL:260 60B8 00 BRK PC:60B9 A:55 X:00 Y:15 P:25 SP:02 CYC:302 SL:260 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y:15 P:25 SP:FF CYC:323 SL:260 60BA 00 BRK PC:60BB A:55 X:00 Y:15 P:25 SP:02 CYC:0 SL:261 **BREAK**C5F4 40 RTI PC:C5F5 A:55 X:00 Y ================================================ FILE: src/test/resources/nestest/nestest.log ================================================ C000 4C F5 C5 JMP $C5F5 A:00 X:00 Y:00 P:24 SP:FD CYC: 0 SL:241 C5F5 A2 00 LDX #$00 A:00 X:00 Y:00 P:24 SP:FD CYC: 9 SL:241 C5F7 86 00 STX $00 = 00 A:00 X:00 Y:00 P:26 SP:FD CYC: 15 SL:241 C5F9 86 10 STX $10 = 00 A:00 X:00 Y:00 P:26 SP:FD CYC: 24 SL:241 C5FB 86 11 STX $11 = 00 A:00 X:00 Y:00 P:26 SP:FD CYC: 33 SL:241 C5FD 20 2D C7 JSR $C72D A:00 X:00 Y:00 P:26 SP:FD CYC: 42 SL:241 C72D EA NOP A:00 X:00 Y:00 P:26 SP:FB CYC: 60 SL:241 C72E 38 SEC A:00 X:00 Y:00 P:26 SP:FB CYC: 66 SL:241 C72F B0 04 BCS $C735 A:00 X:00 Y:00 P:27 SP:FB CYC: 72 SL:241 C735 EA NOP A:00 X:00 Y:00 P:27 SP:FB CYC: 81 SL:241 C736 18 CLC A:00 X:00 Y:00 P:27 SP:FB CYC: 87 SL:241 C737 B0 03 BCS $C73C A:00 X:00 Y:00 P:26 SP:FB CYC: 93 SL:241 C739 4C 40 C7 JMP $C740 A:00 X:00 Y:00 P:26 SP:FB CYC: 99 SL:241 C740 EA NOP A:00 X:00 Y:00 P:26 SP:FB CYC:108 SL:241 C741 38 SEC A:00 X:00 Y:00 P:26 SP:FB CYC:114 SL:241 C742 90 03 BCC $C747 A:00 X:00 Y:00 P:27 SP:FB CYC:120 SL:241 C744 4C 4B C7 JMP $C74B A:00 X:00 Y:00 P:27 SP:FB CYC:126 SL:241 C74B EA NOP A:00 X:00 Y:00 P:27 SP:FB CYC:135 SL:241 C74C 18 CLC A:00 X:00 Y:00 P:27 SP:FB CYC:141 SL:241 C74D 90 04 BCC $C753 A:00 X:00 Y:00 P:26 SP:FB CYC:147 SL:241 C753 EA NOP A:00 X:00 Y:00 P:26 SP:FB CYC:156 SL:241 C754 A9 00 LDA #$00 A:00 X:00 Y:00 P:26 SP:FB CYC:162 SL:241 C756 F0 04 BEQ $C75C A:00 X:00 Y:00 P:26 SP:FB CYC:168 SL:241 C75C EA NOP A:00 X:00 Y:00 P:26 SP:FB CYC:177 SL:241 C75D A9 40 LDA #$40 A:00 X:00 Y:00 P:26 SP:FB CYC:183 SL:241 C75F F0 03 BEQ $C764 A:40 X:00 Y:00 P:24 SP:FB CYC:189 SL:241 C761 4C 68 C7 JMP $C768 A:40 X:00 Y:00 P:24 SP:FB CYC:195 SL:241 C768 EA NOP A:40 X:00 Y:00 P:24 SP:FB CYC:204 SL:241 C769 A9 40 LDA #$40 A:40 X:00 Y:00 P:24 SP:FB CYC:210 SL:241 C76B D0 04 BNE $C771 A:40 X:00 Y:00 P:24 SP:FB CYC:216 SL:241 C771 EA NOP A:40 X:00 Y:00 P:24 SP:FB CYC:225 SL:241 C772 A9 00 LDA #$00 A:40 X:00 Y:00 P:24 SP:FB CYC:231 SL:241 C774 D0 03 BNE $C779 A:00 X:00 Y:00 P:26 SP:FB CYC:237 SL:241 C776 4C 7D C7 JMP $C77D A:00 X:00 Y:00 P:26 SP:FB CYC:243 SL:241 C77D EA NOP A:00 X:00 Y:00 P:26 SP:FB CYC:252 SL:241 C77E A9 FF LDA #$FF A:00 X:00 Y:00 P:26 SP:FB CYC:258 SL:241 C780 85 01 STA $01 = 00 A:FF X:00 Y:00 P:A4 SP:FB CYC:264 SL:241 C782 24 01 BIT $01 = FF A:FF X:00 Y:00 P:A4 SP:FB CYC:273 SL:241 C784 70 04 BVS $C78A A:FF X:00 Y:00 P:E4 SP:FB CYC:282 SL:241 C78A EA NOP A:FF X:00 Y:00 P:E4 SP:FB CYC:291 SL:241 C78B 24 01 BIT $01 = FF A:FF X:00 Y:00 P:E4 SP:FB CYC:297 SL:241 C78D 50 03 BVC $C792 A:FF X:00 Y:00 P:E4 SP:FB CYC:306 SL:241 C78F 4C 96 C7 JMP $C796 A:FF X:00 Y:00 P:E4 SP:FB CYC:312 SL:241 C796 EA NOP A:FF X:00 Y:00 P:E4 SP:FB CYC:321 SL:241 C797 A9 00 LDA #$00 A:FF X:00 Y:00 P:E4 SP:FB CYC:327 SL:241 C799 85 01 STA $01 = FF A:00 X:00 Y:00 P:66 SP:FB CYC:333 SL:241 C79B 24 01 BIT $01 = 00 A:00 X:00 Y:00 P:66 SP:FB CYC: 1 SL:242 C79D 50 04 BVC $C7A3 A:00 X:00 Y:00 P:26 SP:FB CYC: 10 SL:242 C7A3 EA NOP A:00 X:00 Y:00 P:26 SP:FB CYC: 19 SL:242 C7A4 24 01 BIT $01 = 00 A:00 X:00 Y:00 P:26 SP:FB CYC: 25 SL:242 C7A6 70 03 BVS $C7AB A:00 X:00 Y:00 P:26 SP:FB CYC: 34 SL:242 C7A8 4C AF C7 JMP $C7AF A:00 X:00 Y:00 P:26 SP:FB CYC: 40 SL:242 C7AF EA NOP A:00 X:00 Y:00 P:26 SP:FB CYC: 49 SL:242 C7B0 A9 00 LDA #$00 A:00 X:00 Y:00 P:26 SP:FB CYC: 55 SL:242 C7B2 10 04 BPL $C7B8 A:00 X:00 Y:00 P:26 SP:FB CYC: 61 SL:242 C7B8 EA NOP A:00 X:00 Y:00 P:26 SP:FB CYC: 70 SL:242 C7B9 A9 80 LDA #$80 A:00 X:00 Y:00 P:26 SP:FB CYC: 76 SL:242 C7BB 10 03 BPL $C7C0 A:80 X:00 Y:00 P:A4 SP:FB CYC: 82 SL:242 C7BD 4C D9 C7 JMP $C7D9 A:80 X:00 Y:00 P:A4 SP:FB CYC: 88 SL:242 C7D9 EA NOP A:80 X:00 Y:00 P:A4 SP:FB CYC: 97 SL:242 C7DA 60 RTS A:80 X:00 Y:00 P:A4 SP:FB CYC:103 SL:242 C600 20 DB C7 JSR $C7DB A:80 X:00 Y:00 P:A4 SP:FD CYC:121 SL:242 C7DB EA NOP A:80 X:00 Y:00 P:A4 SP:FB CYC:139 SL:242 C7DC A9 FF LDA #$FF A:80 X:00 Y:00 P:A4 SP:FB CYC:145 SL:242 C7DE 85 01 STA $01 = 00 A:FF X:00 Y:00 P:A4 SP:FB CYC:151 SL:242 C7E0 24 01 BIT $01 = FF A:FF X:00 Y:00 P:A4 SP:FB CYC:160 SL:242 C7E2 A9 00 LDA #$00 A:FF X:00 Y:00 P:E4 SP:FB CYC:169 SL:242 C7E4 38 SEC A:00 X:00 Y:00 P:66 SP:FB CYC:175 SL:242 C7E5 78 SEI A:00 X:00 Y:00 P:67 SP:FB CYC:181 SL:242 C7E6 F8 SED A:00 X:00 Y:00 P:67 SP:FB CYC:187 SL:242 C7E7 08 PHP A:00 X:00 Y:00 P:6F SP:FB CYC:193 SL:242 C7E8 68 PLA A:00 X:00 Y:00 P:6F SP:FA CYC:202 SL:242 C7E9 29 EF AND #$EF A:7F X:00 Y:00 P:6D SP:FB CYC:214 SL:242 C7EB C9 6F CMP #$6F A:6F X:00 Y:00 P:6D SP:FB CYC:220 SL:242 C7ED F0 04 BEQ $C7F3 A:6F X:00 Y:00 P:6F SP:FB CYC:226 SL:242 C7F3 EA NOP A:6F X:00 Y:00 P:6F SP:FB CYC:235 SL:242 C7F4 A9 40 LDA #$40 A:6F X:00 Y:00 P:6F SP:FB CYC:241 SL:242 C7F6 85 01 STA $01 = FF A:40 X:00 Y:00 P:6D SP:FB CYC:247 SL:242 C7F8 24 01 BIT $01 = 40 A:40 X:00 Y:00 P:6D SP:FB CYC:256 SL:242 C7FA D8 CLD A:40 X:00 Y:00 P:6D SP:FB CYC:265 SL:242 C7FB A9 10 LDA #$10 A:40 X:00 Y:00 P:65 SP:FB CYC:271 SL:242 C7FD 18 CLC A:10 X:00 Y:00 P:65 SP:FB CYC:277 SL:242 C7FE 08 PHP A:10 X:00 Y:00 P:64 SP:FB CYC:283 SL:242 C7FF 68 PLA A:10 X:00 Y:00 P:64 SP:FA CYC:292 SL:242 C800 29 EF AND #$EF A:74 X:00 Y:00 P:64 SP:FB CYC:304 SL:242 C802 C9 64 CMP #$64 A:64 X:00 Y:00 P:64 SP:FB CYC:310 SL:242 C804 F0 04 BEQ $C80A A:64 X:00 Y:00 P:67 SP:FB CYC:316 SL:242 C80A EA NOP A:64 X:00 Y:00 P:67 SP:FB CYC:325 SL:242 C80B A9 80 LDA #$80 A:64 X:00 Y:00 P:67 SP:FB CYC:331 SL:242 C80D 85 01 STA $01 = 40 A:80 X:00 Y:00 P:E5 SP:FB CYC:337 SL:242 C80F 24 01 BIT $01 = 80 A:80 X:00 Y:00 P:E5 SP:FB CYC: 5 SL:243 C811 F8 SED A:80 X:00 Y:00 P:A5 SP:FB CYC: 14 SL:243 C812 A9 00 LDA #$00 A:80 X:00 Y:00 P:AD SP:FB CYC: 20 SL:243 C814 38 SEC A:00 X:00 Y:00 P:2F SP:FB CYC: 26 SL:243 C815 08 PHP A:00 X:00 Y:00 P:2F SP:FB CYC: 32 SL:243 C816 68 PLA A:00 X:00 Y:00 P:2F SP:FA CYC: 41 SL:243 C817 29 EF AND #$EF A:3F X:00 Y:00 P:2D SP:FB CYC: 53 SL:243 C819 C9 2F CMP #$2F A:2F X:00 Y:00 P:2D SP:FB CYC: 59 SL:243 C81B F0 04 BEQ $C821 A:2F X:00 Y:00 P:2F SP:FB CYC: 65 SL:243 C821 EA NOP A:2F X:00 Y:00 P:2F SP:FB CYC: 74 SL:243 C822 A9 FF LDA #$FF A:2F X:00 Y:00 P:2F SP:FB CYC: 80 SL:243 C824 48 PHA A:FF X:00 Y:00 P:AD SP:FB CYC: 86 SL:243 C825 28 PLP A:FF X:00 Y:00 P:AD SP:FA CYC: 95 SL:243 C826 D0 09 BNE $C831 A:FF X:00 Y:00 P:EF SP:FB CYC:107 SL:243 C828 10 07 BPL $C831 A:FF X:00 Y:00 P:EF SP:FB CYC:113 SL:243 C82A 50 05 BVC $C831 A:FF X:00 Y:00 P:EF SP:FB CYC:119 SL:243 C82C 90 03 BCC $C831 A:FF X:00 Y:00 P:EF SP:FB CYC:125 SL:243 C82E 4C 35 C8 JMP $C835 A:FF X:00 Y:00 P:EF SP:FB CYC:131 SL:243 C835 EA NOP A:FF X:00 Y:00 P:EF SP:FB CYC:140 SL:243 C836 A9 04 LDA #$04 A:FF X:00 Y:00 P:EF SP:FB CYC:146 SL:243 C838 48 PHA A:04 X:00 Y:00 P:6D SP:FB CYC:152 SL:243 C839 28 PLP A:04 X:00 Y:00 P:6D SP:FA CYC:161 SL:243 C83A F0 09 BEQ $C845 A:04 X:00 Y:00 P:24 SP:FB CYC:173 SL:243 C83C 30 07 BMI $C845 A:04 X:00 Y:00 P:24 SP:FB CYC:179 SL:243 C83E 70 05 BVS $C845 A:04 X:00 Y:00 P:24 SP:FB CYC:185 SL:243 C840 B0 03 BCS $C845 A:04 X:00 Y:00 P:24 SP:FB CYC:191 SL:243 C842 4C 49 C8 JMP $C849 A:04 X:00 Y:00 P:24 SP:FB CYC:197 SL:243 C849 EA NOP A:04 X:00 Y:00 P:24 SP:FB CYC:206 SL:243 C84A F8 SED A:04 X:00 Y:00 P:24 SP:FB CYC:212 SL:243 C84B A9 FF LDA #$FF A:04 X:00 Y:00 P:2C SP:FB CYC:218 SL:243 C84D 85 01 STA $01 = 80 A:FF X:00 Y:00 P:AC SP:FB CYC:224 SL:243 C84F 24 01 BIT $01 = FF A:FF X:00 Y:00 P:AC SP:FB CYC:233 SL:243 C851 18 CLC A:FF X:00 Y:00 P:EC SP:FB CYC:242 SL:243 C852 A9 00 LDA #$00 A:FF X:00 Y:00 P:EC SP:FB CYC:248 SL:243 C854 48 PHA A:00 X:00 Y:00 P:6E SP:FB CYC:254 SL:243 C855 A9 FF LDA #$FF A:00 X:00 Y:00 P:6E SP:FA CYC:263 SL:243 C857 68 PLA A:FF X:00 Y:00 P:EC SP:FA CYC:269 SL:243 C858 D0 09 BNE $C863 A:00 X:00 Y:00 P:6E SP:FB CYC:281 SL:243 C85A 30 07 BMI $C863 A:00 X:00 Y:00 P:6E SP:FB CYC:287 SL:243 C85C 50 05 BVC $C863 A:00 X:00 Y:00 P:6E SP:FB CYC:293 SL:243 C85E B0 03 BCS $C863 A:00 X:00 Y:00 P:6E SP:FB CYC:299 SL:243 C860 4C 67 C8 JMP $C867 A:00 X:00 Y:00 P:6E SP:FB CYC:305 SL:243 C867 EA NOP A:00 X:00 Y:00 P:6E SP:FB CYC:314 SL:243 C868 A9 00 LDA #$00 A:00 X:00 Y:00 P:6E SP:FB CYC:320 SL:243 C86A 85 01 STA $01 = FF A:00 X:00 Y:00 P:6E SP:FB CYC:326 SL:243 C86C 24 01 BIT $01 = 00 A:00 X:00 Y:00 P:6E SP:FB CYC:335 SL:243 C86E 38 SEC A:00 X:00 Y:00 P:2E SP:FB CYC: 3 SL:244 C86F A9 FF LDA #$FF A:00 X:00 Y:00 P:2F SP:FB CYC: 9 SL:244 C871 48 PHA A:FF X:00 Y:00 P:AD SP:FB CYC: 15 SL:244 C872 A9 00 LDA #$00 A:FF X:00 Y:00 P:AD SP:FA CYC: 24 SL:244 C874 68 PLA A:00 X:00 Y:00 P:2F SP:FA CYC: 30 SL:244 C875 F0 09 BEQ $C880 A:FF X:00 Y:00 P:AD SP:FB CYC: 42 SL:244 C877 10 07 BPL $C880 A:FF X:00 Y:00 P:AD SP:FB CYC: 48 SL:244 C879 70 05 BVS $C880 A:FF X:00 Y:00 P:AD SP:FB CYC: 54 SL:244 C87B 90 03 BCC $C880 A:FF X:00 Y:00 P:AD SP:FB CYC: 60 SL:244 C87D 4C 84 C8 JMP $C884 A:FF X:00 Y:00 P:AD SP:FB CYC: 66 SL:244 C884 60 RTS A:FF X:00 Y:00 P:AD SP:FB CYC: 75 SL:244 C603 20 85 C8 JSR $C885 A:FF X:00 Y:00 P:AD SP:FD CYC: 93 SL:244 C885 EA NOP A:FF X:00 Y:00 P:AD SP:FB CYC:111 SL:244 C886 18 CLC A:FF X:00 Y:00 P:AD SP:FB CYC:117 SL:244 C887 A9 FF LDA #$FF A:FF X:00 Y:00 P:AC SP:FB CYC:123 SL:244 C889 85 01 STA $01 = 00 A:FF X:00 Y:00 P:AC SP:FB CYC:129 SL:244 C88B 24 01 BIT $01 = FF A:FF X:00 Y:00 P:AC SP:FB CYC:138 SL:244 C88D A9 55 LDA #$55 A:FF X:00 Y:00 P:EC SP:FB CYC:147 SL:244 C88F 09 AA ORA #$AA A:55 X:00 Y:00 P:6C SP:FB CYC:153 SL:244 C891 B0 0B BCS $C89E A:FF X:00 Y:00 P:EC SP:FB CYC:159 SL:244 C893 10 09 BPL $C89E A:FF X:00 Y:00 P:EC SP:FB CYC:165 SL:244 C895 C9 FF CMP #$FF A:FF X:00 Y:00 P:EC SP:FB CYC:171 SL:244 C897 D0 05 BNE $C89E A:FF X:00 Y:00 P:6F SP:FB CYC:177 SL:244 C899 50 03 BVC $C89E A:FF X:00 Y:00 P:6F SP:FB CYC:183 SL:244 C89B 4C A2 C8 JMP $C8A2 A:FF X:00 Y:00 P:6F SP:FB CYC:189 SL:244 C8A2 EA NOP A:FF X:00 Y:00 P:6F SP:FB CYC:198 SL:244 C8A3 38 SEC A:FF X:00 Y:00 P:6F SP:FB CYC:204 SL:244 C8A4 B8 CLV A:FF X:00 Y:00 P:6F SP:FB CYC:210 SL:244 C8A5 A9 00 LDA #$00 A:FF X:00 Y:00 P:2F SP:FB CYC:216 SL:244 C8A7 09 00 ORA #$00 A:00 X:00 Y:00 P:2F SP:FB CYC:222 SL:244 C8A9 D0 09 BNE $C8B4 A:00 X:00 Y:00 P:2F SP:FB CYC:228 SL:244 C8AB 70 07 BVS $C8B4 A:00 X:00 Y:00 P:2F SP:FB CYC:234 SL:244 C8AD 90 05 BCC $C8B4 A:00 X:00 Y:00 P:2F SP:FB CYC:240 SL:244 C8AF 30 03 BMI $C8B4 A:00 X:00 Y:00 P:2F SP:FB CYC:246 SL:244 C8B1 4C B8 C8 JMP $C8B8 A:00 X:00 Y:00 P:2F SP:FB CYC:252 SL:244 C8B8 EA NOP A:00 X:00 Y:00 P:2F SP:FB CYC:261 SL:244 C8B9 18 CLC A:00 X:00 Y:00 P:2F SP:FB CYC:267 SL:244 C8BA 24 01 BIT $01 = FF A:00 X:00 Y:00 P:2E SP:FB CYC:273 SL:244 C8BC A9 55 LDA #$55 A:00 X:00 Y:00 P:EE SP:FB CYC:282 SL:244 C8BE 29 AA AND #$AA A:55 X:00 Y:00 P:6C SP:FB CYC:288 SL:244 C8C0 D0 09 BNE $C8CB A:00 X:00 Y:00 P:6E SP:FB CYC:294 SL:244 C8C2 50 07 BVC $C8CB A:00 X:00 Y:00 P:6E SP:FB CYC:300 SL:244 C8C4 B0 05 BCS $C8CB A:00 X:00 Y:00 P:6E SP:FB CYC:306 SL:244 C8C6 30 03 BMI $C8CB A:00 X:00 Y:00 P:6E SP:FB CYC:312 SL:244 C8C8 4C CF C8 JMP $C8CF A:00 X:00 Y:00 P:6E SP:FB CYC:318 SL:244 C8CF EA NOP A:00 X:00 Y:00 P:6E SP:FB CYC:327 SL:244 C8D0 38 SEC A:00 X:00 Y:00 P:6E SP:FB CYC:333 SL:244 C8D1 B8 CLV A:00 X:00 Y:00 P:6F SP:FB CYC:339 SL:244 C8D2 A9 F8 LDA #$F8 A:00 X:00 Y:00 P:2F SP:FB CYC: 4 SL:245 C8D4 29 EF AND #$EF A:F8 X:00 Y:00 P:AD SP:FB CYC: 10 SL:245 C8D6 90 0B BCC $C8E3 A:E8 X:00 Y:00 P:AD SP:FB CYC: 16 SL:245 C8D8 10 09 BPL $C8E3 A:E8 X:00 Y:00 P:AD SP:FB CYC: 22 SL:245 C8DA C9 E8 CMP #$E8 A:E8 X:00 Y:00 P:AD SP:FB CYC: 28 SL:245 C8DC D0 05 BNE $C8E3 A:E8 X:00 Y:00 P:2F SP:FB CYC: 34 SL:245 C8DE 70 03 BVS $C8E3 A:E8 X:00 Y:00 P:2F SP:FB CYC: 40 SL:245 C8E0 4C E7 C8 JMP $C8E7 A:E8 X:00 Y:00 P:2F SP:FB CYC: 46 SL:245 C8E7 EA NOP A:E8 X:00 Y:00 P:2F SP:FB CYC: 55 SL:245 C8E8 18 CLC A:E8 X:00 Y:00 P:2F SP:FB CYC: 61 SL:245 C8E9 24 01 BIT $01 = FF A:E8 X:00 Y:00 P:2E SP:FB CYC: 67 SL:245 C8EB A9 5F LDA #$5F A:E8 X:00 Y:00 P:EC SP:FB CYC: 76 SL:245 C8ED 49 AA EOR #$AA A:5F X:00 Y:00 P:6C SP:FB CYC: 82 SL:245 C8EF B0 0B BCS $C8FC A:F5 X:00 Y:00 P:EC SP:FB CYC: 88 SL:245 C8F1 10 09 BPL $C8FC A:F5 X:00 Y:00 P:EC SP:FB CYC: 94 SL:245 C8F3 C9 F5 CMP #$F5 A:F5 X:00 Y:00 P:EC SP:FB CYC:100 SL:245 C8F5 D0 05 BNE $C8FC A:F5 X:00 Y:00 P:6F SP:FB CYC:106 SL:245 C8F7 50 03 BVC $C8FC A:F5 X:00 Y:00 P:6F SP:FB CYC:112 SL:245 C8F9 4C 00 C9 JMP $C900 A:F5 X:00 Y:00 P:6F SP:FB CYC:118 SL:245 C900 EA NOP A:F5 X:00 Y:00 P:6F SP:FB CYC:127 SL:245 C901 38 SEC A:F5 X:00 Y:00 P:6F SP:FB CYC:133 SL:245 C902 B8 CLV A:F5 X:00 Y:00 P:6F SP:FB CYC:139 SL:245 C903 A9 70 LDA #$70 A:F5 X:00 Y:00 P:2F SP:FB CYC:145 SL:245 C905 49 70 EOR #$70 A:70 X:00 Y:00 P:2D SP:FB CYC:151 SL:245 C907 D0 09 BNE $C912 A:00 X:00 Y:00 P:2F SP:FB CYC:157 SL:245 C909 70 07 BVS $C912 A:00 X:00 Y:00 P:2F SP:FB CYC:163 SL:245 C90B 90 05 BCC $C912 A:00 X:00 Y:00 P:2F SP:FB CYC:169 SL:245 C90D 30 03 BMI $C912 A:00 X:00 Y:00 P:2F SP:FB CYC:175 SL:245 C90F 4C 16 C9 JMP $C916 A:00 X:00 Y:00 P:2F SP:FB CYC:181 SL:245 C916 EA NOP A:00 X:00 Y:00 P:2F SP:FB CYC:190 SL:245 C917 18 CLC A:00 X:00 Y:00 P:2F SP:FB CYC:196 SL:245 C918 24 01 BIT $01 = FF A:00 X:00 Y:00 P:2E SP:FB CYC:202 SL:245 C91A A9 00 LDA #$00 A:00 X:00 Y:00 P:EE SP:FB CYC:211 SL:245 C91C 69 69 ADC #$69 A:00 X:00 Y:00 P:6E SP:FB CYC:217 SL:245 C91E 30 0B BMI $C92B A:69 X:00 Y:00 P:2C SP:FB CYC:223 SL:245 C920 B0 09 BCS $C92B A:69 X:00 Y:00 P:2C SP:FB CYC:229 SL:245 C922 C9 69 CMP #$69 A:69 X:00 Y:00 P:2C SP:FB CYC:235 SL:245 C924 D0 05 BNE $C92B A:69 X:00 Y:00 P:2F SP:FB CYC:241 SL:245 C926 70 03 BVS $C92B A:69 X:00 Y:00 P:2F SP:FB CYC:247 SL:245 C928 4C 2F C9 JMP $C92F A:69 X:00 Y:00 P:2F SP:FB CYC:253 SL:245 C92F EA NOP A:69 X:00 Y:00 P:2F SP:FB CYC:262 SL:245 C930 38 SEC A:69 X:00 Y:00 P:2F SP:FB CYC:268 SL:245 C931 F8 SED A:69 X:00 Y:00 P:2F SP:FB CYC:274 SL:245 C932 24 01 BIT $01 = FF A:69 X:00 Y:00 P:2F SP:FB CYC:280 SL:245 C934 A9 01 LDA #$01 A:69 X:00 Y:00 P:ED SP:FB CYC:289 SL:245 C936 69 69 ADC #$69 A:01 X:00 Y:00 P:6D SP:FB CYC:295 SL:245 C938 30 0B BMI $C945 A:6B X:00 Y:00 P:2C SP:FB CYC:301 SL:245 C93A B0 09 BCS $C945 A:6B X:00 Y:00 P:2C SP:FB CYC:307 SL:245 C93C C9 6B CMP #$6B A:6B X:00 Y:00 P:2C SP:FB CYC:313 SL:245 C93E D0 05 BNE $C945 A:6B X:00 Y:00 P:2F SP:FB CYC:319 SL:245 C940 70 03 BVS $C945 A:6B X:00 Y:00 P:2F SP:FB CYC:325 SL:245 C942 4C 49 C9 JMP $C949 A:6B X:00 Y:00 P:2F SP:FB CYC:331 SL:245 C949 EA NOP A:6B X:00 Y:00 P:2F SP:FB CYC:340 SL:245 C94A D8 CLD A:6B X:00 Y:00 P:2F SP:FB CYC: 5 SL:246 C94B 38 SEC A:6B X:00 Y:00 P:27 SP:FB CYC: 11 SL:246 C94C B8 CLV A:6B X:00 Y:00 P:27 SP:FB CYC: 17 SL:246 C94D A9 7F LDA #$7F A:6B X:00 Y:00 P:27 SP:FB CYC: 23 SL:246 C94F 69 7F ADC #$7F A:7F X:00 Y:00 P:25 SP:FB CYC: 29 SL:246 C951 10 0B BPL $C95E A:FF X:00 Y:00 P:E4 SP:FB CYC: 35 SL:246 C953 B0 09 BCS $C95E A:FF X:00 Y:00 P:E4 SP:FB CYC: 41 SL:246 C955 C9 FF CMP #$FF A:FF X:00 Y:00 P:E4 SP:FB CYC: 47 SL:246 C957 D0 05 BNE $C95E A:FF X:00 Y:00 P:67 SP:FB CYC: 53 SL:246 C959 50 03 BVC $C95E A:FF X:00 Y:00 P:67 SP:FB CYC: 59 SL:246 C95B 4C 62 C9 JMP $C962 A:FF X:00 Y:00 P:67 SP:FB CYC: 65 SL:246 C962 EA NOP A:FF X:00 Y:00 P:67 SP:FB CYC: 74 SL:246 C963 18 CLC A:FF X:00 Y:00 P:67 SP:FB CYC: 80 SL:246 C964 24 01 BIT $01 = FF A:FF X:00 Y:00 P:66 SP:FB CYC: 86 SL:246 C966 A9 7F LDA #$7F A:FF X:00 Y:00 P:E4 SP:FB CYC: 95 SL:246 C968 69 80 ADC #$80 A:7F X:00 Y:00 P:64 SP:FB CYC:101 SL:246 C96A 10 0B BPL $C977 A:FF X:00 Y:00 P:A4 SP:FB CYC:107 SL:246 C96C B0 09 BCS $C977 A:FF X:00 Y:00 P:A4 SP:FB CYC:113 SL:246 C96E C9 FF CMP #$FF A:FF X:00 Y:00 P:A4 SP:FB CYC:119 SL:246 C970 D0 05 BNE $C977 A:FF X:00 Y:00 P:27 SP:FB CYC:125 SL:246 C972 70 03 BVS $C977 A:FF X:00 Y:00 P:27 SP:FB CYC:131 SL:246 C974 4C 7B C9 JMP $C97B A:FF X:00 Y:00 P:27 SP:FB CYC:137 SL:246 C97B EA NOP A:FF X:00 Y:00 P:27 SP:FB CYC:146 SL:246 C97C 38 SEC A:FF X:00 Y:00 P:27 SP:FB CYC:152 SL:246 C97D B8 CLV A:FF X:00 Y:00 P:27 SP:FB CYC:158 SL:246 C97E A9 7F LDA #$7F A:FF X:00 Y:00 P:27 SP:FB CYC:164 SL:246 C980 69 80 ADC #$80 A:7F X:00 Y:00 P:25 SP:FB CYC:170 SL:246 C982 D0 09 BNE $C98D A:00 X:00 Y:00 P:27 SP:FB CYC:176 SL:246 C984 30 07 BMI $C98D A:00 X:00 Y:00 P:27 SP:FB CYC:182 SL:246 C986 70 05 BVS $C98D A:00 X:00 Y:00 P:27 SP:FB CYC:188 SL:246 C988 90 03 BCC $C98D A:00 X:00 Y:00 P:27 SP:FB CYC:194 SL:246 C98A 4C 91 C9 JMP $C991 A:00 X:00 Y:00 P:27 SP:FB CYC:200 SL:246 C991 EA NOP A:00 X:00 Y:00 P:27 SP:FB CYC:209 SL:246 C992 38 SEC A:00 X:00 Y:00 P:27 SP:FB CYC:215 SL:246 C993 B8 CLV A:00 X:00 Y:00 P:27 SP:FB CYC:221 SL:246 C994 A9 9F LDA #$9F A:00 X:00 Y:00 P:27 SP:FB CYC:227 SL:246 C996 F0 09 BEQ $C9A1 A:9F X:00 Y:00 P:A5 SP:FB CYC:233 SL:246 C998 10 07 BPL $C9A1 A:9F X:00 Y:00 P:A5 SP:FB CYC:239 SL:246 C99A 70 05 BVS $C9A1 A:9F X:00 Y:00 P:A5 SP:FB CYC:245 SL:246 C99C 90 03 BCC $C9A1 A:9F X:00 Y:00 P:A5 SP:FB CYC:251 SL:246 C99E 4C A5 C9 JMP $C9A5 A:9F X:00 Y:00 P:A5 SP:FB CYC:257 SL:246 C9A5 EA NOP A:9F X:00 Y:00 P:A5 SP:FB CYC:266 SL:246 C9A6 18 CLC A:9F X:00 Y:00 P:A5 SP:FB CYC:272 SL:246 C9A7 24 01 BIT $01 = FF A:9F X:00 Y:00 P:A4 SP:FB CYC:278 SL:246 C9A9 A9 00 LDA #$00 A:9F X:00 Y:00 P:E4 SP:FB CYC:287 SL:246 C9AB D0 09 BNE $C9B6 A:00 X:00 Y:00 P:66 SP:FB CYC:293 SL:246 C9AD 30 07 BMI $C9B6 A:00 X:00 Y:00 P:66 SP:FB CYC:299 SL:246 C9AF 50 05 BVC $C9B6 A:00 X:00 Y:00 P:66 SP:FB CYC:305 SL:246 C9B1 B0 03 BCS $C9B6 A:00 X:00 Y:00 P:66 SP:FB CYC:311 SL:246 C9B3 4C BA C9 JMP $C9BA A:00 X:00 Y:00 P:66 SP:FB CYC:317 SL:246 C9BA EA NOP A:00 X:00 Y:00 P:66 SP:FB CYC:326 SL:246 C9BB 24 01 BIT $01 = FF A:00 X:00 Y:00 P:66 SP:FB CYC:332 SL:246 C9BD A9 40 LDA #$40 A:00 X:00 Y:00 P:E6 SP:FB CYC: 0 SL:247 C9BF C9 40 CMP #$40 A:40 X:00 Y:00 P:64 SP:FB CYC: 6 SL:247 C9C1 30 09 BMI $C9CC A:40 X:00 Y:00 P:67 SP:FB CYC: 12 SL:247 C9C3 90 07 BCC $C9CC A:40 X:00 Y:00 P:67 SP:FB CYC: 18 SL:247 C9C5 D0 05 BNE $C9CC A:40 X:00 Y:00 P:67 SP:FB CYC: 24 SL:247 C9C7 50 03 BVC $C9CC A:40 X:00 Y:00 P:67 SP:FB CYC: 30 SL:247 C9C9 4C D0 C9 JMP $C9D0 A:40 X:00 Y:00 P:67 SP:FB CYC: 36 SL:247 C9D0 EA NOP A:40 X:00 Y:00 P:67 SP:FB CYC: 45 SL:247 C9D1 B8 CLV A:40 X:00 Y:00 P:67 SP:FB CYC: 51 SL:247 C9D2 C9 3F CMP #$3F A:40 X:00 Y:00 P:27 SP:FB CYC: 57 SL:247 C9D4 F0 09 BEQ $C9DF A:40 X:00 Y:00 P:25 SP:FB CYC: 63 SL:247 C9D6 30 07 BMI $C9DF A:40 X:00 Y:00 P:25 SP:FB CYC: 69 SL:247 C9D8 90 05 BCC $C9DF A:40 X:00 Y:00 P:25 SP:FB CYC: 75 SL:247 C9DA 70 03 BVS $C9DF A:40 X:00 Y:00 P:25 SP:FB CYC: 81 SL:247 C9DC 4C E3 C9 JMP $C9E3 A:40 X:00 Y:00 P:25 SP:FB CYC: 87 SL:247 C9E3 EA NOP A:40 X:00 Y:00 P:25 SP:FB CYC: 96 SL:247 C9E4 C9 41 CMP #$41 A:40 X:00 Y:00 P:25 SP:FB CYC:102 SL:247 C9E6 F0 07 BEQ $C9EF A:40 X:00 Y:00 P:A4 SP:FB CYC:108 SL:247 C9E8 10 05 BPL $C9EF A:40 X:00 Y:00 P:A4 SP:FB CYC:114 SL:247 C9EA 10 03 BPL $C9EF A:40 X:00 Y:00 P:A4 SP:FB CYC:120 SL:247 C9EC 4C F3 C9 JMP $C9F3 A:40 X:00 Y:00 P:A4 SP:FB CYC:126 SL:247 C9F3 EA NOP A:40 X:00 Y:00 P:A4 SP:FB CYC:135 SL:247 C9F4 A9 80 LDA #$80 A:40 X:00 Y:00 P:A4 SP:FB CYC:141 SL:247 C9F6 C9 00 CMP #$00 A:80 X:00 Y:00 P:A4 SP:FB CYC:147 SL:247 C9F8 F0 07 BEQ $CA01 A:80 X:00 Y:00 P:A5 SP:FB CYC:153 SL:247 C9FA 10 05 BPL $CA01 A:80 X:00 Y:00 P:A5 SP:FB CYC:159 SL:247 C9FC 90 03 BCC $CA01 A:80 X:00 Y:00 P:A5 SP:FB CYC:165 SL:247 C9FE 4C 05 CA JMP $CA05 A:80 X:00 Y:00 P:A5 SP:FB CYC:171 SL:247 CA05 EA NOP A:80 X:00 Y:00 P:A5 SP:FB CYC:180 SL:247 CA06 C9 80 CMP #$80 A:80 X:00 Y:00 P:A5 SP:FB CYC:186 SL:247 CA08 D0 07 BNE $CA11 A:80 X:00 Y:00 P:27 SP:FB CYC:192 SL:247 CA0A 30 05 BMI $CA11 A:80 X:00 Y:00 P:27 SP:FB CYC:198 SL:247 CA0C 90 03 BCC $CA11 A:80 X:00 Y:00 P:27 SP:FB CYC:204 SL:247 CA0E 4C 15 CA JMP $CA15 A:80 X:00 Y:00 P:27 SP:FB CYC:210 SL:247 CA15 EA NOP A:80 X:00 Y:00 P:27 SP:FB CYC:219 SL:247 CA16 C9 81 CMP #$81 A:80 X:00 Y:00 P:27 SP:FB CYC:225 SL:247 CA18 B0 07 BCS $CA21 A:80 X:00 Y:00 P:A4 SP:FB CYC:231 SL:247 CA1A F0 05 BEQ $CA21 A:80 X:00 Y:00 P:A4 SP:FB CYC:237 SL:247 CA1C 10 03 BPL $CA21 A:80 X:00 Y:00 P:A4 SP:FB CYC:243 SL:247 CA1E 4C 25 CA JMP $CA25 A:80 X:00 Y:00 P:A4 SP:FB CYC:249 SL:247 CA25 EA NOP A:80 X:00 Y:00 P:A4 SP:FB CYC:258 SL:247 CA26 C9 7F CMP #$7F A:80 X:00 Y:00 P:A4 SP:FB CYC:264 SL:247 CA28 90 07 BCC $CA31 A:80 X:00 Y:00 P:25 SP:FB CYC:270 SL:247 CA2A F0 05 BEQ $CA31 A:80 X:00 Y:00 P:25 SP:FB CYC:276 SL:247 CA2C 30 03 BMI $CA31 A:80 X:00 Y:00 P:25 SP:FB CYC:282 SL:247 CA2E 4C 35 CA JMP $CA35 A:80 X:00 Y:00 P:25 SP:FB CYC:288 SL:247 CA35 EA NOP A:80 X:00 Y:00 P:25 SP:FB CYC:297 SL:247 CA36 24 01 BIT $01 = FF A:80 X:00 Y:00 P:25 SP:FB CYC:303 SL:247 CA38 A0 40 LDY #$40 A:80 X:00 Y:00 P:E5 SP:FB CYC:312 SL:247 CA3A C0 40 CPY #$40 A:80 X:00 Y:40 P:65 SP:FB CYC:318 SL:247 CA3C D0 09 BNE $CA47 A:80 X:00 Y:40 P:67 SP:FB CYC:324 SL:247 CA3E 30 07 BMI $CA47 A:80 X:00 Y:40 P:67 SP:FB CYC:330 SL:247 CA40 90 05 BCC $CA47 A:80 X:00 Y:40 P:67 SP:FB CYC:336 SL:247 CA42 50 03 BVC $CA47 A:80 X:00 Y:40 P:67 SP:FB CYC: 1 SL:248 CA44 4C 4B CA JMP $CA4B A:80 X:00 Y:40 P:67 SP:FB CYC: 7 SL:248 CA4B EA NOP A:80 X:00 Y:40 P:67 SP:FB CYC: 16 SL:248 CA4C B8 CLV A:80 X:00 Y:40 P:67 SP:FB CYC: 22 SL:248 CA4D C0 3F CPY #$3F A:80 X:00 Y:40 P:27 SP:FB CYC: 28 SL:248 CA4F F0 09 BEQ $CA5A A:80 X:00 Y:40 P:25 SP:FB CYC: 34 SL:248 CA51 30 07 BMI $CA5A A:80 X:00 Y:40 P:25 SP:FB CYC: 40 SL:248 CA53 90 05 BCC $CA5A A:80 X:00 Y:40 P:25 SP:FB CYC: 46 SL:248 CA55 70 03 BVS $CA5A A:80 X:00 Y:40 P:25 SP:FB CYC: 52 SL:248 CA57 4C 5E CA JMP $CA5E A:80 X:00 Y:40 P:25 SP:FB CYC: 58 SL:248 CA5E EA NOP A:80 X:00 Y:40 P:25 SP:FB CYC: 67 SL:248 CA5F C0 41 CPY #$41 A:80 X:00 Y:40 P:25 SP:FB CYC: 73 SL:248 CA61 F0 07 BEQ $CA6A A:80 X:00 Y:40 P:A4 SP:FB CYC: 79 SL:248 CA63 10 05 BPL $CA6A A:80 X:00 Y:40 P:A4 SP:FB CYC: 85 SL:248 CA65 10 03 BPL $CA6A A:80 X:00 Y:40 P:A4 SP:FB CYC: 91 SL:248 CA67 4C 6E CA JMP $CA6E A:80 X:00 Y:40 P:A4 SP:FB CYC: 97 SL:248 CA6E EA NOP A:80 X:00 Y:40 P:A4 SP:FB CYC:106 SL:248 CA6F A0 80 LDY #$80 A:80 X:00 Y:40 P:A4 SP:FB CYC:112 SL:248 CA71 C0 00 CPY #$00 A:80 X:00 Y:80 P:A4 SP:FB CYC:118 SL:248 CA73 F0 07 BEQ $CA7C A:80 X:00 Y:80 P:A5 SP:FB CYC:124 SL:248 CA75 10 05 BPL $CA7C A:80 X:00 Y:80 P:A5 SP:FB CYC:130 SL:248 CA77 90 03 BCC $CA7C A:80 X:00 Y:80 P:A5 SP:FB CYC:136 SL:248 CA79 4C 80 CA JMP $CA80 A:80 X:00 Y:80 P:A5 SP:FB CYC:142 SL:248 CA80 EA NOP A:80 X:00 Y:80 P:A5 SP:FB CYC:151 SL:248 CA81 C0 80 CPY #$80 A:80 X:00 Y:80 P:A5 SP:FB CYC:157 SL:248 CA83 D0 07 BNE $CA8C A:80 X:00 Y:80 P:27 SP:FB CYC:163 SL:248 CA85 30 05 BMI $CA8C A:80 X:00 Y:80 P:27 SP:FB CYC:169 SL:248 CA87 90 03 BCC $CA8C A:80 X:00 Y:80 P:27 SP:FB CYC:175 SL:248 CA89 4C 90 CA JMP $CA90 A:80 X:00 Y:80 P:27 SP:FB CYC:181 SL:248 CA90 EA NOP A:80 X:00 Y:80 P:27 SP:FB CYC:190 SL:248 CA91 C0 81 CPY #$81 A:80 X:00 Y:80 P:27 SP:FB CYC:196 SL:248 CA93 B0 07 BCS $CA9C A:80 X:00 Y:80 P:A4 SP:FB CYC:202 SL:248 CA95 F0 05 BEQ $CA9C A:80 X:00 Y:80 P:A4 SP:FB CYC:208 SL:248 CA97 10 03 BPL $CA9C A:80 X:00 Y:80 P:A4 SP:FB CYC:214 SL:248 CA99 4C A0 CA JMP $CAA0 A:80 X:00 Y:80 P:A4 SP:FB CYC:220 SL:248 CAA0 EA NOP A:80 X:00 Y:80 P:A4 SP:FB CYC:229 SL:248 CAA1 C0 7F CPY #$7F A:80 X:00 Y:80 P:A4 SP:FB CYC:235 SL:248 CAA3 90 07 BCC $CAAC A:80 X:00 Y:80 P:25 SP:FB CYC:241 SL:248 CAA5 F0 05 BEQ $CAAC A:80 X:00 Y:80 P:25 SP:FB CYC:247 SL:248 CAA7 30 03 BMI $CAAC A:80 X:00 Y:80 P:25 SP:FB CYC:253 SL:248 CAA9 4C B0 CA JMP $CAB0 A:80 X:00 Y:80 P:25 SP:FB CYC:259 SL:248 CAB0 EA NOP A:80 X:00 Y:80 P:25 SP:FB CYC:268 SL:248 CAB1 24 01 BIT $01 = FF A:80 X:00 Y:80 P:25 SP:FB CYC:274 SL:248 CAB3 A2 40 LDX #$40 A:80 X:00 Y:80 P:E5 SP:FB CYC:283 SL:248 CAB5 E0 40 CPX #$40 A:80 X:40 Y:80 P:65 SP:FB CYC:289 SL:248 CAB7 D0 09 BNE $CAC2 A:80 X:40 Y:80 P:67 SP:FB CYC:295 SL:248 CAB9 30 07 BMI $CAC2 A:80 X:40 Y:80 P:67 SP:FB CYC:301 SL:248 CABB 90 05 BCC $CAC2 A:80 X:40 Y:80 P:67 SP:FB CYC:307 SL:248 CABD 50 03 BVC $CAC2 A:80 X:40 Y:80 P:67 SP:FB CYC:313 SL:248 CABF 4C C6 CA JMP $CAC6 A:80 X:40 Y:80 P:67 SP:FB CYC:319 SL:248 CAC6 EA NOP A:80 X:40 Y:80 P:67 SP:FB CYC:328 SL:248 CAC7 B8 CLV A:80 X:40 Y:80 P:67 SP:FB CYC:334 SL:248 CAC8 E0 3F CPX #$3F A:80 X:40 Y:80 P:27 SP:FB CYC:340 SL:248 CACA F0 09 BEQ $CAD5 A:80 X:40 Y:80 P:25 SP:FB CYC: 5 SL:249 CACC 30 07 BMI $CAD5 A:80 X:40 Y:80 P:25 SP:FB CYC: 11 SL:249 CACE 90 05 BCC $CAD5 A:80 X:40 Y:80 P:25 SP:FB CYC: 17 SL:249 CAD0 70 03 BVS $CAD5 A:80 X:40 Y:80 P:25 SP:FB CYC: 23 SL:249 CAD2 4C D9 CA JMP $CAD9 A:80 X:40 Y:80 P:25 SP:FB CYC: 29 SL:249 CAD9 EA NOP A:80 X:40 Y:80 P:25 SP:FB CYC: 38 SL:249 CADA E0 41 CPX #$41 A:80 X:40 Y:80 P:25 SP:FB CYC: 44 SL:249 CADC F0 07 BEQ $CAE5 A:80 X:40 Y:80 P:A4 SP:FB CYC: 50 SL:249 CADE 10 05 BPL $CAE5 A:80 X:40 Y:80 P:A4 SP:FB CYC: 56 SL:249 CAE0 10 03 BPL $CAE5 A:80 X:40 Y:80 P:A4 SP:FB CYC: 62 SL:249 CAE2 4C E9 CA JMP $CAE9 A:80 X:40 Y:80 P:A4 SP:FB CYC: 68 SL:249 CAE9 EA NOP A:80 X:40 Y:80 P:A4 SP:FB CYC: 77 SL:249 CAEA A2 80 LDX #$80 A:80 X:40 Y:80 P:A4 SP:FB CYC: 83 SL:249 CAEC E0 00 CPX #$00 A:80 X:80 Y:80 P:A4 SP:FB CYC: 89 SL:249 CAEE F0 07 BEQ $CAF7 A:80 X:80 Y:80 P:A5 SP:FB CYC: 95 SL:249 CAF0 10 05 BPL $CAF7 A:80 X:80 Y:80 P:A5 SP:FB CYC:101 SL:249 CAF2 90 03 BCC $CAF7 A:80 X:80 Y:80 P:A5 SP:FB CYC:107 SL:249 CAF4 4C FB CA JMP $CAFB A:80 X:80 Y:80 P:A5 SP:FB CYC:113 SL:249 CAFB EA NOP A:80 X:80 Y:80 P:A5 SP:FB CYC:122 SL:249 CAFC E0 80 CPX #$80 A:80 X:80 Y:80 P:A5 SP:FB CYC:128 SL:249 CAFE D0 07 BNE $CB07 A:80 X:80 Y:80 P:27 SP:FB CYC:134 SL:249 CB00 30 05 BMI $CB07 A:80 X:80 Y:80 P:27 SP:FB CYC:140 SL:249 CB02 90 03 BCC $CB07 A:80 X:80 Y:80 P:27 SP:FB CYC:146 SL:249 CB04 4C 0B CB JMP $CB0B A:80 X:80 Y:80 P:27 SP:FB CYC:152 SL:249 CB0B EA NOP A:80 X:80 Y:80 P:27 SP:FB CYC:161 SL:249 CB0C E0 81 CPX #$81 A:80 X:80 Y:80 P:27 SP:FB CYC:167 SL:249 CB0E B0 07 BCS $CB17 A:80 X:80 Y:80 P:A4 SP:FB CYC:173 SL:249 CB10 F0 05 BEQ $CB17 A:80 X:80 Y:80 P:A4 SP:FB CYC:179 SL:249 CB12 10 03 BPL $CB17 A:80 X:80 Y:80 P:A4 SP:FB CYC:185 SL:249 CB14 4C 1B CB JMP $CB1B A:80 X:80 Y:80 P:A4 SP:FB CYC:191 SL:249 CB1B EA NOP A:80 X:80 Y:80 P:A4 SP:FB CYC:200 SL:249 CB1C E0 7F CPX #$7F A:80 X:80 Y:80 P:A4 SP:FB CYC:206 SL:249 CB1E 90 07 BCC $CB27 A:80 X:80 Y:80 P:25 SP:FB CYC:212 SL:249 CB20 F0 05 BEQ $CB27 A:80 X:80 Y:80 P:25 SP:FB CYC:218 SL:249 CB22 30 03 BMI $CB27 A:80 X:80 Y:80 P:25 SP:FB CYC:224 SL:249 CB24 4C 2B CB JMP $CB2B A:80 X:80 Y:80 P:25 SP:FB CYC:230 SL:249 CB2B EA NOP A:80 X:80 Y:80 P:25 SP:FB CYC:239 SL:249 CB2C 38 SEC A:80 X:80 Y:80 P:25 SP:FB CYC:245 SL:249 CB2D B8 CLV A:80 X:80 Y:80 P:25 SP:FB CYC:251 SL:249 CB2E A2 9F LDX #$9F A:80 X:80 Y:80 P:25 SP:FB CYC:257 SL:249 CB30 F0 09 BEQ $CB3B A:80 X:9F Y:80 P:A5 SP:FB CYC:263 SL:249 CB32 10 07 BPL $CB3B A:80 X:9F Y:80 P:A5 SP:FB CYC:269 SL:249 CB34 70 05 BVS $CB3B A:80 X:9F Y:80 P:A5 SP:FB CYC:275 SL:249 CB36 90 03 BCC $CB3B A:80 X:9F Y:80 P:A5 SP:FB CYC:281 SL:249 CB38 4C 3F CB JMP $CB3F A:80 X:9F Y:80 P:A5 SP:FB CYC:287 SL:249 CB3F EA NOP A:80 X:9F Y:80 P:A5 SP:FB CYC:296 SL:249 CB40 18 CLC A:80 X:9F Y:80 P:A5 SP:FB CYC:302 SL:249 CB41 24 01 BIT $01 = FF A:80 X:9F Y:80 P:A4 SP:FB CYC:308 SL:249 CB43 A2 00 LDX #$00 A:80 X:9F Y:80 P:E4 SP:FB CYC:317 SL:249 CB45 D0 09 BNE $CB50 A:80 X:00 Y:80 P:66 SP:FB CYC:323 SL:249 CB47 30 07 BMI $CB50 A:80 X:00 Y:80 P:66 SP:FB CYC:329 SL:249 CB49 50 05 BVC $CB50 A:80 X:00 Y:80 P:66 SP:FB CYC:335 SL:249 CB4B B0 03 BCS $CB50 A:80 X:00 Y:80 P:66 SP:FB CYC: 0 SL:250 CB4D 4C 54 CB JMP $CB54 A:80 X:00 Y:80 P:66 SP:FB CYC: 6 SL:250 CB54 EA NOP A:80 X:00 Y:80 P:66 SP:FB CYC: 15 SL:250 CB55 38 SEC A:80 X:00 Y:80 P:66 SP:FB CYC: 21 SL:250 CB56 B8 CLV A:80 X:00 Y:80 P:67 SP:FB CYC: 27 SL:250 CB57 A0 9F LDY #$9F A:80 X:00 Y:80 P:27 SP:FB CYC: 33 SL:250 CB59 F0 09 BEQ $CB64 A:80 X:00 Y:9F P:A5 SP:FB CYC: 39 SL:250 CB5B 10 07 BPL $CB64 A:80 X:00 Y:9F P:A5 SP:FB CYC: 45 SL:250 CB5D 70 05 BVS $CB64 A:80 X:00 Y:9F P:A5 SP:FB CYC: 51 SL:250 CB5F 90 03 BCC $CB64 A:80 X:00 Y:9F P:A5 SP:FB CYC: 57 SL:250 CB61 4C 68 CB JMP $CB68 A:80 X:00 Y:9F P:A5 SP:FB CYC: 63 SL:250 CB68 EA NOP A:80 X:00 Y:9F P:A5 SP:FB CYC: 72 SL:250 CB69 18 CLC A:80 X:00 Y:9F P:A5 SP:FB CYC: 78 SL:250 CB6A 24 01 BIT $01 = FF A:80 X:00 Y:9F P:A4 SP:FB CYC: 84 SL:250 CB6C A0 00 LDY #$00 A:80 X:00 Y:9F P:E4 SP:FB CYC: 93 SL:250 CB6E D0 09 BNE $CB79 A:80 X:00 Y:00 P:66 SP:FB CYC: 99 SL:250 CB70 30 07 BMI $CB79 A:80 X:00 Y:00 P:66 SP:FB CYC:105 SL:250 CB72 50 05 BVC $CB79 A:80 X:00 Y:00 P:66 SP:FB CYC:111 SL:250 CB74 B0 03 BCS $CB79 A:80 X:00 Y:00 P:66 SP:FB CYC:117 SL:250 CB76 4C 7D CB JMP $CB7D A:80 X:00 Y:00 P:66 SP:FB CYC:123 SL:250 CB7D EA NOP A:80 X:00 Y:00 P:66 SP:FB CYC:132 SL:250 CB7E A9 55 LDA #$55 A:80 X:00 Y:00 P:66 SP:FB CYC:138 SL:250 CB80 A2 AA LDX #$AA A:55 X:00 Y:00 P:64 SP:FB CYC:144 SL:250 CB82 A0 33 LDY #$33 A:55 X:AA Y:00 P:E4 SP:FB CYC:150 SL:250 CB84 C9 55 CMP #$55 A:55 X:AA Y:33 P:64 SP:FB CYC:156 SL:250 CB86 D0 23 BNE $CBAB A:55 X:AA Y:33 P:67 SP:FB CYC:162 SL:250 CB88 E0 AA CPX #$AA A:55 X:AA Y:33 P:67 SP:FB CYC:168 SL:250 CB8A D0 1F BNE $CBAB A:55 X:AA Y:33 P:67 SP:FB CYC:174 SL:250 CB8C C0 33 CPY #$33 A:55 X:AA Y:33 P:67 SP:FB CYC:180 SL:250 CB8E D0 1B BNE $CBAB A:55 X:AA Y:33 P:67 SP:FB CYC:186 SL:250 CB90 C9 55 CMP #$55 A:55 X:AA Y:33 P:67 SP:FB CYC:192 SL:250 CB92 D0 17 BNE $CBAB A:55 X:AA Y:33 P:67 SP:FB CYC:198 SL:250 CB94 E0 AA CPX #$AA A:55 X:AA Y:33 P:67 SP:FB CYC:204 SL:250 CB96 D0 13 BNE $CBAB A:55 X:AA Y:33 P:67 SP:FB CYC:210 SL:250 CB98 C0 33 CPY #$33 A:55 X:AA Y:33 P:67 SP:FB CYC:216 SL:250 CB9A D0 0F BNE $CBAB A:55 X:AA Y:33 P:67 SP:FB CYC:222 SL:250 CB9C C9 56 CMP #$56 A:55 X:AA Y:33 P:67 SP:FB CYC:228 SL:250 CB9E F0 0B BEQ $CBAB A:55 X:AA Y:33 P:E4 SP:FB CYC:234 SL:250 CBA0 E0 AB CPX #$AB A:55 X:AA Y:33 P:E4 SP:FB CYC:240 SL:250 CBA2 F0 07 BEQ $CBAB A:55 X:AA Y:33 P:E4 SP:FB CYC:246 SL:250 CBA4 C0 34 CPY #$34 A:55 X:AA Y:33 P:E4 SP:FB CYC:252 SL:250 CBA6 F0 03 BEQ $CBAB A:55 X:AA Y:33 P:E4 SP:FB CYC:258 SL:250 CBA8 4C AF CB JMP $CBAF A:55 X:AA Y:33 P:E4 SP:FB CYC:264 SL:250 CBAF A0 71 LDY #$71 A:55 X:AA Y:33 P:E4 SP:FB CYC:273 SL:250 CBB1 20 31 F9 JSR $F931 A:55 X:AA Y:71 P:64 SP:FB CYC:279 SL:250 F931 24 01 BIT $01 = FF A:55 X:AA Y:71 P:64 SP:F9 CYC:297 SL:250 F933 A9 40 LDA #$40 A:55 X:AA Y:71 P:E4 SP:F9 CYC:306 SL:250 F935 38 SEC A:40 X:AA Y:71 P:64 SP:F9 CYC:312 SL:250 F936 60 RTS A:40 X:AA Y:71 P:65 SP:F9 CYC:318 SL:250 CBB4 E9 40 SBC #$40 A:40 X:AA Y:71 P:65 SP:FB CYC:336 SL:250 CBB6 20 37 F9 JSR $F937 A:00 X:AA Y:71 P:27 SP:FB CYC: 1 SL:251 F937 30 0B BMI $F944 A:00 X:AA Y:71 P:27 SP:F9 CYC: 19 SL:251 F939 90 09 BCC $F944 A:00 X:AA Y:71 P:27 SP:F9 CYC: 25 SL:251 F93B D0 07 BNE $F944 A:00 X:AA Y:71 P:27 SP:F9 CYC: 31 SL:251 F93D 70 05 BVS $F944 A:00 X:AA Y:71 P:27 SP:F9 CYC: 37 SL:251 F93F C9 00 CMP #$00 A:00 X:AA Y:71 P:27 SP:F9 CYC: 43 SL:251 F941 D0 01 BNE $F944 A:00 X:AA Y:71 P:27 SP:F9 CYC: 49 SL:251 F943 60 RTS A:00 X:AA Y:71 P:27 SP:F9 CYC: 55 SL:251 CBB9 C8 INY A:00 X:AA Y:71 P:27 SP:FB CYC: 73 SL:251 CBBA 20 47 F9 JSR $F947 A:00 X:AA Y:72 P:25 SP:FB CYC: 79 SL:251 F947 B8 CLV A:00 X:AA Y:72 P:25 SP:F9 CYC: 97 SL:251 F948 38 SEC A:00 X:AA Y:72 P:25 SP:F9 CYC:103 SL:251 F949 A9 40 LDA #$40 A:00 X:AA Y:72 P:25 SP:F9 CYC:109 SL:251 F94B 60 RTS A:40 X:AA Y:72 P:25 SP:F9 CYC:115 SL:251 CBBD E9 3F SBC #$3F A:40 X:AA Y:72 P:25 SP:FB CYC:133 SL:251 CBBF 20 4C F9 JSR $F94C A:01 X:AA Y:72 P:25 SP:FB CYC:139 SL:251 F94C F0 0B BEQ $F959 A:01 X:AA Y:72 P:25 SP:F9 CYC:157 SL:251 F94E 30 09 BMI $F959 A:01 X:AA Y:72 P:25 SP:F9 CYC:163 SL:251 F950 90 07 BCC $F959 A:01 X:AA Y:72 P:25 SP:F9 CYC:169 SL:251 F952 70 05 BVS $F959 A:01 X:AA Y:72 P:25 SP:F9 CYC:175 SL:251 F954 C9 01 CMP #$01 A:01 X:AA Y:72 P:25 SP:F9 CYC:181 SL:251 F956 D0 01 BNE $F959 A:01 X:AA Y:72 P:27 SP:F9 CYC:187 SL:251 F958 60 RTS A:01 X:AA Y:72 P:27 SP:F9 CYC:193 SL:251 CBC2 C8 INY A:01 X:AA Y:72 P:27 SP:FB CYC:211 SL:251 CBC3 20 5C F9 JSR $F95C A:01 X:AA Y:73 P:25 SP:FB CYC:217 SL:251 F95C A9 40 LDA #$40 A:01 X:AA Y:73 P:25 SP:F9 CYC:235 SL:251 F95E 38 SEC A:40 X:AA Y:73 P:25 SP:F9 CYC:241 SL:251 F95F 24 01 BIT $01 = FF A:40 X:AA Y:73 P:25 SP:F9 CYC:247 SL:251 F961 60 RTS A:40 X:AA Y:73 P:E5 SP:F9 CYC:256 SL:251 CBC6 E9 41 SBC #$41 A:40 X:AA Y:73 P:E5 SP:FB CYC:274 SL:251 CBC8 20 62 F9 JSR $F962 A:FF X:AA Y:73 P:A4 SP:FB CYC:280 SL:251 F962 B0 0B BCS $F96F A:FF X:AA Y:73 P:A4 SP:F9 CYC:298 SL:251 F964 F0 09 BEQ $F96F A:FF X:AA Y:73 P:A4 SP:F9 CYC:304 SL:251 F966 10 07 BPL $F96F A:FF X:AA Y:73 P:A4 SP:F9 CYC:310 SL:251 F968 70 05 BVS $F96F A:FF X:AA Y:73 P:A4 SP:F9 CYC:316 SL:251 F96A C9 FF CMP #$FF A:FF X:AA Y:73 P:A4 SP:F9 CYC:322 SL:251 F96C D0 01 BNE $F96F A:FF X:AA Y:73 P:27 SP:F9 CYC:328 SL:251 F96E 60 RTS A:FF X:AA Y:73 P:27 SP:F9 CYC:334 SL:251 CBCB C8 INY A:FF X:AA Y:73 P:27 SP:FB CYC: 11 SL:252 CBCC 20 72 F9 JSR $F972 A:FF X:AA Y:74 P:25 SP:FB CYC: 17 SL:252 F972 18 CLC A:FF X:AA Y:74 P:25 SP:F9 CYC: 35 SL:252 F973 A9 80 LDA #$80 A:FF X:AA Y:74 P:24 SP:F9 CYC: 41 SL:252 F975 60 RTS A:80 X:AA Y:74 P:A4 SP:F9 CYC: 47 SL:252 CBCF E9 00 SBC #$00 A:80 X:AA Y:74 P:A4 SP:FB CYC: 65 SL:252 CBD1 20 76 F9 JSR $F976 A:7F X:AA Y:74 P:65 SP:FB CYC: 71 SL:252 F976 90 05 BCC $F97D A:7F X:AA Y:74 P:65 SP:F9 CYC: 89 SL:252 F978 C9 7F CMP #$7F A:7F X:AA Y:74 P:65 SP:F9 CYC: 95 SL:252 F97A D0 01 BNE $F97D A:7F X:AA Y:74 P:67 SP:F9 CYC:101 SL:252 F97C 60 RTS A:7F X:AA Y:74 P:67 SP:F9 CYC:107 SL:252 CBD4 C8 INY A:7F X:AA Y:74 P:67 SP:FB CYC:125 SL:252 CBD5 20 80 F9 JSR $F980 A:7F X:AA Y:75 P:65 SP:FB CYC:131 SL:252 F980 38 SEC A:7F X:AA Y:75 P:65 SP:F9 CYC:149 SL:252 F981 A9 81 LDA #$81 A:7F X:AA Y:75 P:65 SP:F9 CYC:155 SL:252 F983 60 RTS A:81 X:AA Y:75 P:E5 SP:F9 CYC:161 SL:252 CBD8 E9 7F SBC #$7F A:81 X:AA Y:75 P:E5 SP:FB CYC:179 SL:252 CBDA 20 84 F9 JSR $F984 A:02 X:AA Y:75 P:65 SP:FB CYC:185 SL:252 F984 50 07 BVC $F98D A:02 X:AA Y:75 P:65 SP:F9 CYC:203 SL:252 F986 90 05 BCC $F98D A:02 X:AA Y:75 P:65 SP:F9 CYC:209 SL:252 F988 C9 02 CMP #$02 A:02 X:AA Y:75 P:65 SP:F9 CYC:215 SL:252 F98A D0 01 BNE $F98D A:02 X:AA Y:75 P:67 SP:F9 CYC:221 SL:252 F98C 60 RTS A:02 X:AA Y:75 P:67 SP:F9 CYC:227 SL:252 CBDD 60 RTS A:02 X:AA Y:75 P:67 SP:FB CYC:245 SL:252 C606 20 DE CB JSR $CBDE A:02 X:AA Y:75 P:67 SP:FD CYC:263 SL:252 CBDE EA NOP A:02 X:AA Y:75 P:67 SP:FB CYC:281 SL:252 CBDF A9 FF LDA #$FF A:02 X:AA Y:75 P:67 SP:FB CYC:287 SL:252 CBE1 85 01 STA $01 = FF A:FF X:AA Y:75 P:E5 SP:FB CYC:293 SL:252 CBE3 A9 44 LDA #$44 A:FF X:AA Y:75 P:E5 SP:FB CYC:302 SL:252 CBE5 A2 55 LDX #$55 A:44 X:AA Y:75 P:65 SP:FB CYC:308 SL:252 CBE7 A0 66 LDY #$66 A:44 X:55 Y:75 P:65 SP:FB CYC:314 SL:252 CBE9 E8 INX A:44 X:55 Y:66 P:65 SP:FB CYC:320 SL:252 CBEA 88 DEY A:44 X:56 Y:66 P:65 SP:FB CYC:326 SL:252 CBEB E0 56 CPX #$56 A:44 X:56 Y:65 P:65 SP:FB CYC:332 SL:252 CBED D0 21 BNE $CC10 A:44 X:56 Y:65 P:67 SP:FB CYC:338 SL:252 CBEF C0 65 CPY #$65 A:44 X:56 Y:65 P:67 SP:FB CYC: 3 SL:253 CBF1 D0 1D BNE $CC10 A:44 X:56 Y:65 P:67 SP:FB CYC: 9 SL:253 CBF3 E8 INX A:44 X:56 Y:65 P:67 SP:FB CYC: 15 SL:253 CBF4 E8 INX A:44 X:57 Y:65 P:65 SP:FB CYC: 21 SL:253 CBF5 88 DEY A:44 X:58 Y:65 P:65 SP:FB CYC: 27 SL:253 CBF6 88 DEY A:44 X:58 Y:64 P:65 SP:FB CYC: 33 SL:253 CBF7 E0 58 CPX #$58 A:44 X:58 Y:63 P:65 SP:FB CYC: 39 SL:253 CBF9 D0 15 BNE $CC10 A:44 X:58 Y:63 P:67 SP:FB CYC: 45 SL:253 CBFB C0 63 CPY #$63 A:44 X:58 Y:63 P:67 SP:FB CYC: 51 SL:253 CBFD D0 11 BNE $CC10 A:44 X:58 Y:63 P:67 SP:FB CYC: 57 SL:253 CBFF CA DEX A:44 X:58 Y:63 P:67 SP:FB CYC: 63 SL:253 CC00 C8 INY A:44 X:57 Y:63 P:65 SP:FB CYC: 69 SL:253 CC01 E0 57 CPX #$57 A:44 X:57 Y:64 P:65 SP:FB CYC: 75 SL:253 CC03 D0 0B BNE $CC10 A:44 X:57 Y:64 P:67 SP:FB CYC: 81 SL:253 CC05 C0 64 CPY #$64 A:44 X:57 Y:64 P:67 SP:FB CYC: 87 SL:253 CC07 D0 07 BNE $CC10 A:44 X:57 Y:64 P:67 SP:FB CYC: 93 SL:253 CC09 C9 44 CMP #$44 A:44 X:57 Y:64 P:67 SP:FB CYC: 99 SL:253 CC0B D0 03 BNE $CC10 A:44 X:57 Y:64 P:67 SP:FB CYC:105 SL:253 CC0D 4C 14 CC JMP $CC14 A:44 X:57 Y:64 P:67 SP:FB CYC:111 SL:253 CC14 EA NOP A:44 X:57 Y:64 P:67 SP:FB CYC:120 SL:253 CC15 38 SEC A:44 X:57 Y:64 P:67 SP:FB CYC:126 SL:253 CC16 A2 69 LDX #$69 A:44 X:57 Y:64 P:67 SP:FB CYC:132 SL:253 CC18 A9 96 LDA #$96 A:44 X:69 Y:64 P:65 SP:FB CYC:138 SL:253 CC1A 24 01 BIT $01 = FF A:96 X:69 Y:64 P:E5 SP:FB CYC:144 SL:253 CC1C A0 FF LDY #$FF A:96 X:69 Y:64 P:E5 SP:FB CYC:153 SL:253 CC1E C8 INY A:96 X:69 Y:FF P:E5 SP:FB CYC:159 SL:253 CC1F D0 3D BNE $CC5E A:96 X:69 Y:00 P:67 SP:FB CYC:165 SL:253 CC21 30 3B BMI $CC5E A:96 X:69 Y:00 P:67 SP:FB CYC:171 SL:253 CC23 90 39 BCC $CC5E A:96 X:69 Y:00 P:67 SP:FB CYC:177 SL:253 CC25 50 37 BVC $CC5E A:96 X:69 Y:00 P:67 SP:FB CYC:183 SL:253 CC27 C0 00 CPY #$00 A:96 X:69 Y:00 P:67 SP:FB CYC:189 SL:253 CC29 D0 33 BNE $CC5E A:96 X:69 Y:00 P:67 SP:FB CYC:195 SL:253 CC2B C8 INY A:96 X:69 Y:00 P:67 SP:FB CYC:201 SL:253 CC2C F0 30 BEQ $CC5E A:96 X:69 Y:01 P:65 SP:FB CYC:207 SL:253 CC2E 30 2E BMI $CC5E A:96 X:69 Y:01 P:65 SP:FB CYC:213 SL:253 CC30 90 2C BCC $CC5E A:96 X:69 Y:01 P:65 SP:FB CYC:219 SL:253 CC32 50 2A BVC $CC5E A:96 X:69 Y:01 P:65 SP:FB CYC:225 SL:253 CC34 18 CLC A:96 X:69 Y:01 P:65 SP:FB CYC:231 SL:253 CC35 B8 CLV A:96 X:69 Y:01 P:64 SP:FB CYC:237 SL:253 CC36 A0 00 LDY #$00 A:96 X:69 Y:01 P:24 SP:FB CYC:243 SL:253 CC38 88 DEY A:96 X:69 Y:00 P:26 SP:FB CYC:249 SL:253 CC39 F0 23 BEQ $CC5E A:96 X:69 Y:FF P:A4 SP:FB CYC:255 SL:253 CC3B 10 21 BPL $CC5E A:96 X:69 Y:FF P:A4 SP:FB CYC:261 SL:253 CC3D B0 1F BCS $CC5E A:96 X:69 Y:FF P:A4 SP:FB CYC:267 SL:253 CC3F 70 1D BVS $CC5E A:96 X:69 Y:FF P:A4 SP:FB CYC:273 SL:253 CC41 C0 FF CPY #$FF A:96 X:69 Y:FF P:A4 SP:FB CYC:279 SL:253 CC43 D0 19 BNE $CC5E A:96 X:69 Y:FF P:27 SP:FB CYC:285 SL:253 CC45 18 CLC A:96 X:69 Y:FF P:27 SP:FB CYC:291 SL:253 CC46 88 DEY A:96 X:69 Y:FF P:26 SP:FB CYC:297 SL:253 CC47 F0 15 BEQ $CC5E A:96 X:69 Y:FE P:A4 SP:FB CYC:303 SL:253 CC49 10 13 BPL $CC5E A:96 X:69 Y:FE P:A4 SP:FB CYC:309 SL:253 CC4B B0 11 BCS $CC5E A:96 X:69 Y:FE P:A4 SP:FB CYC:315 SL:253 CC4D 70 0F BVS $CC5E A:96 X:69 Y:FE P:A4 SP:FB CYC:321 SL:253 CC4F C0 FE CPY #$FE A:96 X:69 Y:FE P:A4 SP:FB CYC:327 SL:253 CC51 D0 0B BNE $CC5E A:96 X:69 Y:FE P:27 SP:FB CYC:333 SL:253 CC53 C9 96 CMP #$96 A:96 X:69 Y:FE P:27 SP:FB CYC:339 SL:253 CC55 D0 07 BNE $CC5E A:96 X:69 Y:FE P:27 SP:FB CYC: 4 SL:254 CC57 E0 69 CPX #$69 A:96 X:69 Y:FE P:27 SP:FB CYC: 10 SL:254 CC59 D0 03 BNE $CC5E A:96 X:69 Y:FE P:27 SP:FB CYC: 16 SL:254 CC5B 4C 62 CC JMP $CC62 A:96 X:69 Y:FE P:27 SP:FB CYC: 22 SL:254 CC62 EA NOP A:96 X:69 Y:FE P:27 SP:FB CYC: 31 SL:254 CC63 38 SEC A:96 X:69 Y:FE P:27 SP:FB CYC: 37 SL:254 CC64 A0 69 LDY #$69 A:96 X:69 Y:FE P:27 SP:FB CYC: 43 SL:254 CC66 A9 96 LDA #$96 A:96 X:69 Y:69 P:25 SP:FB CYC: 49 SL:254 CC68 24 01 BIT $01 = FF A:96 X:69 Y:69 P:A5 SP:FB CYC: 55 SL:254 CC6A A2 FF LDX #$FF A:96 X:69 Y:69 P:E5 SP:FB CYC: 64 SL:254 CC6C E8 INX A:96 X:FF Y:69 P:E5 SP:FB CYC: 70 SL:254 CC6D D0 3D BNE $CCAC A:96 X:00 Y:69 P:67 SP:FB CYC: 76 SL:254 CC6F 30 3B BMI $CCAC A:96 X:00 Y:69 P:67 SP:FB CYC: 82 SL:254 CC71 90 39 BCC $CCAC A:96 X:00 Y:69 P:67 SP:FB CYC: 88 SL:254 CC73 50 37 BVC $CCAC A:96 X:00 Y:69 P:67 SP:FB CYC: 94 SL:254 CC75 E0 00 CPX #$00 A:96 X:00 Y:69 P:67 SP:FB CYC:100 SL:254 CC77 D0 33 BNE $CCAC A:96 X:00 Y:69 P:67 SP:FB CYC:106 SL:254 CC79 E8 INX A:96 X:00 Y:69 P:67 SP:FB CYC:112 SL:254 CC7A F0 30 BEQ $CCAC A:96 X:01 Y:69 P:65 SP:FB CYC:118 SL:254 CC7C 30 2E BMI $CCAC A:96 X:01 Y:69 P:65 SP:FB CYC:124 SL:254 CC7E 90 2C BCC $CCAC A:96 X:01 Y:69 P:65 SP:FB CYC:130 SL:254 CC80 50 2A BVC $CCAC A:96 X:01 Y:69 P:65 SP:FB CYC:136 SL:254 CC82 18 CLC A:96 X:01 Y:69 P:65 SP:FB CYC:142 SL:254 CC83 B8 CLV A:96 X:01 Y:69 P:64 SP:FB CYC:148 SL:254 CC84 A2 00 LDX #$00 A:96 X:01 Y:69 P:24 SP:FB CYC:154 SL:254 CC86 CA DEX A:96 X:00 Y:69 P:26 SP:FB CYC:160 SL:254 CC87 F0 23 BEQ $CCAC A:96 X:FF Y:69 P:A4 SP:FB CYC:166 SL:254 CC89 10 21 BPL $CCAC A:96 X:FF Y:69 P:A4 SP:FB CYC:172 SL:254 CC8B B0 1F BCS $CCAC A:96 X:FF Y:69 P:A4 SP:FB CYC:178 SL:254 CC8D 70 1D BVS $CCAC A:96 X:FF Y:69 P:A4 SP:FB CYC:184 SL:254 CC8F E0 FF CPX #$FF A:96 X:FF Y:69 P:A4 SP:FB CYC:190 SL:254 CC91 D0 19 BNE $CCAC A:96 X:FF Y:69 P:27 SP:FB CYC:196 SL:254 CC93 18 CLC A:96 X:FF Y:69 P:27 SP:FB CYC:202 SL:254 CC94 CA DEX A:96 X:FF Y:69 P:26 SP:FB CYC:208 SL:254 CC95 F0 15 BEQ $CCAC A:96 X:FE Y:69 P:A4 SP:FB CYC:214 SL:254 CC97 10 13 BPL $CCAC A:96 X:FE Y:69 P:A4 SP:FB CYC:220 SL:254 CC99 B0 11 BCS $CCAC A:96 X:FE Y:69 P:A4 SP:FB CYC:226 SL:254 CC9B 70 0F BVS $CCAC A:96 X:FE Y:69 P:A4 SP:FB CYC:232 SL:254 CC9D E0 FE CPX #$FE A:96 X:FE Y:69 P:A4 SP:FB CYC:238 SL:254 CC9F D0 0B BNE $CCAC A:96 X:FE Y:69 P:27 SP:FB CYC:244 SL:254 CCA1 C9 96 CMP #$96 A:96 X:FE Y:69 P:27 SP:FB CYC:250 SL:254 CCA3 D0 07 BNE $CCAC A:96 X:FE Y:69 P:27 SP:FB CYC:256 SL:254 CCA5 C0 69 CPY #$69 A:96 X:FE Y:69 P:27 SP:FB CYC:262 SL:254 CCA7 D0 03 BNE $CCAC A:96 X:FE Y:69 P:27 SP:FB CYC:268 SL:254 CCA9 4C B0 CC JMP $CCB0 A:96 X:FE Y:69 P:27 SP:FB CYC:274 SL:254 CCB0 EA NOP A:96 X:FE Y:69 P:27 SP:FB CYC:283 SL:254 CCB1 A9 85 LDA #$85 A:96 X:FE Y:69 P:27 SP:FB CYC:289 SL:254 CCB3 A2 34 LDX #$34 A:85 X:FE Y:69 P:A5 SP:FB CYC:295 SL:254 CCB5 A0 99 LDY #$99 A:85 X:34 Y:69 P:25 SP:FB CYC:301 SL:254 CCB7 18 CLC A:85 X:34 Y:99 P:A5 SP:FB CYC:307 SL:254 CCB8 24 01 BIT $01 = FF A:85 X:34 Y:99 P:A4 SP:FB CYC:313 SL:254 CCBA A8 TAY A:85 X:34 Y:99 P:E4 SP:FB CYC:322 SL:254 CCBB F0 2E BEQ $CCEB A:85 X:34 Y:85 P:E4 SP:FB CYC:328 SL:254 CCBD B0 2C BCS $CCEB A:85 X:34 Y:85 P:E4 SP:FB CYC:334 SL:254 CCBF 50 2A BVC $CCEB A:85 X:34 Y:85 P:E4 SP:FB CYC:340 SL:254 CCC1 10 28 BPL $CCEB A:85 X:34 Y:85 P:E4 SP:FB CYC: 5 SL:255 CCC3 C9 85 CMP #$85 A:85 X:34 Y:85 P:E4 SP:FB CYC: 11 SL:255 CCC5 D0 24 BNE $CCEB A:85 X:34 Y:85 P:67 SP:FB CYC: 17 SL:255 CCC7 E0 34 CPX #$34 A:85 X:34 Y:85 P:67 SP:FB CYC: 23 SL:255 CCC9 D0 20 BNE $CCEB A:85 X:34 Y:85 P:67 SP:FB CYC: 29 SL:255 CCCB C0 85 CPY #$85 A:85 X:34 Y:85 P:67 SP:FB CYC: 35 SL:255 CCCD D0 1C BNE $CCEB A:85 X:34 Y:85 P:67 SP:FB CYC: 41 SL:255 CCCF A9 00 LDA #$00 A:85 X:34 Y:85 P:67 SP:FB CYC: 47 SL:255 CCD1 38 SEC A:00 X:34 Y:85 P:67 SP:FB CYC: 53 SL:255 CCD2 B8 CLV A:00 X:34 Y:85 P:67 SP:FB CYC: 59 SL:255 CCD3 A8 TAY A:00 X:34 Y:85 P:27 SP:FB CYC: 65 SL:255 CCD4 D0 15 BNE $CCEB A:00 X:34 Y:00 P:27 SP:FB CYC: 71 SL:255 CCD6 90 13 BCC $CCEB A:00 X:34 Y:00 P:27 SP:FB CYC: 77 SL:255 CCD8 70 11 BVS $CCEB A:00 X:34 Y:00 P:27 SP:FB CYC: 83 SL:255 CCDA 30 0F BMI $CCEB A:00 X:34 Y:00 P:27 SP:FB CYC: 89 SL:255 CCDC C9 00 CMP #$00 A:00 X:34 Y:00 P:27 SP:FB CYC: 95 SL:255 CCDE D0 0B BNE $CCEB A:00 X:34 Y:00 P:27 SP:FB CYC:101 SL:255 CCE0 E0 34 CPX #$34 A:00 X:34 Y:00 P:27 SP:FB CYC:107 SL:255 CCE2 D0 07 BNE $CCEB A:00 X:34 Y:00 P:27 SP:FB CYC:113 SL:255 CCE4 C0 00 CPY #$00 A:00 X:34 Y:00 P:27 SP:FB CYC:119 SL:255 CCE6 D0 03 BNE $CCEB A:00 X:34 Y:00 P:27 SP:FB CYC:125 SL:255 CCE8 4C EF CC JMP $CCEF A:00 X:34 Y:00 P:27 SP:FB CYC:131 SL:255 CCEF EA NOP A:00 X:34 Y:00 P:27 SP:FB CYC:140 SL:255 CCF0 A9 85 LDA #$85 A:00 X:34 Y:00 P:27 SP:FB CYC:146 SL:255 CCF2 A2 34 LDX #$34 A:85 X:34 Y:00 P:A5 SP:FB CYC:152 SL:255 CCF4 A0 99 LDY #$99 A:85 X:34 Y:00 P:25 SP:FB CYC:158 SL:255 CCF6 18 CLC A:85 X:34 Y:99 P:A5 SP:FB CYC:164 SL:255 CCF7 24 01 BIT $01 = FF A:85 X:34 Y:99 P:A4 SP:FB CYC:170 SL:255 CCF9 AA TAX A:85 X:34 Y:99 P:E4 SP:FB CYC:179 SL:255 CCFA F0 2E BEQ $CD2A A:85 X:85 Y:99 P:E4 SP:FB CYC:185 SL:255 CCFC B0 2C BCS $CD2A A:85 X:85 Y:99 P:E4 SP:FB CYC:191 SL:255 CCFE 50 2A BVC $CD2A A:85 X:85 Y:99 P:E4 SP:FB CYC:197 SL:255 CD00 10 28 BPL $CD2A A:85 X:85 Y:99 P:E4 SP:FB CYC:203 SL:255 CD02 C9 85 CMP #$85 A:85 X:85 Y:99 P:E4 SP:FB CYC:209 SL:255 CD04 D0 24 BNE $CD2A A:85 X:85 Y:99 P:67 SP:FB CYC:215 SL:255 CD06 E0 85 CPX #$85 A:85 X:85 Y:99 P:67 SP:FB CYC:221 SL:255 CD08 D0 20 BNE $CD2A A:85 X:85 Y:99 P:67 SP:FB CYC:227 SL:255 CD0A C0 99 CPY #$99 A:85 X:85 Y:99 P:67 SP:FB CYC:233 SL:255 CD0C D0 1C BNE $CD2A A:85 X:85 Y:99 P:67 SP:FB CYC:239 SL:255 CD0E A9 00 LDA #$00 A:85 X:85 Y:99 P:67 SP:FB CYC:245 SL:255 CD10 38 SEC A:00 X:85 Y:99 P:67 SP:FB CYC:251 SL:255 CD11 B8 CLV A:00 X:85 Y:99 P:67 SP:FB CYC:257 SL:255 CD12 AA TAX A:00 X:85 Y:99 P:27 SP:FB CYC:263 SL:255 CD13 D0 15 BNE $CD2A A:00 X:00 Y:99 P:27 SP:FB CYC:269 SL:255 CD15 90 13 BCC $CD2A A:00 X:00 Y:99 P:27 SP:FB CYC:275 SL:255 CD17 70 11 BVS $CD2A A:00 X:00 Y:99 P:27 SP:FB CYC:281 SL:255 CD19 30 0F BMI $CD2A A:00 X:00 Y:99 P:27 SP:FB CYC:287 SL:255 CD1B C9 00 CMP #$00 A:00 X:00 Y:99 P:27 SP:FB CYC:293 SL:255 CD1D D0 0B BNE $CD2A A:00 X:00 Y:99 P:27 SP:FB CYC:299 SL:255 CD1F E0 00 CPX #$00 A:00 X:00 Y:99 P:27 SP:FB CYC:305 SL:255 CD21 D0 07 BNE $CD2A A:00 X:00 Y:99 P:27 SP:FB CYC:311 SL:255 CD23 C0 99 CPY #$99 A:00 X:00 Y:99 P:27 SP:FB CYC:317 SL:255 CD25 D0 03 BNE $CD2A A:00 X:00 Y:99 P:27 SP:FB CYC:323 SL:255 CD27 4C 2E CD JMP $CD2E A:00 X:00 Y:99 P:27 SP:FB CYC:329 SL:255 CD2E EA NOP A:00 X:00 Y:99 P:27 SP:FB CYC:338 SL:255 CD2F A9 85 LDA #$85 A:00 X:00 Y:99 P:27 SP:FB CYC: 3 SL:256 CD31 A2 34 LDX #$34 A:85 X:00 Y:99 P:A5 SP:FB CYC: 9 SL:256 CD33 A0 99 LDY #$99 A:85 X:34 Y:99 P:25 SP:FB CYC: 15 SL:256 CD35 18 CLC A:85 X:34 Y:99 P:A5 SP:FB CYC: 21 SL:256 CD36 24 01 BIT $01 = FF A:85 X:34 Y:99 P:A4 SP:FB CYC: 27 SL:256 CD38 98 TYA A:85 X:34 Y:99 P:E4 SP:FB CYC: 36 SL:256 CD39 F0 2E BEQ $CD69 A:99 X:34 Y:99 P:E4 SP:FB CYC: 42 SL:256 CD3B B0 2C BCS $CD69 A:99 X:34 Y:99 P:E4 SP:FB CYC: 48 SL:256 CD3D 50 2A BVC $CD69 A:99 X:34 Y:99 P:E4 SP:FB CYC: 54 SL:256 CD3F 10 28 BPL $CD69 A:99 X:34 Y:99 P:E4 SP:FB CYC: 60 SL:256 CD41 C9 99 CMP #$99 A:99 X:34 Y:99 P:E4 SP:FB CYC: 66 SL:256 CD43 D0 24 BNE $CD69 A:99 X:34 Y:99 P:67 SP:FB CYC: 72 SL:256 CD45 E0 34 CPX #$34 A:99 X:34 Y:99 P:67 SP:FB CYC: 78 SL:256 CD47 D0 20 BNE $CD69 A:99 X:34 Y:99 P:67 SP:FB CYC: 84 SL:256 CD49 C0 99 CPY #$99 A:99 X:34 Y:99 P:67 SP:FB CYC: 90 SL:256 CD4B D0 1C BNE $CD69 A:99 X:34 Y:99 P:67 SP:FB CYC: 96 SL:256 CD4D A0 00 LDY #$00 A:99 X:34 Y:99 P:67 SP:FB CYC:102 SL:256 CD4F 38 SEC A:99 X:34 Y:00 P:67 SP:FB CYC:108 SL:256 CD50 B8 CLV A:99 X:34 Y:00 P:67 SP:FB CYC:114 SL:256 CD51 98 TYA A:99 X:34 Y:00 P:27 SP:FB CYC:120 SL:256 CD52 D0 15 BNE $CD69 A:00 X:34 Y:00 P:27 SP:FB CYC:126 SL:256 CD54 90 13 BCC $CD69 A:00 X:34 Y:00 P:27 SP:FB CYC:132 SL:256 CD56 70 11 BVS $CD69 A:00 X:34 Y:00 P:27 SP:FB CYC:138 SL:256 CD58 30 0F BMI $CD69 A:00 X:34 Y:00 P:27 SP:FB CYC:144 SL:256 CD5A C9 00 CMP #$00 A:00 X:34 Y:00 P:27 SP:FB CYC:150 SL:256 CD5C D0 0B BNE $CD69 A:00 X:34 Y:00 P:27 SP:FB CYC:156 SL:256 CD5E E0 34 CPX #$34 A:00 X:34 Y:00 P:27 SP:FB CYC:162 SL:256 CD60 D0 07 BNE $CD69 A:00 X:34 Y:00 P:27 SP:FB CYC:168 SL:256 CD62 C0 00 CPY #$00 A:00 X:34 Y:00 P:27 SP:FB CYC:174 SL:256 CD64 D0 03 BNE $CD69 A:00 X:34 Y:00 P:27 SP:FB CYC:180 SL:256 CD66 4C 6D CD JMP $CD6D A:00 X:34 Y:00 P:27 SP:FB CYC:186 SL:256 CD6D EA NOP A:00 X:34 Y:00 P:27 SP:FB CYC:195 SL:256 CD6E A9 85 LDA #$85 A:00 X:34 Y:00 P:27 SP:FB CYC:201 SL:256 CD70 A2 34 LDX #$34 A:85 X:34 Y:00 P:A5 SP:FB CYC:207 SL:256 CD72 A0 99 LDY #$99 A:85 X:34 Y:00 P:25 SP:FB CYC:213 SL:256 CD74 18 CLC A:85 X:34 Y:99 P:A5 SP:FB CYC:219 SL:256 CD75 24 01 BIT $01 = FF A:85 X:34 Y:99 P:A4 SP:FB CYC:225 SL:256 CD77 8A TXA A:85 X:34 Y:99 P:E4 SP:FB CYC:234 SL:256 CD78 F0 2E BEQ $CDA8 A:34 X:34 Y:99 P:64 SP:FB CYC:240 SL:256 CD7A B0 2C BCS $CDA8 A:34 X:34 Y:99 P:64 SP:FB CYC:246 SL:256 CD7C 50 2A BVC $CDA8 A:34 X:34 Y:99 P:64 SP:FB CYC:252 SL:256 CD7E 30 28 BMI $CDA8 A:34 X:34 Y:99 P:64 SP:FB CYC:258 SL:256 CD80 C9 34 CMP #$34 A:34 X:34 Y:99 P:64 SP:FB CYC:264 SL:256 CD82 D0 24 BNE $CDA8 A:34 X:34 Y:99 P:67 SP:FB CYC:270 SL:256 CD84 E0 34 CPX #$34 A:34 X:34 Y:99 P:67 SP:FB CYC:276 SL:256 CD86 D0 20 BNE $CDA8 A:34 X:34 Y:99 P:67 SP:FB CYC:282 SL:256 CD88 C0 99 CPY #$99 A:34 X:34 Y:99 P:67 SP:FB CYC:288 SL:256 CD8A D0 1C BNE $CDA8 A:34 X:34 Y:99 P:67 SP:FB CYC:294 SL:256 CD8C A2 00 LDX #$00 A:34 X:34 Y:99 P:67 SP:FB CYC:300 SL:256 CD8E 38 SEC A:34 X:00 Y:99 P:67 SP:FB CYC:306 SL:256 CD8F B8 CLV A:34 X:00 Y:99 P:67 SP:FB CYC:312 SL:256 CD90 8A TXA A:34 X:00 Y:99 P:27 SP:FB CYC:318 SL:256 CD91 D0 15 BNE $CDA8 A:00 X:00 Y:99 P:27 SP:FB CYC:324 SL:256 CD93 90 13 BCC $CDA8 A:00 X:00 Y:99 P:27 SP:FB CYC:330 SL:256 CD95 70 11 BVS $CDA8 A:00 X:00 Y:99 P:27 SP:FB CYC:336 SL:256 CD97 30 0F BMI $CDA8 A:00 X:00 Y:99 P:27 SP:FB CYC: 1 SL:257 CD99 C9 00 CMP #$00 A:00 X:00 Y:99 P:27 SP:FB CYC: 7 SL:257 CD9B D0 0B BNE $CDA8 A:00 X:00 Y:99 P:27 SP:FB CYC: 13 SL:257 CD9D E0 00 CPX #$00 A:00 X:00 Y:99 P:27 SP:FB CYC: 19 SL:257 CD9F D0 07 BNE $CDA8 A:00 X:00 Y:99 P:27 SP:FB CYC: 25 SL:257 CDA1 C0 99 CPY #$99 A:00 X:00 Y:99 P:27 SP:FB CYC: 31 SL:257 CDA3 D0 03 BNE $CDA8 A:00 X:00 Y:99 P:27 SP:FB CYC: 37 SL:257 CDA5 4C AC CD JMP $CDAC A:00 X:00 Y:99 P:27 SP:FB CYC: 43 SL:257 CDAC EA NOP A:00 X:00 Y:99 P:27 SP:FB CYC: 52 SL:257 CDAD BA TSX A:00 X:00 Y:99 P:27 SP:FB CYC: 58 SL:257 CDAE 8E FF 07 STX $07FF = 00 A:00 X:FB Y:99 P:A5 SP:FB CYC: 64 SL:257 CDB1 A0 33 LDY #$33 A:00 X:FB Y:99 P:A5 SP:FB CYC: 76 SL:257 CDB3 A2 69 LDX #$69 A:00 X:FB Y:33 P:25 SP:FB CYC: 82 SL:257 CDB5 A9 84 LDA #$84 A:00 X:69 Y:33 P:25 SP:FB CYC: 88 SL:257 CDB7 18 CLC A:84 X:69 Y:33 P:A5 SP:FB CYC: 94 SL:257 CDB8 24 01 BIT $01 = FF A:84 X:69 Y:33 P:A4 SP:FB CYC:100 SL:257 CDBA 9A TXS A:84 X:69 Y:33 P:E4 SP:FB CYC:109 SL:257 CDBB F0 32 BEQ $CDEF A:84 X:69 Y:33 P:E4 SP:69 CYC:115 SL:257 CDBD 10 30 BPL $CDEF A:84 X:69 Y:33 P:E4 SP:69 CYC:121 SL:257 CDBF B0 2E BCS $CDEF A:84 X:69 Y:33 P:E4 SP:69 CYC:127 SL:257 CDC1 50 2C BVC $CDEF A:84 X:69 Y:33 P:E4 SP:69 CYC:133 SL:257 CDC3 C9 84 CMP #$84 A:84 X:69 Y:33 P:E4 SP:69 CYC:139 SL:257 CDC5 D0 28 BNE $CDEF A:84 X:69 Y:33 P:67 SP:69 CYC:145 SL:257 CDC7 E0 69 CPX #$69 A:84 X:69 Y:33 P:67 SP:69 CYC:151 SL:257 CDC9 D0 24 BNE $CDEF A:84 X:69 Y:33 P:67 SP:69 CYC:157 SL:257 CDCB C0 33 CPY #$33 A:84 X:69 Y:33 P:67 SP:69 CYC:163 SL:257 CDCD D0 20 BNE $CDEF A:84 X:69 Y:33 P:67 SP:69 CYC:169 SL:257 CDCF A0 01 LDY #$01 A:84 X:69 Y:33 P:67 SP:69 CYC:175 SL:257 CDD1 A9 04 LDA #$04 A:84 X:69 Y:01 P:65 SP:69 CYC:181 SL:257 CDD3 38 SEC A:04 X:69 Y:01 P:65 SP:69 CYC:187 SL:257 CDD4 B8 CLV A:04 X:69 Y:01 P:65 SP:69 CYC:193 SL:257 CDD5 A2 00 LDX #$00 A:04 X:69 Y:01 P:25 SP:69 CYC:199 SL:257 CDD7 BA TSX A:04 X:00 Y:01 P:27 SP:69 CYC:205 SL:257 CDD8 F0 15 BEQ $CDEF A:04 X:69 Y:01 P:25 SP:69 CYC:211 SL:257 CDDA 30 13 BMI $CDEF A:04 X:69 Y:01 P:25 SP:69 CYC:217 SL:257 CDDC 90 11 BCC $CDEF A:04 X:69 Y:01 P:25 SP:69 CYC:223 SL:257 CDDE 70 0F BVS $CDEF A:04 X:69 Y:01 P:25 SP:69 CYC:229 SL:257 CDE0 E0 69 CPX #$69 A:04 X:69 Y:01 P:25 SP:69 CYC:235 SL:257 CDE2 D0 0B BNE $CDEF A:04 X:69 Y:01 P:27 SP:69 CYC:241 SL:257 CDE4 C9 04 CMP #$04 A:04 X:69 Y:01 P:27 SP:69 CYC:247 SL:257 CDE6 D0 07 BNE $CDEF A:04 X:69 Y:01 P:27 SP:69 CYC:253 SL:257 CDE8 C0 01 CPY #$01 A:04 X:69 Y:01 P:27 SP:69 CYC:259 SL:257 CDEA D0 03 BNE $CDEF A:04 X:69 Y:01 P:27 SP:69 CYC:265 SL:257 CDEC 4C F3 CD JMP $CDF3 A:04 X:69 Y:01 P:27 SP:69 CYC:271 SL:257 CDF3 AE FF 07 LDX $07FF = FB A:04 X:69 Y:01 P:27 SP:69 CYC:280 SL:257 CDF6 9A TXS A:04 X:FB Y:01 P:A5 SP:69 CYC:292 SL:257 CDF7 60 RTS A:04 X:FB Y:01 P:A5 SP:FB CYC:298 SL:257 C609 20 F8 CD JSR $CDF8 A:04 X:FB Y:01 P:A5 SP:FD CYC:316 SL:257 CDF8 A9 FF LDA #$FF A:04 X:FB Y:01 P:A5 SP:FB CYC:334 SL:257 CDFA 85 01 STA $01 = FF A:FF X:FB Y:01 P:A5 SP:FB CYC:340 SL:257 CDFC BA TSX A:FF X:FB Y:01 P:A5 SP:FB CYC: 8 SL:258 CDFD 8E FF 07 STX $07FF = FB A:FF X:FB Y:01 P:A5 SP:FB CYC: 14 SL:258 CE00 EA NOP A:FF X:FB Y:01 P:A5 SP:FB CYC: 26 SL:258 CE01 A2 80 LDX #$80 A:FF X:FB Y:01 P:A5 SP:FB CYC: 32 SL:258 CE03 9A TXS A:FF X:80 Y:01 P:A5 SP:FB CYC: 38 SL:258 CE04 A9 33 LDA #$33 A:FF X:80 Y:01 P:A5 SP:80 CYC: 44 SL:258 CE06 48 PHA A:33 X:80 Y:01 P:25 SP:80 CYC: 50 SL:258 CE07 A9 69 LDA #$69 A:33 X:80 Y:01 P:25 SP:7F CYC: 59 SL:258 CE09 48 PHA A:69 X:80 Y:01 P:25 SP:7F CYC: 65 SL:258 CE0A BA TSX A:69 X:80 Y:01 P:25 SP:7E CYC: 74 SL:258 CE0B E0 7E CPX #$7E A:69 X:7E Y:01 P:25 SP:7E CYC: 80 SL:258 CE0D D0 20 BNE $CE2F A:69 X:7E Y:01 P:27 SP:7E CYC: 86 SL:258 CE0F 68 PLA A:69 X:7E Y:01 P:27 SP:7E CYC: 92 SL:258 CE10 C9 69 CMP #$69 A:69 X:7E Y:01 P:25 SP:7F CYC:104 SL:258 CE12 D0 1B BNE $CE2F A:69 X:7E Y:01 P:27 SP:7F CYC:110 SL:258 CE14 68 PLA A:69 X:7E Y:01 P:27 SP:7F CYC:116 SL:258 CE15 C9 33 CMP #$33 A:33 X:7E Y:01 P:25 SP:80 CYC:128 SL:258 CE17 D0 16 BNE $CE2F A:33 X:7E Y:01 P:27 SP:80 CYC:134 SL:258 CE19 BA TSX A:33 X:7E Y:01 P:27 SP:80 CYC:140 SL:258 CE1A E0 80 CPX #$80 A:33 X:80 Y:01 P:A5 SP:80 CYC:146 SL:258 CE1C D0 11 BNE $CE2F A:33 X:80 Y:01 P:27 SP:80 CYC:152 SL:258 CE1E AD 80 01 LDA $0180 = 33 A:33 X:80 Y:01 P:27 SP:80 CYC:158 SL:258 CE21 C9 33 CMP #$33 A:33 X:80 Y:01 P:25 SP:80 CYC:170 SL:258 CE23 D0 0A BNE $CE2F A:33 X:80 Y:01 P:27 SP:80 CYC:176 SL:258 CE25 AD 7F 01 LDA $017F = 69 A:33 X:80 Y:01 P:27 SP:80 CYC:182 SL:258 CE28 C9 69 CMP #$69 A:69 X:80 Y:01 P:25 SP:80 CYC:194 SL:258 CE2A D0 03 BNE $CE2F A:69 X:80 Y:01 P:27 SP:80 CYC:200 SL:258 CE2C 4C 33 CE JMP $CE33 A:69 X:80 Y:01 P:27 SP:80 CYC:206 SL:258 CE33 EA NOP A:69 X:80 Y:01 P:27 SP:80 CYC:215 SL:258 CE34 A2 80 LDX #$80 A:69 X:80 Y:01 P:27 SP:80 CYC:221 SL:258 CE36 9A TXS A:69 X:80 Y:01 P:A5 SP:80 CYC:227 SL:258 CE37 20 3D CE JSR $CE3D A:69 X:80 Y:01 P:A5 SP:80 CYC:233 SL:258 CE3D BA TSX A:69 X:80 Y:01 P:A5 SP:7E CYC:251 SL:258 CE3E E0 7E CPX #$7E A:69 X:7E Y:01 P:25 SP:7E CYC:257 SL:258 CE40 D0 19 BNE $CE5B A:69 X:7E Y:01 P:27 SP:7E CYC:263 SL:258 CE42 68 PLA A:69 X:7E Y:01 P:27 SP:7E CYC:269 SL:258 CE43 68 PLA A:39 X:7E Y:01 P:25 SP:7F CYC:281 SL:258 CE44 BA TSX A:CE X:7E Y:01 P:A5 SP:80 CYC:293 SL:258 CE45 E0 80 CPX #$80 A:CE X:80 Y:01 P:A5 SP:80 CYC:299 SL:258 CE47 D0 12 BNE $CE5B A:CE X:80 Y:01 P:27 SP:80 CYC:305 SL:258 CE49 A9 00 LDA #$00 A:CE X:80 Y:01 P:27 SP:80 CYC:311 SL:258 CE4B 20 4E CE JSR $CE4E A:00 X:80 Y:01 P:27 SP:80 CYC:317 SL:258 CE4E 68 PLA A:00 X:80 Y:01 P:27 SP:7E CYC:335 SL:258 CE4F C9 4D CMP #$4D A:4D X:80 Y:01 P:25 SP:7F CYC: 6 SL:259 CE51 D0 08 BNE $CE5B A:4D X:80 Y:01 P:27 SP:7F CYC: 12 SL:259 CE53 68 PLA A:4D X:80 Y:01 P:27 SP:7F CYC: 18 SL:259 CE54 C9 CE CMP #$CE A:CE X:80 Y:01 P:A5 SP:80 CYC: 30 SL:259 CE56 D0 03 BNE $CE5B A:CE X:80 Y:01 P:27 SP:80 CYC: 36 SL:259 CE58 4C 5F CE JMP $CE5F A:CE X:80 Y:01 P:27 SP:80 CYC: 42 SL:259 CE5F EA NOP A:CE X:80 Y:01 P:27 SP:80 CYC: 51 SL:259 CE60 A9 CE LDA #$CE A:CE X:80 Y:01 P:27 SP:80 CYC: 57 SL:259 CE62 48 PHA A:CE X:80 Y:01 P:A5 SP:80 CYC: 63 SL:259 CE63 A9 66 LDA #$66 A:CE X:80 Y:01 P:A5 SP:7F CYC: 72 SL:259 CE65 48 PHA A:66 X:80 Y:01 P:25 SP:7F CYC: 78 SL:259 CE66 60 RTS A:66 X:80 Y:01 P:25 SP:7E CYC: 87 SL:259 CE67 A2 77 LDX #$77 A:66 X:80 Y:01 P:25 SP:80 CYC:105 SL:259 CE69 A0 69 LDY #$69 A:66 X:77 Y:01 P:25 SP:80 CYC:111 SL:259 CE6B 18 CLC A:66 X:77 Y:69 P:25 SP:80 CYC:117 SL:259 CE6C 24 01 BIT $01 = FF A:66 X:77 Y:69 P:24 SP:80 CYC:123 SL:259 CE6E A9 83 LDA #$83 A:66 X:77 Y:69 P:E4 SP:80 CYC:132 SL:259 CE70 20 66 CE JSR $CE66 A:83 X:77 Y:69 P:E4 SP:80 CYC:138 SL:259 CE66 60 RTS A:83 X:77 Y:69 P:E4 SP:7E CYC:156 SL:259 CE73 F0 24 BEQ $CE99 A:83 X:77 Y:69 P:E4 SP:80 CYC:174 SL:259 CE75 10 22 BPL $CE99 A:83 X:77 Y:69 P:E4 SP:80 CYC:180 SL:259 CE77 B0 20 BCS $CE99 A:83 X:77 Y:69 P:E4 SP:80 CYC:186 SL:259 CE79 50 1E BVC $CE99 A:83 X:77 Y:69 P:E4 SP:80 CYC:192 SL:259 CE7B C9 83 CMP #$83 A:83 X:77 Y:69 P:E4 SP:80 CYC:198 SL:259 CE7D D0 1A BNE $CE99 A:83 X:77 Y:69 P:67 SP:80 CYC:204 SL:259 CE7F C0 69 CPY #$69 A:83 X:77 Y:69 P:67 SP:80 CYC:210 SL:259 CE81 D0 16 BNE $CE99 A:83 X:77 Y:69 P:67 SP:80 CYC:216 SL:259 CE83 E0 77 CPX #$77 A:83 X:77 Y:69 P:67 SP:80 CYC:222 SL:259 CE85 D0 12 BNE $CE99 A:83 X:77 Y:69 P:67 SP:80 CYC:228 SL:259 CE87 38 SEC A:83 X:77 Y:69 P:67 SP:80 CYC:234 SL:259 CE88 B8 CLV A:83 X:77 Y:69 P:67 SP:80 CYC:240 SL:259 CE89 A9 00 LDA #$00 A:83 X:77 Y:69 P:27 SP:80 CYC:246 SL:259 CE8B 20 66 CE JSR $CE66 A:00 X:77 Y:69 P:27 SP:80 CYC:252 SL:259 CE66 60 RTS A:00 X:77 Y:69 P:27 SP:7E CYC:270 SL:259 CE8E D0 09 BNE $CE99 A:00 X:77 Y:69 P:27 SP:80 CYC:288 SL:259 CE90 30 07 BMI $CE99 A:00 X:77 Y:69 P:27 SP:80 CYC:294 SL:259 CE92 90 05 BCC $CE99 A:00 X:77 Y:69 P:27 SP:80 CYC:300 SL:259 CE94 70 03 BVS $CE99 A:00 X:77 Y:69 P:27 SP:80 CYC:306 SL:259 CE96 4C 9D CE JMP $CE9D A:00 X:77 Y:69 P:27 SP:80 CYC:312 SL:259 CE9D EA NOP A:00 X:77 Y:69 P:27 SP:80 CYC:321 SL:259 CE9E A9 CE LDA #$CE A:00 X:77 Y:69 P:27 SP:80 CYC:327 SL:259 CEA0 48 PHA A:CE X:77 Y:69 P:A5 SP:80 CYC:333 SL:259 CEA1 A9 AE LDA #$AE A:CE X:77 Y:69 P:A5 SP:7F CYC: 1 SL:260 CEA3 48 PHA A:AE X:77 Y:69 P:A5 SP:7F CYC: 7 SL:260 CEA4 A9 65 LDA #$65 A:AE X:77 Y:69 P:A5 SP:7E CYC: 16 SL:260 CEA6 48 PHA A:65 X:77 Y:69 P:25 SP:7E CYC: 22 SL:260 CEA7 A9 55 LDA #$55 A:65 X:77 Y:69 P:25 SP:7D CYC: 31 SL:260 CEA9 A0 88 LDY #$88 A:55 X:77 Y:69 P:25 SP:7D CYC: 37 SL:260 CEAB A2 99 LDX #$99 A:55 X:77 Y:88 P:A5 SP:7D CYC: 43 SL:260 CEAD 40 RTI A:55 X:99 Y:88 P:A5 SP:7D CYC: 49 SL:260 CEAE 30 35 BMI $CEE5 A:55 X:99 Y:88 P:65 SP:80 CYC: 67 SL:260 CEB0 50 33 BVC $CEE5 A:55 X:99 Y:88 P:65 SP:80 CYC: 73 SL:260 CEB2 F0 31 BEQ $CEE5 A:55 X:99 Y:88 P:65 SP:80 CYC: 79 SL:260 CEB4 90 2F BCC $CEE5 A:55 X:99 Y:88 P:65 SP:80 CYC: 85 SL:260 CEB6 C9 55 CMP #$55 A:55 X:99 Y:88 P:65 SP:80 CYC: 91 SL:260 CEB8 D0 2B BNE $CEE5 A:55 X:99 Y:88 P:67 SP:80 CYC: 97 SL:260 CEBA C0 88 CPY #$88 A:55 X:99 Y:88 P:67 SP:80 CYC:103 SL:260 CEBC D0 27 BNE $CEE5 A:55 X:99 Y:88 P:67 SP:80 CYC:109 SL:260 CEBE E0 99 CPX #$99 A:55 X:99 Y:88 P:67 SP:80 CYC:115 SL:260 CEC0 D0 23 BNE $CEE5 A:55 X:99 Y:88 P:67 SP:80 CYC:121 SL:260 CEC2 A9 CE LDA #$CE A:55 X:99 Y:88 P:67 SP:80 CYC:127 SL:260 CEC4 48 PHA A:CE X:99 Y:88 P:E5 SP:80 CYC:133 SL:260 CEC5 A9 CE LDA #$CE A:CE X:99 Y:88 P:E5 SP:7F CYC:142 SL:260 CEC7 48 PHA A:CE X:99 Y:88 P:E5 SP:7F CYC:148 SL:260 CEC8 A9 87 LDA #$87 A:CE X:99 Y:88 P:E5 SP:7E CYC:157 SL:260 CECA 48 PHA A:87 X:99 Y:88 P:E5 SP:7E CYC:163 SL:260 CECB A9 55 LDA #$55 A:87 X:99 Y:88 P:E5 SP:7D CYC:172 SL:260 CECD 40 RTI A:55 X:99 Y:88 P:65 SP:7D CYC:178 SL:260 CECE 10 15 BPL $CEE5 A:55 X:99 Y:88 P:A7 SP:80 CYC:196 SL:260 CED0 70 13 BVS $CEE5 A:55 X:99 Y:88 P:A7 SP:80 CYC:202 SL:260 CED2 D0 11 BNE $CEE5 A:55 X:99 Y:88 P:A7 SP:80 CYC:208 SL:260 CED4 90 0F BCC $CEE5 A:55 X:99 Y:88 P:A7 SP:80 CYC:214 SL:260 CED6 C9 55 CMP #$55 A:55 X:99 Y:88 P:A7 SP:80 CYC:220 SL:260 CED8 D0 0B BNE $CEE5 A:55 X:99 Y:88 P:27 SP:80 CYC:226 SL:260 CEDA C0 88 CPY #$88 A:55 X:99 Y:88 P:27 SP:80 CYC:232 SL:260 CEDC D0 07 BNE $CEE5 A:55 X:99 Y:88 P:27 SP:80 CYC:238 SL:260 CEDE E0 99 CPX #$99 A:55 X:99 Y:88 P:27 SP:80 CYC:244 SL:260 CEE0 D0 03 BNE $CEE5 A:55 X:99 Y:88 P:27 SP:80 CYC:250 SL:260 CEE2 4C E9 CE JMP $CEE9 A:55 X:99 Y:88 P:27 SP:80 CYC:256 SL:260 CEE9 AE FF 07 LDX $07FF = FB A:55 X:99 Y:88 P:27 SP:80 CYC:265 SL:260 CEEC 9A TXS A:55 X:FB Y:88 P:A5 SP:80 CYC:277 SL:260 CEED 60 RTS A:55 X:FB Y:88 P:A5 SP:FB CYC:283 SL:260 C60C 20 EE CE JSR $CEEE A:55 X:FB Y:88 P:A5 SP:FD CYC:301 SL:260 CEEE A2 55 LDX #$55 A:55 X:FB Y:88 P:A5 SP:FB CYC:319 SL:260 CEF0 A0 69 LDY #$69 A:55 X:55 Y:88 P:25 SP:FB CYC:325 SL:260 CEF2 A9 FF LDA #$FF A:55 X:55 Y:69 P:25 SP:FB CYC:331 SL:260 CEF4 85 01 STA $01 = FF A:FF X:55 Y:69 P:A5 SP:FB CYC:337 SL:260 CEF6 EA NOP A:FF X:55 Y:69 P:A5 SP:FB CYC: 5 SL:-1 CEF7 24 01 BIT $01 = FF A:FF X:55 Y:69 P:A5 SP:FB CYC: 11 SL:-1 CEF9 38 SEC A:FF X:55 Y:69 P:E5 SP:FB CYC: 20 SL:-1 CEFA A9 01 LDA #$01 A:FF X:55 Y:69 P:E5 SP:FB CYC: 26 SL:-1 CEFC 4A LSR A A:01 X:55 Y:69 P:65 SP:FB CYC: 32 SL:-1 CEFD 90 1D BCC $CF1C A:00 X:55 Y:69 P:67 SP:FB CYC: 38 SL:-1 CEFF D0 1B BNE $CF1C A:00 X:55 Y:69 P:67 SP:FB CYC: 44 SL:-1 CF01 30 19 BMI $CF1C A:00 X:55 Y:69 P:67 SP:FB CYC: 50 SL:-1 CF03 50 17 BVC $CF1C A:00 X:55 Y:69 P:67 SP:FB CYC: 56 SL:-1 CF05 C9 00 CMP #$00 A:00 X:55 Y:69 P:67 SP:FB CYC: 62 SL:-1 CF07 D0 13 BNE $CF1C A:00 X:55 Y:69 P:67 SP:FB CYC: 68 SL:-1 CF09 B8 CLV A:00 X:55 Y:69 P:67 SP:FB CYC: 74 SL:-1 CF0A A9 AA LDA #$AA A:00 X:55 Y:69 P:27 SP:FB CYC: 80 SL:-1 CF0C 4A LSR A A:AA X:55 Y:69 P:A5 SP:FB CYC: 86 SL:-1 CF0D B0 0D BCS $CF1C A:55 X:55 Y:69 P:24 SP:FB CYC: 92 SL:-1 CF0F F0 0B BEQ $CF1C A:55 X:55 Y:69 P:24 SP:FB CYC: 98 SL:-1 CF11 30 09 BMI $CF1C A:55 X:55 Y:69 P:24 SP:FB CYC:104 SL:-1 CF13 70 07 BVS $CF1C A:55 X:55 Y:69 P:24 SP:FB CYC:110 SL:-1 CF15 C9 55 CMP #$55 A:55 X:55 Y:69 P:24 SP:FB CYC:116 SL:-1 CF17 D0 03 BNE $CF1C A:55 X:55 Y:69 P:27 SP:FB CYC:122 SL:-1 CF19 4C 20 CF JMP $CF20 A:55 X:55 Y:69 P:27 SP:FB CYC:128 SL:-1 CF20 EA NOP A:55 X:55 Y:69 P:27 SP:FB CYC:137 SL:-1 CF21 24 01 BIT $01 = FF A:55 X:55 Y:69 P:27 SP:FB CYC:143 SL:-1 CF23 38 SEC A:55 X:55 Y:69 P:E5 SP:FB CYC:152 SL:-1 CF24 A9 80 LDA #$80 A:55 X:55 Y:69 P:E5 SP:FB CYC:158 SL:-1 CF26 0A ASL A A:80 X:55 Y:69 P:E5 SP:FB CYC:164 SL:-1 CF27 90 1E BCC $CF47 A:00 X:55 Y:69 P:67 SP:FB CYC:170 SL:-1 CF29 D0 1C BNE $CF47 A:00 X:55 Y:69 P:67 SP:FB CYC:176 SL:-1 CF2B 30 1A BMI $CF47 A:00 X:55 Y:69 P:67 SP:FB CYC:182 SL:-1 CF2D 50 18 BVC $CF47 A:00 X:55 Y:69 P:67 SP:FB CYC:188 SL:-1 CF2F C9 00 CMP #$00 A:00 X:55 Y:69 P:67 SP:FB CYC:194 SL:-1 CF31 D0 14 BNE $CF47 A:00 X:55 Y:69 P:67 SP:FB CYC:200 SL:-1 CF33 B8 CLV A:00 X:55 Y:69 P:67 SP:FB CYC:206 SL:-1 CF34 38 SEC A:00 X:55 Y:69 P:27 SP:FB CYC:212 SL:-1 CF35 A9 55 LDA #$55 A:00 X:55 Y:69 P:27 SP:FB CYC:218 SL:-1 CF37 0A ASL A A:55 X:55 Y:69 P:25 SP:FB CYC:224 SL:-1 CF38 B0 0D BCS $CF47 A:AA X:55 Y:69 P:A4 SP:FB CYC:230 SL:-1 CF3A F0 0B BEQ $CF47 A:AA X:55 Y:69 P:A4 SP:FB CYC:236 SL:-1 CF3C 10 09 BPL $CF47 A:AA X:55 Y:69 P:A4 SP:FB CYC:242 SL:-1 CF3E 70 07 BVS $CF47 A:AA X:55 Y:69 P:A4 SP:FB CYC:248 SL:-1 CF40 C9 AA CMP #$AA A:AA X:55 Y:69 P:A4 SP:FB CYC:254 SL:-1 CF42 D0 03 BNE $CF47 A:AA X:55 Y:69 P:27 SP:FB CYC:260 SL:-1 CF44 4C 4B CF JMP $CF4B A:AA X:55 Y:69 P:27 SP:FB CYC:266 SL:-1 CF4B EA NOP A:AA X:55 Y:69 P:27 SP:FB CYC:275 SL:-1 CF4C 24 01 BIT $01 = FF A:AA X:55 Y:69 P:27 SP:FB CYC:281 SL:-1 CF4E 38 SEC A:AA X:55 Y:69 P:E5 SP:FB CYC:290 SL:-1 CF4F A9 01 LDA #$01 A:AA X:55 Y:69 P:E5 SP:FB CYC:296 SL:-1 CF51 6A ROR A A:01 X:55 Y:69 P:65 SP:FB CYC:302 SL:-1 CF52 90 1E BCC $CF72 A:80 X:55 Y:69 P:E5 SP:FB CYC:308 SL:-1 CF54 F0 1C BEQ $CF72 A:80 X:55 Y:69 P:E5 SP:FB CYC:314 SL:-1 CF56 10 1A BPL $CF72 A:80 X:55 Y:69 P:E5 SP:FB CYC:320 SL:-1 CF58 50 18 BVC $CF72 A:80 X:55 Y:69 P:E5 SP:FB CYC:326 SL:-1 CF5A C9 80 CMP #$80 A:80 X:55 Y:69 P:E5 SP:FB CYC:332 SL:-1 CF5C D0 14 BNE $CF72 A:80 X:55 Y:69 P:67 SP:FB CYC:338 SL:-1 CF5E B8 CLV A:80 X:55 Y:69 P:67 SP:FB CYC: 3 SL:0 CF5F 18 CLC A:80 X:55 Y:69 P:27 SP:FB CYC: 9 SL:0 CF60 A9 55 LDA #$55 A:80 X:55 Y:69 P:26 SP:FB CYC: 15 SL:0 CF62 6A ROR A A:55 X:55 Y:69 P:24 SP:FB CYC: 21 SL:0 CF63 90 0D BCC $CF72 A:2A X:55 Y:69 P:25 SP:FB CYC: 27 SL:0 CF65 F0 0B BEQ $CF72 A:2A X:55 Y:69 P:25 SP:FB CYC: 33 SL:0 CF67 30 09 BMI $CF72 A:2A X:55 Y:69 P:25 SP:FB CYC: 39 SL:0 CF69 70 07 BVS $CF72 A:2A X:55 Y:69 P:25 SP:FB CYC: 45 SL:0 CF6B C9 2A CMP #$2A A:2A X:55 Y:69 P:25 SP:FB CYC: 51 SL:0 CF6D D0 03 BNE $CF72 A:2A X:55 Y:69 P:27 SP:FB CYC: 57 SL:0 CF6F 4C 76 CF JMP $CF76 A:2A X:55 Y:69 P:27 SP:FB CYC: 63 SL:0 CF76 EA NOP A:2A X:55 Y:69 P:27 SP:FB CYC: 72 SL:0 CF77 24 01 BIT $01 = FF A:2A X:55 Y:69 P:27 SP:FB CYC: 78 SL:0 CF79 38 SEC A:2A X:55 Y:69 P:E5 SP:FB CYC: 87 SL:0 CF7A A9 80 LDA #$80 A:2A X:55 Y:69 P:E5 SP:FB CYC: 93 SL:0 CF7C 2A ROL A A:80 X:55 Y:69 P:E5 SP:FB CYC: 99 SL:0 CF7D 90 1E BCC $CF9D A:01 X:55 Y:69 P:65 SP:FB CYC:105 SL:0 CF7F F0 1C BEQ $CF9D A:01 X:55 Y:69 P:65 SP:FB CYC:111 SL:0 CF81 30 1A BMI $CF9D A:01 X:55 Y:69 P:65 SP:FB CYC:117 SL:0 CF83 50 18 BVC $CF9D A:01 X:55 Y:69 P:65 SP:FB CYC:123 SL:0 CF85 C9 01 CMP #$01 A:01 X:55 Y:69 P:65 SP:FB CYC:129 SL:0 CF87 D0 14 BNE $CF9D A:01 X:55 Y:69 P:67 SP:FB CYC:135 SL:0 CF89 B8 CLV A:01 X:55 Y:69 P:67 SP:FB CYC:141 SL:0 CF8A 18 CLC A:01 X:55 Y:69 P:27 SP:FB CYC:147 SL:0 CF8B A9 55 LDA #$55 A:01 X:55 Y:69 P:26 SP:FB CYC:153 SL:0 CF8D 2A ROL A A:55 X:55 Y:69 P:24 SP:FB CYC:159 SL:0 CF8E B0 0D BCS $CF9D A:AA X:55 Y:69 P:A4 SP:FB CYC:165 SL:0 CF90 F0 0B BEQ $CF9D A:AA X:55 Y:69 P:A4 SP:FB CYC:171 SL:0 CF92 10 09 BPL $CF9D A:AA X:55 Y:69 P:A4 SP:FB CYC:177 SL:0 CF94 70 07 BVS $CF9D A:AA X:55 Y:69 P:A4 SP:FB CYC:183 SL:0 CF96 C9 AA CMP #$AA A:AA X:55 Y:69 P:A4 SP:FB CYC:189 SL:0 CF98 D0 03 BNE $CF9D A:AA X:55 Y:69 P:27 SP:FB CYC:195 SL:0 CF9A 4C A1 CF JMP $CFA1 A:AA X:55 Y:69 P:27 SP:FB CYC:201 SL:0 CFA1 60 RTS A:AA X:55 Y:69 P:27 SP:FB CYC:210 SL:0 C60F 20 A2 CF JSR $CFA2 A:AA X:55 Y:69 P:27 SP:FD CYC:228 SL:0 CFA2 A5 00 LDA $00 = 00 A:AA X:55 Y:69 P:27 SP:FB CYC:246 SL:0 CFA4 8D FF 07 STA $07FF = FB A:00 X:55 Y:69 P:27 SP:FB CYC:255 SL:0 CFA7 A9 00 LDA #$00 A:00 X:55 Y:69 P:27 SP:FB CYC:267 SL:0 CFA9 85 80 STA $80 = 00 A:00 X:55 Y:69 P:27 SP:FB CYC:273 SL:0 CFAB A9 02 LDA #$02 A:00 X:55 Y:69 P:27 SP:FB CYC:282 SL:0 CFAD 85 81 STA $81 = 00 A:02 X:55 Y:69 P:25 SP:FB CYC:288 SL:0 CFAF A9 FF LDA #$FF A:02 X:55 Y:69 P:25 SP:FB CYC:297 SL:0 CFB1 85 01 STA $01 = FF A:FF X:55 Y:69 P:A5 SP:FB CYC:303 SL:0 CFB3 A9 00 LDA #$00 A:FF X:55 Y:69 P:A5 SP:FB CYC:312 SL:0 CFB5 85 82 STA $82 = 00 A:00 X:55 Y:69 P:27 SP:FB CYC:318 SL:0 CFB7 A9 03 LDA #$03 A:00 X:55 Y:69 P:27 SP:FB CYC:327 SL:0 CFB9 85 83 STA $83 = 00 A:03 X:55 Y:69 P:25 SP:FB CYC:333 SL:0 CFBB 85 84 STA $84 = 00 A:03 X:55 Y:69 P:25 SP:FB CYC: 1 SL:1 CFBD A9 00 LDA #$00 A:03 X:55 Y:69 P:25 SP:FB CYC: 10 SL:1 CFBF 85 FF STA $FF = 00 A:00 X:55 Y:69 P:27 SP:FB CYC: 16 SL:1 CFC1 A9 04 LDA #$04 A:00 X:55 Y:69 P:27 SP:FB CYC: 25 SL:1 CFC3 85 00 STA $00 = 00 A:04 X:55 Y:69 P:25 SP:FB CYC: 31 SL:1 CFC5 A9 5A LDA #$5A A:04 X:55 Y:69 P:25 SP:FB CYC: 40 SL:1 CFC7 8D 00 02 STA $0200 = 00 A:5A X:55 Y:69 P:25 SP:FB CYC: 46 SL:1 CFCA A9 5B LDA #$5B A:5A X:55 Y:69 P:25 SP:FB CYC: 58 SL:1 CFCC 8D 00 03 STA $0300 = 00 A:5B X:55 Y:69 P:25 SP:FB CYC: 64 SL:1 CFCF A9 5C LDA #$5C A:5B X:55 Y:69 P:25 SP:FB CYC: 76 SL:1 CFD1 8D 03 03 STA $0303 = 00 A:5C X:55 Y:69 P:25 SP:FB CYC: 82 SL:1 CFD4 A9 5D LDA #$5D A:5C X:55 Y:69 P:25 SP:FB CYC: 94 SL:1 CFD6 8D 00 04 STA $0400 = 00 A:5D X:55 Y:69 P:25 SP:FB CYC:100 SL:1 CFD9 A2 00 LDX #$00 A:5D X:55 Y:69 P:25 SP:FB CYC:112 SL:1 CFDB A1 80 LDA ($80,X) @ 80 = 0200 = 5A A:5D X:00 Y:69 P:27 SP:FB CYC:118 SL:1 CFDD C9 5A CMP #$5A A:5A X:00 Y:69 P:25 SP:FB CYC:136 SL:1 CFDF D0 1F BNE $D000 A:5A X:00 Y:69 P:27 SP:FB CYC:142 SL:1 CFE1 E8 INX A:5A X:00 Y:69 P:27 SP:FB CYC:148 SL:1 CFE2 E8 INX A:5A X:01 Y:69 P:25 SP:FB CYC:154 SL:1 CFE3 A1 80 LDA ($80,X) @ 82 = 0300 = 5B A:5A X:02 Y:69 P:25 SP:FB CYC:160 SL:1 CFE5 C9 5B CMP #$5B A:5B X:02 Y:69 P:25 SP:FB CYC:178 SL:1 CFE7 D0 17 BNE $D000 A:5B X:02 Y:69 P:27 SP:FB CYC:184 SL:1 CFE9 E8 INX A:5B X:02 Y:69 P:27 SP:FB CYC:190 SL:1 CFEA A1 80 LDA ($80,X) @ 83 = 0303 = 5C A:5B X:03 Y:69 P:25 SP:FB CYC:196 SL:1 CFEC C9 5C CMP #$5C A:5C X:03 Y:69 P:25 SP:FB CYC:214 SL:1 CFEE D0 10 BNE $D000 A:5C X:03 Y:69 P:27 SP:FB CYC:220 SL:1 CFF0 A2 00 LDX #$00 A:5C X:03 Y:69 P:27 SP:FB CYC:226 SL:1 CFF2 A1 FF LDA ($FF,X) @ FF = 0400 = 5D A:5C X:00 Y:69 P:27 SP:FB CYC:232 SL:1 CFF4 C9 5D CMP #$5D A:5D X:00 Y:69 P:25 SP:FB CYC:250 SL:1 CFF6 D0 08 BNE $D000 A:5D X:00 Y:69 P:27 SP:FB CYC:256 SL:1 CFF8 A2 81 LDX #$81 A:5D X:00 Y:69 P:27 SP:FB CYC:262 SL:1 CFFA A1 FF LDA ($FF,X) @ 80 = 0200 = 5A A:5D X:81 Y:69 P:A5 SP:FB CYC:268 SL:1 CFFC C9 5A CMP #$5A A:5A X:81 Y:69 P:25 SP:FB CYC:286 SL:1 CFFE F0 05 BEQ $D005 A:5A X:81 Y:69 P:27 SP:FB CYC:292 SL:1 D005 A9 AA LDA #$AA A:5A X:81 Y:69 P:27 SP:FB CYC:301 SL:1 D007 A2 00 LDX #$00 A:AA X:81 Y:69 P:A5 SP:FB CYC:307 SL:1 D009 81 80 STA ($80,X) @ 80 = 0200 = 5A A:AA X:00 Y:69 P:27 SP:FB CYC:313 SL:1 D00B E8 INX A:AA X:00 Y:69 P:27 SP:FB CYC:331 SL:1 D00C E8 INX A:AA X:01 Y:69 P:25 SP:FB CYC:337 SL:1 D00D A9 AB LDA #$AB A:AA X:02 Y:69 P:25 SP:FB CYC: 2 SL:2 D00F 81 80 STA ($80,X) @ 82 = 0300 = 5B A:AB X:02 Y:69 P:A5 SP:FB CYC: 8 SL:2 D011 E8 INX A:AB X:02 Y:69 P:A5 SP:FB CYC: 26 SL:2 D012 A9 AC LDA #$AC A:AB X:03 Y:69 P:25 SP:FB CYC: 32 SL:2 D014 81 80 STA ($80,X) @ 83 = 0303 = 5C A:AC X:03 Y:69 P:A5 SP:FB CYC: 38 SL:2 D016 A2 00 LDX #$00 A:AC X:03 Y:69 P:A5 SP:FB CYC: 56 SL:2 D018 A9 AD LDA #$AD A:AC X:00 Y:69 P:27 SP:FB CYC: 62 SL:2 D01A 81 FF STA ($FF,X) @ FF = 0400 = 5D A:AD X:00 Y:69 P:A5 SP:FB CYC: 68 SL:2 D01C AD 00 02 LDA $0200 = AA A:AD X:00 Y:69 P:A5 SP:FB CYC: 86 SL:2 D01F C9 AA CMP #$AA A:AA X:00 Y:69 P:A5 SP:FB CYC: 98 SL:2 D021 D0 15 BNE $D038 A:AA X:00 Y:69 P:27 SP:FB CYC:104 SL:2 D023 AD 00 03 LDA $0300 = AB A:AA X:00 Y:69 P:27 SP:FB CYC:110 SL:2 D026 C9 AB CMP #$AB A:AB X:00 Y:69 P:A5 SP:FB CYC:122 SL:2 D028 D0 0E BNE $D038 A:AB X:00 Y:69 P:27 SP:FB CYC:128 SL:2 D02A AD 03 03 LDA $0303 = AC A:AB X:00 Y:69 P:27 SP:FB CYC:134 SL:2 D02D C9 AC CMP #$AC A:AC X:00 Y:69 P:A5 SP:FB CYC:146 SL:2 D02F D0 07 BNE $D038 A:AC X:00 Y:69 P:27 SP:FB CYC:152 SL:2 D031 AD 00 04 LDA $0400 = AD A:AC X:00 Y:69 P:27 SP:FB CYC:158 SL:2 D034 C9 AD CMP #$AD A:AD X:00 Y:69 P:A5 SP:FB CYC:170 SL:2 D036 F0 05 BEQ $D03D A:AD X:00 Y:69 P:27 SP:FB CYC:176 SL:2 D03D AD FF 07 LDA $07FF = 00 A:AD X:00 Y:69 P:27 SP:FB CYC:185 SL:2 D040 85 00 STA $00 = 04 A:00 X:00 Y:69 P:27 SP:FB CYC:197 SL:2 D042 A9 00 LDA #$00 A:00 X:00 Y:69 P:27 SP:FB CYC:206 SL:2 D044 8D 00 03 STA $0300 = AB A:00 X:00 Y:69 P:27 SP:FB CYC:212 SL:2 D047 A9 AA LDA #$AA A:00 X:00 Y:69 P:27 SP:FB CYC:224 SL:2 D049 8D 00 02 STA $0200 = AA A:AA X:00 Y:69 P:A5 SP:FB CYC:230 SL:2 D04C A2 00 LDX #$00 A:AA X:00 Y:69 P:A5 SP:FB CYC:242 SL:2 D04E A0 5A LDY #$5A A:AA X:00 Y:69 P:27 SP:FB CYC:248 SL:2 D050 20 B6 F7 JSR $F7B6 A:AA X:00 Y:5A P:25 SP:FB CYC:254 SL:2 F7B6 18 CLC A:AA X:00 Y:5A P:25 SP:F9 CYC:272 SL:2 F7B7 A9 FF LDA #$FF A:AA X:00 Y:5A P:24 SP:F9 CYC:278 SL:2 F7B9 85 01 STA $01 = FF A:FF X:00 Y:5A P:A4 SP:F9 CYC:284 SL:2 F7BB 24 01 BIT $01 = FF A:FF X:00 Y:5A P:A4 SP:F9 CYC:293 SL:2 F7BD A9 55 LDA #$55 A:FF X:00 Y:5A P:E4 SP:F9 CYC:302 SL:2 F7BF 60 RTS A:55 X:00 Y:5A P:64 SP:F9 CYC:308 SL:2 D053 01 80 ORA ($80,X) @ 80 = 0200 = AA A:55 X:00 Y:5A P:64 SP:FB CYC:326 SL:2 D055 20 C0 F7 JSR $F7C0 A:FF X:00 Y:5A P:E4 SP:FB CYC: 3 SL:3 F7C0 B0 09 BCS $F7CB A:FF X:00 Y:5A P:E4 SP:F9 CYC: 21 SL:3 F7C2 10 07 BPL $F7CB A:FF X:00 Y:5A P:E4 SP:F9 CYC: 27 SL:3 F7C4 C9 FF CMP #$FF A:FF X:00 Y:5A P:E4 SP:F9 CYC: 33 SL:3 F7C6 D0 03 BNE $F7CB A:FF X:00 Y:5A P:67 SP:F9 CYC: 39 SL:3 F7C8 50 01 BVC $F7CB A:FF X:00 Y:5A P:67 SP:F9 CYC: 45 SL:3 F7CA 60 RTS A:FF X:00 Y:5A P:67 SP:F9 CYC: 51 SL:3 D058 C8 INY A:FF X:00 Y:5A P:67 SP:FB CYC: 69 SL:3 D059 20 CE F7 JSR $F7CE A:FF X:00 Y:5B P:65 SP:FB CYC: 75 SL:3 F7CE 38 SEC A:FF X:00 Y:5B P:65 SP:F9 CYC: 93 SL:3 F7CF B8 CLV A:FF X:00 Y:5B P:65 SP:F9 CYC: 99 SL:3 F7D0 A9 00 LDA #$00 A:FF X:00 Y:5B P:25 SP:F9 CYC:105 SL:3 F7D2 60 RTS A:00 X:00 Y:5B P:27 SP:F9 CYC:111 SL:3 D05C 01 82 ORA ($82,X) @ 82 = 0300 = 00 A:00 X:00 Y:5B P:27 SP:FB CYC:129 SL:3 D05E 20 D3 F7 JSR $F7D3 A:00 X:00 Y:5B P:27 SP:FB CYC:147 SL:3 F7D3 D0 07 BNE $F7DC A:00 X:00 Y:5B P:27 SP:F9 CYC:165 SL:3 F7D5 70 05 BVS $F7DC A:00 X:00 Y:5B P:27 SP:F9 CYC:171 SL:3 F7D7 90 03 BCC $F7DC A:00 X:00 Y:5B P:27 SP:F9 CYC:177 SL:3 F7D9 30 01 BMI $F7DC A:00 X:00 Y:5B P:27 SP:F9 CYC:183 SL:3 F7DB 60 RTS A:00 X:00 Y:5B P:27 SP:F9 CYC:189 SL:3 D061 C8 INY A:00 X:00 Y:5B P:27 SP:FB CYC:207 SL:3 D062 20 DF F7 JSR $F7DF A:00 X:00 Y:5C P:25 SP:FB CYC:213 SL:3 F7DF 18 CLC A:00 X:00 Y:5C P:25 SP:F9 CYC:231 SL:3 F7E0 24 01 BIT $01 = FF A:00 X:00 Y:5C P:24 SP:F9 CYC:237 SL:3 F7E2 A9 55 LDA #$55 A:00 X:00 Y:5C P:E6 SP:F9 CYC:246 SL:3 F7E4 60 RTS A:55 X:00 Y:5C P:64 SP:F9 CYC:252 SL:3 D065 21 80 AND ($80,X) @ 80 = 0200 = AA A:55 X:00 Y:5C P:64 SP:FB CYC:270 SL:3 D067 20 E5 F7 JSR $F7E5 A:00 X:00 Y:5C P:66 SP:FB CYC:288 SL:3 F7E5 D0 07 BNE $F7EE A:00 X:00 Y:5C P:66 SP:F9 CYC:306 SL:3 F7E7 50 05 BVC $F7EE A:00 X:00 Y:5C P:66 SP:F9 CYC:312 SL:3 F7E9 B0 03 BCS $F7EE A:00 X:00 Y:5C P:66 SP:F9 CYC:318 SL:3 F7EB 30 01 BMI $F7EE A:00 X:00 Y:5C P:66 SP:F9 CYC:324 SL:3 F7ED 60 RTS A:00 X:00 Y:5C P:66 SP:F9 CYC:330 SL:3 D06A C8 INY A:00 X:00 Y:5C P:66 SP:FB CYC: 7 SL:4 D06B A9 EF LDA #$EF A:00 X:00 Y:5D P:64 SP:FB CYC: 13 SL:4 D06D 8D 00 03 STA $0300 = 00 A:EF X:00 Y:5D P:E4 SP:FB CYC: 19 SL:4 D070 20 F1 F7 JSR $F7F1 A:EF X:00 Y:5D P:E4 SP:FB CYC: 31 SL:4 F7F1 38 SEC A:EF X:00 Y:5D P:E4 SP:F9 CYC: 49 SL:4 F7F2 B8 CLV A:EF X:00 Y:5D P:E5 SP:F9 CYC: 55 SL:4 F7F3 A9 F8 LDA #$F8 A:EF X:00 Y:5D P:A5 SP:F9 CYC: 61 SL:4 F7F5 60 RTS A:F8 X:00 Y:5D P:A5 SP:F9 CYC: 67 SL:4 D073 21 82 AND ($82,X) @ 82 = 0300 = EF A:F8 X:00 Y:5D P:A5 SP:FB CYC: 85 SL:4 D075 20 F6 F7 JSR $F7F6 A:E8 X:00 Y:5D P:A5 SP:FB CYC:103 SL:4 F7F6 90 09 BCC $F801 A:E8 X:00 Y:5D P:A5 SP:F9 CYC:121 SL:4 F7F8 10 07 BPL $F801 A:E8 X:00 Y:5D P:A5 SP:F9 CYC:127 SL:4 F7FA C9 E8 CMP #$E8 A:E8 X:00 Y:5D P:A5 SP:F9 CYC:133 SL:4 F7FC D0 03 BNE $F801 A:E8 X:00 Y:5D P:27 SP:F9 CYC:139 SL:4 F7FE 70 01 BVS $F801 A:E8 X:00 Y:5D P:27 SP:F9 CYC:145 SL:4 F800 60 RTS A:E8 X:00 Y:5D P:27 SP:F9 CYC:151 SL:4 D078 C8 INY A:E8 X:00 Y:5D P:27 SP:FB CYC:169 SL:4 D079 20 04 F8 JSR $F804 A:E8 X:00 Y:5E P:25 SP:FB CYC:175 SL:4 F804 18 CLC A:E8 X:00 Y:5E P:25 SP:F9 CYC:193 SL:4 F805 24 01 BIT $01 = FF A:E8 X:00 Y:5E P:24 SP:F9 CYC:199 SL:4 F807 A9 5F LDA #$5F A:E8 X:00 Y:5E P:E4 SP:F9 CYC:208 SL:4 F809 60 RTS A:5F X:00 Y:5E P:64 SP:F9 CYC:214 SL:4 D07C 41 80 EOR ($80,X) @ 80 = 0200 = AA A:5F X:00 Y:5E P:64 SP:FB CYC:232 SL:4 D07E 20 0A F8 JSR $F80A A:F5 X:00 Y:5E P:E4 SP:FB CYC:250 SL:4 F80A B0 09 BCS $F815 A:F5 X:00 Y:5E P:E4 SP:F9 CYC:268 SL:4 F80C 10 07 BPL $F815 A:F5 X:00 Y:5E P:E4 SP:F9 CYC:274 SL:4 F80E C9 F5 CMP #$F5 A:F5 X:00 Y:5E P:E4 SP:F9 CYC:280 SL:4 F810 D0 03 BNE $F815 A:F5 X:00 Y:5E P:67 SP:F9 CYC:286 SL:4 F812 50 01 BVC $F815 A:F5 X:00 Y:5E P:67 SP:F9 CYC:292 SL:4 F814 60 RTS A:F5 X:00 Y:5E P:67 SP:F9 CYC:298 SL:4 D081 C8 INY A:F5 X:00 Y:5E P:67 SP:FB CYC:316 SL:4 D082 A9 70 LDA #$70 A:F5 X:00 Y:5F P:65 SP:FB CYC:322 SL:4 D084 8D 00 03 STA $0300 = EF A:70 X:00 Y:5F P:65 SP:FB CYC:328 SL:4 D087 20 18 F8 JSR $F818 A:70 X:00 Y:5F P:65 SP:FB CYC:340 SL:4 F818 38 SEC A:70 X:00 Y:5F P:65 SP:F9 CYC: 17 SL:5 F819 B8 CLV A:70 X:00 Y:5F P:65 SP:F9 CYC: 23 SL:5 F81A A9 70 LDA #$70 A:70 X:00 Y:5F P:25 SP:F9 CYC: 29 SL:5 F81C 60 RTS A:70 X:00 Y:5F P:25 SP:F9 CYC: 35 SL:5 D08A 41 82 EOR ($82,X) @ 82 = 0300 = 70 A:70 X:00 Y:5F P:25 SP:FB CYC: 53 SL:5 D08C 20 1D F8 JSR $F81D A:00 X:00 Y:5F P:27 SP:FB CYC: 71 SL:5 F81D D0 07 BNE $F826 A:00 X:00 Y:5F P:27 SP:F9 CYC: 89 SL:5 F81F 70 05 BVS $F826 A:00 X:00 Y:5F P:27 SP:F9 CYC: 95 SL:5 F821 90 03 BCC $F826 A:00 X:00 Y:5F P:27 SP:F9 CYC:101 SL:5 F823 30 01 BMI $F826 A:00 X:00 Y:5F P:27 SP:F9 CYC:107 SL:5 F825 60 RTS A:00 X:00 Y:5F P:27 SP:F9 CYC:113 SL:5 D08F C8 INY A:00 X:00 Y:5F P:27 SP:FB CYC:131 SL:5 D090 A9 69 LDA #$69 A:00 X:00 Y:60 P:25 SP:FB CYC:137 SL:5 D092 8D 00 02 STA $0200 = AA A:69 X:00 Y:60 P:25 SP:FB CYC:143 SL:5 D095 20 29 F8 JSR $F829 A:69 X:00 Y:60 P:25 SP:FB CYC:155 SL:5 F829 18 CLC A:69 X:00 Y:60 P:25 SP:F9 CYC:173 SL:5 F82A 24 01 BIT $01 = FF A:69 X:00 Y:60 P:24 SP:F9 CYC:179 SL:5 F82C A9 00 LDA #$00 A:69 X:00 Y:60 P:E4 SP:F9 CYC:188 SL:5 F82E 60 RTS A:00 X:00 Y:60 P:66 SP:F9 CYC:194 SL:5 D098 61 80 ADC ($80,X) @ 80 = 0200 = 69 A:00 X:00 Y:60 P:66 SP:FB CYC:212 SL:5 D09A 20 2F F8 JSR $F82F A:69 X:00 Y:60 P:24 SP:FB CYC:230 SL:5 F82F 30 09 BMI $F83A A:69 X:00 Y:60 P:24 SP:F9 CYC:248 SL:5 F831 B0 07 BCS $F83A A:69 X:00 Y:60 P:24 SP:F9 CYC:254 SL:5 F833 C9 69 CMP #$69 A:69 X:00 Y:60 P:24 SP:F9 CYC:260 SL:5 F835 D0 03 BNE $F83A A:69 X:00 Y:60 P:27 SP:F9 CYC:266 SL:5 F837 70 01 BVS $F83A A:69 X:00 Y:60 P:27 SP:F9 CYC:272 SL:5 F839 60 RTS A:69 X:00 Y:60 P:27 SP:F9 CYC:278 SL:5 D09D C8 INY A:69 X:00 Y:60 P:27 SP:FB CYC:296 SL:5 D09E 20 3D F8 JSR $F83D A:69 X:00 Y:61 P:25 SP:FB CYC:302 SL:5 F83D 38 SEC A:69 X:00 Y:61 P:25 SP:F9 CYC:320 SL:5 F83E 24 01 BIT $01 = FF A:69 X:00 Y:61 P:25 SP:F9 CYC:326 SL:5 F840 A9 00 LDA #$00 A:69 X:00 Y:61 P:E5 SP:F9 CYC:335 SL:5 F842 60 RTS A:00 X:00 Y:61 P:67 SP:F9 CYC: 0 SL:6 D0A1 61 80 ADC ($80,X) @ 80 = 0200 = 69 A:00 X:00 Y:61 P:67 SP:FB CYC: 18 SL:6 D0A3 20 43 F8 JSR $F843 A:6A X:00 Y:61 P:24 SP:FB CYC: 36 SL:6 F843 30 09 BMI $F84E A:6A X:00 Y:61 P:24 SP:F9 CYC: 54 SL:6 F845 B0 07 BCS $F84E A:6A X:00 Y:61 P:24 SP:F9 CYC: 60 SL:6 F847 C9 6A CMP #$6A A:6A X:00 Y:61 P:24 SP:F9 CYC: 66 SL:6 F849 D0 03 BNE $F84E A:6A X:00 Y:61 P:27 SP:F9 CYC: 72 SL:6 F84B 70 01 BVS $F84E A:6A X:00 Y:61 P:27 SP:F9 CYC: 78 SL:6 F84D 60 RTS A:6A X:00 Y:61 P:27 SP:F9 CYC: 84 SL:6 D0A6 C8 INY A:6A X:00 Y:61 P:27 SP:FB CYC:102 SL:6 D0A7 A9 7F LDA #$7F A:6A X:00 Y:62 P:25 SP:FB CYC:108 SL:6 D0A9 8D 00 02 STA $0200 = 69 A:7F X:00 Y:62 P:25 SP:FB CYC:114 SL:6 D0AC 20 51 F8 JSR $F851 A:7F X:00 Y:62 P:25 SP:FB CYC:126 SL:6 F851 38 SEC A:7F X:00 Y:62 P:25 SP:F9 CYC:144 SL:6 F852 B8 CLV A:7F X:00 Y:62 P:25 SP:F9 CYC:150 SL:6 F853 A9 7F LDA #$7F A:7F X:00 Y:62 P:25 SP:F9 CYC:156 SL:6 F855 60 RTS A:7F X:00 Y:62 P:25 SP:F9 CYC:162 SL:6 D0AF 61 80 ADC ($80,X) @ 80 = 0200 = 7F A:7F X:00 Y:62 P:25 SP:FB CYC:180 SL:6 D0B1 20 56 F8 JSR $F856 A:FF X:00 Y:62 P:E4 SP:FB CYC:198 SL:6 F856 10 09 BPL $F861 A:FF X:00 Y:62 P:E4 SP:F9 CYC:216 SL:6 F858 B0 07 BCS $F861 A:FF X:00 Y:62 P:E4 SP:F9 CYC:222 SL:6 F85A C9 FF CMP #$FF A:FF X:00 Y:62 P:E4 SP:F9 CYC:228 SL:6 F85C D0 03 BNE $F861 A:FF X:00 Y:62 P:67 SP:F9 CYC:234 SL:6 F85E 50 01 BVC $F861 A:FF X:00 Y:62 P:67 SP:F9 CYC:240 SL:6 F860 60 RTS A:FF X:00 Y:62 P:67 SP:F9 CYC:246 SL:6 D0B4 C8 INY A:FF X:00 Y:62 P:67 SP:FB CYC:264 SL:6 D0B5 A9 80 LDA #$80 A:FF X:00 Y:63 P:65 SP:FB CYC:270 SL:6 D0B7 8D 00 02 STA $0200 = 7F A:80 X:00 Y:63 P:E5 SP:FB CYC:276 SL:6 D0BA 20 64 F8 JSR $F864 A:80 X:00 Y:63 P:E5 SP:FB CYC:288 SL:6 F864 18 CLC A:80 X:00 Y:63 P:E5 SP:F9 CYC:306 SL:6 F865 24 01 BIT $01 = FF A:80 X:00 Y:63 P:E4 SP:F9 CYC:312 SL:6 F867 A9 7F LDA #$7F A:80 X:00 Y:63 P:E4 SP:F9 CYC:321 SL:6 F869 60 RTS A:7F X:00 Y:63 P:64 SP:F9 CYC:327 SL:6 D0BD 61 80 ADC ($80,X) @ 80 = 0200 = 80 A:7F X:00 Y:63 P:64 SP:FB CYC: 4 SL:7 D0BF 20 6A F8 JSR $F86A A:FF X:00 Y:63 P:A4 SP:FB CYC: 22 SL:7 F86A 10 09 BPL $F875 A:FF X:00 Y:63 P:A4 SP:F9 CYC: 40 SL:7 F86C B0 07 BCS $F875 A:FF X:00 Y:63 P:A4 SP:F9 CYC: 46 SL:7 F86E C9 FF CMP #$FF A:FF X:00 Y:63 P:A4 SP:F9 CYC: 52 SL:7 F870 D0 03 BNE $F875 A:FF X:00 Y:63 P:27 SP:F9 CYC: 58 SL:7 F872 70 01 BVS $F875 A:FF X:00 Y:63 P:27 SP:F9 CYC: 64 SL:7 F874 60 RTS A:FF X:00 Y:63 P:27 SP:F9 CYC: 70 SL:7 D0C2 C8 INY A:FF X:00 Y:63 P:27 SP:FB CYC: 88 SL:7 D0C3 20 78 F8 JSR $F878 A:FF X:00 Y:64 P:25 SP:FB CYC: 94 SL:7 F878 38 SEC A:FF X:00 Y:64 P:25 SP:F9 CYC:112 SL:7 F879 B8 CLV A:FF X:00 Y:64 P:25 SP:F9 CYC:118 SL:7 F87A A9 7F LDA #$7F A:FF X:00 Y:64 P:25 SP:F9 CYC:124 SL:7 F87C 60 RTS A:7F X:00 Y:64 P:25 SP:F9 CYC:130 SL:7 D0C6 61 80 ADC ($80,X) @ 80 = 0200 = 80 A:7F X:00 Y:64 P:25 SP:FB CYC:148 SL:7 D0C8 20 7D F8 JSR $F87D A:00 X:00 Y:64 P:27 SP:FB CYC:166 SL:7 F87D D0 07 BNE $F886 A:00 X:00 Y:64 P:27 SP:F9 CYC:184 SL:7 F87F 30 05 BMI $F886 A:00 X:00 Y:64 P:27 SP:F9 CYC:190 SL:7 F881 70 03 BVS $F886 A:00 X:00 Y:64 P:27 SP:F9 CYC:196 SL:7 F883 90 01 BCC $F886 A:00 X:00 Y:64 P:27 SP:F9 CYC:202 SL:7 F885 60 RTS A:00 X:00 Y:64 P:27 SP:F9 CYC:208 SL:7 D0CB C8 INY A:00 X:00 Y:64 P:27 SP:FB CYC:226 SL:7 D0CC A9 40 LDA #$40 A:00 X:00 Y:65 P:25 SP:FB CYC:232 SL:7 D0CE 8D 00 02 STA $0200 = 80 A:40 X:00 Y:65 P:25 SP:FB CYC:238 SL:7 D0D1 20 89 F8 JSR $F889 A:40 X:00 Y:65 P:25 SP:FB CYC:250 SL:7 F889 24 01 BIT $01 = FF A:40 X:00 Y:65 P:25 SP:F9 CYC:268 SL:7 F88B A9 40 LDA #$40 A:40 X:00 Y:65 P:E5 SP:F9 CYC:277 SL:7 F88D 60 RTS A:40 X:00 Y:65 P:65 SP:F9 CYC:283 SL:7 D0D4 C1 80 CMP ($80,X) @ 80 = 0200 = 40 A:40 X:00 Y:65 P:65 SP:FB CYC:301 SL:7 D0D6 20 8E F8 JSR $F88E A:40 X:00 Y:65 P:67 SP:FB CYC:319 SL:7 F88E 30 07 BMI $F897 A:40 X:00 Y:65 P:67 SP:F9 CYC:337 SL:7 F890 90 05 BCC $F897 A:40 X:00 Y:65 P:67 SP:F9 CYC: 2 SL:8 F892 D0 03 BNE $F897 A:40 X:00 Y:65 P:67 SP:F9 CYC: 8 SL:8 F894 50 01 BVC $F897 A:40 X:00 Y:65 P:67 SP:F9 CYC: 14 SL:8 F896 60 RTS A:40 X:00 Y:65 P:67 SP:F9 CYC: 20 SL:8 D0D9 C8 INY A:40 X:00 Y:65 P:67 SP:FB CYC: 38 SL:8 D0DA 48 PHA A:40 X:00 Y:66 P:65 SP:FB CYC: 44 SL:8 D0DB A9 3F LDA #$3F A:40 X:00 Y:66 P:65 SP:FA CYC: 53 SL:8 D0DD 8D 00 02 STA $0200 = 40 A:3F X:00 Y:66 P:65 SP:FA CYC: 59 SL:8 D0E0 68 PLA A:3F X:00 Y:66 P:65 SP:FA CYC: 71 SL:8 D0E1 20 9A F8 JSR $F89A A:40 X:00 Y:66 P:65 SP:FB CYC: 83 SL:8 F89A B8 CLV A:40 X:00 Y:66 P:65 SP:F9 CYC:101 SL:8 F89B 60 RTS A:40 X:00 Y:66 P:25 SP:F9 CYC:107 SL:8 D0E4 C1 80 CMP ($80,X) @ 80 = 0200 = 3F A:40 X:00 Y:66 P:25 SP:FB CYC:125 SL:8 D0E6 20 9C F8 JSR $F89C A:40 X:00 Y:66 P:25 SP:FB CYC:143 SL:8 F89C F0 07 BEQ $F8A5 A:40 X:00 Y:66 P:25 SP:F9 CYC:161 SL:8 F89E 30 05 BMI $F8A5 A:40 X:00 Y:66 P:25 SP:F9 CYC:167 SL:8 F8A0 90 03 BCC $F8A5 A:40 X:00 Y:66 P:25 SP:F9 CYC:173 SL:8 F8A2 70 01 BVS $F8A5 A:40 X:00 Y:66 P:25 SP:F9 CYC:179 SL:8 F8A4 60 RTS A:40 X:00 Y:66 P:25 SP:F9 CYC:185 SL:8 D0E9 C8 INY A:40 X:00 Y:66 P:25 SP:FB CYC:203 SL:8 D0EA 48 PHA A:40 X:00 Y:67 P:25 SP:FB CYC:209 SL:8 D0EB A9 41 LDA #$41 A:40 X:00 Y:67 P:25 SP:FA CYC:218 SL:8 D0ED 8D 00 02 STA $0200 = 3F A:41 X:00 Y:67 P:25 SP:FA CYC:224 SL:8 D0F0 68 PLA A:41 X:00 Y:67 P:25 SP:FA CYC:236 SL:8 D0F1 C1 80 CMP ($80,X) @ 80 = 0200 = 41 A:40 X:00 Y:67 P:25 SP:FB CYC:248 SL:8 D0F3 20 A8 F8 JSR $F8A8 A:40 X:00 Y:67 P:A4 SP:FB CYC:266 SL:8 F8A8 F0 05 BEQ $F8AF A:40 X:00 Y:67 P:A4 SP:F9 CYC:284 SL:8 F8AA 10 03 BPL $F8AF A:40 X:00 Y:67 P:A4 SP:F9 CYC:290 SL:8 F8AC 10 01 BPL $F8AF A:40 X:00 Y:67 P:A4 SP:F9 CYC:296 SL:8 F8AE 60 RTS A:40 X:00 Y:67 P:A4 SP:F9 CYC:302 SL:8 D0F6 C8 INY A:40 X:00 Y:67 P:A4 SP:FB CYC:320 SL:8 D0F7 48 PHA A:40 X:00 Y:68 P:24 SP:FB CYC:326 SL:8 D0F8 A9 00 LDA #$00 A:40 X:00 Y:68 P:24 SP:FA CYC:335 SL:8 D0FA 8D 00 02 STA $0200 = 41 A:00 X:00 Y:68 P:26 SP:FA CYC: 0 SL:9 D0FD 68 PLA A:00 X:00 Y:68 P:26 SP:FA CYC: 12 SL:9 D0FE 20 B2 F8 JSR $F8B2 A:40 X:00 Y:68 P:24 SP:FB CYC: 24 SL:9 F8B2 A9 80 LDA #$80 A:40 X:00 Y:68 P:24 SP:F9 CYC: 42 SL:9 F8B4 60 RTS A:80 X:00 Y:68 P:A4 SP:F9 CYC: 48 SL:9 D101 C1 80 CMP ($80,X) @ 80 = 0200 = 00 A:80 X:00 Y:68 P:A4 SP:FB CYC: 66 SL:9 D103 20 B5 F8 JSR $F8B5 A:80 X:00 Y:68 P:A5 SP:FB CYC: 84 SL:9 F8B5 F0 05 BEQ $F8BC A:80 X:00 Y:68 P:A5 SP:F9 CYC:102 SL:9 F8B7 10 03 BPL $F8BC A:80 X:00 Y:68 P:A5 SP:F9 CYC:108 SL:9 F8B9 90 01 BCC $F8BC A:80 X:00 Y:68 P:A5 SP:F9 CYC:114 SL:9 F8BB 60 RTS A:80 X:00 Y:68 P:A5 SP:F9 CYC:120 SL:9 D106 C8 INY A:80 X:00 Y:68 P:A5 SP:FB CYC:138 SL:9 D107 48 PHA A:80 X:00 Y:69 P:25 SP:FB CYC:144 SL:9 D108 A9 80 LDA #$80 A:80 X:00 Y:69 P:25 SP:FA CYC:153 SL:9 D10A 8D 00 02 STA $0200 = 00 A:80 X:00 Y:69 P:A5 SP:FA CYC:159 SL:9 D10D 68 PLA A:80 X:00 Y:69 P:A5 SP:FA CYC:171 SL:9 D10E C1 80 CMP ($80,X) @ 80 = 0200 = 80 A:80 X:00 Y:69 P:A5 SP:FB CYC:183 SL:9 D110 20 BF F8 JSR $F8BF A:80 X:00 Y:69 P:27 SP:FB CYC:201 SL:9 F8BF D0 05 BNE $F8C6 A:80 X:00 Y:69 P:27 SP:F9 CYC:219 SL:9 F8C1 30 03 BMI $F8C6 A:80 X:00 Y:69 P:27 SP:F9 CYC:225 SL:9 F8C3 90 01 BCC $F8C6 A:80 X:00 Y:69 P:27 SP:F9 CYC:231 SL:9 F8C5 60 RTS A:80 X:00 Y:69 P:27 SP:F9 CYC:237 SL:9 D113 C8 INY A:80 X:00 Y:69 P:27 SP:FB CYC:255 SL:9 D114 48 PHA A:80 X:00 Y:6A P:25 SP:FB CYC:261 SL:9 D115 A9 81 LDA #$81 A:80 X:00 Y:6A P:25 SP:FA CYC:270 SL:9 D117 8D 00 02 STA $0200 = 80 A:81 X:00 Y:6A P:A5 SP:FA CYC:276 SL:9 D11A 68 PLA A:81 X:00 Y:6A P:A5 SP:FA CYC:288 SL:9 D11B C1 80 CMP ($80,X) @ 80 = 0200 = 81 A:80 X:00 Y:6A P:A5 SP:FB CYC:300 SL:9 D11D 20 C9 F8 JSR $F8C9 A:80 X:00 Y:6A P:A4 SP:FB CYC:318 SL:9 F8C9 B0 05 BCS $F8D0 A:80 X:00 Y:6A P:A4 SP:F9 CYC:336 SL:9 F8CB F0 03 BEQ $F8D0 A:80 X:00 Y:6A P:A4 SP:F9 CYC: 1 SL:10 F8CD 10 01 BPL $F8D0 A:80 X:00 Y:6A P:A4 SP:F9 CYC: 7 SL:10 F8CF 60 RTS A:80 X:00 Y:6A P:A4 SP:F9 CYC: 13 SL:10 D120 C8 INY A:80 X:00 Y:6A P:A4 SP:FB CYC: 31 SL:10 D121 48 PHA A:80 X:00 Y:6B P:24 SP:FB CYC: 37 SL:10 D122 A9 7F LDA #$7F A:80 X:00 Y:6B P:24 SP:FA CYC: 46 SL:10 D124 8D 00 02 STA $0200 = 81 A:7F X:00 Y:6B P:24 SP:FA CYC: 52 SL:10 D127 68 PLA A:7F X:00 Y:6B P:24 SP:FA CYC: 64 SL:10 D128 C1 80 CMP ($80,X) @ 80 = 0200 = 7F A:80 X:00 Y:6B P:A4 SP:FB CYC: 76 SL:10 D12A 20 D3 F8 JSR $F8D3 A:80 X:00 Y:6B P:25 SP:FB CYC: 94 SL:10 F8D3 90 05 BCC $F8DA A:80 X:00 Y:6B P:25 SP:F9 CYC:112 SL:10 F8D5 F0 03 BEQ $F8DA A:80 X:00 Y:6B P:25 SP:F9 CYC:118 SL:10 F8D7 30 01 BMI $F8DA A:80 X:00 Y:6B P:25 SP:F9 CYC:124 SL:10 F8D9 60 RTS A:80 X:00 Y:6B P:25 SP:F9 CYC:130 SL:10 D12D C8 INY A:80 X:00 Y:6B P:25 SP:FB CYC:148 SL:10 D12E A9 40 LDA #$40 A:80 X:00 Y:6C P:25 SP:FB CYC:154 SL:10 D130 8D 00 02 STA $0200 = 7F A:40 X:00 Y:6C P:25 SP:FB CYC:160 SL:10 D133 20 31 F9 JSR $F931 A:40 X:00 Y:6C P:25 SP:FB CYC:172 SL:10 F931 24 01 BIT $01 = FF A:40 X:00 Y:6C P:25 SP:F9 CYC:190 SL:10 F933 A9 40 LDA #$40 A:40 X:00 Y:6C P:E5 SP:F9 CYC:199 SL:10 F935 38 SEC A:40 X:00 Y:6C P:65 SP:F9 CYC:205 SL:10 F936 60 RTS A:40 X:00 Y:6C P:65 SP:F9 CYC:211 SL:10 D136 E1 80 SBC ($80,X) @ 80 = 0200 = 40 A:40 X:00 Y:6C P:65 SP:FB CYC:229 SL:10 D138 20 37 F9 JSR $F937 A:00 X:00 Y:6C P:27 SP:FB CYC:247 SL:10 F937 30 0B BMI $F944 A:00 X:00 Y:6C P:27 SP:F9 CYC:265 SL:10 F939 90 09 BCC $F944 A:00 X:00 Y:6C P:27 SP:F9 CYC:271 SL:10 F93B D0 07 BNE $F944 A:00 X:00 Y:6C P:27 SP:F9 CYC:277 SL:10 F93D 70 05 BVS $F944 A:00 X:00 Y:6C P:27 SP:F9 CYC:283 SL:10 F93F C9 00 CMP #$00 A:00 X:00 Y:6C P:27 SP:F9 CYC:289 SL:10 F941 D0 01 BNE $F944 A:00 X:00 Y:6C P:27 SP:F9 CYC:295 SL:10 F943 60 RTS A:00 X:00 Y:6C P:27 SP:F9 CYC:301 SL:10 D13B C8 INY A:00 X:00 Y:6C P:27 SP:FB CYC:319 SL:10 D13C A9 3F LDA #$3F A:00 X:00 Y:6D P:25 SP:FB CYC:325 SL:10 D13E 8D 00 02 STA $0200 = 40 A:3F X:00 Y:6D P:25 SP:FB CYC:331 SL:10 D141 20 47 F9 JSR $F947 A:3F X:00 Y:6D P:25 SP:FB CYC: 2 SL:11 F947 B8 CLV A:3F X:00 Y:6D P:25 SP:F9 CYC: 20 SL:11 F948 38 SEC A:3F X:00 Y:6D P:25 SP:F9 CYC: 26 SL:11 F949 A9 40 LDA #$40 A:3F X:00 Y:6D P:25 SP:F9 CYC: 32 SL:11 F94B 60 RTS A:40 X:00 Y:6D P:25 SP:F9 CYC: 38 SL:11 D144 E1 80 SBC ($80,X) @ 80 = 0200 = 3F A:40 X:00 Y:6D P:25 SP:FB CYC: 56 SL:11 D146 20 4C F9 JSR $F94C A:01 X:00 Y:6D P:25 SP:FB CYC: 74 SL:11 F94C F0 0B BEQ $F959 A:01 X:00 Y:6D P:25 SP:F9 CYC: 92 SL:11 F94E 30 09 BMI $F959 A:01 X:00 Y:6D P:25 SP:F9 CYC: 98 SL:11 F950 90 07 BCC $F959 A:01 X:00 Y:6D P:25 SP:F9 CYC:104 SL:11 F952 70 05 BVS $F959 A:01 X:00 Y:6D P:25 SP:F9 CYC:110 SL:11 F954 C9 01 CMP #$01 A:01 X:00 Y:6D P:25 SP:F9 CYC:116 SL:11 F956 D0 01 BNE $F959 A:01 X:00 Y:6D P:27 SP:F9 CYC:122 SL:11 F958 60 RTS A:01 X:00 Y:6D P:27 SP:F9 CYC:128 SL:11 D149 C8 INY A:01 X:00 Y:6D P:27 SP:FB CYC:146 SL:11 D14A A9 41 LDA #$41 A:01 X:00 Y:6E P:25 SP:FB CYC:152 SL:11 D14C 8D 00 02 STA $0200 = 3F A:41 X:00 Y:6E P:25 SP:FB CYC:158 SL:11 D14F 20 5C F9 JSR $F95C A:41 X:00 Y:6E P:25 SP:FB CYC:170 SL:11 F95C A9 40 LDA #$40 A:41 X:00 Y:6E P:25 SP:F9 CYC:188 SL:11 F95E 38 SEC A:40 X:00 Y:6E P:25 SP:F9 CYC:194 SL:11 F95F 24 01 BIT $01 = FF A:40 X:00 Y:6E P:25 SP:F9 CYC:200 SL:11 F961 60 RTS A:40 X:00 Y:6E P:E5 SP:F9 CYC:209 SL:11 D152 E1 80 SBC ($80,X) @ 80 = 0200 = 41 A:40 X:00 Y:6E P:E5 SP:FB CYC:227 SL:11 D154 20 62 F9 JSR $F962 A:FF X:00 Y:6E P:A4 SP:FB CYC:245 SL:11 F962 B0 0B BCS $F96F A:FF X:00 Y:6E P:A4 SP:F9 CYC:263 SL:11 F964 F0 09 BEQ $F96F A:FF X:00 Y:6E P:A4 SP:F9 CYC:269 SL:11 F966 10 07 BPL $F96F A:FF X:00 Y:6E P:A4 SP:F9 CYC:275 SL:11 F968 70 05 BVS $F96F A:FF X:00 Y:6E P:A4 SP:F9 CYC:281 SL:11 F96A C9 FF CMP #$FF A:FF X:00 Y:6E P:A4 SP:F9 CYC:287 SL:11 F96C D0 01 BNE $F96F A:FF X:00 Y:6E P:27 SP:F9 CYC:293 SL:11 F96E 60 RTS A:FF X:00 Y:6E P:27 SP:F9 CYC:299 SL:11 D157 C8 INY A:FF X:00 Y:6E P:27 SP:FB CYC:317 SL:11 D158 A9 00 LDA #$00 A:FF X:00 Y:6F P:25 SP:FB CYC:323 SL:11 D15A 8D 00 02 STA $0200 = 41 A:00 X:00 Y:6F P:27 SP:FB CYC:329 SL:11 D15D 20 72 F9 JSR $F972 A:00 X:00 Y:6F P:27 SP:FB CYC: 0 SL:12 F972 18 CLC A:00 X:00 Y:6F P:27 SP:F9 CYC: 18 SL:12 F973 A9 80 LDA #$80 A:00 X:00 Y:6F P:26 SP:F9 CYC: 24 SL:12 F975 60 RTS A:80 X:00 Y:6F P:A4 SP:F9 CYC: 30 SL:12 D160 E1 80 SBC ($80,X) @ 80 = 0200 = 00 A:80 X:00 Y:6F P:A4 SP:FB CYC: 48 SL:12 D162 20 76 F9 JSR $F976 A:7F X:00 Y:6F P:65 SP:FB CYC: 66 SL:12 F976 90 05 BCC $F97D A:7F X:00 Y:6F P:65 SP:F9 CYC: 84 SL:12 F978 C9 7F CMP #$7F A:7F X:00 Y:6F P:65 SP:F9 CYC: 90 SL:12 F97A D0 01 BNE $F97D A:7F X:00 Y:6F P:67 SP:F9 CYC: 96 SL:12 F97C 60 RTS A:7F X:00 Y:6F P:67 SP:F9 CYC:102 SL:12 D165 C8 INY A:7F X:00 Y:6F P:67 SP:FB CYC:120 SL:12 D166 A9 7F LDA #$7F A:7F X:00 Y:70 P:65 SP:FB CYC:126 SL:12 D168 8D 00 02 STA $0200 = 00 A:7F X:00 Y:70 P:65 SP:FB CYC:132 SL:12 D16B 20 80 F9 JSR $F980 A:7F X:00 Y:70 P:65 SP:FB CYC:144 SL:12 F980 38 SEC A:7F X:00 Y:70 P:65 SP:F9 CYC:162 SL:12 F981 A9 81 LDA #$81 A:7F X:00 Y:70 P:65 SP:F9 CYC:168 SL:12 F983 60 RTS A:81 X:00 Y:70 P:E5 SP:F9 CYC:174 SL:12 D16E E1 80 SBC ($80,X) @ 80 = 0200 = 7F A:81 X:00 Y:70 P:E5 SP:FB CYC:192 SL:12 D170 20 84 F9 JSR $F984 A:02 X:00 Y:70 P:65 SP:FB CYC:210 SL:12 F984 50 07 BVC $F98D A:02 X:00 Y:70 P:65 SP:F9 CYC:228 SL:12 F986 90 05 BCC $F98D A:02 X:00 Y:70 P:65 SP:F9 CYC:234 SL:12 F988 C9 02 CMP #$02 A:02 X:00 Y:70 P:65 SP:F9 CYC:240 SL:12 F98A D0 01 BNE $F98D A:02 X:00 Y:70 P:67 SP:F9 CYC:246 SL:12 F98C 60 RTS A:02 X:00 Y:70 P:67 SP:F9 CYC:252 SL:12 D173 60 RTS A:02 X:00 Y:70 P:67 SP:FB CYC:270 SL:12 C612 20 74 D1 JSR $D174 A:02 X:00 Y:70 P:67 SP:FD CYC:288 SL:12 D174 A9 55 LDA #$55 A:02 X:00 Y:70 P:67 SP:FB CYC:306 SL:12 D176 85 78 STA $78 = 00 A:55 X:00 Y:70 P:65 SP:FB CYC:312 SL:12 D178 A9 FF LDA #$FF A:55 X:00 Y:70 P:65 SP:FB CYC:321 SL:12 D17A 85 01 STA $01 = FF A:FF X:00 Y:70 P:E5 SP:FB CYC:327 SL:12 D17C 24 01 BIT $01 = FF A:FF X:00 Y:70 P:E5 SP:FB CYC:336 SL:12 D17E A0 11 LDY #$11 A:FF X:00 Y:70 P:E5 SP:FB CYC: 4 SL:13 D180 A2 23 LDX #$23 A:FF X:00 Y:11 P:65 SP:FB CYC: 10 SL:13 D182 A9 00 LDA #$00 A:FF X:23 Y:11 P:65 SP:FB CYC: 16 SL:13 D184 A5 78 LDA $78 = 55 A:00 X:23 Y:11 P:67 SP:FB CYC: 22 SL:13 D186 F0 10 BEQ $D198 A:55 X:23 Y:11 P:65 SP:FB CYC: 31 SL:13 D188 30 0E BMI $D198 A:55 X:23 Y:11 P:65 SP:FB CYC: 37 SL:13 D18A C9 55 CMP #$55 A:55 X:23 Y:11 P:65 SP:FB CYC: 43 SL:13 D18C D0 0A BNE $D198 A:55 X:23 Y:11 P:67 SP:FB CYC: 49 SL:13 D18E C0 11 CPY #$11 A:55 X:23 Y:11 P:67 SP:FB CYC: 55 SL:13 D190 D0 06 BNE $D198 A:55 X:23 Y:11 P:67 SP:FB CYC: 61 SL:13 D192 E0 23 CPX #$23 A:55 X:23 Y:11 P:67 SP:FB CYC: 67 SL:13 D194 50 02 BVC $D198 A:55 X:23 Y:11 P:67 SP:FB CYC: 73 SL:13 D196 F0 04 BEQ $D19C A:55 X:23 Y:11 P:67 SP:FB CYC: 79 SL:13 D19C A9 46 LDA #$46 A:55 X:23 Y:11 P:67 SP:FB CYC: 88 SL:13 D19E 24 01 BIT $01 = FF A:46 X:23 Y:11 P:65 SP:FB CYC: 94 SL:13 D1A0 85 78 STA $78 = 55 A:46 X:23 Y:11 P:E5 SP:FB CYC:103 SL:13 D1A2 F0 0A BEQ $D1AE A:46 X:23 Y:11 P:E5 SP:FB CYC:112 SL:13 D1A4 10 08 BPL $D1AE A:46 X:23 Y:11 P:E5 SP:FB CYC:118 SL:13 D1A6 50 06 BVC $D1AE A:46 X:23 Y:11 P:E5 SP:FB CYC:124 SL:13 D1A8 A5 78 LDA $78 = 46 A:46 X:23 Y:11 P:E5 SP:FB CYC:130 SL:13 D1AA C9 46 CMP #$46 A:46 X:23 Y:11 P:65 SP:FB CYC:139 SL:13 D1AC F0 04 BEQ $D1B2 A:46 X:23 Y:11 P:67 SP:FB CYC:145 SL:13 D1B2 A9 55 LDA #$55 A:46 X:23 Y:11 P:67 SP:FB CYC:154 SL:13 D1B4 85 78 STA $78 = 46 A:55 X:23 Y:11 P:65 SP:FB CYC:160 SL:13 D1B6 24 01 BIT $01 = FF A:55 X:23 Y:11 P:65 SP:FB CYC:169 SL:13 D1B8 A9 11 LDA #$11 A:55 X:23 Y:11 P:E5 SP:FB CYC:178 SL:13 D1BA A2 23 LDX #$23 A:11 X:23 Y:11 P:65 SP:FB CYC:184 SL:13 D1BC A0 00 LDY #$00 A:11 X:23 Y:11 P:65 SP:FB CYC:190 SL:13 D1BE A4 78 LDY $78 = 55 A:11 X:23 Y:00 P:67 SP:FB CYC:196 SL:13 D1C0 F0 10 BEQ $D1D2 A:11 X:23 Y:55 P:65 SP:FB CYC:205 SL:13 D1C2 30 0E BMI $D1D2 A:11 X:23 Y:55 P:65 SP:FB CYC:211 SL:13 D1C4 C0 55 CPY #$55 A:11 X:23 Y:55 P:65 SP:FB CYC:217 SL:13 D1C6 D0 0A BNE $D1D2 A:11 X:23 Y:55 P:67 SP:FB CYC:223 SL:13 D1C8 C9 11 CMP #$11 A:11 X:23 Y:55 P:67 SP:FB CYC:229 SL:13 D1CA D0 06 BNE $D1D2 A:11 X:23 Y:55 P:67 SP:FB CYC:235 SL:13 D1CC E0 23 CPX #$23 A:11 X:23 Y:55 P:67 SP:FB CYC:241 SL:13 D1CE 50 02 BVC $D1D2 A:11 X:23 Y:55 P:67 SP:FB CYC:247 SL:13 D1D0 F0 04 BEQ $D1D6 A:11 X:23 Y:55 P:67 SP:FB CYC:253 SL:13 D1D6 A0 46 LDY #$46 A:11 X:23 Y:55 P:67 SP:FB CYC:262 SL:13 D1D8 24 01 BIT $01 = FF A:11 X:23 Y:46 P:65 SP:FB CYC:268 SL:13 D1DA 84 78 STY $78 = 55 A:11 X:23 Y:46 P:E5 SP:FB CYC:277 SL:13 D1DC F0 0A BEQ $D1E8 A:11 X:23 Y:46 P:E5 SP:FB CYC:286 SL:13 D1DE 10 08 BPL $D1E8 A:11 X:23 Y:46 P:E5 SP:FB CYC:292 SL:13 D1E0 50 06 BVC $D1E8 A:11 X:23 Y:46 P:E5 SP:FB CYC:298 SL:13 D1E2 A4 78 LDY $78 = 46 A:11 X:23 Y:46 P:E5 SP:FB CYC:304 SL:13 D1E4 C0 46 CPY #$46 A:11 X:23 Y:46 P:65 SP:FB CYC:313 SL:13 D1E6 F0 04 BEQ $D1EC A:11 X:23 Y:46 P:67 SP:FB CYC:319 SL:13 D1EC 24 01 BIT $01 = FF A:11 X:23 Y:46 P:67 SP:FB CYC:328 SL:13 D1EE A9 55 LDA #$55 A:11 X:23 Y:46 P:E5 SP:FB CYC:337 SL:13 D1F0 85 78 STA $78 = 46 A:55 X:23 Y:46 P:65 SP:FB CYC: 2 SL:14 D1F2 A0 11 LDY #$11 A:55 X:23 Y:46 P:65 SP:FB CYC: 11 SL:14 D1F4 A9 23 LDA #$23 A:55 X:23 Y:11 P:65 SP:FB CYC: 17 SL:14 D1F6 A2 00 LDX #$00 A:23 X:23 Y:11 P:65 SP:FB CYC: 23 SL:14 D1F8 A6 78 LDX $78 = 55 A:23 X:00 Y:11 P:67 SP:FB CYC: 29 SL:14 D1FA F0 10 BEQ $D20C A:23 X:55 Y:11 P:65 SP:FB CYC: 38 SL:14 D1FC 30 0E BMI $D20C A:23 X:55 Y:11 P:65 SP:FB CYC: 44 SL:14 D1FE E0 55 CPX #$55 A:23 X:55 Y:11 P:65 SP:FB CYC: 50 SL:14 D200 D0 0A BNE $D20C A:23 X:55 Y:11 P:67 SP:FB CYC: 56 SL:14 D202 C0 11 CPY #$11 A:23 X:55 Y:11 P:67 SP:FB CYC: 62 SL:14 D204 D0 06 BNE $D20C A:23 X:55 Y:11 P:67 SP:FB CYC: 68 SL:14 D206 C9 23 CMP #$23 A:23 X:55 Y:11 P:67 SP:FB CYC: 74 SL:14 D208 50 02 BVC $D20C A:23 X:55 Y:11 P:67 SP:FB CYC: 80 SL:14 D20A F0 04 BEQ $D210 A:23 X:55 Y:11 P:67 SP:FB CYC: 86 SL:14 D210 A2 46 LDX #$46 A:23 X:55 Y:11 P:67 SP:FB CYC: 95 SL:14 D212 24 01 BIT $01 = FF A:23 X:46 Y:11 P:65 SP:FB CYC:101 SL:14 D214 86 78 STX $78 = 55 A:23 X:46 Y:11 P:E5 SP:FB CYC:110 SL:14 D216 F0 0A BEQ $D222 A:23 X:46 Y:11 P:E5 SP:FB CYC:119 SL:14 D218 10 08 BPL $D222 A:23 X:46 Y:11 P:E5 SP:FB CYC:125 SL:14 D21A 50 06 BVC $D222 A:23 X:46 Y:11 P:E5 SP:FB CYC:131 SL:14 D21C A6 78 LDX $78 = 46 A:23 X:46 Y:11 P:E5 SP:FB CYC:137 SL:14 D21E E0 46 CPX #$46 A:23 X:46 Y:11 P:65 SP:FB CYC:146 SL:14 D220 F0 04 BEQ $D226 A:23 X:46 Y:11 P:67 SP:FB CYC:152 SL:14 D226 A9 C0 LDA #$C0 A:23 X:46 Y:11 P:67 SP:FB CYC:161 SL:14 D228 85 78 STA $78 = 46 A:C0 X:46 Y:11 P:E5 SP:FB CYC:167 SL:14 D22A A2 33 LDX #$33 A:C0 X:46 Y:11 P:E5 SP:FB CYC:176 SL:14 D22C A0 88 LDY #$88 A:C0 X:33 Y:11 P:65 SP:FB CYC:182 SL:14 D22E A9 05 LDA #$05 A:C0 X:33 Y:88 P:E5 SP:FB CYC:188 SL:14 D230 24 78 BIT $78 = C0 A:05 X:33 Y:88 P:65 SP:FB CYC:194 SL:14 D232 10 10 BPL $D244 A:05 X:33 Y:88 P:E7 SP:FB CYC:203 SL:14 D234 50 0E BVC $D244 A:05 X:33 Y:88 P:E7 SP:FB CYC:209 SL:14 D236 D0 0C BNE $D244 A:05 X:33 Y:88 P:E7 SP:FB CYC:215 SL:14 D238 C9 05 CMP #$05 A:05 X:33 Y:88 P:E7 SP:FB CYC:221 SL:14 D23A D0 08 BNE $D244 A:05 X:33 Y:88 P:67 SP:FB CYC:227 SL:14 D23C E0 33 CPX #$33 A:05 X:33 Y:88 P:67 SP:FB CYC:233 SL:14 D23E D0 04 BNE $D244 A:05 X:33 Y:88 P:67 SP:FB CYC:239 SL:14 D240 C0 88 CPY #$88 A:05 X:33 Y:88 P:67 SP:FB CYC:245 SL:14 D242 F0 04 BEQ $D248 A:05 X:33 Y:88 P:67 SP:FB CYC:251 SL:14 D248 A9 03 LDA #$03 A:05 X:33 Y:88 P:67 SP:FB CYC:260 SL:14 D24A 85 78 STA $78 = C0 A:03 X:33 Y:88 P:65 SP:FB CYC:266 SL:14 D24C A9 01 LDA #$01 A:03 X:33 Y:88 P:65 SP:FB CYC:275 SL:14 D24E 24 78 BIT $78 = 03 A:01 X:33 Y:88 P:65 SP:FB CYC:281 SL:14 D250 30 08 BMI $D25A A:01 X:33 Y:88 P:25 SP:FB CYC:290 SL:14 D252 70 06 BVS $D25A A:01 X:33 Y:88 P:25 SP:FB CYC:296 SL:14 D254 F0 04 BEQ $D25A A:01 X:33 Y:88 P:25 SP:FB CYC:302 SL:14 D256 C9 01 CMP #$01 A:01 X:33 Y:88 P:25 SP:FB CYC:308 SL:14 D258 F0 04 BEQ $D25E A:01 X:33 Y:88 P:27 SP:FB CYC:314 SL:14 D25E A0 7E LDY #$7E A:01 X:33 Y:88 P:27 SP:FB CYC:323 SL:14 D260 A9 AA LDA #$AA A:01 X:33 Y:7E P:25 SP:FB CYC:329 SL:14 D262 85 78 STA $78 = 03 A:AA X:33 Y:7E P:A5 SP:FB CYC:335 SL:14 D264 20 B6 F7 JSR $F7B6 A:AA X:33 Y:7E P:A5 SP:FB CYC: 3 SL:15 F7B6 18 CLC A:AA X:33 Y:7E P:A5 SP:F9 CYC: 21 SL:15 F7B7 A9 FF LDA #$FF A:AA X:33 Y:7E P:A4 SP:F9 CYC: 27 SL:15 F7B9 85 01 STA $01 = FF A:FF X:33 Y:7E P:A4 SP:F9 CYC: 33 SL:15 F7BB 24 01 BIT $01 = FF A:FF X:33 Y:7E P:A4 SP:F9 CYC: 42 SL:15 F7BD A9 55 LDA #$55 A:FF X:33 Y:7E P:E4 SP:F9 CYC: 51 SL:15 F7BF 60 RTS A:55 X:33 Y:7E P:64 SP:F9 CYC: 57 SL:15 D267 05 78 ORA $78 = AA A:55 X:33 Y:7E P:64 SP:FB CYC: 75 SL:15 D269 20 C0 F7 JSR $F7C0 A:FF X:33 Y:7E P:E4 SP:FB CYC: 84 SL:15 F7C0 B0 09 BCS $F7CB A:FF X:33 Y:7E P:E4 SP:F9 CYC:102 SL:15 F7C2 10 07 BPL $F7CB A:FF X:33 Y:7E P:E4 SP:F9 CYC:108 SL:15 F7C4 C9 FF CMP #$FF A:FF X:33 Y:7E P:E4 SP:F9 CYC:114 SL:15 F7C6 D0 03 BNE $F7CB A:FF X:33 Y:7E P:67 SP:F9 CYC:120 SL:15 F7C8 50 01 BVC $F7CB A:FF X:33 Y:7E P:67 SP:F9 CYC:126 SL:15 F7CA 60 RTS A:FF X:33 Y:7E P:67 SP:F9 CYC:132 SL:15 D26C C8 INY A:FF X:33 Y:7E P:67 SP:FB CYC:150 SL:15 D26D A9 00 LDA #$00 A:FF X:33 Y:7F P:65 SP:FB CYC:156 SL:15 D26F 85 78 STA $78 = AA A:00 X:33 Y:7F P:67 SP:FB CYC:162 SL:15 D271 20 CE F7 JSR $F7CE A:00 X:33 Y:7F P:67 SP:FB CYC:171 SL:15 F7CE 38 SEC A:00 X:33 Y:7F P:67 SP:F9 CYC:189 SL:15 F7CF B8 CLV A:00 X:33 Y:7F P:67 SP:F9 CYC:195 SL:15 F7D0 A9 00 LDA #$00 A:00 X:33 Y:7F P:27 SP:F9 CYC:201 SL:15 F7D2 60 RTS A:00 X:33 Y:7F P:27 SP:F9 CYC:207 SL:15 D274 05 78 ORA $78 = 00 A:00 X:33 Y:7F P:27 SP:FB CYC:225 SL:15 D276 20 D3 F7 JSR $F7D3 A:00 X:33 Y:7F P:27 SP:FB CYC:234 SL:15 F7D3 D0 07 BNE $F7DC A:00 X:33 Y:7F P:27 SP:F9 CYC:252 SL:15 F7D5 70 05 BVS $F7DC A:00 X:33 Y:7F P:27 SP:F9 CYC:258 SL:15 F7D7 90 03 BCC $F7DC A:00 X:33 Y:7F P:27 SP:F9 CYC:264 SL:15 F7D9 30 01 BMI $F7DC A:00 X:33 Y:7F P:27 SP:F9 CYC:270 SL:15 F7DB 60 RTS A:00 X:33 Y:7F P:27 SP:F9 CYC:276 SL:15 D279 C8 INY A:00 X:33 Y:7F P:27 SP:FB CYC:294 SL:15 D27A A9 AA LDA #$AA A:00 X:33 Y:80 P:A5 SP:FB CYC:300 SL:15 D27C 85 78 STA $78 = 00 A:AA X:33 Y:80 P:A5 SP:FB CYC:306 SL:15 D27E 20 DF F7 JSR $F7DF A:AA X:33 Y:80 P:A5 SP:FB CYC:315 SL:15 F7DF 18 CLC A:AA X:33 Y:80 P:A5 SP:F9 CYC:333 SL:15 F7E0 24 01 BIT $01 = FF A:AA X:33 Y:80 P:A4 SP:F9 CYC:339 SL:15 F7E2 A9 55 LDA #$55 A:AA X:33 Y:80 P:E4 SP:F9 CYC: 7 SL:16 F7E4 60 RTS A:55 X:33 Y:80 P:64 SP:F9 CYC: 13 SL:16 D281 25 78 AND $78 = AA A:55 X:33 Y:80 P:64 SP:FB CYC: 31 SL:16 D283 20 E5 F7 JSR $F7E5 A:00 X:33 Y:80 P:66 SP:FB CYC: 40 SL:16 F7E5 D0 07 BNE $F7EE A:00 X:33 Y:80 P:66 SP:F9 CYC: 58 SL:16 F7E7 50 05 BVC $F7EE A:00 X:33 Y:80 P:66 SP:F9 CYC: 64 SL:16 F7E9 B0 03 BCS $F7EE A:00 X:33 Y:80 P:66 SP:F9 CYC: 70 SL:16 F7EB 30 01 BMI $F7EE A:00 X:33 Y:80 P:66 SP:F9 CYC: 76 SL:16 F7ED 60 RTS A:00 X:33 Y:80 P:66 SP:F9 CYC: 82 SL:16 D286 C8 INY A:00 X:33 Y:80 P:66 SP:FB CYC:100 SL:16 D287 A9 EF LDA #$EF A:00 X:33 Y:81 P:E4 SP:FB CYC:106 SL:16 D289 85 78 STA $78 = AA A:EF X:33 Y:81 P:E4 SP:FB CYC:112 SL:16 D28B 20 F1 F7 JSR $F7F1 A:EF X:33 Y:81 P:E4 SP:FB CYC:121 SL:16 F7F1 38 SEC A:EF X:33 Y:81 P:E4 SP:F9 CYC:139 SL:16 F7F2 B8 CLV A:EF X:33 Y:81 P:E5 SP:F9 CYC:145 SL:16 F7F3 A9 F8 LDA #$F8 A:EF X:33 Y:81 P:A5 SP:F9 CYC:151 SL:16 F7F5 60 RTS A:F8 X:33 Y:81 P:A5 SP:F9 CYC:157 SL:16 D28E 25 78 AND $78 = EF A:F8 X:33 Y:81 P:A5 SP:FB CYC:175 SL:16 D290 20 F6 F7 JSR $F7F6 A:E8 X:33 Y:81 P:A5 SP:FB CYC:184 SL:16 F7F6 90 09 BCC $F801 A:E8 X:33 Y:81 P:A5 SP:F9 CYC:202 SL:16 F7F8 10 07 BPL $F801 A:E8 X:33 Y:81 P:A5 SP:F9 CYC:208 SL:16 F7FA C9 E8 CMP #$E8 A:E8 X:33 Y:81 P:A5 SP:F9 CYC:214 SL:16 F7FC D0 03 BNE $F801 A:E8 X:33 Y:81 P:27 SP:F9 CYC:220 SL:16 F7FE 70 01 BVS $F801 A:E8 X:33 Y:81 P:27 SP:F9 CYC:226 SL:16 F800 60 RTS A:E8 X:33 Y:81 P:27 SP:F9 CYC:232 SL:16 D293 C8 INY A:E8 X:33 Y:81 P:27 SP:FB CYC:250 SL:16 D294 A9 AA LDA #$AA A:E8 X:33 Y:82 P:A5 SP:FB CYC:256 SL:16 D296 85 78 STA $78 = EF A:AA X:33 Y:82 P:A5 SP:FB CYC:262 SL:16 D298 20 04 F8 JSR $F804 A:AA X:33 Y:82 P:A5 SP:FB CYC:271 SL:16 F804 18 CLC A:AA X:33 Y:82 P:A5 SP:F9 CYC:289 SL:16 F805 24 01 BIT $01 = FF A:AA X:33 Y:82 P:A4 SP:F9 CYC:295 SL:16 F807 A9 5F LDA #$5F A:AA X:33 Y:82 P:E4 SP:F9 CYC:304 SL:16 F809 60 RTS A:5F X:33 Y:82 P:64 SP:F9 CYC:310 SL:16 D29B 45 78 EOR $78 = AA A:5F X:33 Y:82 P:64 SP:FB CYC:328 SL:16 D29D 20 0A F8 JSR $F80A A:F5 X:33 Y:82 P:E4 SP:FB CYC:337 SL:16 F80A B0 09 BCS $F815 A:F5 X:33 Y:82 P:E4 SP:F9 CYC: 14 SL:17 F80C 10 07 BPL $F815 A:F5 X:33 Y:82 P:E4 SP:F9 CYC: 20 SL:17 F80E C9 F5 CMP #$F5 A:F5 X:33 Y:82 P:E4 SP:F9 CYC: 26 SL:17 F810 D0 03 BNE $F815 A:F5 X:33 Y:82 P:67 SP:F9 CYC: 32 SL:17 F812 50 01 BVC $F815 A:F5 X:33 Y:82 P:67 SP:F9 CYC: 38 SL:17 F814 60 RTS A:F5 X:33 Y:82 P:67 SP:F9 CYC: 44 SL:17 D2A0 C8 INY A:F5 X:33 Y:82 P:67 SP:FB CYC: 62 SL:17 D2A1 A9 70 LDA #$70 A:F5 X:33 Y:83 P:E5 SP:FB CYC: 68 SL:17 D2A3 85 78 STA $78 = AA A:70 X:33 Y:83 P:65 SP:FB CYC: 74 SL:17 D2A5 20 18 F8 JSR $F818 A:70 X:33 Y:83 P:65 SP:FB CYC: 83 SL:17 F818 38 SEC A:70 X:33 Y:83 P:65 SP:F9 CYC:101 SL:17 F819 B8 CLV A:70 X:33 Y:83 P:65 SP:F9 CYC:107 SL:17 F81A A9 70 LDA #$70 A:70 X:33 Y:83 P:25 SP:F9 CYC:113 SL:17 F81C 60 RTS A:70 X:33 Y:83 P:25 SP:F9 CYC:119 SL:17 D2A8 45 78 EOR $78 = 70 A:70 X:33 Y:83 P:25 SP:FB CYC:137 SL:17 D2AA 20 1D F8 JSR $F81D A:00 X:33 Y:83 P:27 SP:FB CYC:146 SL:17 F81D D0 07 BNE $F826 A:00 X:33 Y:83 P:27 SP:F9 CYC:164 SL:17 F81F 70 05 BVS $F826 A:00 X:33 Y:83 P:27 SP:F9 CYC:170 SL:17 F821 90 03 BCC $F826 A:00 X:33 Y:83 P:27 SP:F9 CYC:176 SL:17 F823 30 01 BMI $F826 A:00 X:33 Y:83 P:27 SP:F9 CYC:182 SL:17 F825 60 RTS A:00 X:33 Y:83 P:27 SP:F9 CYC:188 SL:17 D2AD C8 INY A:00 X:33 Y:83 P:27 SP:FB CYC:206 SL:17 D2AE A9 69 LDA #$69 A:00 X:33 Y:84 P:A5 SP:FB CYC:212 SL:17 D2B0 85 78 STA $78 = 70 A:69 X:33 Y:84 P:25 SP:FB CYC:218 SL:17 D2B2 20 29 F8 JSR $F829 A:69 X:33 Y:84 P:25 SP:FB CYC:227 SL:17 F829 18 CLC A:69 X:33 Y:84 P:25 SP:F9 CYC:245 SL:17 F82A 24 01 BIT $01 = FF A:69 X:33 Y:84 P:24 SP:F9 CYC:251 SL:17 F82C A9 00 LDA #$00 A:69 X:33 Y:84 P:E4 SP:F9 CYC:260 SL:17 F82E 60 RTS A:00 X:33 Y:84 P:66 SP:F9 CYC:266 SL:17 D2B5 65 78 ADC $78 = 69 A:00 X:33 Y:84 P:66 SP:FB CYC:284 SL:17 D2B7 20 2F F8 JSR $F82F A:69 X:33 Y:84 P:24 SP:FB CYC:293 SL:17 F82F 30 09 BMI $F83A A:69 X:33 Y:84 P:24 SP:F9 CYC:311 SL:17 F831 B0 07 BCS $F83A A:69 X:33 Y:84 P:24 SP:F9 CYC:317 SL:17 F833 C9 69 CMP #$69 A:69 X:33 Y:84 P:24 SP:F9 CYC:323 SL:17 F835 D0 03 BNE $F83A A:69 X:33 Y:84 P:27 SP:F9 CYC:329 SL:17 F837 70 01 BVS $F83A A:69 X:33 Y:84 P:27 SP:F9 CYC:335 SL:17 F839 60 RTS A:69 X:33 Y:84 P:27 SP:F9 CYC: 0 SL:18 D2BA C8 INY A:69 X:33 Y:84 P:27 SP:FB CYC: 18 SL:18 D2BB 20 3D F8 JSR $F83D A:69 X:33 Y:85 P:A5 SP:FB CYC: 24 SL:18 F83D 38 SEC A:69 X:33 Y:85 P:A5 SP:F9 CYC: 42 SL:18 F83E 24 01 BIT $01 = FF A:69 X:33 Y:85 P:A5 SP:F9 CYC: 48 SL:18 F840 A9 00 LDA #$00 A:69 X:33 Y:85 P:E5 SP:F9 CYC: 57 SL:18 F842 60 RTS A:00 X:33 Y:85 P:67 SP:F9 CYC: 63 SL:18 D2BE 65 78 ADC $78 = 69 A:00 X:33 Y:85 P:67 SP:FB CYC: 81 SL:18 D2C0 20 43 F8 JSR $F843 A:6A X:33 Y:85 P:24 SP:FB CYC: 90 SL:18 F843 30 09 BMI $F84E A:6A X:33 Y:85 P:24 SP:F9 CYC:108 SL:18 F845 B0 07 BCS $F84E A:6A X:33 Y:85 P:24 SP:F9 CYC:114 SL:18 F847 C9 6A CMP #$6A A:6A X:33 Y:85 P:24 SP:F9 CYC:120 SL:18 F849 D0 03 BNE $F84E A:6A X:33 Y:85 P:27 SP:F9 CYC:126 SL:18 F84B 70 01 BVS $F84E A:6A X:33 Y:85 P:27 SP:F9 CYC:132 SL:18 F84D 60 RTS A:6A X:33 Y:85 P:27 SP:F9 CYC:138 SL:18 D2C3 C8 INY A:6A X:33 Y:85 P:27 SP:FB CYC:156 SL:18 D2C4 A9 7F LDA #$7F A:6A X:33 Y:86 P:A5 SP:FB CYC:162 SL:18 D2C6 85 78 STA $78 = 69 A:7F X:33 Y:86 P:25 SP:FB CYC:168 SL:18 D2C8 20 51 F8 JSR $F851 A:7F X:33 Y:86 P:25 SP:FB CYC:177 SL:18 F851 38 SEC A:7F X:33 Y:86 P:25 SP:F9 CYC:195 SL:18 F852 B8 CLV A:7F X:33 Y:86 P:25 SP:F9 CYC:201 SL:18 F853 A9 7F LDA #$7F A:7F X:33 Y:86 P:25 SP:F9 CYC:207 SL:18 F855 60 RTS A:7F X:33 Y:86 P:25 SP:F9 CYC:213 SL:18 D2CB 65 78 ADC $78 = 7F A:7F X:33 Y:86 P:25 SP:FB CYC:231 SL:18 D2CD 20 56 F8 JSR $F856 A:FF X:33 Y:86 P:E4 SP:FB CYC:240 SL:18 F856 10 09 BPL $F861 A:FF X:33 Y:86 P:E4 SP:F9 CYC:258 SL:18 F858 B0 07 BCS $F861 A:FF X:33 Y:86 P:E4 SP:F9 CYC:264 SL:18 F85A C9 FF CMP #$FF A:FF X:33 Y:86 P:E4 SP:F9 CYC:270 SL:18 F85C D0 03 BNE $F861 A:FF X:33 Y:86 P:67 SP:F9 CYC:276 SL:18 F85E 50 01 BVC $F861 A:FF X:33 Y:86 P:67 SP:F9 CYC:282 SL:18 F860 60 RTS A:FF X:33 Y:86 P:67 SP:F9 CYC:288 SL:18 D2D0 C8 INY A:FF X:33 Y:86 P:67 SP:FB CYC:306 SL:18 D2D1 A9 80 LDA #$80 A:FF X:33 Y:87 P:E5 SP:FB CYC:312 SL:18 D2D3 85 78 STA $78 = 7F A:80 X:33 Y:87 P:E5 SP:FB CYC:318 SL:18 D2D5 20 64 F8 JSR $F864 A:80 X:33 Y:87 P:E5 SP:FB CYC:327 SL:18 F864 18 CLC A:80 X:33 Y:87 P:E5 SP:F9 CYC: 4 SL:19 F865 24 01 BIT $01 = FF A:80 X:33 Y:87 P:E4 SP:F9 CYC: 10 SL:19 F867 A9 7F LDA #$7F A:80 X:33 Y:87 P:E4 SP:F9 CYC: 19 SL:19 F869 60 RTS A:7F X:33 Y:87 P:64 SP:F9 CYC: 25 SL:19 D2D8 65 78 ADC $78 = 80 A:7F X:33 Y:87 P:64 SP:FB CYC: 43 SL:19 D2DA 20 6A F8 JSR $F86A A:FF X:33 Y:87 P:A4 SP:FB CYC: 52 SL:19 F86A 10 09 BPL $F875 A:FF X:33 Y:87 P:A4 SP:F9 CYC: 70 SL:19 F86C B0 07 BCS $F875 A:FF X:33 Y:87 P:A4 SP:F9 CYC: 76 SL:19 F86E C9 FF CMP #$FF A:FF X:33 Y:87 P:A4 SP:F9 CYC: 82 SL:19 F870 D0 03 BNE $F875 A:FF X:33 Y:87 P:27 SP:F9 CYC: 88 SL:19 F872 70 01 BVS $F875 A:FF X:33 Y:87 P:27 SP:F9 CYC: 94 SL:19 F874 60 RTS A:FF X:33 Y:87 P:27 SP:F9 CYC:100 SL:19 D2DD C8 INY A:FF X:33 Y:87 P:27 SP:FB CYC:118 SL:19 D2DE 20 78 F8 JSR $F878 A:FF X:33 Y:88 P:A5 SP:FB CYC:124 SL:19 F878 38 SEC A:FF X:33 Y:88 P:A5 SP:F9 CYC:142 SL:19 F879 B8 CLV A:FF X:33 Y:88 P:A5 SP:F9 CYC:148 SL:19 F87A A9 7F LDA #$7F A:FF X:33 Y:88 P:A5 SP:F9 CYC:154 SL:19 F87C 60 RTS A:7F X:33 Y:88 P:25 SP:F9 CYC:160 SL:19 D2E1 65 78 ADC $78 = 80 A:7F X:33 Y:88 P:25 SP:FB CYC:178 SL:19 D2E3 20 7D F8 JSR $F87D A:00 X:33 Y:88 P:27 SP:FB CYC:187 SL:19 F87D D0 07 BNE $F886 A:00 X:33 Y:88 P:27 SP:F9 CYC:205 SL:19 F87F 30 05 BMI $F886 A:00 X:33 Y:88 P:27 SP:F9 CYC:211 SL:19 F881 70 03 BVS $F886 A:00 X:33 Y:88 P:27 SP:F9 CYC:217 SL:19 F883 90 01 BCC $F886 A:00 X:33 Y:88 P:27 SP:F9 CYC:223 SL:19 F885 60 RTS A:00 X:33 Y:88 P:27 SP:F9 CYC:229 SL:19 D2E6 C8 INY A:00 X:33 Y:88 P:27 SP:FB CYC:247 SL:19 D2E7 A9 40 LDA #$40 A:00 X:33 Y:89 P:A5 SP:FB CYC:253 SL:19 D2E9 85 78 STA $78 = 80 A:40 X:33 Y:89 P:25 SP:FB CYC:259 SL:19 D2EB 20 89 F8 JSR $F889 A:40 X:33 Y:89 P:25 SP:FB CYC:268 SL:19 F889 24 01 BIT $01 = FF A:40 X:33 Y:89 P:25 SP:F9 CYC:286 SL:19 F88B A9 40 LDA #$40 A:40 X:33 Y:89 P:E5 SP:F9 CYC:295 SL:19 F88D 60 RTS A:40 X:33 Y:89 P:65 SP:F9 CYC:301 SL:19 D2EE C5 78 CMP $78 = 40 A:40 X:33 Y:89 P:65 SP:FB CYC:319 SL:19 D2F0 20 8E F8 JSR $F88E A:40 X:33 Y:89 P:67 SP:FB CYC:328 SL:19 F88E 30 07 BMI $F897 A:40 X:33 Y:89 P:67 SP:F9 CYC: 5 SL:20 F890 90 05 BCC $F897 A:40 X:33 Y:89 P:67 SP:F9 CYC: 11 SL:20 F892 D0 03 BNE $F897 A:40 X:33 Y:89 P:67 SP:F9 CYC: 17 SL:20 F894 50 01 BVC $F897 A:40 X:33 Y:89 P:67 SP:F9 CYC: 23 SL:20 F896 60 RTS A:40 X:33 Y:89 P:67 SP:F9 CYC: 29 SL:20 D2F3 C8 INY A:40 X:33 Y:89 P:67 SP:FB CYC: 47 SL:20 D2F4 48 PHA A:40 X:33 Y:8A P:E5 SP:FB CYC: 53 SL:20 D2F5 A9 3F LDA #$3F A:40 X:33 Y:8A P:E5 SP:FA CYC: 62 SL:20 D2F7 85 78 STA $78 = 40 A:3F X:33 Y:8A P:65 SP:FA CYC: 68 SL:20 D2F9 68 PLA A:3F X:33 Y:8A P:65 SP:FA CYC: 77 SL:20 D2FA 20 9A F8 JSR $F89A A:40 X:33 Y:8A P:65 SP:FB CYC: 89 SL:20 F89A B8 CLV A:40 X:33 Y:8A P:65 SP:F9 CYC:107 SL:20 F89B 60 RTS A:40 X:33 Y:8A P:25 SP:F9 CYC:113 SL:20 D2FD C5 78 CMP $78 = 3F A:40 X:33 Y:8A P:25 SP:FB CYC:131 SL:20 D2FF 20 9C F8 JSR $F89C A:40 X:33 Y:8A P:25 SP:FB CYC:140 SL:20 F89C F0 07 BEQ $F8A5 A:40 X:33 Y:8A P:25 SP:F9 CYC:158 SL:20 F89E 30 05 BMI $F8A5 A:40 X:33 Y:8A P:25 SP:F9 CYC:164 SL:20 F8A0 90 03 BCC $F8A5 A:40 X:33 Y:8A P:25 SP:F9 CYC:170 SL:20 F8A2 70 01 BVS $F8A5 A:40 X:33 Y:8A P:25 SP:F9 CYC:176 SL:20 F8A4 60 RTS A:40 X:33 Y:8A P:25 SP:F9 CYC:182 SL:20 D302 C8 INY A:40 X:33 Y:8A P:25 SP:FB CYC:200 SL:20 D303 48 PHA A:40 X:33 Y:8B P:A5 SP:FB CYC:206 SL:20 D304 A9 41 LDA #$41 A:40 X:33 Y:8B P:A5 SP:FA CYC:215 SL:20 D306 85 78 STA $78 = 3F A:41 X:33 Y:8B P:25 SP:FA CYC:221 SL:20 D308 68 PLA A:41 X:33 Y:8B P:25 SP:FA CYC:230 SL:20 D309 C5 78 CMP $78 = 41 A:40 X:33 Y:8B P:25 SP:FB CYC:242 SL:20 D30B 20 A8 F8 JSR $F8A8 A:40 X:33 Y:8B P:A4 SP:FB CYC:251 SL:20 F8A8 F0 05 BEQ $F8AF A:40 X:33 Y:8B P:A4 SP:F9 CYC:269 SL:20 F8AA 10 03 BPL $F8AF A:40 X:33 Y:8B P:A4 SP:F9 CYC:275 SL:20 F8AC 10 01 BPL $F8AF A:40 X:33 Y:8B P:A4 SP:F9 CYC:281 SL:20 F8AE 60 RTS A:40 X:33 Y:8B P:A4 SP:F9 CYC:287 SL:20 D30E C8 INY A:40 X:33 Y:8B P:A4 SP:FB CYC:305 SL:20 D30F 48 PHA A:40 X:33 Y:8C P:A4 SP:FB CYC:311 SL:20 D310 A9 00 LDA #$00 A:40 X:33 Y:8C P:A4 SP:FA CYC:320 SL:20 D312 85 78 STA $78 = 41 A:00 X:33 Y:8C P:26 SP:FA CYC:326 SL:20 D314 68 PLA A:00 X:33 Y:8C P:26 SP:FA CYC:335 SL:20 D315 20 B2 F8 JSR $F8B2 A:40 X:33 Y:8C P:24 SP:FB CYC: 6 SL:21 F8B2 A9 80 LDA #$80 A:40 X:33 Y:8C P:24 SP:F9 CYC: 24 SL:21 F8B4 60 RTS A:80 X:33 Y:8C P:A4 SP:F9 CYC: 30 SL:21 D318 C5 78 CMP $78 = 00 A:80 X:33 Y:8C P:A4 SP:FB CYC: 48 SL:21 D31A 20 B5 F8 JSR $F8B5 A:80 X:33 Y:8C P:A5 SP:FB CYC: 57 SL:21 F8B5 F0 05 BEQ $F8BC A:80 X:33 Y:8C P:A5 SP:F9 CYC: 75 SL:21 F8B7 10 03 BPL $F8BC A:80 X:33 Y:8C P:A5 SP:F9 CYC: 81 SL:21 F8B9 90 01 BCC $F8BC A:80 X:33 Y:8C P:A5 SP:F9 CYC: 87 SL:21 F8BB 60 RTS A:80 X:33 Y:8C P:A5 SP:F9 CYC: 93 SL:21 D31D C8 INY A:80 X:33 Y:8C P:A5 SP:FB CYC:111 SL:21 D31E 48 PHA A:80 X:33 Y:8D P:A5 SP:FB CYC:117 SL:21 D31F A9 80 LDA #$80 A:80 X:33 Y:8D P:A5 SP:FA CYC:126 SL:21 D321 85 78 STA $78 = 00 A:80 X:33 Y:8D P:A5 SP:FA CYC:132 SL:21 D323 68 PLA A:80 X:33 Y:8D P:A5 SP:FA CYC:141 SL:21 D324 C5 78 CMP $78 = 80 A:80 X:33 Y:8D P:A5 SP:FB CYC:153 SL:21 D326 20 BF F8 JSR $F8BF A:80 X:33 Y:8D P:27 SP:FB CYC:162 SL:21 F8BF D0 05 BNE $F8C6 A:80 X:33 Y:8D P:27 SP:F9 CYC:180 SL:21 F8C1 30 03 BMI $F8C6 A:80 X:33 Y:8D P:27 SP:F9 CYC:186 SL:21 F8C3 90 01 BCC $F8C6 A:80 X:33 Y:8D P:27 SP:F9 CYC:192 SL:21 F8C5 60 RTS A:80 X:33 Y:8D P:27 SP:F9 CYC:198 SL:21 D329 C8 INY A:80 X:33 Y:8D P:27 SP:FB CYC:216 SL:21 D32A 48 PHA A:80 X:33 Y:8E P:A5 SP:FB CYC:222 SL:21 D32B A9 81 LDA #$81 A:80 X:33 Y:8E P:A5 SP:FA CYC:231 SL:21 D32D 85 78 STA $78 = 80 A:81 X:33 Y:8E P:A5 SP:FA CYC:237 SL:21 D32F 68 PLA A:81 X:33 Y:8E P:A5 SP:FA CYC:246 SL:21 D330 C5 78 CMP $78 = 81 A:80 X:33 Y:8E P:A5 SP:FB CYC:258 SL:21 D332 20 C9 F8 JSR $F8C9 A:80 X:33 Y:8E P:A4 SP:FB CYC:267 SL:21 F8C9 B0 05 BCS $F8D0 A:80 X:33 Y:8E P:A4 SP:F9 CYC:285 SL:21 F8CB F0 03 BEQ $F8D0 A:80 X:33 Y:8E P:A4 SP:F9 CYC:291 SL:21 F8CD 10 01 BPL $F8D0 A:80 X:33 Y:8E P:A4 SP:F9 CYC:297 SL:21 F8CF 60 RTS A:80 X:33 Y:8E P:A4 SP:F9 CYC:303 SL:21 D335 C8 INY A:80 X:33 Y:8E P:A4 SP:FB CYC:321 SL:21 D336 48 PHA A:80 X:33 Y:8F P:A4 SP:FB CYC:327 SL:21 D337 A9 7F LDA #$7F A:80 X:33 Y:8F P:A4 SP:FA CYC:336 SL:21 D339 85 78 STA $78 = 81 A:7F X:33 Y:8F P:24 SP:FA CYC: 1 SL:22 D33B 68 PLA A:7F X:33 Y:8F P:24 SP:FA CYC: 10 SL:22 D33C C5 78 CMP $78 = 7F A:80 X:33 Y:8F P:A4 SP:FB CYC: 22 SL:22 D33E 20 D3 F8 JSR $F8D3 A:80 X:33 Y:8F P:25 SP:FB CYC: 31 SL:22 F8D3 90 05 BCC $F8DA A:80 X:33 Y:8F P:25 SP:F9 CYC: 49 SL:22 F8D5 F0 03 BEQ $F8DA A:80 X:33 Y:8F P:25 SP:F9 CYC: 55 SL:22 F8D7 30 01 BMI $F8DA A:80 X:33 Y:8F P:25 SP:F9 CYC: 61 SL:22 F8D9 60 RTS A:80 X:33 Y:8F P:25 SP:F9 CYC: 67 SL:22 D341 C8 INY A:80 X:33 Y:8F P:25 SP:FB CYC: 85 SL:22 D342 A9 40 LDA #$40 A:80 X:33 Y:90 P:A5 SP:FB CYC: 91 SL:22 D344 85 78 STA $78 = 7F A:40 X:33 Y:90 P:25 SP:FB CYC: 97 SL:22 D346 20 31 F9 JSR $F931 A:40 X:33 Y:90 P:25 SP:FB CYC:106 SL:22 F931 24 01 BIT $01 = FF A:40 X:33 Y:90 P:25 SP:F9 CYC:124 SL:22 F933 A9 40 LDA #$40 A:40 X:33 Y:90 P:E5 SP:F9 CYC:133 SL:22 F935 38 SEC A:40 X:33 Y:90 P:65 SP:F9 CYC:139 SL:22 F936 60 RTS A:40 X:33 Y:90 P:65 SP:F9 CYC:145 SL:22 D349 E5 78 SBC $78 = 40 A:40 X:33 Y:90 P:65 SP:FB CYC:163 SL:22 D34B 20 37 F9 JSR $F937 A:00 X:33 Y:90 P:27 SP:FB CYC:172 SL:22 F937 30 0B BMI $F944 A:00 X:33 Y:90 P:27 SP:F9 CYC:190 SL:22 F939 90 09 BCC $F944 A:00 X:33 Y:90 P:27 SP:F9 CYC:196 SL:22 F93B D0 07 BNE $F944 A:00 X:33 Y:90 P:27 SP:F9 CYC:202 SL:22 F93D 70 05 BVS $F944 A:00 X:33 Y:90 P:27 SP:F9 CYC:208 SL:22 F93F C9 00 CMP #$00 A:00 X:33 Y:90 P:27 SP:F9 CYC:214 SL:22 F941 D0 01 BNE $F944 A:00 X:33 Y:90 P:27 SP:F9 CYC:220 SL:22 F943 60 RTS A:00 X:33 Y:90 P:27 SP:F9 CYC:226 SL:22 D34E C8 INY A:00 X:33 Y:90 P:27 SP:FB CYC:244 SL:22 D34F A9 3F LDA #$3F A:00 X:33 Y:91 P:A5 SP:FB CYC:250 SL:22 D351 85 78 STA $78 = 40 A:3F X:33 Y:91 P:25 SP:FB CYC:256 SL:22 D353 20 47 F9 JSR $F947 A:3F X:33 Y:91 P:25 SP:FB CYC:265 SL:22 F947 B8 CLV A:3F X:33 Y:91 P:25 SP:F9 CYC:283 SL:22 F948 38 SEC A:3F X:33 Y:91 P:25 SP:F9 CYC:289 SL:22 F949 A9 40 LDA #$40 A:3F X:33 Y:91 P:25 SP:F9 CYC:295 SL:22 F94B 60 RTS A:40 X:33 Y:91 P:25 SP:F9 CYC:301 SL:22 D356 E5 78 SBC $78 = 3F A:40 X:33 Y:91 P:25 SP:FB CYC:319 SL:22 D358 20 4C F9 JSR $F94C A:01 X:33 Y:91 P:25 SP:FB CYC:328 SL:22 F94C F0 0B BEQ $F959 A:01 X:33 Y:91 P:25 SP:F9 CYC: 5 SL:23 F94E 30 09 BMI $F959 A:01 X:33 Y:91 P:25 SP:F9 CYC: 11 SL:23 F950 90 07 BCC $F959 A:01 X:33 Y:91 P:25 SP:F9 CYC: 17 SL:23 F952 70 05 BVS $F959 A:01 X:33 Y:91 P:25 SP:F9 CYC: 23 SL:23 F954 C9 01 CMP #$01 A:01 X:33 Y:91 P:25 SP:F9 CYC: 29 SL:23 F956 D0 01 BNE $F959 A:01 X:33 Y:91 P:27 SP:F9 CYC: 35 SL:23 F958 60 RTS A:01 X:33 Y:91 P:27 SP:F9 CYC: 41 SL:23 D35B C8 INY A:01 X:33 Y:91 P:27 SP:FB CYC: 59 SL:23 D35C A9 41 LDA #$41 A:01 X:33 Y:92 P:A5 SP:FB CYC: 65 SL:23 D35E 85 78 STA $78 = 3F A:41 X:33 Y:92 P:25 SP:FB CYC: 71 SL:23 D360 20 5C F9 JSR $F95C A:41 X:33 Y:92 P:25 SP:FB CYC: 80 SL:23 F95C A9 40 LDA #$40 A:41 X:33 Y:92 P:25 SP:F9 CYC: 98 SL:23 F95E 38 SEC A:40 X:33 Y:92 P:25 SP:F9 CYC:104 SL:23 F95F 24 01 BIT $01 = FF A:40 X:33 Y:92 P:25 SP:F9 CYC:110 SL:23 F961 60 RTS A:40 X:33 Y:92 P:E5 SP:F9 CYC:119 SL:23 D363 E5 78 SBC $78 = 41 A:40 X:33 Y:92 P:E5 SP:FB CYC:137 SL:23 D365 20 62 F9 JSR $F962 A:FF X:33 Y:92 P:A4 SP:FB CYC:146 SL:23 F962 B0 0B BCS $F96F A:FF X:33 Y:92 P:A4 SP:F9 CYC:164 SL:23 F964 F0 09 BEQ $F96F A:FF X:33 Y:92 P:A4 SP:F9 CYC:170 SL:23 F966 10 07 BPL $F96F A:FF X:33 Y:92 P:A4 SP:F9 CYC:176 SL:23 F968 70 05 BVS $F96F A:FF X:33 Y:92 P:A4 SP:F9 CYC:182 SL:23 F96A C9 FF CMP #$FF A:FF X:33 Y:92 P:A4 SP:F9 CYC:188 SL:23 F96C D0 01 BNE $F96F A:FF X:33 Y:92 P:27 SP:F9 CYC:194 SL:23 F96E 60 RTS A:FF X:33 Y:92 P:27 SP:F9 CYC:200 SL:23 D368 C8 INY A:FF X:33 Y:92 P:27 SP:FB CYC:218 SL:23 D369 A9 00 LDA #$00 A:FF X:33 Y:93 P:A5 SP:FB CYC:224 SL:23 D36B 85 78 STA $78 = 41 A:00 X:33 Y:93 P:27 SP:FB CYC:230 SL:23 D36D 20 72 F9 JSR $F972 A:00 X:33 Y:93 P:27 SP:FB CYC:239 SL:23 F972 18 CLC A:00 X:33 Y:93 P:27 SP:F9 CYC:257 SL:23 F973 A9 80 LDA #$80 A:00 X:33 Y:93 P:26 SP:F9 CYC:263 SL:23 F975 60 RTS A:80 X:33 Y:93 P:A4 SP:F9 CYC:269 SL:23 D370 E5 78 SBC $78 = 00 A:80 X:33 Y:93 P:A4 SP:FB CYC:287 SL:23 D372 20 76 F9 JSR $F976 A:7F X:33 Y:93 P:65 SP:FB CYC:296 SL:23 F976 90 05 BCC $F97D A:7F X:33 Y:93 P:65 SP:F9 CYC:314 SL:23 F978 C9 7F CMP #$7F A:7F X:33 Y:93 P:65 SP:F9 CYC:320 SL:23 F97A D0 01 BNE $F97D A:7F X:33 Y:93 P:67 SP:F9 CYC:326 SL:23 F97C 60 RTS A:7F X:33 Y:93 P:67 SP:F9 CYC:332 SL:23 D375 C8 INY A:7F X:33 Y:93 P:67 SP:FB CYC: 9 SL:24 D376 A9 7F LDA #$7F A:7F X:33 Y:94 P:E5 SP:FB CYC: 15 SL:24 D378 85 78 STA $78 = 00 A:7F X:33 Y:94 P:65 SP:FB CYC: 21 SL:24 D37A 20 80 F9 JSR $F980 A:7F X:33 Y:94 P:65 SP:FB CYC: 30 SL:24 F980 38 SEC A:7F X:33 Y:94 P:65 SP:F9 CYC: 48 SL:24 F981 A9 81 LDA #$81 A:7F X:33 Y:94 P:65 SP:F9 CYC: 54 SL:24 F983 60 RTS A:81 X:33 Y:94 P:E5 SP:F9 CYC: 60 SL:24 D37D E5 78 SBC $78 = 7F A:81 X:33 Y:94 P:E5 SP:FB CYC: 78 SL:24 D37F 20 84 F9 JSR $F984 A:02 X:33 Y:94 P:65 SP:FB CYC: 87 SL:24 F984 50 07 BVC $F98D A:02 X:33 Y:94 P:65 SP:F9 CYC:105 SL:24 F986 90 05 BCC $F98D A:02 X:33 Y:94 P:65 SP:F9 CYC:111 SL:24 F988 C9 02 CMP #$02 A:02 X:33 Y:94 P:65 SP:F9 CYC:117 SL:24 F98A D0 01 BNE $F98D A:02 X:33 Y:94 P:67 SP:F9 CYC:123 SL:24 F98C 60 RTS A:02 X:33 Y:94 P:67 SP:F9 CYC:129 SL:24 D382 C8 INY A:02 X:33 Y:94 P:67 SP:FB CYC:147 SL:24 D383 A9 40 LDA #$40 A:02 X:33 Y:95 P:E5 SP:FB CYC:153 SL:24 D385 85 78 STA $78 = 7F A:40 X:33 Y:95 P:65 SP:FB CYC:159 SL:24 D387 20 89 F8 JSR $F889 A:40 X:33 Y:95 P:65 SP:FB CYC:168 SL:24 F889 24 01 BIT $01 = FF A:40 X:33 Y:95 P:65 SP:F9 CYC:186 SL:24 F88B A9 40 LDA #$40 A:40 X:33 Y:95 P:E5 SP:F9 CYC:195 SL:24 F88D 60 RTS A:40 X:33 Y:95 P:65 SP:F9 CYC:201 SL:24 D38A AA TAX A:40 X:33 Y:95 P:65 SP:FB CYC:219 SL:24 D38B E4 78 CPX $78 = 40 A:40 X:40 Y:95 P:65 SP:FB CYC:225 SL:24 D38D 20 8E F8 JSR $F88E A:40 X:40 Y:95 P:67 SP:FB CYC:234 SL:24 F88E 30 07 BMI $F897 A:40 X:40 Y:95 P:67 SP:F9 CYC:252 SL:24 F890 90 05 BCC $F897 A:40 X:40 Y:95 P:67 SP:F9 CYC:258 SL:24 F892 D0 03 BNE $F897 A:40 X:40 Y:95 P:67 SP:F9 CYC:264 SL:24 F894 50 01 BVC $F897 A:40 X:40 Y:95 P:67 SP:F9 CYC:270 SL:24 F896 60 RTS A:40 X:40 Y:95 P:67 SP:F9 CYC:276 SL:24 D390 C8 INY A:40 X:40 Y:95 P:67 SP:FB CYC:294 SL:24 D391 A9 3F LDA #$3F A:40 X:40 Y:96 P:E5 SP:FB CYC:300 SL:24 D393 85 78 STA $78 = 40 A:3F X:40 Y:96 P:65 SP:FB CYC:306 SL:24 D395 20 9A F8 JSR $F89A A:3F X:40 Y:96 P:65 SP:FB CYC:315 SL:24 F89A B8 CLV A:3F X:40 Y:96 P:65 SP:F9 CYC:333 SL:24 F89B 60 RTS A:3F X:40 Y:96 P:25 SP:F9 CYC:339 SL:24 D398 E4 78 CPX $78 = 3F A:3F X:40 Y:96 P:25 SP:FB CYC: 16 SL:25 D39A 20 9C F8 JSR $F89C A:3F X:40 Y:96 P:25 SP:FB CYC: 25 SL:25 F89C F0 07 BEQ $F8A5 A:3F X:40 Y:96 P:25 SP:F9 CYC: 43 SL:25 F89E 30 05 BMI $F8A5 A:3F X:40 Y:96 P:25 SP:F9 CYC: 49 SL:25 F8A0 90 03 BCC $F8A5 A:3F X:40 Y:96 P:25 SP:F9 CYC: 55 SL:25 F8A2 70 01 BVS $F8A5 A:3F X:40 Y:96 P:25 SP:F9 CYC: 61 SL:25 F8A4 60 RTS A:3F X:40 Y:96 P:25 SP:F9 CYC: 67 SL:25 D39D C8 INY A:3F X:40 Y:96 P:25 SP:FB CYC: 85 SL:25 D39E A9 41 LDA #$41 A:3F X:40 Y:97 P:A5 SP:FB CYC: 91 SL:25 D3A0 85 78 STA $78 = 3F A:41 X:40 Y:97 P:25 SP:FB CYC: 97 SL:25 D3A2 E4 78 CPX $78 = 41 A:41 X:40 Y:97 P:25 SP:FB CYC:106 SL:25 D3A4 20 A8 F8 JSR $F8A8 A:41 X:40 Y:97 P:A4 SP:FB CYC:115 SL:25 F8A8 F0 05 BEQ $F8AF A:41 X:40 Y:97 P:A4 SP:F9 CYC:133 SL:25 F8AA 10 03 BPL $F8AF A:41 X:40 Y:97 P:A4 SP:F9 CYC:139 SL:25 F8AC 10 01 BPL $F8AF A:41 X:40 Y:97 P:A4 SP:F9 CYC:145 SL:25 F8AE 60 RTS A:41 X:40 Y:97 P:A4 SP:F9 CYC:151 SL:25 D3A7 C8 INY A:41 X:40 Y:97 P:A4 SP:FB CYC:169 SL:25 D3A8 A9 00 LDA #$00 A:41 X:40 Y:98 P:A4 SP:FB CYC:175 SL:25 D3AA 85 78 STA $78 = 41 A:00 X:40 Y:98 P:26 SP:FB CYC:181 SL:25 D3AC 20 B2 F8 JSR $F8B2 A:00 X:40 Y:98 P:26 SP:FB CYC:190 SL:25 F8B2 A9 80 LDA #$80 A:00 X:40 Y:98 P:26 SP:F9 CYC:208 SL:25 F8B4 60 RTS A:80 X:40 Y:98 P:A4 SP:F9 CYC:214 SL:25 D3AF AA TAX A:80 X:40 Y:98 P:A4 SP:FB CYC:232 SL:25 D3B0 E4 78 CPX $78 = 00 A:80 X:80 Y:98 P:A4 SP:FB CYC:238 SL:25 D3B2 20 B5 F8 JSR $F8B5 A:80 X:80 Y:98 P:A5 SP:FB CYC:247 SL:25 F8B5 F0 05 BEQ $F8BC A:80 X:80 Y:98 P:A5 SP:F9 CYC:265 SL:25 F8B7 10 03 BPL $F8BC A:80 X:80 Y:98 P:A5 SP:F9 CYC:271 SL:25 F8B9 90 01 BCC $F8BC A:80 X:80 Y:98 P:A5 SP:F9 CYC:277 SL:25 F8BB 60 RTS A:80 X:80 Y:98 P:A5 SP:F9 CYC:283 SL:25 D3B5 C8 INY A:80 X:80 Y:98 P:A5 SP:FB CYC:301 SL:25 D3B6 A9 80 LDA #$80 A:80 X:80 Y:99 P:A5 SP:FB CYC:307 SL:25 D3B8 85 78 STA $78 = 00 A:80 X:80 Y:99 P:A5 SP:FB CYC:313 SL:25 D3BA E4 78 CPX $78 = 80 A:80 X:80 Y:99 P:A5 SP:FB CYC:322 SL:25 D3BC 20 BF F8 JSR $F8BF A:80 X:80 Y:99 P:27 SP:FB CYC:331 SL:25 F8BF D0 05 BNE $F8C6 A:80 X:80 Y:99 P:27 SP:F9 CYC: 8 SL:26 F8C1 30 03 BMI $F8C6 A:80 X:80 Y:99 P:27 SP:F9 CYC: 14 SL:26 F8C3 90 01 BCC $F8C6 A:80 X:80 Y:99 P:27 SP:F9 CYC: 20 SL:26 F8C5 60 RTS A:80 X:80 Y:99 P:27 SP:F9 CYC: 26 SL:26 D3BF C8 INY A:80 X:80 Y:99 P:27 SP:FB CYC: 44 SL:26 D3C0 A9 81 LDA #$81 A:80 X:80 Y:9A P:A5 SP:FB CYC: 50 SL:26 D3C2 85 78 STA $78 = 80 A:81 X:80 Y:9A P:A5 SP:FB CYC: 56 SL:26 D3C4 E4 78 CPX $78 = 81 A:81 X:80 Y:9A P:A5 SP:FB CYC: 65 SL:26 D3C6 20 C9 F8 JSR $F8C9 A:81 X:80 Y:9A P:A4 SP:FB CYC: 74 SL:26 F8C9 B0 05 BCS $F8D0 A:81 X:80 Y:9A P:A4 SP:F9 CYC: 92 SL:26 F8CB F0 03 BEQ $F8D0 A:81 X:80 Y:9A P:A4 SP:F9 CYC: 98 SL:26 F8CD 10 01 BPL $F8D0 A:81 X:80 Y:9A P:A4 SP:F9 CYC:104 SL:26 F8CF 60 RTS A:81 X:80 Y:9A P:A4 SP:F9 CYC:110 SL:26 D3C9 C8 INY A:81 X:80 Y:9A P:A4 SP:FB CYC:128 SL:26 D3CA A9 7F LDA #$7F A:81 X:80 Y:9B P:A4 SP:FB CYC:134 SL:26 D3CC 85 78 STA $78 = 81 A:7F X:80 Y:9B P:24 SP:FB CYC:140 SL:26 D3CE E4 78 CPX $78 = 7F A:7F X:80 Y:9B P:24 SP:FB CYC:149 SL:26 D3D0 20 D3 F8 JSR $F8D3 A:7F X:80 Y:9B P:25 SP:FB CYC:158 SL:26 F8D3 90 05 BCC $F8DA A:7F X:80 Y:9B P:25 SP:F9 CYC:176 SL:26 F8D5 F0 03 BEQ $F8DA A:7F X:80 Y:9B P:25 SP:F9 CYC:182 SL:26 F8D7 30 01 BMI $F8DA A:7F X:80 Y:9B P:25 SP:F9 CYC:188 SL:26 F8D9 60 RTS A:7F X:80 Y:9B P:25 SP:F9 CYC:194 SL:26 D3D3 C8 INY A:7F X:80 Y:9B P:25 SP:FB CYC:212 SL:26 D3D4 98 TYA A:7F X:80 Y:9C P:A5 SP:FB CYC:218 SL:26 D3D5 AA TAX A:9C X:80 Y:9C P:A5 SP:FB CYC:224 SL:26 D3D6 A9 40 LDA #$40 A:9C X:9C Y:9C P:A5 SP:FB CYC:230 SL:26 D3D8 85 78 STA $78 = 7F A:40 X:9C Y:9C P:25 SP:FB CYC:236 SL:26 D3DA 20 DD F8 JSR $F8DD A:40 X:9C Y:9C P:25 SP:FB CYC:245 SL:26 F8DD 24 01 BIT $01 = FF A:40 X:9C Y:9C P:25 SP:F9 CYC:263 SL:26 F8DF A0 40 LDY #$40 A:40 X:9C Y:9C P:E5 SP:F9 CYC:272 SL:26 F8E1 60 RTS A:40 X:9C Y:40 P:65 SP:F9 CYC:278 SL:26 D3DD C4 78 CPY $78 = 40 A:40 X:9C Y:40 P:65 SP:FB CYC:296 SL:26 D3DF 20 E2 F8 JSR $F8E2 A:40 X:9C Y:40 P:67 SP:FB CYC:305 SL:26 F8E2 30 07 BMI $F8EB A:40 X:9C Y:40 P:67 SP:F9 CYC:323 SL:26 F8E4 90 05 BCC $F8EB A:40 X:9C Y:40 P:67 SP:F9 CYC:329 SL:26 F8E6 D0 03 BNE $F8EB A:40 X:9C Y:40 P:67 SP:F9 CYC:335 SL:26 F8E8 50 01 BVC $F8EB A:40 X:9C Y:40 P:67 SP:F9 CYC: 0 SL:27 F8EA 60 RTS A:40 X:9C Y:40 P:67 SP:F9 CYC: 6 SL:27 D3E2 E8 INX A:40 X:9C Y:40 P:67 SP:FB CYC: 24 SL:27 D3E3 A9 3F LDA #$3F A:40 X:9D Y:40 P:E5 SP:FB CYC: 30 SL:27 D3E5 85 78 STA $78 = 40 A:3F X:9D Y:40 P:65 SP:FB CYC: 36 SL:27 D3E7 20 EE F8 JSR $F8EE A:3F X:9D Y:40 P:65 SP:FB CYC: 45 SL:27 F8EE B8 CLV A:3F X:9D Y:40 P:65 SP:F9 CYC: 63 SL:27 F8EF 60 RTS A:3F X:9D Y:40 P:25 SP:F9 CYC: 69 SL:27 D3EA C4 78 CPY $78 = 3F A:3F X:9D Y:40 P:25 SP:FB CYC: 87 SL:27 D3EC 20 F0 F8 JSR $F8F0 A:3F X:9D Y:40 P:25 SP:FB CYC: 96 SL:27 F8F0 F0 07 BEQ $F8F9 A:3F X:9D Y:40 P:25 SP:F9 CYC:114 SL:27 F8F2 30 05 BMI $F8F9 A:3F X:9D Y:40 P:25 SP:F9 CYC:120 SL:27 F8F4 90 03 BCC $F8F9 A:3F X:9D Y:40 P:25 SP:F9 CYC:126 SL:27 F8F6 70 01 BVS $F8F9 A:3F X:9D Y:40 P:25 SP:F9 CYC:132 SL:27 F8F8 60 RTS A:3F X:9D Y:40 P:25 SP:F9 CYC:138 SL:27 D3EF E8 INX A:3F X:9D Y:40 P:25 SP:FB CYC:156 SL:27 D3F0 A9 41 LDA #$41 A:3F X:9E Y:40 P:A5 SP:FB CYC:162 SL:27 D3F2 85 78 STA $78 = 3F A:41 X:9E Y:40 P:25 SP:FB CYC:168 SL:27 D3F4 C4 78 CPY $78 = 41 A:41 X:9E Y:40 P:25 SP:FB CYC:177 SL:27 D3F6 20 FC F8 JSR $F8FC A:41 X:9E Y:40 P:A4 SP:FB CYC:186 SL:27 F8FC F0 05 BEQ $F903 A:41 X:9E Y:40 P:A4 SP:F9 CYC:204 SL:27 F8FE 10 03 BPL $F903 A:41 X:9E Y:40 P:A4 SP:F9 CYC:210 SL:27 F900 10 01 BPL $F903 A:41 X:9E Y:40 P:A4 SP:F9 CYC:216 SL:27 F902 60 RTS A:41 X:9E Y:40 P:A4 SP:F9 CYC:222 SL:27 D3F9 E8 INX A:41 X:9E Y:40 P:A4 SP:FB CYC:240 SL:27 D3FA A9 00 LDA #$00 A:41 X:9F Y:40 P:A4 SP:FB CYC:246 SL:27 D3FC 85 78 STA $78 = 41 A:00 X:9F Y:40 P:26 SP:FB CYC:252 SL:27 D3FE 20 06 F9 JSR $F906 A:00 X:9F Y:40 P:26 SP:FB CYC:261 SL:27 F906 A0 80 LDY #$80 A:00 X:9F Y:40 P:26 SP:F9 CYC:279 SL:27 F908 60 RTS A:00 X:9F Y:80 P:A4 SP:F9 CYC:285 SL:27 D401 C4 78 CPY $78 = 00 A:00 X:9F Y:80 P:A4 SP:FB CYC:303 SL:27 D403 20 09 F9 JSR $F909 A:00 X:9F Y:80 P:A5 SP:FB CYC:312 SL:27 F909 F0 05 BEQ $F910 A:00 X:9F Y:80 P:A5 SP:F9 CYC:330 SL:27 F90B 10 03 BPL $F910 A:00 X:9F Y:80 P:A5 SP:F9 CYC:336 SL:27 F90D 90 01 BCC $F910 A:00 X:9F Y:80 P:A5 SP:F9 CYC: 1 SL:28 F90F 60 RTS A:00 X:9F Y:80 P:A5 SP:F9 CYC: 7 SL:28 D406 E8 INX A:00 X:9F Y:80 P:A5 SP:FB CYC: 25 SL:28 D407 A9 80 LDA #$80 A:00 X:A0 Y:80 P:A5 SP:FB CYC: 31 SL:28 D409 85 78 STA $78 = 00 A:80 X:A0 Y:80 P:A5 SP:FB CYC: 37 SL:28 D40B C4 78 CPY $78 = 80 A:80 X:A0 Y:80 P:A5 SP:FB CYC: 46 SL:28 D40D 20 13 F9 JSR $F913 A:80 X:A0 Y:80 P:27 SP:FB CYC: 55 SL:28 F913 D0 05 BNE $F91A A:80 X:A0 Y:80 P:27 SP:F9 CYC: 73 SL:28 F915 30 03 BMI $F91A A:80 X:A0 Y:80 P:27 SP:F9 CYC: 79 SL:28 F917 90 01 BCC $F91A A:80 X:A0 Y:80 P:27 SP:F9 CYC: 85 SL:28 F919 60 RTS A:80 X:A0 Y:80 P:27 SP:F9 CYC: 91 SL:28 D410 E8 INX A:80 X:A0 Y:80 P:27 SP:FB CYC:109 SL:28 D411 A9 81 LDA #$81 A:80 X:A1 Y:80 P:A5 SP:FB CYC:115 SL:28 D413 85 78 STA $78 = 80 A:81 X:A1 Y:80 P:A5 SP:FB CYC:121 SL:28 D415 C4 78 CPY $78 = 81 A:81 X:A1 Y:80 P:A5 SP:FB CYC:130 SL:28 D417 20 1D F9 JSR $F91D A:81 X:A1 Y:80 P:A4 SP:FB CYC:139 SL:28 F91D B0 05 BCS $F924 A:81 X:A1 Y:80 P:A4 SP:F9 CYC:157 SL:28 F91F F0 03 BEQ $F924 A:81 X:A1 Y:80 P:A4 SP:F9 CYC:163 SL:28 F921 10 01 BPL $F924 A:81 X:A1 Y:80 P:A4 SP:F9 CYC:169 SL:28 F923 60 RTS A:81 X:A1 Y:80 P:A4 SP:F9 CYC:175 SL:28 D41A E8 INX A:81 X:A1 Y:80 P:A4 SP:FB CYC:193 SL:28 D41B A9 7F LDA #$7F A:81 X:A2 Y:80 P:A4 SP:FB CYC:199 SL:28 D41D 85 78 STA $78 = 81 A:7F X:A2 Y:80 P:24 SP:FB CYC:205 SL:28 D41F C4 78 CPY $78 = 7F A:7F X:A2 Y:80 P:24 SP:FB CYC:214 SL:28 D421 20 27 F9 JSR $F927 A:7F X:A2 Y:80 P:25 SP:FB CYC:223 SL:28 F927 90 05 BCC $F92E A:7F X:A2 Y:80 P:25 SP:F9 CYC:241 SL:28 F929 F0 03 BEQ $F92E A:7F X:A2 Y:80 P:25 SP:F9 CYC:247 SL:28 F92B 30 01 BMI $F92E A:7F X:A2 Y:80 P:25 SP:F9 CYC:253 SL:28 F92D 60 RTS A:7F X:A2 Y:80 P:25 SP:F9 CYC:259 SL:28 D424 E8 INX A:7F X:A2 Y:80 P:25 SP:FB CYC:277 SL:28 D425 8A TXA A:7F X:A3 Y:80 P:A5 SP:FB CYC:283 SL:28 D426 A8 TAY A:A3 X:A3 Y:80 P:A5 SP:FB CYC:289 SL:28 D427 20 90 F9 JSR $F990 A:A3 X:A3 Y:A3 P:A5 SP:FB CYC:295 SL:28 F990 A2 55 LDX #$55 A:A3 X:A3 Y:A3 P:A5 SP:F9 CYC:313 SL:28 F992 A9 FF LDA #$FF A:A3 X:55 Y:A3 P:25 SP:F9 CYC:319 SL:28 F994 85 01 STA $01 = FF A:FF X:55 Y:A3 P:A5 SP:F9 CYC:325 SL:28 F996 EA NOP A:FF X:55 Y:A3 P:A5 SP:F9 CYC:334 SL:28 F997 24 01 BIT $01 = FF A:FF X:55 Y:A3 P:A5 SP:F9 CYC:340 SL:28 F999 38 SEC A:FF X:55 Y:A3 P:E5 SP:F9 CYC: 8 SL:29 F99A A9 01 LDA #$01 A:FF X:55 Y:A3 P:E5 SP:F9 CYC: 14 SL:29 F99C 60 RTS A:01 X:55 Y:A3 P:65 SP:F9 CYC: 20 SL:29 D42A 85 78 STA $78 = 7F A:01 X:55 Y:A3 P:65 SP:FB CYC: 38 SL:29 D42C 46 78 LSR $78 = 01 A:01 X:55 Y:A3 P:65 SP:FB CYC: 47 SL:29 D42E A5 78 LDA $78 = 00 A:01 X:55 Y:A3 P:67 SP:FB CYC: 62 SL:29 D430 20 9D F9 JSR $F99D A:00 X:55 Y:A3 P:67 SP:FB CYC: 71 SL:29 F99D 90 1B BCC $F9BA A:00 X:55 Y:A3 P:67 SP:F9 CYC: 89 SL:29 F99F D0 19 BNE $F9BA A:00 X:55 Y:A3 P:67 SP:F9 CYC: 95 SL:29 F9A1 30 17 BMI $F9BA A:00 X:55 Y:A3 P:67 SP:F9 CYC:101 SL:29 F9A3 50 15 BVC $F9BA A:00 X:55 Y:A3 P:67 SP:F9 CYC:107 SL:29 F9A5 C9 00 CMP #$00 A:00 X:55 Y:A3 P:67 SP:F9 CYC:113 SL:29 F9A7 D0 11 BNE $F9BA A:00 X:55 Y:A3 P:67 SP:F9 CYC:119 SL:29 F9A9 B8 CLV A:00 X:55 Y:A3 P:67 SP:F9 CYC:125 SL:29 F9AA A9 AA LDA #$AA A:00 X:55 Y:A3 P:27 SP:F9 CYC:131 SL:29 F9AC 60 RTS A:AA X:55 Y:A3 P:A5 SP:F9 CYC:137 SL:29 D433 C8 INY A:AA X:55 Y:A3 P:A5 SP:FB CYC:155 SL:29 D434 85 78 STA $78 = 00 A:AA X:55 Y:A4 P:A5 SP:FB CYC:161 SL:29 D436 46 78 LSR $78 = AA A:AA X:55 Y:A4 P:A5 SP:FB CYC:170 SL:29 D438 A5 78 LDA $78 = 55 A:AA X:55 Y:A4 P:24 SP:FB CYC:185 SL:29 D43A 20 AD F9 JSR $F9AD A:55 X:55 Y:A4 P:24 SP:FB CYC:194 SL:29 F9AD B0 0B BCS $F9BA A:55 X:55 Y:A4 P:24 SP:F9 CYC:212 SL:29 F9AF F0 09 BEQ $F9BA A:55 X:55 Y:A4 P:24 SP:F9 CYC:218 SL:29 F9B1 30 07 BMI $F9BA A:55 X:55 Y:A4 P:24 SP:F9 CYC:224 SL:29 F9B3 70 05 BVS $F9BA A:55 X:55 Y:A4 P:24 SP:F9 CYC:230 SL:29 F9B5 C9 55 CMP #$55 A:55 X:55 Y:A4 P:24 SP:F9 CYC:236 SL:29 F9B7 D0 01 BNE $F9BA A:55 X:55 Y:A4 P:27 SP:F9 CYC:242 SL:29 F9B9 60 RTS A:55 X:55 Y:A4 P:27 SP:F9 CYC:248 SL:29 D43D C8 INY A:55 X:55 Y:A4 P:27 SP:FB CYC:266 SL:29 D43E 20 BD F9 JSR $F9BD A:55 X:55 Y:A5 P:A5 SP:FB CYC:272 SL:29 F9BD 24 01 BIT $01 = FF A:55 X:55 Y:A5 P:A5 SP:F9 CYC:290 SL:29 F9BF 38 SEC A:55 X:55 Y:A5 P:E5 SP:F9 CYC:299 SL:29 F9C0 A9 80 LDA #$80 A:55 X:55 Y:A5 P:E5 SP:F9 CYC:305 SL:29 F9C2 60 RTS A:80 X:55 Y:A5 P:E5 SP:F9 CYC:311 SL:29 D441 85 78 STA $78 = 55 A:80 X:55 Y:A5 P:E5 SP:FB CYC:329 SL:29 D443 06 78 ASL $78 = 80 A:80 X:55 Y:A5 P:E5 SP:FB CYC:338 SL:29 D445 A5 78 LDA $78 = 00 A:80 X:55 Y:A5 P:67 SP:FB CYC: 12 SL:30 D447 20 C3 F9 JSR $F9C3 A:00 X:55 Y:A5 P:67 SP:FB CYC: 21 SL:30 F9C3 90 1C BCC $F9E1 A:00 X:55 Y:A5 P:67 SP:F9 CYC: 39 SL:30 F9C5 D0 1A BNE $F9E1 A:00 X:55 Y:A5 P:67 SP:F9 CYC: 45 SL:30 F9C7 30 18 BMI $F9E1 A:00 X:55 Y:A5 P:67 SP:F9 CYC: 51 SL:30 F9C9 50 16 BVC $F9E1 A:00 X:55 Y:A5 P:67 SP:F9 CYC: 57 SL:30 F9CB C9 00 CMP #$00 A:00 X:55 Y:A5 P:67 SP:F9 CYC: 63 SL:30 F9CD D0 12 BNE $F9E1 A:00 X:55 Y:A5 P:67 SP:F9 CYC: 69 SL:30 F9CF B8 CLV A:00 X:55 Y:A5 P:67 SP:F9 CYC: 75 SL:30 F9D0 A9 55 LDA #$55 A:00 X:55 Y:A5 P:27 SP:F9 CYC: 81 SL:30 F9D2 38 SEC A:55 X:55 Y:A5 P:25 SP:F9 CYC: 87 SL:30 F9D3 60 RTS A:55 X:55 Y:A5 P:25 SP:F9 CYC: 93 SL:30 D44A C8 INY A:55 X:55 Y:A5 P:25 SP:FB CYC:111 SL:30 D44B 85 78 STA $78 = 00 A:55 X:55 Y:A6 P:A5 SP:FB CYC:117 SL:30 D44D 06 78 ASL $78 = 55 A:55 X:55 Y:A6 P:A5 SP:FB CYC:126 SL:30 D44F A5 78 LDA $78 = AA A:55 X:55 Y:A6 P:A4 SP:FB CYC:141 SL:30 D451 20 D4 F9 JSR $F9D4 A:AA X:55 Y:A6 P:A4 SP:FB CYC:150 SL:30 F9D4 B0 0B BCS $F9E1 A:AA X:55 Y:A6 P:A4 SP:F9 CYC:168 SL:30 F9D6 F0 09 BEQ $F9E1 A:AA X:55 Y:A6 P:A4 SP:F9 CYC:174 SL:30 F9D8 10 07 BPL $F9E1 A:AA X:55 Y:A6 P:A4 SP:F9 CYC:180 SL:30 F9DA 70 05 BVS $F9E1 A:AA X:55 Y:A6 P:A4 SP:F9 CYC:186 SL:30 F9DC C9 AA CMP #$AA A:AA X:55 Y:A6 P:A4 SP:F9 CYC:192 SL:30 F9DE D0 01 BNE $F9E1 A:AA X:55 Y:A6 P:27 SP:F9 CYC:198 SL:30 F9E0 60 RTS A:AA X:55 Y:A6 P:27 SP:F9 CYC:204 SL:30 D454 C8 INY A:AA X:55 Y:A6 P:27 SP:FB CYC:222 SL:30 D455 20 E4 F9 JSR $F9E4 A:AA X:55 Y:A7 P:A5 SP:FB CYC:228 SL:30 F9E4 24 01 BIT $01 = FF A:AA X:55 Y:A7 P:A5 SP:F9 CYC:246 SL:30 F9E6 38 SEC A:AA X:55 Y:A7 P:E5 SP:F9 CYC:255 SL:30 F9E7 A9 01 LDA #$01 A:AA X:55 Y:A7 P:E5 SP:F9 CYC:261 SL:30 F9E9 60 RTS A:01 X:55 Y:A7 P:65 SP:F9 CYC:267 SL:30 D458 85 78 STA $78 = AA A:01 X:55 Y:A7 P:65 SP:FB CYC:285 SL:30 D45A 66 78 ROR $78 = 01 A:01 X:55 Y:A7 P:65 SP:FB CYC:294 SL:30 D45C A5 78 LDA $78 = 80 A:01 X:55 Y:A7 P:E5 SP:FB CYC:309 SL:30 D45E 20 EA F9 JSR $F9EA A:80 X:55 Y:A7 P:E5 SP:FB CYC:318 SL:30 F9EA 90 1C BCC $FA08 A:80 X:55 Y:A7 P:E5 SP:F9 CYC:336 SL:30 F9EC F0 1A BEQ $FA08 A:80 X:55 Y:A7 P:E5 SP:F9 CYC: 1 SL:31 F9EE 10 18 BPL $FA08 A:80 X:55 Y:A7 P:E5 SP:F9 CYC: 7 SL:31 F9F0 50 16 BVC $FA08 A:80 X:55 Y:A7 P:E5 SP:F9 CYC: 13 SL:31 F9F2 C9 80 CMP #$80 A:80 X:55 Y:A7 P:E5 SP:F9 CYC: 19 SL:31 F9F4 D0 12 BNE $FA08 A:80 X:55 Y:A7 P:67 SP:F9 CYC: 25 SL:31 F9F6 B8 CLV A:80 X:55 Y:A7 P:67 SP:F9 CYC: 31 SL:31 F9F7 18 CLC A:80 X:55 Y:A7 P:27 SP:F9 CYC: 37 SL:31 F9F8 A9 55 LDA #$55 A:80 X:55 Y:A7 P:26 SP:F9 CYC: 43 SL:31 F9FA 60 RTS A:55 X:55 Y:A7 P:24 SP:F9 CYC: 49 SL:31 D461 C8 INY A:55 X:55 Y:A7 P:24 SP:FB CYC: 67 SL:31 D462 85 78 STA $78 = 80 A:55 X:55 Y:A8 P:A4 SP:FB CYC: 73 SL:31 D464 66 78 ROR $78 = 55 A:55 X:55 Y:A8 P:A4 SP:FB CYC: 82 SL:31 D466 A5 78 LDA $78 = 2A A:55 X:55 Y:A8 P:25 SP:FB CYC: 97 SL:31 D468 20 FB F9 JSR $F9FB A:2A X:55 Y:A8 P:25 SP:FB CYC:106 SL:31 F9FB 90 0B BCC $FA08 A:2A X:55 Y:A8 P:25 SP:F9 CYC:124 SL:31 F9FD F0 09 BEQ $FA08 A:2A X:55 Y:A8 P:25 SP:F9 CYC:130 SL:31 F9FF 30 07 BMI $FA08 A:2A X:55 Y:A8 P:25 SP:F9 CYC:136 SL:31 FA01 70 05 BVS $FA08 A:2A X:55 Y:A8 P:25 SP:F9 CYC:142 SL:31 FA03 C9 2A CMP #$2A A:2A X:55 Y:A8 P:25 SP:F9 CYC:148 SL:31 FA05 D0 01 BNE $FA08 A:2A X:55 Y:A8 P:27 SP:F9 CYC:154 SL:31 FA07 60 RTS A:2A X:55 Y:A8 P:27 SP:F9 CYC:160 SL:31 D46B C8 INY A:2A X:55 Y:A8 P:27 SP:FB CYC:178 SL:31 D46C 20 0A FA JSR $FA0A A:2A X:55 Y:A9 P:A5 SP:FB CYC:184 SL:31 FA0A 24 01 BIT $01 = FF A:2A X:55 Y:A9 P:A5 SP:F9 CYC:202 SL:31 FA0C 38 SEC A:2A X:55 Y:A9 P:E5 SP:F9 CYC:211 SL:31 FA0D A9 80 LDA #$80 A:2A X:55 Y:A9 P:E5 SP:F9 CYC:217 SL:31 FA0F 60 RTS A:80 X:55 Y:A9 P:E5 SP:F9 CYC:223 SL:31 D46F 85 78 STA $78 = 2A A:80 X:55 Y:A9 P:E5 SP:FB CYC:241 SL:31 D471 26 78 ROL $78 = 80 A:80 X:55 Y:A9 P:E5 SP:FB CYC:250 SL:31 D473 A5 78 LDA $78 = 01 A:80 X:55 Y:A9 P:65 SP:FB CYC:265 SL:31 D475 20 10 FA JSR $FA10 A:01 X:55 Y:A9 P:65 SP:FB CYC:274 SL:31 FA10 90 1C BCC $FA2E A:01 X:55 Y:A9 P:65 SP:F9 CYC:292 SL:31 FA12 F0 1A BEQ $FA2E A:01 X:55 Y:A9 P:65 SP:F9 CYC:298 SL:31 FA14 30 18 BMI $FA2E A:01 X:55 Y:A9 P:65 SP:F9 CYC:304 SL:31 FA16 50 16 BVC $FA2E A:01 X:55 Y:A9 P:65 SP:F9 CYC:310 SL:31 FA18 C9 01 CMP #$01 A:01 X:55 Y:A9 P:65 SP:F9 CYC:316 SL:31 FA1A D0 12 BNE $FA2E A:01 X:55 Y:A9 P:67 SP:F9 CYC:322 SL:31 FA1C B8 CLV A:01 X:55 Y:A9 P:67 SP:F9 CYC:328 SL:31 FA1D 18 CLC A:01 X:55 Y:A9 P:27 SP:F9 CYC:334 SL:31 FA1E A9 55 LDA #$55 A:01 X:55 Y:A9 P:26 SP:F9 CYC:340 SL:31 FA20 60 RTS A:55 X:55 Y:A9 P:24 SP:F9 CYC: 5 SL:32 D478 C8 INY A:55 X:55 Y:A9 P:24 SP:FB CYC: 23 SL:32 D479 85 78 STA $78 = 01 A:55 X:55 Y:AA P:A4 SP:FB CYC: 29 SL:32 D47B 26 78 ROL $78 = 55 A:55 X:55 Y:AA P:A4 SP:FB CYC: 38 SL:32 D47D A5 78 LDA $78 = AA A:55 X:55 Y:AA P:A4 SP:FB CYC: 53 SL:32 D47F 20 21 FA JSR $FA21 A:AA X:55 Y:AA P:A4 SP:FB CYC: 62 SL:32 FA21 B0 0B BCS $FA2E A:AA X:55 Y:AA P:A4 SP:F9 CYC: 80 SL:32 FA23 F0 09 BEQ $FA2E A:AA X:55 Y:AA P:A4 SP:F9 CYC: 86 SL:32 FA25 10 07 BPL $FA2E A:AA X:55 Y:AA P:A4 SP:F9 CYC: 92 SL:32 FA27 70 05 BVS $FA2E A:AA X:55 Y:AA P:A4 SP:F9 CYC: 98 SL:32 FA29 C9 AA CMP #$AA A:AA X:55 Y:AA P:A4 SP:F9 CYC:104 SL:32 FA2B D0 01 BNE $FA2E A:AA X:55 Y:AA P:27 SP:F9 CYC:110 SL:32 FA2D 60 RTS A:AA X:55 Y:AA P:27 SP:F9 CYC:116 SL:32 D482 A9 FF LDA #$FF A:AA X:55 Y:AA P:27 SP:FB CYC:134 SL:32 D484 85 78 STA $78 = AA A:FF X:55 Y:AA P:A5 SP:FB CYC:140 SL:32 D486 85 01 STA $01 = FF A:FF X:55 Y:AA P:A5 SP:FB CYC:149 SL:32 D488 24 01 BIT $01 = FF A:FF X:55 Y:AA P:A5 SP:FB CYC:158 SL:32 D48A 38 SEC A:FF X:55 Y:AA P:E5 SP:FB CYC:167 SL:32 D48B E6 78 INC $78 = FF A:FF X:55 Y:AA P:E5 SP:FB CYC:173 SL:32 D48D D0 0C BNE $D49B A:FF X:55 Y:AA P:67 SP:FB CYC:188 SL:32 D48F 30 0A BMI $D49B A:FF X:55 Y:AA P:67 SP:FB CYC:194 SL:32 D491 50 08 BVC $D49B A:FF X:55 Y:AA P:67 SP:FB CYC:200 SL:32 D493 90 06 BCC $D49B A:FF X:55 Y:AA P:67 SP:FB CYC:206 SL:32 D495 A5 78 LDA $78 = 00 A:FF X:55 Y:AA P:67 SP:FB CYC:212 SL:32 D497 C9 00 CMP #$00 A:00 X:55 Y:AA P:67 SP:FB CYC:221 SL:32 D499 F0 04 BEQ $D49F A:00 X:55 Y:AA P:67 SP:FB CYC:227 SL:32 D49F A9 7F LDA #$7F A:00 X:55 Y:AA P:67 SP:FB CYC:236 SL:32 D4A1 85 78 STA $78 = 00 A:7F X:55 Y:AA P:65 SP:FB CYC:242 SL:32 D4A3 B8 CLV A:7F X:55 Y:AA P:65 SP:FB CYC:251 SL:32 D4A4 18 CLC A:7F X:55 Y:AA P:25 SP:FB CYC:257 SL:32 D4A5 E6 78 INC $78 = 7F A:7F X:55 Y:AA P:24 SP:FB CYC:263 SL:32 D4A7 F0 0C BEQ $D4B5 A:7F X:55 Y:AA P:A4 SP:FB CYC:278 SL:32 D4A9 10 0A BPL $D4B5 A:7F X:55 Y:AA P:A4 SP:FB CYC:284 SL:32 D4AB 70 08 BVS $D4B5 A:7F X:55 Y:AA P:A4 SP:FB CYC:290 SL:32 D4AD B0 06 BCS $D4B5 A:7F X:55 Y:AA P:A4 SP:FB CYC:296 SL:32 D4AF A5 78 LDA $78 = 80 A:7F X:55 Y:AA P:A4 SP:FB CYC:302 SL:32 D4B1 C9 80 CMP #$80 A:80 X:55 Y:AA P:A4 SP:FB CYC:311 SL:32 D4B3 F0 04 BEQ $D4B9 A:80 X:55 Y:AA P:27 SP:FB CYC:317 SL:32 D4B9 A9 00 LDA #$00 A:80 X:55 Y:AA P:27 SP:FB CYC:326 SL:32 D4BB 85 78 STA $78 = 80 A:00 X:55 Y:AA P:27 SP:FB CYC:332 SL:32 D4BD 24 01 BIT $01 = FF A:00 X:55 Y:AA P:27 SP:FB CYC: 0 SL:33 D4BF 38 SEC A:00 X:55 Y:AA P:E7 SP:FB CYC: 9 SL:33 D4C0 C6 78 DEC $78 = 00 A:00 X:55 Y:AA P:E7 SP:FB CYC: 15 SL:33 D4C2 F0 0C BEQ $D4D0 A:00 X:55 Y:AA P:E5 SP:FB CYC: 30 SL:33 D4C4 10 0A BPL $D4D0 A:00 X:55 Y:AA P:E5 SP:FB CYC: 36 SL:33 D4C6 50 08 BVC $D4D0 A:00 X:55 Y:AA P:E5 SP:FB CYC: 42 SL:33 D4C8 90 06 BCC $D4D0 A:00 X:55 Y:AA P:E5 SP:FB CYC: 48 SL:33 D4CA A5 78 LDA $78 = FF A:00 X:55 Y:AA P:E5 SP:FB CYC: 54 SL:33 D4CC C9 FF CMP #$FF A:FF X:55 Y:AA P:E5 SP:FB CYC: 63 SL:33 D4CE F0 04 BEQ $D4D4 A:FF X:55 Y:AA P:67 SP:FB CYC: 69 SL:33 D4D4 A9 80 LDA #$80 A:FF X:55 Y:AA P:67 SP:FB CYC: 78 SL:33 D4D6 85 78 STA $78 = FF A:80 X:55 Y:AA P:E5 SP:FB CYC: 84 SL:33 D4D8 B8 CLV A:80 X:55 Y:AA P:E5 SP:FB CYC: 93 SL:33 D4D9 18 CLC A:80 X:55 Y:AA P:A5 SP:FB CYC: 99 SL:33 D4DA C6 78 DEC $78 = 80 A:80 X:55 Y:AA P:A4 SP:FB CYC:105 SL:33 D4DC F0 0C BEQ $D4EA A:80 X:55 Y:AA P:24 SP:FB CYC:120 SL:33 D4DE 30 0A BMI $D4EA A:80 X:55 Y:AA P:24 SP:FB CYC:126 SL:33 D4E0 70 08 BVS $D4EA A:80 X:55 Y:AA P:24 SP:FB CYC:132 SL:33 D4E2 B0 06 BCS $D4EA A:80 X:55 Y:AA P:24 SP:FB CYC:138 SL:33 D4E4 A5 78 LDA $78 = 7F A:80 X:55 Y:AA P:24 SP:FB CYC:144 SL:33 D4E6 C9 7F CMP #$7F A:7F X:55 Y:AA P:24 SP:FB CYC:153 SL:33 D4E8 F0 04 BEQ $D4EE A:7F X:55 Y:AA P:27 SP:FB CYC:159 SL:33 D4EE A9 01 LDA #$01 A:7F X:55 Y:AA P:27 SP:FB CYC:168 SL:33 D4F0 85 78 STA $78 = 7F A:01 X:55 Y:AA P:25 SP:FB CYC:174 SL:33 D4F2 C6 78 DEC $78 = 01 A:01 X:55 Y:AA P:25 SP:FB CYC:183 SL:33 D4F4 F0 04 BEQ $D4FA A:01 X:55 Y:AA P:27 SP:FB CYC:198 SL:33 D4FA 60 RTS A:01 X:55 Y:AA P:27 SP:FB CYC:207 SL:33 C615 20 FB D4 JSR $D4FB A:01 X:55 Y:AA P:27 SP:FD CYC:225 SL:33 D4FB A9 55 LDA #$55 A:01 X:55 Y:AA P:27 SP:FB CYC:243 SL:33 D4FD 8D 78 06 STA $0678 = 00 A:55 X:55 Y:AA P:25 SP:FB CYC:249 SL:33 D500 A9 FF LDA #$FF A:55 X:55 Y:AA P:25 SP:FB CYC:261 SL:33 D502 85 01 STA $01 = FF A:FF X:55 Y:AA P:A5 SP:FB CYC:267 SL:33 D504 24 01 BIT $01 = FF A:FF X:55 Y:AA P:A5 SP:FB CYC:276 SL:33 D506 A0 11 LDY #$11 A:FF X:55 Y:AA P:E5 SP:FB CYC:285 SL:33 D508 A2 23 LDX #$23 A:FF X:55 Y:11 P:65 SP:FB CYC:291 SL:33 D50A A9 00 LDA #$00 A:FF X:23 Y:11 P:65 SP:FB CYC:297 SL:33 D50C AD 78 06 LDA $0678 = 55 A:00 X:23 Y:11 P:67 SP:FB CYC:303 SL:33 D50F F0 10 BEQ $D521 A:55 X:23 Y:11 P:65 SP:FB CYC:315 SL:33 D511 30 0E BMI $D521 A:55 X:23 Y:11 P:65 SP:FB CYC:321 SL:33 D513 C9 55 CMP #$55 A:55 X:23 Y:11 P:65 SP:FB CYC:327 SL:33 D515 D0 0A BNE $D521 A:55 X:23 Y:11 P:67 SP:FB CYC:333 SL:33 D517 C0 11 CPY #$11 A:55 X:23 Y:11 P:67 SP:FB CYC:339 SL:33 D519 D0 06 BNE $D521 A:55 X:23 Y:11 P:67 SP:FB CYC: 4 SL:34 D51B E0 23 CPX #$23 A:55 X:23 Y:11 P:67 SP:FB CYC: 10 SL:34 D51D 50 02 BVC $D521 A:55 X:23 Y:11 P:67 SP:FB CYC: 16 SL:34 D51F F0 04 BEQ $D525 A:55 X:23 Y:11 P:67 SP:FB CYC: 22 SL:34 D525 A9 46 LDA #$46 A:55 X:23 Y:11 P:67 SP:FB CYC: 31 SL:34 D527 24 01 BIT $01 = FF A:46 X:23 Y:11 P:65 SP:FB CYC: 37 SL:34 D529 8D 78 06 STA $0678 = 55 A:46 X:23 Y:11 P:E5 SP:FB CYC: 46 SL:34 D52C F0 0B BEQ $D539 A:46 X:23 Y:11 P:E5 SP:FB CYC: 58 SL:34 D52E 10 09 BPL $D539 A:46 X:23 Y:11 P:E5 SP:FB CYC: 64 SL:34 D530 50 07 BVC $D539 A:46 X:23 Y:11 P:E5 SP:FB CYC: 70 SL:34 D532 AD 78 06 LDA $0678 = 46 A:46 X:23 Y:11 P:E5 SP:FB CYC: 76 SL:34 D535 C9 46 CMP #$46 A:46 X:23 Y:11 P:65 SP:FB CYC: 88 SL:34 D537 F0 04 BEQ $D53D A:46 X:23 Y:11 P:67 SP:FB CYC: 94 SL:34 D53D A9 55 LDA #$55 A:46 X:23 Y:11 P:67 SP:FB CYC:103 SL:34 D53F 8D 78 06 STA $0678 = 46 A:55 X:23 Y:11 P:65 SP:FB CYC:109 SL:34 D542 24 01 BIT $01 = FF A:55 X:23 Y:11 P:65 SP:FB CYC:121 SL:34 D544 A9 11 LDA #$11 A:55 X:23 Y:11 P:E5 SP:FB CYC:130 SL:34 D546 A2 23 LDX #$23 A:11 X:23 Y:11 P:65 SP:FB CYC:136 SL:34 D548 A0 00 LDY #$00 A:11 X:23 Y:11 P:65 SP:FB CYC:142 SL:34 D54A AC 78 06 LDY $0678 = 55 A:11 X:23 Y:00 P:67 SP:FB CYC:148 SL:34 D54D F0 10 BEQ $D55F A:11 X:23 Y:55 P:65 SP:FB CYC:160 SL:34 D54F 30 0E BMI $D55F A:11 X:23 Y:55 P:65 SP:FB CYC:166 SL:34 D551 C0 55 CPY #$55 A:11 X:23 Y:55 P:65 SP:FB CYC:172 SL:34 D553 D0 0A BNE $D55F A:11 X:23 Y:55 P:67 SP:FB CYC:178 SL:34 D555 C9 11 CMP #$11 A:11 X:23 Y:55 P:67 SP:FB CYC:184 SL:34 D557 D0 06 BNE $D55F A:11 X:23 Y:55 P:67 SP:FB CYC:190 SL:34 D559 E0 23 CPX #$23 A:11 X:23 Y:55 P:67 SP:FB CYC:196 SL:34 D55B 50 02 BVC $D55F A:11 X:23 Y:55 P:67 SP:FB CYC:202 SL:34 D55D F0 04 BEQ $D563 A:11 X:23 Y:55 P:67 SP:FB CYC:208 SL:34 D563 A0 46 LDY #$46 A:11 X:23 Y:55 P:67 SP:FB CYC:217 SL:34 D565 24 01 BIT $01 = FF A:11 X:23 Y:46 P:65 SP:FB CYC:223 SL:34 D567 8C 78 06 STY $0678 = 55 A:11 X:23 Y:46 P:E5 SP:FB CYC:232 SL:34 D56A F0 0B BEQ $D577 A:11 X:23 Y:46 P:E5 SP:FB CYC:244 SL:34 D56C 10 09 BPL $D577 A:11 X:23 Y:46 P:E5 SP:FB CYC:250 SL:34 D56E 50 07 BVC $D577 A:11 X:23 Y:46 P:E5 SP:FB CYC:256 SL:34 D570 AC 78 06 LDY $0678 = 46 A:11 X:23 Y:46 P:E5 SP:FB CYC:262 SL:34 D573 C0 46 CPY #$46 A:11 X:23 Y:46 P:65 SP:FB CYC:274 SL:34 D575 F0 04 BEQ $D57B A:11 X:23 Y:46 P:67 SP:FB CYC:280 SL:34 D57B 24 01 BIT $01 = FF A:11 X:23 Y:46 P:67 SP:FB CYC:289 SL:34 D57D A9 55 LDA #$55 A:11 X:23 Y:46 P:E5 SP:FB CYC:298 SL:34 D57F 8D 78 06 STA $0678 = 46 A:55 X:23 Y:46 P:65 SP:FB CYC:304 SL:34 D582 A0 11 LDY #$11 A:55 X:23 Y:46 P:65 SP:FB CYC:316 SL:34 D584 A9 23 LDA #$23 A:55 X:23 Y:11 P:65 SP:FB CYC:322 SL:34 D586 A2 00 LDX #$00 A:23 X:23 Y:11 P:65 SP:FB CYC:328 SL:34 D588 AE 78 06 LDX $0678 = 55 A:23 X:00 Y:11 P:67 SP:FB CYC:334 SL:34 D58B F0 10 BEQ $D59D A:23 X:55 Y:11 P:65 SP:FB CYC: 5 SL:35 D58D 30 0E BMI $D59D A:23 X:55 Y:11 P:65 SP:FB CYC: 11 SL:35 D58F E0 55 CPX #$55 A:23 X:55 Y:11 P:65 SP:FB CYC: 17 SL:35 D591 D0 0A BNE $D59D A:23 X:55 Y:11 P:67 SP:FB CYC: 23 SL:35 D593 C0 11 CPY #$11 A:23 X:55 Y:11 P:67 SP:FB CYC: 29 SL:35 D595 D0 06 BNE $D59D A:23 X:55 Y:11 P:67 SP:FB CYC: 35 SL:35 D597 C9 23 CMP #$23 A:23 X:55 Y:11 P:67 SP:FB CYC: 41 SL:35 D599 50 02 BVC $D59D A:23 X:55 Y:11 P:67 SP:FB CYC: 47 SL:35 D59B F0 04 BEQ $D5A1 A:23 X:55 Y:11 P:67 SP:FB CYC: 53 SL:35 D5A1 A2 46 LDX #$46 A:23 X:55 Y:11 P:67 SP:FB CYC: 62 SL:35 D5A3 24 01 BIT $01 = FF A:23 X:46 Y:11 P:65 SP:FB CYC: 68 SL:35 D5A5 8E 78 06 STX $0678 = 55 A:23 X:46 Y:11 P:E5 SP:FB CYC: 77 SL:35 D5A8 F0 0B BEQ $D5B5 A:23 X:46 Y:11 P:E5 SP:FB CYC: 89 SL:35 D5AA 10 09 BPL $D5B5 A:23 X:46 Y:11 P:E5 SP:FB CYC: 95 SL:35 D5AC 50 07 BVC $D5B5 A:23 X:46 Y:11 P:E5 SP:FB CYC:101 SL:35 D5AE AE 78 06 LDX $0678 = 46 A:23 X:46 Y:11 P:E5 SP:FB CYC:107 SL:35 D5B1 E0 46 CPX #$46 A:23 X:46 Y:11 P:65 SP:FB CYC:119 SL:35 D5B3 F0 04 BEQ $D5B9 A:23 X:46 Y:11 P:67 SP:FB CYC:125 SL:35 D5B9 A9 C0 LDA #$C0 A:23 X:46 Y:11 P:67 SP:FB CYC:134 SL:35 D5BB 8D 78 06 STA $0678 = 46 A:C0 X:46 Y:11 P:E5 SP:FB CYC:140 SL:35 D5BE A2 33 LDX #$33 A:C0 X:46 Y:11 P:E5 SP:FB CYC:152 SL:35 D5C0 A0 88 LDY #$88 A:C0 X:33 Y:11 P:65 SP:FB CYC:158 SL:35 D5C2 A9 05 LDA #$05 A:C0 X:33 Y:88 P:E5 SP:FB CYC:164 SL:35 D5C4 2C 78 06 BIT $0678 = C0 A:05 X:33 Y:88 P:65 SP:FB CYC:170 SL:35 D5C7 10 10 BPL $D5D9 A:05 X:33 Y:88 P:E7 SP:FB CYC:182 SL:35 D5C9 50 0E BVC $D5D9 A:05 X:33 Y:88 P:E7 SP:FB CYC:188 SL:35 D5CB D0 0C BNE $D5D9 A:05 X:33 Y:88 P:E7 SP:FB CYC:194 SL:35 D5CD C9 05 CMP #$05 A:05 X:33 Y:88 P:E7 SP:FB CYC:200 SL:35 D5CF D0 08 BNE $D5D9 A:05 X:33 Y:88 P:67 SP:FB CYC:206 SL:35 D5D1 E0 33 CPX #$33 A:05 X:33 Y:88 P:67 SP:FB CYC:212 SL:35 D5D3 D0 04 BNE $D5D9 A:05 X:33 Y:88 P:67 SP:FB CYC:218 SL:35 D5D5 C0 88 CPY #$88 A:05 X:33 Y:88 P:67 SP:FB CYC:224 SL:35 D5D7 F0 04 BEQ $D5DD A:05 X:33 Y:88 P:67 SP:FB CYC:230 SL:35 D5DD A9 03 LDA #$03 A:05 X:33 Y:88 P:67 SP:FB CYC:239 SL:35 D5DF 8D 78 06 STA $0678 = C0 A:03 X:33 Y:88 P:65 SP:FB CYC:245 SL:35 D5E2 A9 01 LDA #$01 A:03 X:33 Y:88 P:65 SP:FB CYC:257 SL:35 D5E4 2C 78 06 BIT $0678 = 03 A:01 X:33 Y:88 P:65 SP:FB CYC:263 SL:35 D5E7 30 08 BMI $D5F1 A:01 X:33 Y:88 P:25 SP:FB CYC:275 SL:35 D5E9 70 06 BVS $D5F1 A:01 X:33 Y:88 P:25 SP:FB CYC:281 SL:35 D5EB F0 04 BEQ $D5F1 A:01 X:33 Y:88 P:25 SP:FB CYC:287 SL:35 D5ED C9 01 CMP #$01 A:01 X:33 Y:88 P:25 SP:FB CYC:293 SL:35 D5EF F0 04 BEQ $D5F5 A:01 X:33 Y:88 P:27 SP:FB CYC:299 SL:35 D5F5 A0 B8 LDY #$B8 A:01 X:33 Y:88 P:27 SP:FB CYC:308 SL:35 D5F7 A9 AA LDA #$AA A:01 X:33 Y:B8 P:A5 SP:FB CYC:314 SL:35 D5F9 8D 78 06 STA $0678 = 03 A:AA X:33 Y:B8 P:A5 SP:FB CYC:320 SL:35 D5FC 20 B6 F7 JSR $F7B6 A:AA X:33 Y:B8 P:A5 SP:FB CYC:332 SL:35 F7B6 18 CLC A:AA X:33 Y:B8 P:A5 SP:F9 CYC: 9 SL:36 F7B7 A9 FF LDA #$FF A:AA X:33 Y:B8 P:A4 SP:F9 CYC: 15 SL:36 F7B9 85 01 STA $01 = FF A:FF X:33 Y:B8 P:A4 SP:F9 CYC: 21 SL:36 F7BB 24 01 BIT $01 = FF A:FF X:33 Y:B8 P:A4 SP:F9 CYC: 30 SL:36 F7BD A9 55 LDA #$55 A:FF X:33 Y:B8 P:E4 SP:F9 CYC: 39 SL:36 F7BF 60 RTS A:55 X:33 Y:B8 P:64 SP:F9 CYC: 45 SL:36 D5FF 0D 78 06 ORA $0678 = AA A:55 X:33 Y:B8 P:64 SP:FB CYC: 63 SL:36 D602 20 C0 F7 JSR $F7C0 A:FF X:33 Y:B8 P:E4 SP:FB CYC: 75 SL:36 F7C0 B0 09 BCS $F7CB A:FF X:33 Y:B8 P:E4 SP:F9 CYC: 93 SL:36 F7C2 10 07 BPL $F7CB A:FF X:33 Y:B8 P:E4 SP:F9 CYC: 99 SL:36 F7C4 C9 FF CMP #$FF A:FF X:33 Y:B8 P:E4 SP:F9 CYC:105 SL:36 F7C6 D0 03 BNE $F7CB A:FF X:33 Y:B8 P:67 SP:F9 CYC:111 SL:36 F7C8 50 01 BVC $F7CB A:FF X:33 Y:B8 P:67 SP:F9 CYC:117 SL:36 F7CA 60 RTS A:FF X:33 Y:B8 P:67 SP:F9 CYC:123 SL:36 D605 C8 INY A:FF X:33 Y:B8 P:67 SP:FB CYC:141 SL:36 D606 A9 00 LDA #$00 A:FF X:33 Y:B9 P:E5 SP:FB CYC:147 SL:36 D608 8D 78 06 STA $0678 = AA A:00 X:33 Y:B9 P:67 SP:FB CYC:153 SL:36 D60B 20 CE F7 JSR $F7CE A:00 X:33 Y:B9 P:67 SP:FB CYC:165 SL:36 F7CE 38 SEC A:00 X:33 Y:B9 P:67 SP:F9 CYC:183 SL:36 F7CF B8 CLV A:00 X:33 Y:B9 P:67 SP:F9 CYC:189 SL:36 F7D0 A9 00 LDA #$00 A:00 X:33 Y:B9 P:27 SP:F9 CYC:195 SL:36 F7D2 60 RTS A:00 X:33 Y:B9 P:27 SP:F9 CYC:201 SL:36 D60E 0D 78 06 ORA $0678 = 00 A:00 X:33 Y:B9 P:27 SP:FB CYC:219 SL:36 D611 20 D3 F7 JSR $F7D3 A:00 X:33 Y:B9 P:27 SP:FB CYC:231 SL:36 F7D3 D0 07 BNE $F7DC A:00 X:33 Y:B9 P:27 SP:F9 CYC:249 SL:36 F7D5 70 05 BVS $F7DC A:00 X:33 Y:B9 P:27 SP:F9 CYC:255 SL:36 F7D7 90 03 BCC $F7DC A:00 X:33 Y:B9 P:27 SP:F9 CYC:261 SL:36 F7D9 30 01 BMI $F7DC A:00 X:33 Y:B9 P:27 SP:F9 CYC:267 SL:36 F7DB 60 RTS A:00 X:33 Y:B9 P:27 SP:F9 CYC:273 SL:36 D614 C8 INY A:00 X:33 Y:B9 P:27 SP:FB CYC:291 SL:36 D615 A9 AA LDA #$AA A:00 X:33 Y:BA P:A5 SP:FB CYC:297 SL:36 D617 8D 78 06 STA $0678 = 00 A:AA X:33 Y:BA P:A5 SP:FB CYC:303 SL:36 D61A 20 DF F7 JSR $F7DF A:AA X:33 Y:BA P:A5 SP:FB CYC:315 SL:36 F7DF 18 CLC A:AA X:33 Y:BA P:A5 SP:F9 CYC:333 SL:36 F7E0 24 01 BIT $01 = FF A:AA X:33 Y:BA P:A4 SP:F9 CYC:339 SL:36 F7E2 A9 55 LDA #$55 A:AA X:33 Y:BA P:E4 SP:F9 CYC: 7 SL:37 F7E4 60 RTS A:55 X:33 Y:BA P:64 SP:F9 CYC: 13 SL:37 D61D 2D 78 06 AND $0678 = AA A:55 X:33 Y:BA P:64 SP:FB CYC: 31 SL:37 D620 20 E5 F7 JSR $F7E5 A:00 X:33 Y:BA P:66 SP:FB CYC: 43 SL:37 F7E5 D0 07 BNE $F7EE A:00 X:33 Y:BA P:66 SP:F9 CYC: 61 SL:37 F7E7 50 05 BVC $F7EE A:00 X:33 Y:BA P:66 SP:F9 CYC: 67 SL:37 F7E9 B0 03 BCS $F7EE A:00 X:33 Y:BA P:66 SP:F9 CYC: 73 SL:37 F7EB 30 01 BMI $F7EE A:00 X:33 Y:BA P:66 SP:F9 CYC: 79 SL:37 F7ED 60 RTS A:00 X:33 Y:BA P:66 SP:F9 CYC: 85 SL:37 D623 C8 INY A:00 X:33 Y:BA P:66 SP:FB CYC:103 SL:37 D624 A9 EF LDA #$EF A:00 X:33 Y:BB P:E4 SP:FB CYC:109 SL:37 D626 8D 78 06 STA $0678 = AA A:EF X:33 Y:BB P:E4 SP:FB CYC:115 SL:37 D629 20 F1 F7 JSR $F7F1 A:EF X:33 Y:BB P:E4 SP:FB CYC:127 SL:37 F7F1 38 SEC A:EF X:33 Y:BB P:E4 SP:F9 CYC:145 SL:37 F7F2 B8 CLV A:EF X:33 Y:BB P:E5 SP:F9 CYC:151 SL:37 F7F3 A9 F8 LDA #$F8 A:EF X:33 Y:BB P:A5 SP:F9 CYC:157 SL:37 F7F5 60 RTS A:F8 X:33 Y:BB P:A5 SP:F9 CYC:163 SL:37 D62C 2D 78 06 AND $0678 = EF A:F8 X:33 Y:BB P:A5 SP:FB CYC:181 SL:37 D62F 20 F6 F7 JSR $F7F6 A:E8 X:33 Y:BB P:A5 SP:FB CYC:193 SL:37 F7F6 90 09 BCC $F801 A:E8 X:33 Y:BB P:A5 SP:F9 CYC:211 SL:37 F7F8 10 07 BPL $F801 A:E8 X:33 Y:BB P:A5 SP:F9 CYC:217 SL:37 F7FA C9 E8 CMP #$E8 A:E8 X:33 Y:BB P:A5 SP:F9 CYC:223 SL:37 F7FC D0 03 BNE $F801 A:E8 X:33 Y:BB P:27 SP:F9 CYC:229 SL:37 F7FE 70 01 BVS $F801 A:E8 X:33 Y:BB P:27 SP:F9 CYC:235 SL:37 F800 60 RTS A:E8 X:33 Y:BB P:27 SP:F9 CYC:241 SL:37 D632 C8 INY A:E8 X:33 Y:BB P:27 SP:FB CYC:259 SL:37 D633 A9 AA LDA #$AA A:E8 X:33 Y:BC P:A5 SP:FB CYC:265 SL:37 D635 8D 78 06 STA $0678 = EF A:AA X:33 Y:BC P:A5 SP:FB CYC:271 SL:37 D638 20 04 F8 JSR $F804 A:AA X:33 Y:BC P:A5 SP:FB CYC:283 SL:37 F804 18 CLC A:AA X:33 Y:BC P:A5 SP:F9 CYC:301 SL:37 F805 24 01 BIT $01 = FF A:AA X:33 Y:BC P:A4 SP:F9 CYC:307 SL:37 F807 A9 5F LDA #$5F A:AA X:33 Y:BC P:E4 SP:F9 CYC:316 SL:37 F809 60 RTS A:5F X:33 Y:BC P:64 SP:F9 CYC:322 SL:37 D63B 4D 78 06 EOR $0678 = AA A:5F X:33 Y:BC P:64 SP:FB CYC:340 SL:37 D63E 20 0A F8 JSR $F80A A:F5 X:33 Y:BC P:E4 SP:FB CYC: 11 SL:38 F80A B0 09 BCS $F815 A:F5 X:33 Y:BC P:E4 SP:F9 CYC: 29 SL:38 F80C 10 07 BPL $F815 A:F5 X:33 Y:BC P:E4 SP:F9 CYC: 35 SL:38 F80E C9 F5 CMP #$F5 A:F5 X:33 Y:BC P:E4 SP:F9 CYC: 41 SL:38 F810 D0 03 BNE $F815 A:F5 X:33 Y:BC P:67 SP:F9 CYC: 47 SL:38 F812 50 01 BVC $F815 A:F5 X:33 Y:BC P:67 SP:F9 CYC: 53 SL:38 F814 60 RTS A:F5 X:33 Y:BC P:67 SP:F9 CYC: 59 SL:38 D641 C8 INY A:F5 X:33 Y:BC P:67 SP:FB CYC: 77 SL:38 D642 A9 70 LDA #$70 A:F5 X:33 Y:BD P:E5 SP:FB CYC: 83 SL:38 D644 8D 78 06 STA $0678 = AA A:70 X:33 Y:BD P:65 SP:FB CYC: 89 SL:38 D647 20 18 F8 JSR $F818 A:70 X:33 Y:BD P:65 SP:FB CYC:101 SL:38 F818 38 SEC A:70 X:33 Y:BD P:65 SP:F9 CYC:119 SL:38 F819 B8 CLV A:70 X:33 Y:BD P:65 SP:F9 CYC:125 SL:38 F81A A9 70 LDA #$70 A:70 X:33 Y:BD P:25 SP:F9 CYC:131 SL:38 F81C 60 RTS A:70 X:33 Y:BD P:25 SP:F9 CYC:137 SL:38 D64A 4D 78 06 EOR $0678 = 70 A:70 X:33 Y:BD P:25 SP:FB CYC:155 SL:38 D64D 20 1D F8 JSR $F81D A:00 X:33 Y:BD P:27 SP:FB CYC:167 SL:38 F81D D0 07 BNE $F826 A:00 X:33 Y:BD P:27 SP:F9 CYC:185 SL:38 F81F 70 05 BVS $F826 A:00 X:33 Y:BD P:27 SP:F9 CYC:191 SL:38 F821 90 03 BCC $F826 A:00 X:33 Y:BD P:27 SP:F9 CYC:197 SL:38 F823 30 01 BMI $F826 A:00 X:33 Y:BD P:27 SP:F9 CYC:203 SL:38 F825 60 RTS A:00 X:33 Y:BD P:27 SP:F9 CYC:209 SL:38 D650 C8 INY A:00 X:33 Y:BD P:27 SP:FB CYC:227 SL:38 D651 A9 69 LDA #$69 A:00 X:33 Y:BE P:A5 SP:FB CYC:233 SL:38 D653 8D 78 06 STA $0678 = 70 A:69 X:33 Y:BE P:25 SP:FB CYC:239 SL:38 D656 20 29 F8 JSR $F829 A:69 X:33 Y:BE P:25 SP:FB CYC:251 SL:38 F829 18 CLC A:69 X:33 Y:BE P:25 SP:F9 CYC:269 SL:38 F82A 24 01 BIT $01 = FF A:69 X:33 Y:BE P:24 SP:F9 CYC:275 SL:38 F82C A9 00 LDA #$00 A:69 X:33 Y:BE P:E4 SP:F9 CYC:284 SL:38 F82E 60 RTS A:00 X:33 Y:BE P:66 SP:F9 CYC:290 SL:38 D659 6D 78 06 ADC $0678 = 69 A:00 X:33 Y:BE P:66 SP:FB CYC:308 SL:38 D65C 20 2F F8 JSR $F82F A:69 X:33 Y:BE P:24 SP:FB CYC:320 SL:38 F82F 30 09 BMI $F83A A:69 X:33 Y:BE P:24 SP:F9 CYC:338 SL:38 F831 B0 07 BCS $F83A A:69 X:33 Y:BE P:24 SP:F9 CYC: 3 SL:39 F833 C9 69 CMP #$69 A:69 X:33 Y:BE P:24 SP:F9 CYC: 9 SL:39 F835 D0 03 BNE $F83A A:69 X:33 Y:BE P:27 SP:F9 CYC: 15 SL:39 F837 70 01 BVS $F83A A:69 X:33 Y:BE P:27 SP:F9 CYC: 21 SL:39 F839 60 RTS A:69 X:33 Y:BE P:27 SP:F9 CYC: 27 SL:39 D65F C8 INY A:69 X:33 Y:BE P:27 SP:FB CYC: 45 SL:39 D660 20 3D F8 JSR $F83D A:69 X:33 Y:BF P:A5 SP:FB CYC: 51 SL:39 F83D 38 SEC A:69 X:33 Y:BF P:A5 SP:F9 CYC: 69 SL:39 F83E 24 01 BIT $01 = FF A:69 X:33 Y:BF P:A5 SP:F9 CYC: 75 SL:39 F840 A9 00 LDA #$00 A:69 X:33 Y:BF P:E5 SP:F9 CYC: 84 SL:39 F842 60 RTS A:00 X:33 Y:BF P:67 SP:F9 CYC: 90 SL:39 D663 6D 78 06 ADC $0678 = 69 A:00 X:33 Y:BF P:67 SP:FB CYC:108 SL:39 D666 20 43 F8 JSR $F843 A:6A X:33 Y:BF P:24 SP:FB CYC:120 SL:39 F843 30 09 BMI $F84E A:6A X:33 Y:BF P:24 SP:F9 CYC:138 SL:39 F845 B0 07 BCS $F84E A:6A X:33 Y:BF P:24 SP:F9 CYC:144 SL:39 F847 C9 6A CMP #$6A A:6A X:33 Y:BF P:24 SP:F9 CYC:150 SL:39 F849 D0 03 BNE $F84E A:6A X:33 Y:BF P:27 SP:F9 CYC:156 SL:39 F84B 70 01 BVS $F84E A:6A X:33 Y:BF P:27 SP:F9 CYC:162 SL:39 F84D 60 RTS A:6A X:33 Y:BF P:27 SP:F9 CYC:168 SL:39 D669 C8 INY A:6A X:33 Y:BF P:27 SP:FB CYC:186 SL:39 D66A A9 7F LDA #$7F A:6A X:33 Y:C0 P:A5 SP:FB CYC:192 SL:39 D66C 8D 78 06 STA $0678 = 69 A:7F X:33 Y:C0 P:25 SP:FB CYC:198 SL:39 D66F 20 51 F8 JSR $F851 A:7F X:33 Y:C0 P:25 SP:FB CYC:210 SL:39 F851 38 SEC A:7F X:33 Y:C0 P:25 SP:F9 CYC:228 SL:39 F852 B8 CLV A:7F X:33 Y:C0 P:25 SP:F9 CYC:234 SL:39 F853 A9 7F LDA #$7F A:7F X:33 Y:C0 P:25 SP:F9 CYC:240 SL:39 F855 60 RTS A:7F X:33 Y:C0 P:25 SP:F9 CYC:246 SL:39 D672 6D 78 06 ADC $0678 = 7F A:7F X:33 Y:C0 P:25 SP:FB CYC:264 SL:39 D675 20 56 F8 JSR $F856 A:FF X:33 Y:C0 P:E4 SP:FB CYC:276 SL:39 F856 10 09 BPL $F861 A:FF X:33 Y:C0 P:E4 SP:F9 CYC:294 SL:39 F858 B0 07 BCS $F861 A:FF X:33 Y:C0 P:E4 SP:F9 CYC:300 SL:39 F85A C9 FF CMP #$FF A:FF X:33 Y:C0 P:E4 SP:F9 CYC:306 SL:39 F85C D0 03 BNE $F861 A:FF X:33 Y:C0 P:67 SP:F9 CYC:312 SL:39 F85E 50 01 BVC $F861 A:FF X:33 Y:C0 P:67 SP:F9 CYC:318 SL:39 F860 60 RTS A:FF X:33 Y:C0 P:67 SP:F9 CYC:324 SL:39 D678 C8 INY A:FF X:33 Y:C0 P:67 SP:FB CYC: 1 SL:40 D679 A9 80 LDA #$80 A:FF X:33 Y:C1 P:E5 SP:FB CYC: 7 SL:40 D67B 8D 78 06 STA $0678 = 7F A:80 X:33 Y:C1 P:E5 SP:FB CYC: 13 SL:40 D67E 20 64 F8 JSR $F864 A:80 X:33 Y:C1 P:E5 SP:FB CYC: 25 SL:40 F864 18 CLC A:80 X:33 Y:C1 P:E5 SP:F9 CYC: 43 SL:40 F865 24 01 BIT $01 = FF A:80 X:33 Y:C1 P:E4 SP:F9 CYC: 49 SL:40 F867 A9 7F LDA #$7F A:80 X:33 Y:C1 P:E4 SP:F9 CYC: 58 SL:40 F869 60 RTS A:7F X:33 Y:C1 P:64 SP:F9 CYC: 64 SL:40 D681 6D 78 06 ADC $0678 = 80 A:7F X:33 Y:C1 P:64 SP:FB CYC: 82 SL:40 D684 20 6A F8 JSR $F86A A:FF X:33 Y:C1 P:A4 SP:FB CYC: 94 SL:40 F86A 10 09 BPL $F875 A:FF X:33 Y:C1 P:A4 SP:F9 CYC:112 SL:40 F86C B0 07 BCS $F875 A:FF X:33 Y:C1 P:A4 SP:F9 CYC:118 SL:40 F86E C9 FF CMP #$FF A:FF X:33 Y:C1 P:A4 SP:F9 CYC:124 SL:40 F870 D0 03 BNE $F875 A:FF X:33 Y:C1 P:27 SP:F9 CYC:130 SL:40 F872 70 01 BVS $F875 A:FF X:33 Y:C1 P:27 SP:F9 CYC:136 SL:40 F874 60 RTS A:FF X:33 Y:C1 P:27 SP:F9 CYC:142 SL:40 D687 C8 INY A:FF X:33 Y:C1 P:27 SP:FB CYC:160 SL:40 D688 20 78 F8 JSR $F878 A:FF X:33 Y:C2 P:A5 SP:FB CYC:166 SL:40 F878 38 SEC A:FF X:33 Y:C2 P:A5 SP:F9 CYC:184 SL:40 F879 B8 CLV A:FF X:33 Y:C2 P:A5 SP:F9 CYC:190 SL:40 F87A A9 7F LDA #$7F A:FF X:33 Y:C2 P:A5 SP:F9 CYC:196 SL:40 F87C 60 RTS A:7F X:33 Y:C2 P:25 SP:F9 CYC:202 SL:40 D68B 6D 78 06 ADC $0678 = 80 A:7F X:33 Y:C2 P:25 SP:FB CYC:220 SL:40 D68E 20 7D F8 JSR $F87D A:00 X:33 Y:C2 P:27 SP:FB CYC:232 SL:40 F87D D0 07 BNE $F886 A:00 X:33 Y:C2 P:27 SP:F9 CYC:250 SL:40 F87F 30 05 BMI $F886 A:00 X:33 Y:C2 P:27 SP:F9 CYC:256 SL:40 F881 70 03 BVS $F886 A:00 X:33 Y:C2 P:27 SP:F9 CYC:262 SL:40 F883 90 01 BCC $F886 A:00 X:33 Y:C2 P:27 SP:F9 CYC:268 SL:40 F885 60 RTS A:00 X:33 Y:C2 P:27 SP:F9 CYC:274 SL:40 D691 C8 INY A:00 X:33 Y:C2 P:27 SP:FB CYC:292 SL:40 D692 A9 40 LDA #$40 A:00 X:33 Y:C3 P:A5 SP:FB CYC:298 SL:40 D694 8D 78 06 STA $0678 = 80 A:40 X:33 Y:C3 P:25 SP:FB CYC:304 SL:40 D697 20 89 F8 JSR $F889 A:40 X:33 Y:C3 P:25 SP:FB CYC:316 SL:40 F889 24 01 BIT $01 = FF A:40 X:33 Y:C3 P:25 SP:F9 CYC:334 SL:40 F88B A9 40 LDA #$40 A:40 X:33 Y:C3 P:E5 SP:F9 CYC: 2 SL:41 F88D 60 RTS A:40 X:33 Y:C3 P:65 SP:F9 CYC: 8 SL:41 D69A CD 78 06 CMP $0678 = 40 A:40 X:33 Y:C3 P:65 SP:FB CYC: 26 SL:41 D69D 20 8E F8 JSR $F88E A:40 X:33 Y:C3 P:67 SP:FB CYC: 38 SL:41 F88E 30 07 BMI $F897 A:40 X:33 Y:C3 P:67 SP:F9 CYC: 56 SL:41 F890 90 05 BCC $F897 A:40 X:33 Y:C3 P:67 SP:F9 CYC: 62 SL:41 F892 D0 03 BNE $F897 A:40 X:33 Y:C3 P:67 SP:F9 CYC: 68 SL:41 F894 50 01 BVC $F897 A:40 X:33 Y:C3 P:67 SP:F9 CYC: 74 SL:41 F896 60 RTS A:40 X:33 Y:C3 P:67 SP:F9 CYC: 80 SL:41 D6A0 C8 INY A:40 X:33 Y:C3 P:67 SP:FB CYC: 98 SL:41 D6A1 48 PHA A:40 X:33 Y:C4 P:E5 SP:FB CYC:104 SL:41 D6A2 A9 3F LDA #$3F A:40 X:33 Y:C4 P:E5 SP:FA CYC:113 SL:41 D6A4 8D 78 06 STA $0678 = 40 A:3F X:33 Y:C4 P:65 SP:FA CYC:119 SL:41 D6A7 68 PLA A:3F X:33 Y:C4 P:65 SP:FA CYC:131 SL:41 D6A8 20 9A F8 JSR $F89A A:40 X:33 Y:C4 P:65 SP:FB CYC:143 SL:41 F89A B8 CLV A:40 X:33 Y:C4 P:65 SP:F9 CYC:161 SL:41 F89B 60 RTS A:40 X:33 Y:C4 P:25 SP:F9 CYC:167 SL:41 D6AB CD 78 06 CMP $0678 = 3F A:40 X:33 Y:C4 P:25 SP:FB CYC:185 SL:41 D6AE 20 9C F8 JSR $F89C A:40 X:33 Y:C4 P:25 SP:FB CYC:197 SL:41 F89C F0 07 BEQ $F8A5 A:40 X:33 Y:C4 P:25 SP:F9 CYC:215 SL:41 F89E 30 05 BMI $F8A5 A:40 X:33 Y:C4 P:25 SP:F9 CYC:221 SL:41 F8A0 90 03 BCC $F8A5 A:40 X:33 Y:C4 P:25 SP:F9 CYC:227 SL:41 F8A2 70 01 BVS $F8A5 A:40 X:33 Y:C4 P:25 SP:F9 CYC:233 SL:41 F8A4 60 RTS A:40 X:33 Y:C4 P:25 SP:F9 CYC:239 SL:41 D6B1 C8 INY A:40 X:33 Y:C4 P:25 SP:FB CYC:257 SL:41 D6B2 48 PHA A:40 X:33 Y:C5 P:A5 SP:FB CYC:263 SL:41 D6B3 A9 41 LDA #$41 A:40 X:33 Y:C5 P:A5 SP:FA CYC:272 SL:41 D6B5 8D 78 06 STA $0678 = 3F A:41 X:33 Y:C5 P:25 SP:FA CYC:278 SL:41 D6B8 68 PLA A:41 X:33 Y:C5 P:25 SP:FA CYC:290 SL:41 D6B9 CD 78 06 CMP $0678 = 41 A:40 X:33 Y:C5 P:25 SP:FB CYC:302 SL:41 D6BC 20 A8 F8 JSR $F8A8 A:40 X:33 Y:C5 P:A4 SP:FB CYC:314 SL:41 F8A8 F0 05 BEQ $F8AF A:40 X:33 Y:C5 P:A4 SP:F9 CYC:332 SL:41 F8AA 10 03 BPL $F8AF A:40 X:33 Y:C5 P:A4 SP:F9 CYC:338 SL:41 F8AC 10 01 BPL $F8AF A:40 X:33 Y:C5 P:A4 SP:F9 CYC: 3 SL:42 F8AE 60 RTS A:40 X:33 Y:C5 P:A4 SP:F9 CYC: 9 SL:42 D6BF C8 INY A:40 X:33 Y:C5 P:A4 SP:FB CYC: 27 SL:42 D6C0 48 PHA A:40 X:33 Y:C6 P:A4 SP:FB CYC: 33 SL:42 D6C1 A9 00 LDA #$00 A:40 X:33 Y:C6 P:A4 SP:FA CYC: 42 SL:42 D6C3 8D 78 06 STA $0678 = 41 A:00 X:33 Y:C6 P:26 SP:FA CYC: 48 SL:42 D6C6 68 PLA A:00 X:33 Y:C6 P:26 SP:FA CYC: 60 SL:42 D6C7 20 B2 F8 JSR $F8B2 A:40 X:33 Y:C6 P:24 SP:FB CYC: 72 SL:42 F8B2 A9 80 LDA #$80 A:40 X:33 Y:C6 P:24 SP:F9 CYC: 90 SL:42 F8B4 60 RTS A:80 X:33 Y:C6 P:A4 SP:F9 CYC: 96 SL:42 D6CA CD 78 06 CMP $0678 = 00 A:80 X:33 Y:C6 P:A4 SP:FB CYC:114 SL:42 D6CD 20 B5 F8 JSR $F8B5 A:80 X:33 Y:C6 P:A5 SP:FB CYC:126 SL:42 F8B5 F0 05 BEQ $F8BC A:80 X:33 Y:C6 P:A5 SP:F9 CYC:144 SL:42 F8B7 10 03 BPL $F8BC A:80 X:33 Y:C6 P:A5 SP:F9 CYC:150 SL:42 F8B9 90 01 BCC $F8BC A:80 X:33 Y:C6 P:A5 SP:F9 CYC:156 SL:42 F8BB 60 RTS A:80 X:33 Y:C6 P:A5 SP:F9 CYC:162 SL:42 D6D0 C8 INY A:80 X:33 Y:C6 P:A5 SP:FB CYC:180 SL:42 D6D1 48 PHA A:80 X:33 Y:C7 P:A5 SP:FB CYC:186 SL:42 D6D2 A9 80 LDA #$80 A:80 X:33 Y:C7 P:A5 SP:FA CYC:195 SL:42 D6D4 8D 78 06 STA $0678 = 00 A:80 X:33 Y:C7 P:A5 SP:FA CYC:201 SL:42 D6D7 68 PLA A:80 X:33 Y:C7 P:A5 SP:FA CYC:213 SL:42 D6D8 CD 78 06 CMP $0678 = 80 A:80 X:33 Y:C7 P:A5 SP:FB CYC:225 SL:42 D6DB 20 BF F8 JSR $F8BF A:80 X:33 Y:C7 P:27 SP:FB CYC:237 SL:42 F8BF D0 05 BNE $F8C6 A:80 X:33 Y:C7 P:27 SP:F9 CYC:255 SL:42 F8C1 30 03 BMI $F8C6 A:80 X:33 Y:C7 P:27 SP:F9 CYC:261 SL:42 F8C3 90 01 BCC $F8C6 A:80 X:33 Y:C7 P:27 SP:F9 CYC:267 SL:42 F8C5 60 RTS A:80 X:33 Y:C7 P:27 SP:F9 CYC:273 SL:42 D6DE C8 INY A:80 X:33 Y:C7 P:27 SP:FB CYC:291 SL:42 D6DF 48 PHA A:80 X:33 Y:C8 P:A5 SP:FB CYC:297 SL:42 D6E0 A9 81 LDA #$81 A:80 X:33 Y:C8 P:A5 SP:FA CYC:306 SL:42 D6E2 8D 78 06 STA $0678 = 80 A:81 X:33 Y:C8 P:A5 SP:FA CYC:312 SL:42 D6E5 68 PLA A:81 X:33 Y:C8 P:A5 SP:FA CYC:324 SL:42 D6E6 CD 78 06 CMP $0678 = 81 A:80 X:33 Y:C8 P:A5 SP:FB CYC:336 SL:42 D6E9 20 C9 F8 JSR $F8C9 A:80 X:33 Y:C8 P:A4 SP:FB CYC: 7 SL:43 F8C9 B0 05 BCS $F8D0 A:80 X:33 Y:C8 P:A4 SP:F9 CYC: 25 SL:43 F8CB F0 03 BEQ $F8D0 A:80 X:33 Y:C8 P:A4 SP:F9 CYC: 31 SL:43 F8CD 10 01 BPL $F8D0 A:80 X:33 Y:C8 P:A4 SP:F9 CYC: 37 SL:43 F8CF 60 RTS A:80 X:33 Y:C8 P:A4 SP:F9 CYC: 43 SL:43 D6EC C8 INY A:80 X:33 Y:C8 P:A4 SP:FB CYC: 61 SL:43 D6ED 48 PHA A:80 X:33 Y:C9 P:A4 SP:FB CYC: 67 SL:43 D6EE A9 7F LDA #$7F A:80 X:33 Y:C9 P:A4 SP:FA CYC: 76 SL:43 D6F0 8D 78 06 STA $0678 = 81 A:7F X:33 Y:C9 P:24 SP:FA CYC: 82 SL:43 D6F3 68 PLA A:7F X:33 Y:C9 P:24 SP:FA CYC: 94 SL:43 D6F4 CD 78 06 CMP $0678 = 7F A:80 X:33 Y:C9 P:A4 SP:FB CYC:106 SL:43 D6F7 20 D3 F8 JSR $F8D3 A:80 X:33 Y:C9 P:25 SP:FB CYC:118 SL:43 F8D3 90 05 BCC $F8DA A:80 X:33 Y:C9 P:25 SP:F9 CYC:136 SL:43 F8D5 F0 03 BEQ $F8DA A:80 X:33 Y:C9 P:25 SP:F9 CYC:142 SL:43 F8D7 30 01 BMI $F8DA A:80 X:33 Y:C9 P:25 SP:F9 CYC:148 SL:43 F8D9 60 RTS A:80 X:33 Y:C9 P:25 SP:F9 CYC:154 SL:43 D6FA C8 INY A:80 X:33 Y:C9 P:25 SP:FB CYC:172 SL:43 D6FB A9 40 LDA #$40 A:80 X:33 Y:CA P:A5 SP:FB CYC:178 SL:43 D6FD 8D 78 06 STA $0678 = 7F A:40 X:33 Y:CA P:25 SP:FB CYC:184 SL:43 D700 20 31 F9 JSR $F931 A:40 X:33 Y:CA P:25 SP:FB CYC:196 SL:43 F931 24 01 BIT $01 = FF A:40 X:33 Y:CA P:25 SP:F9 CYC:214 SL:43 F933 A9 40 LDA #$40 A:40 X:33 Y:CA P:E5 SP:F9 CYC:223 SL:43 F935 38 SEC A:40 X:33 Y:CA P:65 SP:F9 CYC:229 SL:43 F936 60 RTS A:40 X:33 Y:CA P:65 SP:F9 CYC:235 SL:43 D703 ED 78 06 SBC $0678 = 40 A:40 X:33 Y:CA P:65 SP:FB CYC:253 SL:43 D706 20 37 F9 JSR $F937 A:00 X:33 Y:CA P:27 SP:FB CYC:265 SL:43 F937 30 0B BMI $F944 A:00 X:33 Y:CA P:27 SP:F9 CYC:283 SL:43 F939 90 09 BCC $F944 A:00 X:33 Y:CA P:27 SP:F9 CYC:289 SL:43 F93B D0 07 BNE $F944 A:00 X:33 Y:CA P:27 SP:F9 CYC:295 SL:43 F93D 70 05 BVS $F944 A:00 X:33 Y:CA P:27 SP:F9 CYC:301 SL:43 F93F C9 00 CMP #$00 A:00 X:33 Y:CA P:27 SP:F9 CYC:307 SL:43 F941 D0 01 BNE $F944 A:00 X:33 Y:CA P:27 SP:F9 CYC:313 SL:43 F943 60 RTS A:00 X:33 Y:CA P:27 SP:F9 CYC:319 SL:43 D709 C8 INY A:00 X:33 Y:CA P:27 SP:FB CYC:337 SL:43 D70A A9 3F LDA #$3F A:00 X:33 Y:CB P:A5 SP:FB CYC: 2 SL:44 D70C 8D 78 06 STA $0678 = 40 A:3F X:33 Y:CB P:25 SP:FB CYC: 8 SL:44 D70F 20 47 F9 JSR $F947 A:3F X:33 Y:CB P:25 SP:FB CYC: 20 SL:44 F947 B8 CLV A:3F X:33 Y:CB P:25 SP:F9 CYC: 38 SL:44 F948 38 SEC A:3F X:33 Y:CB P:25 SP:F9 CYC: 44 SL:44 F949 A9 40 LDA #$40 A:3F X:33 Y:CB P:25 SP:F9 CYC: 50 SL:44 F94B 60 RTS A:40 X:33 Y:CB P:25 SP:F9 CYC: 56 SL:44 D712 ED 78 06 SBC $0678 = 3F A:40 X:33 Y:CB P:25 SP:FB CYC: 74 SL:44 D715 20 4C F9 JSR $F94C A:01 X:33 Y:CB P:25 SP:FB CYC: 86 SL:44 F94C F0 0B BEQ $F959 A:01 X:33 Y:CB P:25 SP:F9 CYC:104 SL:44 F94E 30 09 BMI $F959 A:01 X:33 Y:CB P:25 SP:F9 CYC:110 SL:44 F950 90 07 BCC $F959 A:01 X:33 Y:CB P:25 SP:F9 CYC:116 SL:44 F952 70 05 BVS $F959 A:01 X:33 Y:CB P:25 SP:F9 CYC:122 SL:44 F954 C9 01 CMP #$01 A:01 X:33 Y:CB P:25 SP:F9 CYC:128 SL:44 F956 D0 01 BNE $F959 A:01 X:33 Y:CB P:27 SP:F9 CYC:134 SL:44 F958 60 RTS A:01 X:33 Y:CB P:27 SP:F9 CYC:140 SL:44 D718 C8 INY A:01 X:33 Y:CB P:27 SP:FB CYC:158 SL:44 D719 A9 41 LDA #$41 A:01 X:33 Y:CC P:A5 SP:FB CYC:164 SL:44 D71B 8D 78 06 STA $0678 = 3F A:41 X:33 Y:CC P:25 SP:FB CYC:170 SL:44 D71E 20 5C F9 JSR $F95C A:41 X:33 Y:CC P:25 SP:FB CYC:182 SL:44 F95C A9 40 LDA #$40 A:41 X:33 Y:CC P:25 SP:F9 CYC:200 SL:44 F95E 38 SEC A:40 X:33 Y:CC P:25 SP:F9 CYC:206 SL:44 F95F 24 01 BIT $01 = FF A:40 X:33 Y:CC P:25 SP:F9 CYC:212 SL:44 F961 60 RTS A:40 X:33 Y:CC P:E5 SP:F9 CYC:221 SL:44 D721 ED 78 06 SBC $0678 = 41 A:40 X:33 Y:CC P:E5 SP:FB CYC:239 SL:44 D724 20 62 F9 JSR $F962 A:FF X:33 Y:CC P:A4 SP:FB CYC:251 SL:44 F962 B0 0B BCS $F96F A:FF X:33 Y:CC P:A4 SP:F9 CYC:269 SL:44 F964 F0 09 BEQ $F96F A:FF X:33 Y:CC P:A4 SP:F9 CYC:275 SL:44 F966 10 07 BPL $F96F A:FF X:33 Y:CC P:A4 SP:F9 CYC:281 SL:44 F968 70 05 BVS $F96F A:FF X:33 Y:CC P:A4 SP:F9 CYC:287 SL:44 F96A C9 FF CMP #$FF A:FF X:33 Y:CC P:A4 SP:F9 CYC:293 SL:44 F96C D0 01 BNE $F96F A:FF X:33 Y:CC P:27 SP:F9 CYC:299 SL:44 F96E 60 RTS A:FF X:33 Y:CC P:27 SP:F9 CYC:305 SL:44 D727 C8 INY A:FF X:33 Y:CC P:27 SP:FB CYC:323 SL:44 D728 A9 00 LDA #$00 A:FF X:33 Y:CD P:A5 SP:FB CYC:329 SL:44 D72A 8D 78 06 STA $0678 = 41 A:00 X:33 Y:CD P:27 SP:FB CYC:335 SL:44 D72D 20 72 F9 JSR $F972 A:00 X:33 Y:CD P:27 SP:FB CYC: 6 SL:45 F972 18 CLC A:00 X:33 Y:CD P:27 SP:F9 CYC: 24 SL:45 F973 A9 80 LDA #$80 A:00 X:33 Y:CD P:26 SP:F9 CYC: 30 SL:45 F975 60 RTS A:80 X:33 Y:CD P:A4 SP:F9 CYC: 36 SL:45 D730 ED 78 06 SBC $0678 = 00 A:80 X:33 Y:CD P:A4 SP:FB CYC: 54 SL:45 D733 20 76 F9 JSR $F976 A:7F X:33 Y:CD P:65 SP:FB CYC: 66 SL:45 F976 90 05 BCC $F97D A:7F X:33 Y:CD P:65 SP:F9 CYC: 84 SL:45 F978 C9 7F CMP #$7F A:7F X:33 Y:CD P:65 SP:F9 CYC: 90 SL:45 F97A D0 01 BNE $F97D A:7F X:33 Y:CD P:67 SP:F9 CYC: 96 SL:45 F97C 60 RTS A:7F X:33 Y:CD P:67 SP:F9 CYC:102 SL:45 D736 C8 INY A:7F X:33 Y:CD P:67 SP:FB CYC:120 SL:45 D737 A9 7F LDA #$7F A:7F X:33 Y:CE P:E5 SP:FB CYC:126 SL:45 D739 8D 78 06 STA $0678 = 00 A:7F X:33 Y:CE P:65 SP:FB CYC:132 SL:45 D73C 20 80 F9 JSR $F980 A:7F X:33 Y:CE P:65 SP:FB CYC:144 SL:45 F980 38 SEC A:7F X:33 Y:CE P:65 SP:F9 CYC:162 SL:45 F981 A9 81 LDA #$81 A:7F X:33 Y:CE P:65 SP:F9 CYC:168 SL:45 F983 60 RTS A:81 X:33 Y:CE P:E5 SP:F9 CYC:174 SL:45 D73F ED 78 06 SBC $0678 = 7F A:81 X:33 Y:CE P:E5 SP:FB CYC:192 SL:45 D742 20 84 F9 JSR $F984 A:02 X:33 Y:CE P:65 SP:FB CYC:204 SL:45 F984 50 07 BVC $F98D A:02 X:33 Y:CE P:65 SP:F9 CYC:222 SL:45 F986 90 05 BCC $F98D A:02 X:33 Y:CE P:65 SP:F9 CYC:228 SL:45 F988 C9 02 CMP #$02 A:02 X:33 Y:CE P:65 SP:F9 CYC:234 SL:45 F98A D0 01 BNE $F98D A:02 X:33 Y:CE P:67 SP:F9 CYC:240 SL:45 F98C 60 RTS A:02 X:33 Y:CE P:67 SP:F9 CYC:246 SL:45 D745 C8 INY A:02 X:33 Y:CE P:67 SP:FB CYC:264 SL:45 D746 A9 40 LDA #$40 A:02 X:33 Y:CF P:E5 SP:FB CYC:270 SL:45 D748 8D 78 06 STA $0678 = 7F A:40 X:33 Y:CF P:65 SP:FB CYC:276 SL:45 D74B 20 89 F8 JSR $F889 A:40 X:33 Y:CF P:65 SP:FB CYC:288 SL:45 F889 24 01 BIT $01 = FF A:40 X:33 Y:CF P:65 SP:F9 CYC:306 SL:45 F88B A9 40 LDA #$40 A:40 X:33 Y:CF P:E5 SP:F9 CYC:315 SL:45 F88D 60 RTS A:40 X:33 Y:CF P:65 SP:F9 CYC:321 SL:45 D74E AA TAX A:40 X:33 Y:CF P:65 SP:FB CYC:339 SL:45 D74F EC 78 06 CPX $0678 = 40 A:40 X:40 Y:CF P:65 SP:FB CYC: 4 SL:46 D752 20 8E F8 JSR $F88E A:40 X:40 Y:CF P:67 SP:FB CYC: 16 SL:46 F88E 30 07 BMI $F897 A:40 X:40 Y:CF P:67 SP:F9 CYC: 34 SL:46 F890 90 05 BCC $F897 A:40 X:40 Y:CF P:67 SP:F9 CYC: 40 SL:46 F892 D0 03 BNE $F897 A:40 X:40 Y:CF P:67 SP:F9 CYC: 46 SL:46 F894 50 01 BVC $F897 A:40 X:40 Y:CF P:67 SP:F9 CYC: 52 SL:46 F896 60 RTS A:40 X:40 Y:CF P:67 SP:F9 CYC: 58 SL:46 D755 C8 INY A:40 X:40 Y:CF P:67 SP:FB CYC: 76 SL:46 D756 A9 3F LDA #$3F A:40 X:40 Y:D0 P:E5 SP:FB CYC: 82 SL:46 D758 8D 78 06 STA $0678 = 40 A:3F X:40 Y:D0 P:65 SP:FB CYC: 88 SL:46 D75B 20 9A F8 JSR $F89A A:3F X:40 Y:D0 P:65 SP:FB CYC:100 SL:46 F89A B8 CLV A:3F X:40 Y:D0 P:65 SP:F9 CYC:118 SL:46 F89B 60 RTS A:3F X:40 Y:D0 P:25 SP:F9 CYC:124 SL:46 D75E EC 78 06 CPX $0678 = 3F A:3F X:40 Y:D0 P:25 SP:FB CYC:142 SL:46 D761 20 9C F8 JSR $F89C A:3F X:40 Y:D0 P:25 SP:FB CYC:154 SL:46 F89C F0 07 BEQ $F8A5 A:3F X:40 Y:D0 P:25 SP:F9 CYC:172 SL:46 F89E 30 05 BMI $F8A5 A:3F X:40 Y:D0 P:25 SP:F9 CYC:178 SL:46 F8A0 90 03 BCC $F8A5 A:3F X:40 Y:D0 P:25 SP:F9 CYC:184 SL:46 F8A2 70 01 BVS $F8A5 A:3F X:40 Y:D0 P:25 SP:F9 CYC:190 SL:46 F8A4 60 RTS A:3F X:40 Y:D0 P:25 SP:F9 CYC:196 SL:46 D764 C8 INY A:3F X:40 Y:D0 P:25 SP:FB CYC:214 SL:46 D765 A9 41 LDA #$41 A:3F X:40 Y:D1 P:A5 SP:FB CYC:220 SL:46 D767 8D 78 06 STA $0678 = 3F A:41 X:40 Y:D1 P:25 SP:FB CYC:226 SL:46 D76A EC 78 06 CPX $0678 = 41 A:41 X:40 Y:D1 P:25 SP:FB CYC:238 SL:46 D76D 20 A8 F8 JSR $F8A8 A:41 X:40 Y:D1 P:A4 SP:FB CYC:250 SL:46 F8A8 F0 05 BEQ $F8AF A:41 X:40 Y:D1 P:A4 SP:F9 CYC:268 SL:46 F8AA 10 03 BPL $F8AF A:41 X:40 Y:D1 P:A4 SP:F9 CYC:274 SL:46 F8AC 10 01 BPL $F8AF A:41 X:40 Y:D1 P:A4 SP:F9 CYC:280 SL:46 F8AE 60 RTS A:41 X:40 Y:D1 P:A4 SP:F9 CYC:286 SL:46 D770 C8 INY A:41 X:40 Y:D1 P:A4 SP:FB CYC:304 SL:46 D771 A9 00 LDA #$00 A:41 X:40 Y:D2 P:A4 SP:FB CYC:310 SL:46 D773 8D 78 06 STA $0678 = 41 A:00 X:40 Y:D2 P:26 SP:FB CYC:316 SL:46 D776 20 B2 F8 JSR $F8B2 A:00 X:40 Y:D2 P:26 SP:FB CYC:328 SL:46 F8B2 A9 80 LDA #$80 A:00 X:40 Y:D2 P:26 SP:F9 CYC: 5 SL:47 F8B4 60 RTS A:80 X:40 Y:D2 P:A4 SP:F9 CYC: 11 SL:47 D779 AA TAX A:80 X:40 Y:D2 P:A4 SP:FB CYC: 29 SL:47 D77A EC 78 06 CPX $0678 = 00 A:80 X:80 Y:D2 P:A4 SP:FB CYC: 35 SL:47 D77D 20 B5 F8 JSR $F8B5 A:80 X:80 Y:D2 P:A5 SP:FB CYC: 47 SL:47 F8B5 F0 05 BEQ $F8BC A:80 X:80 Y:D2 P:A5 SP:F9 CYC: 65 SL:47 F8B7 10 03 BPL $F8BC A:80 X:80 Y:D2 P:A5 SP:F9 CYC: 71 SL:47 F8B9 90 01 BCC $F8BC A:80 X:80 Y:D2 P:A5 SP:F9 CYC: 77 SL:47 F8BB 60 RTS A:80 X:80 Y:D2 P:A5 SP:F9 CYC: 83 SL:47 D780 C8 INY A:80 X:80 Y:D2 P:A5 SP:FB CYC:101 SL:47 D781 A9 80 LDA #$80 A:80 X:80 Y:D3 P:A5 SP:FB CYC:107 SL:47 D783 8D 78 06 STA $0678 = 00 A:80 X:80 Y:D3 P:A5 SP:FB CYC:113 SL:47 D786 EC 78 06 CPX $0678 = 80 A:80 X:80 Y:D3 P:A5 SP:FB CYC:125 SL:47 D789 20 BF F8 JSR $F8BF A:80 X:80 Y:D3 P:27 SP:FB CYC:137 SL:47 F8BF D0 05 BNE $F8C6 A:80 X:80 Y:D3 P:27 SP:F9 CYC:155 SL:47 F8C1 30 03 BMI $F8C6 A:80 X:80 Y:D3 P:27 SP:F9 CYC:161 SL:47 F8C3 90 01 BCC $F8C6 A:80 X:80 Y:D3 P:27 SP:F9 CYC:167 SL:47 F8C5 60 RTS A:80 X:80 Y:D3 P:27 SP:F9 CYC:173 SL:47 D78C C8 INY A:80 X:80 Y:D3 P:27 SP:FB CYC:191 SL:47 D78D A9 81 LDA #$81 A:80 X:80 Y:D4 P:A5 SP:FB CYC:197 SL:47 D78F 8D 78 06 STA $0678 = 80 A:81 X:80 Y:D4 P:A5 SP:FB CYC:203 SL:47 D792 EC 78 06 CPX $0678 = 81 A:81 X:80 Y:D4 P:A5 SP:FB CYC:215 SL:47 D795 20 C9 F8 JSR $F8C9 A:81 X:80 Y:D4 P:A4 SP:FB CYC:227 SL:47 F8C9 B0 05 BCS $F8D0 A:81 X:80 Y:D4 P:A4 SP:F9 CYC:245 SL:47 F8CB F0 03 BEQ $F8D0 A:81 X:80 Y:D4 P:A4 SP:F9 CYC:251 SL:47 F8CD 10 01 BPL $F8D0 A:81 X:80 Y:D4 P:A4 SP:F9 CYC:257 SL:47 F8CF 60 RTS A:81 X:80 Y:D4 P:A4 SP:F9 CYC:263 SL:47 D798 C8 INY A:81 X:80 Y:D4 P:A4 SP:FB CYC:281 SL:47 D799 A9 7F LDA #$7F A:81 X:80 Y:D5 P:A4 SP:FB CYC:287 SL:47 D79B 8D 78 06 STA $0678 = 81 A:7F X:80 Y:D5 P:24 SP:FB CYC:293 SL:47 D79E EC 78 06 CPX $0678 = 7F A:7F X:80 Y:D5 P:24 SP:FB CYC:305 SL:47 D7A1 20 D3 F8 JSR $F8D3 A:7F X:80 Y:D5 P:25 SP:FB CYC:317 SL:47 F8D3 90 05 BCC $F8DA A:7F X:80 Y:D5 P:25 SP:F9 CYC:335 SL:47 F8D5 F0 03 BEQ $F8DA A:7F X:80 Y:D5 P:25 SP:F9 CYC: 0 SL:48 F8D7 30 01 BMI $F8DA A:7F X:80 Y:D5 P:25 SP:F9 CYC: 6 SL:48 F8D9 60 RTS A:7F X:80 Y:D5 P:25 SP:F9 CYC: 12 SL:48 D7A4 C8 INY A:7F X:80 Y:D5 P:25 SP:FB CYC: 30 SL:48 D7A5 98 TYA A:7F X:80 Y:D6 P:A5 SP:FB CYC: 36 SL:48 D7A6 AA TAX A:D6 X:80 Y:D6 P:A5 SP:FB CYC: 42 SL:48 D7A7 A9 40 LDA #$40 A:D6 X:D6 Y:D6 P:A5 SP:FB CYC: 48 SL:48 D7A9 8D 78 06 STA $0678 = 7F A:40 X:D6 Y:D6 P:25 SP:FB CYC: 54 SL:48 D7AC 20 DD F8 JSR $F8DD A:40 X:D6 Y:D6 P:25 SP:FB CYC: 66 SL:48 F8DD 24 01 BIT $01 = FF A:40 X:D6 Y:D6 P:25 SP:F9 CYC: 84 SL:48 F8DF A0 40 LDY #$40 A:40 X:D6 Y:D6 P:E5 SP:F9 CYC: 93 SL:48 F8E1 60 RTS A:40 X:D6 Y:40 P:65 SP:F9 CYC: 99 SL:48 D7AF CC 78 06 CPY $0678 = 40 A:40 X:D6 Y:40 P:65 SP:FB CYC:117 SL:48 D7B2 20 E2 F8 JSR $F8E2 A:40 X:D6 Y:40 P:67 SP:FB CYC:129 SL:48 F8E2 30 07 BMI $F8EB A:40 X:D6 Y:40 P:67 SP:F9 CYC:147 SL:48 F8E4 90 05 BCC $F8EB A:40 X:D6 Y:40 P:67 SP:F9 CYC:153 SL:48 F8E6 D0 03 BNE $F8EB A:40 X:D6 Y:40 P:67 SP:F9 CYC:159 SL:48 F8E8 50 01 BVC $F8EB A:40 X:D6 Y:40 P:67 SP:F9 CYC:165 SL:48 F8EA 60 RTS A:40 X:D6 Y:40 P:67 SP:F9 CYC:171 SL:48 D7B5 E8 INX A:40 X:D6 Y:40 P:67 SP:FB CYC:189 SL:48 D7B6 A9 3F LDA #$3F A:40 X:D7 Y:40 P:E5 SP:FB CYC:195 SL:48 D7B8 8D 78 06 STA $0678 = 40 A:3F X:D7 Y:40 P:65 SP:FB CYC:201 SL:48 D7BB 20 EE F8 JSR $F8EE A:3F X:D7 Y:40 P:65 SP:FB CYC:213 SL:48 F8EE B8 CLV A:3F X:D7 Y:40 P:65 SP:F9 CYC:231 SL:48 F8EF 60 RTS A:3F X:D7 Y:40 P:25 SP:F9 CYC:237 SL:48 D7BE CC 78 06 CPY $0678 = 3F A:3F X:D7 Y:40 P:25 SP:FB CYC:255 SL:48 D7C1 20 F0 F8 JSR $F8F0 A:3F X:D7 Y:40 P:25 SP:FB CYC:267 SL:48 F8F0 F0 07 BEQ $F8F9 A:3F X:D7 Y:40 P:25 SP:F9 CYC:285 SL:48 F8F2 30 05 BMI $F8F9 A:3F X:D7 Y:40 P:25 SP:F9 CYC:291 SL:48 F8F4 90 03 BCC $F8F9 A:3F X:D7 Y:40 P:25 SP:F9 CYC:297 SL:48 F8F6 70 01 BVS $F8F9 A:3F X:D7 Y:40 P:25 SP:F9 CYC:303 SL:48 F8F8 60 RTS A:3F X:D7 Y:40 P:25 SP:F9 CYC:309 SL:48 D7C4 E8 INX A:3F X:D7 Y:40 P:25 SP:FB CYC:327 SL:48 D7C5 A9 41 LDA #$41 A:3F X:D8 Y:40 P:A5 SP:FB CYC:333 SL:48 D7C7 8D 78 06 STA $0678 = 3F A:41 X:D8 Y:40 P:25 SP:FB CYC:339 SL:48 D7CA CC 78 06 CPY $0678 = 41 A:41 X:D8 Y:40 P:25 SP:FB CYC: 10 SL:49 D7CD 20 FC F8 JSR $F8FC A:41 X:D8 Y:40 P:A4 SP:FB CYC: 22 SL:49 F8FC F0 05 BEQ $F903 A:41 X:D8 Y:40 P:A4 SP:F9 CYC: 40 SL:49 F8FE 10 03 BPL $F903 A:41 X:D8 Y:40 P:A4 SP:F9 CYC: 46 SL:49 F900 10 01 BPL $F903 A:41 X:D8 Y:40 P:A4 SP:F9 CYC: 52 SL:49 F902 60 RTS A:41 X:D8 Y:40 P:A4 SP:F9 CYC: 58 SL:49 D7D0 E8 INX A:41 X:D8 Y:40 P:A4 SP:FB CYC: 76 SL:49 D7D1 A9 00 LDA #$00 A:41 X:D9 Y:40 P:A4 SP:FB CYC: 82 SL:49 D7D3 8D 78 06 STA $0678 = 41 A:00 X:D9 Y:40 P:26 SP:FB CYC: 88 SL:49 D7D6 20 06 F9 JSR $F906 A:00 X:D9 Y:40 P:26 SP:FB CYC:100 SL:49 F906 A0 80 LDY #$80 A:00 X:D9 Y:40 P:26 SP:F9 CYC:118 SL:49 F908 60 RTS A:00 X:D9 Y:80 P:A4 SP:F9 CYC:124 SL:49 D7D9 CC 78 06 CPY $0678 = 00 A:00 X:D9 Y:80 P:A4 SP:FB CYC:142 SL:49 D7DC 20 09 F9 JSR $F909 A:00 X:D9 Y:80 P:A5 SP:FB CYC:154 SL:49 F909 F0 05 BEQ $F910 A:00 X:D9 Y:80 P:A5 SP:F9 CYC:172 SL:49 F90B 10 03 BPL $F910 A:00 X:D9 Y:80 P:A5 SP:F9 CYC:178 SL:49 F90D 90 01 BCC $F910 A:00 X:D9 Y:80 P:A5 SP:F9 CYC:184 SL:49 F90F 60 RTS A:00 X:D9 Y:80 P:A5 SP:F9 CYC:190 SL:49 D7DF E8 INX A:00 X:D9 Y:80 P:A5 SP:FB CYC:208 SL:49 D7E0 A9 80 LDA #$80 A:00 X:DA Y:80 P:A5 SP:FB CYC:214 SL:49 D7E2 8D 78 06 STA $0678 = 00 A:80 X:DA Y:80 P:A5 SP:FB CYC:220 SL:49 D7E5 CC 78 06 CPY $0678 = 80 A:80 X:DA Y:80 P:A5 SP:FB CYC:232 SL:49 D7E8 20 13 F9 JSR $F913 A:80 X:DA Y:80 P:27 SP:FB CYC:244 SL:49 F913 D0 05 BNE $F91A A:80 X:DA Y:80 P:27 SP:F9 CYC:262 SL:49 F915 30 03 BMI $F91A A:80 X:DA Y:80 P:27 SP:F9 CYC:268 SL:49 F917 90 01 BCC $F91A A:80 X:DA Y:80 P:27 SP:F9 CYC:274 SL:49 F919 60 RTS A:80 X:DA Y:80 P:27 SP:F9 CYC:280 SL:49 D7EB E8 INX A:80 X:DA Y:80 P:27 SP:FB CYC:298 SL:49 D7EC A9 81 LDA #$81 A:80 X:DB Y:80 P:A5 SP:FB CYC:304 SL:49 D7EE 8D 78 06 STA $0678 = 80 A:81 X:DB Y:80 P:A5 SP:FB CYC:310 SL:49 D7F1 CC 78 06 CPY $0678 = 81 A:81 X:DB Y:80 P:A5 SP:FB CYC:322 SL:49 D7F4 20 1D F9 JSR $F91D A:81 X:DB Y:80 P:A4 SP:FB CYC:334 SL:49 F91D B0 05 BCS $F924 A:81 X:DB Y:80 P:A4 SP:F9 CYC: 11 SL:50 F91F F0 03 BEQ $F924 A:81 X:DB Y:80 P:A4 SP:F9 CYC: 17 SL:50 F921 10 01 BPL $F924 A:81 X:DB Y:80 P:A4 SP:F9 CYC: 23 SL:50 F923 60 RTS A:81 X:DB Y:80 P:A4 SP:F9 CYC: 29 SL:50 D7F7 E8 INX A:81 X:DB Y:80 P:A4 SP:FB CYC: 47 SL:50 D7F8 A9 7F LDA #$7F A:81 X:DC Y:80 P:A4 SP:FB CYC: 53 SL:50 D7FA 8D 78 06 STA $0678 = 81 A:7F X:DC Y:80 P:24 SP:FB CYC: 59 SL:50 D7FD CC 78 06 CPY $0678 = 7F A:7F X:DC Y:80 P:24 SP:FB CYC: 71 SL:50 D800 20 27 F9 JSR $F927 A:7F X:DC Y:80 P:25 SP:FB CYC: 83 SL:50 F927 90 05 BCC $F92E A:7F X:DC Y:80 P:25 SP:F9 CYC:101 SL:50 F929 F0 03 BEQ $F92E A:7F X:DC Y:80 P:25 SP:F9 CYC:107 SL:50 F92B 30 01 BMI $F92E A:7F X:DC Y:80 P:25 SP:F9 CYC:113 SL:50 F92D 60 RTS A:7F X:DC Y:80 P:25 SP:F9 CYC:119 SL:50 D803 E8 INX A:7F X:DC Y:80 P:25 SP:FB CYC:137 SL:50 D804 8A TXA A:7F X:DD Y:80 P:A5 SP:FB CYC:143 SL:50 D805 A8 TAY A:DD X:DD Y:80 P:A5 SP:FB CYC:149 SL:50 D806 20 90 F9 JSR $F990 A:DD X:DD Y:DD P:A5 SP:FB CYC:155 SL:50 F990 A2 55 LDX #$55 A:DD X:DD Y:DD P:A5 SP:F9 CYC:173 SL:50 F992 A9 FF LDA #$FF A:DD X:55 Y:DD P:25 SP:F9 CYC:179 SL:50 F994 85 01 STA $01 = FF A:FF X:55 Y:DD P:A5 SP:F9 CYC:185 SL:50 F996 EA NOP A:FF X:55 Y:DD P:A5 SP:F9 CYC:194 SL:50 F997 24 01 BIT $01 = FF A:FF X:55 Y:DD P:A5 SP:F9 CYC:200 SL:50 F999 38 SEC A:FF X:55 Y:DD P:E5 SP:F9 CYC:209 SL:50 F99A A9 01 LDA #$01 A:FF X:55 Y:DD P:E5 SP:F9 CYC:215 SL:50 F99C 60 RTS A:01 X:55 Y:DD P:65 SP:F9 CYC:221 SL:50 D809 8D 78 06 STA $0678 = 7F A:01 X:55 Y:DD P:65 SP:FB CYC:239 SL:50 D80C 4E 78 06 LSR $0678 = 01 A:01 X:55 Y:DD P:65 SP:FB CYC:251 SL:50 D80F AD 78 06 LDA $0678 = 00 A:01 X:55 Y:DD P:67 SP:FB CYC:269 SL:50 D812 20 9D F9 JSR $F99D A:00 X:55 Y:DD P:67 SP:FB CYC:281 SL:50 F99D 90 1B BCC $F9BA A:00 X:55 Y:DD P:67 SP:F9 CYC:299 SL:50 F99F D0 19 BNE $F9BA A:00 X:55 Y:DD P:67 SP:F9 CYC:305 SL:50 F9A1 30 17 BMI $F9BA A:00 X:55 Y:DD P:67 SP:F9 CYC:311 SL:50 F9A3 50 15 BVC $F9BA A:00 X:55 Y:DD P:67 SP:F9 CYC:317 SL:50 F9A5 C9 00 CMP #$00 A:00 X:55 Y:DD P:67 SP:F9 CYC:323 SL:50 F9A7 D0 11 BNE $F9BA A:00 X:55 Y:DD P:67 SP:F9 CYC:329 SL:50 F9A9 B8 CLV A:00 X:55 Y:DD P:67 SP:F9 CYC:335 SL:50 F9AA A9 AA LDA #$AA A:00 X:55 Y:DD P:27 SP:F9 CYC: 0 SL:51 F9AC 60 RTS A:AA X:55 Y:DD P:A5 SP:F9 CYC: 6 SL:51 D815 C8 INY A:AA X:55 Y:DD P:A5 SP:FB CYC: 24 SL:51 D816 8D 78 06 STA $0678 = 00 A:AA X:55 Y:DE P:A5 SP:FB CYC: 30 SL:51 D819 4E 78 06 LSR $0678 = AA A:AA X:55 Y:DE P:A5 SP:FB CYC: 42 SL:51 D81C AD 78 06 LDA $0678 = 55 A:AA X:55 Y:DE P:24 SP:FB CYC: 60 SL:51 D81F 20 AD F9 JSR $F9AD A:55 X:55 Y:DE P:24 SP:FB CYC: 72 SL:51 F9AD B0 0B BCS $F9BA A:55 X:55 Y:DE P:24 SP:F9 CYC: 90 SL:51 F9AF F0 09 BEQ $F9BA A:55 X:55 Y:DE P:24 SP:F9 CYC: 96 SL:51 F9B1 30 07 BMI $F9BA A:55 X:55 Y:DE P:24 SP:F9 CYC:102 SL:51 F9B3 70 05 BVS $F9BA A:55 X:55 Y:DE P:24 SP:F9 CYC:108 SL:51 F9B5 C9 55 CMP #$55 A:55 X:55 Y:DE P:24 SP:F9 CYC:114 SL:51 F9B7 D0 01 BNE $F9BA A:55 X:55 Y:DE P:27 SP:F9 CYC:120 SL:51 F9B9 60 RTS A:55 X:55 Y:DE P:27 SP:F9 CYC:126 SL:51 D822 C8 INY A:55 X:55 Y:DE P:27 SP:FB CYC:144 SL:51 D823 20 BD F9 JSR $F9BD A:55 X:55 Y:DF P:A5 SP:FB CYC:150 SL:51 F9BD 24 01 BIT $01 = FF A:55 X:55 Y:DF P:A5 SP:F9 CYC:168 SL:51 F9BF 38 SEC A:55 X:55 Y:DF P:E5 SP:F9 CYC:177 SL:51 F9C0 A9 80 LDA #$80 A:55 X:55 Y:DF P:E5 SP:F9 CYC:183 SL:51 F9C2 60 RTS A:80 X:55 Y:DF P:E5 SP:F9 CYC:189 SL:51 D826 8D 78 06 STA $0678 = 55 A:80 X:55 Y:DF P:E5 SP:FB CYC:207 SL:51 D829 0E 78 06 ASL $0678 = 80 A:80 X:55 Y:DF P:E5 SP:FB CYC:219 SL:51 D82C AD 78 06 LDA $0678 = 00 A:80 X:55 Y:DF P:67 SP:FB CYC:237 SL:51 D82F 20 C3 F9 JSR $F9C3 A:00 X:55 Y:DF P:67 SP:FB CYC:249 SL:51 F9C3 90 1C BCC $F9E1 A:00 X:55 Y:DF P:67 SP:F9 CYC:267 SL:51 F9C5 D0 1A BNE $F9E1 A:00 X:55 Y:DF P:67 SP:F9 CYC:273 SL:51 F9C7 30 18 BMI $F9E1 A:00 X:55 Y:DF P:67 SP:F9 CYC:279 SL:51 F9C9 50 16 BVC $F9E1 A:00 X:55 Y:DF P:67 SP:F9 CYC:285 SL:51 F9CB C9 00 CMP #$00 A:00 X:55 Y:DF P:67 SP:F9 CYC:291 SL:51 F9CD D0 12 BNE $F9E1 A:00 X:55 Y:DF P:67 SP:F9 CYC:297 SL:51 F9CF B8 CLV A:00 X:55 Y:DF P:67 SP:F9 CYC:303 SL:51 F9D0 A9 55 LDA #$55 A:00 X:55 Y:DF P:27 SP:F9 CYC:309 SL:51 F9D2 38 SEC A:55 X:55 Y:DF P:25 SP:F9 CYC:315 SL:51 F9D3 60 RTS A:55 X:55 Y:DF P:25 SP:F9 CYC:321 SL:51 D832 C8 INY A:55 X:55 Y:DF P:25 SP:FB CYC:339 SL:51 D833 8D 78 06 STA $0678 = 00 A:55 X:55 Y:E0 P:A5 SP:FB CYC: 4 SL:52 D836 0E 78 06 ASL $0678 = 55 A:55 X:55 Y:E0 P:A5 SP:FB CYC: 16 SL:52 D839 AD 78 06 LDA $0678 = AA A:55 X:55 Y:E0 P:A4 SP:FB CYC: 34 SL:52 D83C 20 D4 F9 JSR $F9D4 A:AA X:55 Y:E0 P:A4 SP:FB CYC: 46 SL:52 F9D4 B0 0B BCS $F9E1 A:AA X:55 Y:E0 P:A4 SP:F9 CYC: 64 SL:52 F9D6 F0 09 BEQ $F9E1 A:AA X:55 Y:E0 P:A4 SP:F9 CYC: 70 SL:52 F9D8 10 07 BPL $F9E1 A:AA X:55 Y:E0 P:A4 SP:F9 CYC: 76 SL:52 F9DA 70 05 BVS $F9E1 A:AA X:55 Y:E0 P:A4 SP:F9 CYC: 82 SL:52 F9DC C9 AA CMP #$AA A:AA X:55 Y:E0 P:A4 SP:F9 CYC: 88 SL:52 F9DE D0 01 BNE $F9E1 A:AA X:55 Y:E0 P:27 SP:F9 CYC: 94 SL:52 F9E0 60 RTS A:AA X:55 Y:E0 P:27 SP:F9 CYC:100 SL:52 D83F C8 INY A:AA X:55 Y:E0 P:27 SP:FB CYC:118 SL:52 D840 20 E4 F9 JSR $F9E4 A:AA X:55 Y:E1 P:A5 SP:FB CYC:124 SL:52 F9E4 24 01 BIT $01 = FF A:AA X:55 Y:E1 P:A5 SP:F9 CYC:142 SL:52 F9E6 38 SEC A:AA X:55 Y:E1 P:E5 SP:F9 CYC:151 SL:52 F9E7 A9 01 LDA #$01 A:AA X:55 Y:E1 P:E5 SP:F9 CYC:157 SL:52 F9E9 60 RTS A:01 X:55 Y:E1 P:65 SP:F9 CYC:163 SL:52 D843 8D 78 06 STA $0678 = AA A:01 X:55 Y:E1 P:65 SP:FB CYC:181 SL:52 D846 6E 78 06 ROR $0678 = 01 A:01 X:55 Y:E1 P:65 SP:FB CYC:193 SL:52 D849 AD 78 06 LDA $0678 = 80 A:01 X:55 Y:E1 P:E5 SP:FB CYC:211 SL:52 D84C 20 EA F9 JSR $F9EA A:80 X:55 Y:E1 P:E5 SP:FB CYC:223 SL:52 F9EA 90 1C BCC $FA08 A:80 X:55 Y:E1 P:E5 SP:F9 CYC:241 SL:52 F9EC F0 1A BEQ $FA08 A:80 X:55 Y:E1 P:E5 SP:F9 CYC:247 SL:52 F9EE 10 18 BPL $FA08 A:80 X:55 Y:E1 P:E5 SP:F9 CYC:253 SL:52 F9F0 50 16 BVC $FA08 A:80 X:55 Y:E1 P:E5 SP:F9 CYC:259 SL:52 F9F2 C9 80 CMP #$80 A:80 X:55 Y:E1 P:E5 SP:F9 CYC:265 SL:52 F9F4 D0 12 BNE $FA08 A:80 X:55 Y:E1 P:67 SP:F9 CYC:271 SL:52 F9F6 B8 CLV A:80 X:55 Y:E1 P:67 SP:F9 CYC:277 SL:52 F9F7 18 CLC A:80 X:55 Y:E1 P:27 SP:F9 CYC:283 SL:52 F9F8 A9 55 LDA #$55 A:80 X:55 Y:E1 P:26 SP:F9 CYC:289 SL:52 F9FA 60 RTS A:55 X:55 Y:E1 P:24 SP:F9 CYC:295 SL:52 D84F C8 INY A:55 X:55 Y:E1 P:24 SP:FB CYC:313 SL:52 D850 8D 78 06 STA $0678 = 80 A:55 X:55 Y:E2 P:A4 SP:FB CYC:319 SL:52 D853 6E 78 06 ROR $0678 = 55 A:55 X:55 Y:E2 P:A4 SP:FB CYC:331 SL:52 D856 AD 78 06 LDA $0678 = 2A A:55 X:55 Y:E2 P:25 SP:FB CYC: 8 SL:53 D859 20 FB F9 JSR $F9FB A:2A X:55 Y:E2 P:25 SP:FB CYC: 20 SL:53 F9FB 90 0B BCC $FA08 A:2A X:55 Y:E2 P:25 SP:F9 CYC: 38 SL:53 F9FD F0 09 BEQ $FA08 A:2A X:55 Y:E2 P:25 SP:F9 CYC: 44 SL:53 F9FF 30 07 BMI $FA08 A:2A X:55 Y:E2 P:25 SP:F9 CYC: 50 SL:53 FA01 70 05 BVS $FA08 A:2A X:55 Y:E2 P:25 SP:F9 CYC: 56 SL:53 FA03 C9 2A CMP #$2A A:2A X:55 Y:E2 P:25 SP:F9 CYC: 62 SL:53 FA05 D0 01 BNE $FA08 A:2A X:55 Y:E2 P:27 SP:F9 CYC: 68 SL:53 FA07 60 RTS A:2A X:55 Y:E2 P:27 SP:F9 CYC: 74 SL:53 D85C C8 INY A:2A X:55 Y:E2 P:27 SP:FB CYC: 92 SL:53 D85D 20 0A FA JSR $FA0A A:2A X:55 Y:E3 P:A5 SP:FB CYC: 98 SL:53 FA0A 24 01 BIT $01 = FF A:2A X:55 Y:E3 P:A5 SP:F9 CYC:116 SL:53 FA0C 38 SEC A:2A X:55 Y:E3 P:E5 SP:F9 CYC:125 SL:53 FA0D A9 80 LDA #$80 A:2A X:55 Y:E3 P:E5 SP:F9 CYC:131 SL:53 FA0F 60 RTS A:80 X:55 Y:E3 P:E5 SP:F9 CYC:137 SL:53 D860 8D 78 06 STA $0678 = 2A A:80 X:55 Y:E3 P:E5 SP:FB CYC:155 SL:53 D863 2E 78 06 ROL $0678 = 80 A:80 X:55 Y:E3 P:E5 SP:FB CYC:167 SL:53 D866 AD 78 06 LDA $0678 = 01 A:80 X:55 Y:E3 P:65 SP:FB CYC:185 SL:53 D869 20 10 FA JSR $FA10 A:01 X:55 Y:E3 P:65 SP:FB CYC:197 SL:53 FA10 90 1C BCC $FA2E A:01 X:55 Y:E3 P:65 SP:F9 CYC:215 SL:53 FA12 F0 1A BEQ $FA2E A:01 X:55 Y:E3 P:65 SP:F9 CYC:221 SL:53 FA14 30 18 BMI $FA2E A:01 X:55 Y:E3 P:65 SP:F9 CYC:227 SL:53 FA16 50 16 BVC $FA2E A:01 X:55 Y:E3 P:65 SP:F9 CYC:233 SL:53 FA18 C9 01 CMP #$01 A:01 X:55 Y:E3 P:65 SP:F9 CYC:239 SL:53 FA1A D0 12 BNE $FA2E A:01 X:55 Y:E3 P:67 SP:F9 CYC:245 SL:53 FA1C B8 CLV A:01 X:55 Y:E3 P:67 SP:F9 CYC:251 SL:53 FA1D 18 CLC A:01 X:55 Y:E3 P:27 SP:F9 CYC:257 SL:53 FA1E A9 55 LDA #$55 A:01 X:55 Y:E3 P:26 SP:F9 CYC:263 SL:53 FA20 60 RTS A:55 X:55 Y:E3 P:24 SP:F9 CYC:269 SL:53 D86C C8 INY A:55 X:55 Y:E3 P:24 SP:FB CYC:287 SL:53 D86D 8D 78 06 STA $0678 = 01 A:55 X:55 Y:E4 P:A4 SP:FB CYC:293 SL:53 D870 2E 78 06 ROL $0678 = 55 A:55 X:55 Y:E4 P:A4 SP:FB CYC:305 SL:53 D873 AD 78 06 LDA $0678 = AA A:55 X:55 Y:E4 P:A4 SP:FB CYC:323 SL:53 D876 20 21 FA JSR $FA21 A:AA X:55 Y:E4 P:A4 SP:FB CYC:335 SL:53 FA21 B0 0B BCS $FA2E A:AA X:55 Y:E4 P:A4 SP:F9 CYC: 12 SL:54 FA23 F0 09 BEQ $FA2E A:AA X:55 Y:E4 P:A4 SP:F9 CYC: 18 SL:54 FA25 10 07 BPL $FA2E A:AA X:55 Y:E4 P:A4 SP:F9 CYC: 24 SL:54 FA27 70 05 BVS $FA2E A:AA X:55 Y:E4 P:A4 SP:F9 CYC: 30 SL:54 FA29 C9 AA CMP #$AA A:AA X:55 Y:E4 P:A4 SP:F9 CYC: 36 SL:54 FA2B D0 01 BNE $FA2E A:AA X:55 Y:E4 P:27 SP:F9 CYC: 42 SL:54 FA2D 60 RTS A:AA X:55 Y:E4 P:27 SP:F9 CYC: 48 SL:54 D879 A9 FF LDA #$FF A:AA X:55 Y:E4 P:27 SP:FB CYC: 66 SL:54 D87B 8D 78 06 STA $0678 = AA A:FF X:55 Y:E4 P:A5 SP:FB CYC: 72 SL:54 D87E 85 01 STA $01 = FF A:FF X:55 Y:E4 P:A5 SP:FB CYC: 84 SL:54 D880 24 01 BIT $01 = FF A:FF X:55 Y:E4 P:A5 SP:FB CYC: 93 SL:54 D882 38 SEC A:FF X:55 Y:E4 P:E5 SP:FB CYC:102 SL:54 D883 EE 78 06 INC $0678 = FF A:FF X:55 Y:E4 P:E5 SP:FB CYC:108 SL:54 D886 D0 0D BNE $D895 A:FF X:55 Y:E4 P:67 SP:FB CYC:126 SL:54 D888 30 0B BMI $D895 A:FF X:55 Y:E4 P:67 SP:FB CYC:132 SL:54 D88A 50 09 BVC $D895 A:FF X:55 Y:E4 P:67 SP:FB CYC:138 SL:54 D88C 90 07 BCC $D895 A:FF X:55 Y:E4 P:67 SP:FB CYC:144 SL:54 D88E AD 78 06 LDA $0678 = 00 A:FF X:55 Y:E4 P:67 SP:FB CYC:150 SL:54 D891 C9 00 CMP #$00 A:00 X:55 Y:E4 P:67 SP:FB CYC:162 SL:54 D893 F0 04 BEQ $D899 A:00 X:55 Y:E4 P:67 SP:FB CYC:168 SL:54 D899 A9 7F LDA #$7F A:00 X:55 Y:E4 P:67 SP:FB CYC:177 SL:54 D89B 8D 78 06 STA $0678 = 00 A:7F X:55 Y:E4 P:65 SP:FB CYC:183 SL:54 D89E B8 CLV A:7F X:55 Y:E4 P:65 SP:FB CYC:195 SL:54 D89F 18 CLC A:7F X:55 Y:E4 P:25 SP:FB CYC:201 SL:54 D8A0 EE 78 06 INC $0678 = 7F A:7F X:55 Y:E4 P:24 SP:FB CYC:207 SL:54 D8A3 F0 0D BEQ $D8B2 A:7F X:55 Y:E4 P:A4 SP:FB CYC:225 SL:54 D8A5 10 0B BPL $D8B2 A:7F X:55 Y:E4 P:A4 SP:FB CYC:231 SL:54 D8A7 70 09 BVS $D8B2 A:7F X:55 Y:E4 P:A4 SP:FB CYC:237 SL:54 D8A9 B0 07 BCS $D8B2 A:7F X:55 Y:E4 P:A4 SP:FB CYC:243 SL:54 D8AB AD 78 06 LDA $0678 = 80 A:7F X:55 Y:E4 P:A4 SP:FB CYC:249 SL:54 D8AE C9 80 CMP #$80 A:80 X:55 Y:E4 P:A4 SP:FB CYC:261 SL:54 D8B0 F0 04 BEQ $D8B6 A:80 X:55 Y:E4 P:27 SP:FB CYC:267 SL:54 D8B6 A9 00 LDA #$00 A:80 X:55 Y:E4 P:27 SP:FB CYC:276 SL:54 D8B8 8D 78 06 STA $0678 = 80 A:00 X:55 Y:E4 P:27 SP:FB CYC:282 SL:54 D8BB 24 01 BIT $01 = FF A:00 X:55 Y:E4 P:27 SP:FB CYC:294 SL:54 D8BD 38 SEC A:00 X:55 Y:E4 P:E7 SP:FB CYC:303 SL:54 D8BE CE 78 06 DEC $0678 = 00 A:00 X:55 Y:E4 P:E7 SP:FB CYC:309 SL:54 D8C1 F0 0D BEQ $D8D0 A:00 X:55 Y:E4 P:E5 SP:FB CYC:327 SL:54 D8C3 10 0B BPL $D8D0 A:00 X:55 Y:E4 P:E5 SP:FB CYC:333 SL:54 D8C5 50 09 BVC $D8D0 A:00 X:55 Y:E4 P:E5 SP:FB CYC:339 SL:54 D8C7 90 07 BCC $D8D0 A:00 X:55 Y:E4 P:E5 SP:FB CYC: 4 SL:55 D8C9 AD 78 06 LDA $0678 = FF A:00 X:55 Y:E4 P:E5 SP:FB CYC: 10 SL:55 D8CC C9 FF CMP #$FF A:FF X:55 Y:E4 P:E5 SP:FB CYC: 22 SL:55 D8CE F0 04 BEQ $D8D4 A:FF X:55 Y:E4 P:67 SP:FB CYC: 28 SL:55 D8D4 A9 80 LDA #$80 A:FF X:55 Y:E4 P:67 SP:FB CYC: 37 SL:55 D8D6 8D 78 06 STA $0678 = FF A:80 X:55 Y:E4 P:E5 SP:FB CYC: 43 SL:55 D8D9 B8 CLV A:80 X:55 Y:E4 P:E5 SP:FB CYC: 55 SL:55 D8DA 18 CLC A:80 X:55 Y:E4 P:A5 SP:FB CYC: 61 SL:55 D8DB CE 78 06 DEC $0678 = 80 A:80 X:55 Y:E4 P:A4 SP:FB CYC: 67 SL:55 D8DE F0 0D BEQ $D8ED A:80 X:55 Y:E4 P:24 SP:FB CYC: 85 SL:55 D8E0 30 0B BMI $D8ED A:80 X:55 Y:E4 P:24 SP:FB CYC: 91 SL:55 D8E2 70 09 BVS $D8ED A:80 X:55 Y:E4 P:24 SP:FB CYC: 97 SL:55 D8E4 B0 07 BCS $D8ED A:80 X:55 Y:E4 P:24 SP:FB CYC:103 SL:55 D8E6 AD 78 06 LDA $0678 = 7F A:80 X:55 Y:E4 P:24 SP:FB CYC:109 SL:55 D8E9 C9 7F CMP #$7F A:7F X:55 Y:E4 P:24 SP:FB CYC:121 SL:55 D8EB F0 04 BEQ $D8F1 A:7F X:55 Y:E4 P:27 SP:FB CYC:127 SL:55 D8F1 A9 01 LDA #$01 A:7F X:55 Y:E4 P:27 SP:FB CYC:136 SL:55 D8F3 8D 78 06 STA $0678 = 7F A:01 X:55 Y:E4 P:25 SP:FB CYC:142 SL:55 D8F6 CE 78 06 DEC $0678 = 01 A:01 X:55 Y:E4 P:25 SP:FB CYC:154 SL:55 D8F9 F0 04 BEQ $D8FF A:01 X:55 Y:E4 P:27 SP:FB CYC:172 SL:55 D8FF 60 RTS A:01 X:55 Y:E4 P:27 SP:FB CYC:181 SL:55 C618 20 00 D9 JSR $D900 A:01 X:55 Y:E4 P:27 SP:FD CYC:199 SL:55 D900 A9 A3 LDA #$A3 A:01 X:55 Y:E4 P:27 SP:FB CYC:217 SL:55 D902 85 33 STA $33 = 00 A:A3 X:55 Y:E4 P:A5 SP:FB CYC:223 SL:55 D904 A9 89 LDA #$89 A:A3 X:55 Y:E4 P:A5 SP:FB CYC:232 SL:55 D906 8D 00 03 STA $0300 = 70 A:89 X:55 Y:E4 P:A5 SP:FB CYC:238 SL:55 D909 A9 12 LDA #$12 A:89 X:55 Y:E4 P:A5 SP:FB CYC:250 SL:55 D90B 8D 45 02 STA $0245 = 00 A:12 X:55 Y:E4 P:25 SP:FB CYC:256 SL:55 D90E A9 FF LDA #$FF A:12 X:55 Y:E4 P:25 SP:FB CYC:268 SL:55 D910 85 01 STA $01 = FF A:FF X:55 Y:E4 P:A5 SP:FB CYC:274 SL:55 D912 A2 65 LDX #$65 A:FF X:55 Y:E4 P:A5 SP:FB CYC:283 SL:55 D914 A9 00 LDA #$00 A:FF X:65 Y:E4 P:25 SP:FB CYC:289 SL:55 D916 85 89 STA $89 = 00 A:00 X:65 Y:E4 P:27 SP:FB CYC:295 SL:55 D918 A9 03 LDA #$03 A:00 X:65 Y:E4 P:27 SP:FB CYC:304 SL:55 D91A 85 8A STA $8A = 00 A:03 X:65 Y:E4 P:25 SP:FB CYC:310 SL:55 D91C A0 00 LDY #$00 A:03 X:65 Y:E4 P:25 SP:FB CYC:319 SL:55 D91E 38 SEC A:03 X:65 Y:00 P:27 SP:FB CYC:325 SL:55 D91F A9 00 LDA #$00 A:03 X:65 Y:00 P:27 SP:FB CYC:331 SL:55 D921 B8 CLV A:00 X:65 Y:00 P:27 SP:FB CYC:337 SL:55 D922 B1 89 LDA ($89),Y = 0300 @ 0300 = 89 A:00 X:65 Y:00 P:27 SP:FB CYC: 2 SL:56 D924 F0 0C BEQ $D932 A:89 X:65 Y:00 P:A5 SP:FB CYC: 17 SL:56 D926 90 0A BCC $D932 A:89 X:65 Y:00 P:A5 SP:FB CYC: 23 SL:56 D928 70 08 BVS $D932 A:89 X:65 Y:00 P:A5 SP:FB CYC: 29 SL:56 D92A C9 89 CMP #$89 A:89 X:65 Y:00 P:A5 SP:FB CYC: 35 SL:56 D92C D0 04 BNE $D932 A:89 X:65 Y:00 P:27 SP:FB CYC: 41 SL:56 D92E E0 65 CPX #$65 A:89 X:65 Y:00 P:27 SP:FB CYC: 47 SL:56 D930 F0 04 BEQ $D936 A:89 X:65 Y:00 P:27 SP:FB CYC: 53 SL:56 D936 A9 FF LDA #$FF A:89 X:65 Y:00 P:27 SP:FB CYC: 62 SL:56 D938 85 97 STA $97 = 00 A:FF X:65 Y:00 P:A5 SP:FB CYC: 68 SL:56 D93A 85 98 STA $98 = 00 A:FF X:65 Y:00 P:A5 SP:FB CYC: 77 SL:56 D93C 24 98 BIT $98 = FF A:FF X:65 Y:00 P:A5 SP:FB CYC: 86 SL:56 D93E A0 34 LDY #$34 A:FF X:65 Y:00 P:E5 SP:FB CYC: 95 SL:56 D940 B1 97 LDA ($97),Y = FFFF @ 0033 = A3 A:FF X:65 Y:34 P:65 SP:FB CYC:101 SL:56 D942 C9 A3 CMP #$A3 A:A3 X:65 Y:34 P:E5 SP:FB CYC:119 SL:56 D944 D0 02 BNE $D948 A:A3 X:65 Y:34 P:67 SP:FB CYC:125 SL:56 D946 B0 04 BCS $D94C A:A3 X:65 Y:34 P:67 SP:FB CYC:131 SL:56 D94C A5 00 LDA $00 = 00 A:A3 X:65 Y:34 P:67 SP:FB CYC:140 SL:56 D94E 48 PHA A:00 X:65 Y:34 P:67 SP:FB CYC:149 SL:56 D94F A9 46 LDA #$46 A:00 X:65 Y:34 P:67 SP:FA CYC:158 SL:56 D951 85 FF STA $FF = 00 A:46 X:65 Y:34 P:65 SP:FA CYC:164 SL:56 D953 A9 01 LDA #$01 A:46 X:65 Y:34 P:65 SP:FA CYC:173 SL:56 D955 85 00 STA $00 = 00 A:01 X:65 Y:34 P:65 SP:FA CYC:179 SL:56 D957 A0 FF LDY #$FF A:01 X:65 Y:34 P:65 SP:FA CYC:188 SL:56 D959 B1 FF LDA ($FF),Y = 0146 @ 0245 = 12 A:01 X:65 Y:FF P:E5 SP:FA CYC:194 SL:56 D95B C9 12 CMP #$12 A:12 X:65 Y:FF P:65 SP:FA CYC:212 SL:56 D95D F0 04 BEQ $D963 A:12 X:65 Y:FF P:67 SP:FA CYC:218 SL:56 D963 68 PLA A:12 X:65 Y:FF P:67 SP:FA CYC:227 SL:56 D964 85 00 STA $00 = 01 A:00 X:65 Y:FF P:67 SP:FB CYC:239 SL:56 D966 A2 ED LDX #$ED A:00 X:65 Y:FF P:67 SP:FB CYC:248 SL:56 D968 A9 00 LDA #$00 A:00 X:ED Y:FF P:E5 SP:FB CYC:254 SL:56 D96A 85 33 STA $33 = A3 A:00 X:ED Y:FF P:67 SP:FB CYC:260 SL:56 D96C A9 04 LDA #$04 A:00 X:ED Y:FF P:67 SP:FB CYC:269 SL:56 D96E 85 34 STA $34 = 00 A:04 X:ED Y:FF P:65 SP:FB CYC:275 SL:56 D970 A0 00 LDY #$00 A:04 X:ED Y:FF P:65 SP:FB CYC:284 SL:56 D972 18 CLC A:04 X:ED Y:00 P:67 SP:FB CYC:290 SL:56 D973 A9 FF LDA #$FF A:04 X:ED Y:00 P:66 SP:FB CYC:296 SL:56 D975 85 01 STA $01 = FF A:FF X:ED Y:00 P:E4 SP:FB CYC:302 SL:56 D977 24 01 BIT $01 = FF A:FF X:ED Y:00 P:E4 SP:FB CYC:311 SL:56 D979 A9 AA LDA #$AA A:FF X:ED Y:00 P:E4 SP:FB CYC:320 SL:56 D97B 8D 00 04 STA $0400 = AD A:AA X:ED Y:00 P:E4 SP:FB CYC:326 SL:56 D97E A9 55 LDA #$55 A:AA X:ED Y:00 P:E4 SP:FB CYC:338 SL:56 D980 11 33 ORA ($33),Y = 0400 @ 0400 = AA A:55 X:ED Y:00 P:64 SP:FB CYC: 3 SL:57 D982 B0 08 BCS $D98C A:FF X:ED Y:00 P:E4 SP:FB CYC: 18 SL:57 D984 10 06 BPL $D98C A:FF X:ED Y:00 P:E4 SP:FB CYC: 24 SL:57 D986 C9 FF CMP #$FF A:FF X:ED Y:00 P:E4 SP:FB CYC: 30 SL:57 D988 D0 02 BNE $D98C A:FF X:ED Y:00 P:67 SP:FB CYC: 36 SL:57 D98A 70 02 BVS $D98E A:FF X:ED Y:00 P:67 SP:FB CYC: 42 SL:57 D98E E8 INX A:FF X:ED Y:00 P:67 SP:FB CYC: 51 SL:57 D98F 38 SEC A:FF X:EE Y:00 P:E5 SP:FB CYC: 57 SL:57 D990 B8 CLV A:FF X:EE Y:00 P:E5 SP:FB CYC: 63 SL:57 D991 A9 00 LDA #$00 A:FF X:EE Y:00 P:A5 SP:FB CYC: 69 SL:57 D993 11 33 ORA ($33),Y = 0400 @ 0400 = AA A:00 X:EE Y:00 P:27 SP:FB CYC: 75 SL:57 D995 F0 06 BEQ $D99D A:AA X:EE Y:00 P:A5 SP:FB CYC: 90 SL:57 D997 70 04 BVS $D99D A:AA X:EE Y:00 P:A5 SP:FB CYC: 96 SL:57 D999 90 02 BCC $D99D A:AA X:EE Y:00 P:A5 SP:FB CYC:102 SL:57 D99B 30 02 BMI $D99F A:AA X:EE Y:00 P:A5 SP:FB CYC:108 SL:57 D99F E8 INX A:AA X:EE Y:00 P:A5 SP:FB CYC:117 SL:57 D9A0 18 CLC A:AA X:EF Y:00 P:A5 SP:FB CYC:123 SL:57 D9A1 24 01 BIT $01 = FF A:AA X:EF Y:00 P:A4 SP:FB CYC:129 SL:57 D9A3 A9 55 LDA #$55 A:AA X:EF Y:00 P:E4 SP:FB CYC:138 SL:57 D9A5 31 33 AND ($33),Y = 0400 @ 0400 = AA A:55 X:EF Y:00 P:64 SP:FB CYC:144 SL:57 D9A7 D0 06 BNE $D9AF A:00 X:EF Y:00 P:66 SP:FB CYC:159 SL:57 D9A9 50 04 BVC $D9AF A:00 X:EF Y:00 P:66 SP:FB CYC:165 SL:57 D9AB B0 02 BCS $D9AF A:00 X:EF Y:00 P:66 SP:FB CYC:171 SL:57 D9AD 10 02 BPL $D9B1 A:00 X:EF Y:00 P:66 SP:FB CYC:177 SL:57 D9B1 E8 INX A:00 X:EF Y:00 P:66 SP:FB CYC:186 SL:57 D9B2 38 SEC A:00 X:F0 Y:00 P:E4 SP:FB CYC:192 SL:57 D9B3 B8 CLV A:00 X:F0 Y:00 P:E5 SP:FB CYC:198 SL:57 D9B4 A9 EF LDA #$EF A:00 X:F0 Y:00 P:A5 SP:FB CYC:204 SL:57 D9B6 8D 00 04 STA $0400 = AA A:EF X:F0 Y:00 P:A5 SP:FB CYC:210 SL:57 D9B9 A9 F8 LDA #$F8 A:EF X:F0 Y:00 P:A5 SP:FB CYC:222 SL:57 D9BB 31 33 AND ($33),Y = 0400 @ 0400 = EF A:F8 X:F0 Y:00 P:A5 SP:FB CYC:228 SL:57 D9BD 90 08 BCC $D9C7 A:E8 X:F0 Y:00 P:A5 SP:FB CYC:243 SL:57 D9BF 10 06 BPL $D9C7 A:E8 X:F0 Y:00 P:A5 SP:FB CYC:249 SL:57 D9C1 C9 E8 CMP #$E8 A:E8 X:F0 Y:00 P:A5 SP:FB CYC:255 SL:57 D9C3 D0 02 BNE $D9C7 A:E8 X:F0 Y:00 P:27 SP:FB CYC:261 SL:57 D9C5 50 02 BVC $D9C9 A:E8 X:F0 Y:00 P:27 SP:FB CYC:267 SL:57 D9C9 E8 INX A:E8 X:F0 Y:00 P:27 SP:FB CYC:276 SL:57 D9CA 18 CLC A:E8 X:F1 Y:00 P:A5 SP:FB CYC:282 SL:57 D9CB 24 01 BIT $01 = FF A:E8 X:F1 Y:00 P:A4 SP:FB CYC:288 SL:57 D9CD A9 AA LDA #$AA A:E8 X:F1 Y:00 P:E4 SP:FB CYC:297 SL:57 D9CF 8D 00 04 STA $0400 = EF A:AA X:F1 Y:00 P:E4 SP:FB CYC:303 SL:57 D9D2 A9 5F LDA #$5F A:AA X:F1 Y:00 P:E4 SP:FB CYC:315 SL:57 D9D4 51 33 EOR ($33),Y = 0400 @ 0400 = AA A:5F X:F1 Y:00 P:64 SP:FB CYC:321 SL:57 D9D6 B0 08 BCS $D9E0 A:F5 X:F1 Y:00 P:E4 SP:FB CYC:336 SL:57 D9D8 10 06 BPL $D9E0 A:F5 X:F1 Y:00 P:E4 SP:FB CYC: 1 SL:58 D9DA C9 F5 CMP #$F5 A:F5 X:F1 Y:00 P:E4 SP:FB CYC: 7 SL:58 D9DC D0 02 BNE $D9E0 A:F5 X:F1 Y:00 P:67 SP:FB CYC: 13 SL:58 D9DE 70 02 BVS $D9E2 A:F5 X:F1 Y:00 P:67 SP:FB CYC: 19 SL:58 D9E2 E8 INX A:F5 X:F1 Y:00 P:67 SP:FB CYC: 28 SL:58 D9E3 38 SEC A:F5 X:F2 Y:00 P:E5 SP:FB CYC: 34 SL:58 D9E4 B8 CLV A:F5 X:F2 Y:00 P:E5 SP:FB CYC: 40 SL:58 D9E5 A9 70 LDA #$70 A:F5 X:F2 Y:00 P:A5 SP:FB CYC: 46 SL:58 D9E7 8D 00 04 STA $0400 = AA A:70 X:F2 Y:00 P:25 SP:FB CYC: 52 SL:58 D9EA 51 33 EOR ($33),Y = 0400 @ 0400 = 70 A:70 X:F2 Y:00 P:25 SP:FB CYC: 64 SL:58 D9EC D0 06 BNE $D9F4 A:00 X:F2 Y:00 P:27 SP:FB CYC: 79 SL:58 D9EE 70 04 BVS $D9F4 A:00 X:F2 Y:00 P:27 SP:FB CYC: 85 SL:58 D9F0 90 02 BCC $D9F4 A:00 X:F2 Y:00 P:27 SP:FB CYC: 91 SL:58 D9F2 10 02 BPL $D9F6 A:00 X:F2 Y:00 P:27 SP:FB CYC: 97 SL:58 D9F6 E8 INX A:00 X:F2 Y:00 P:27 SP:FB CYC:106 SL:58 D9F7 18 CLC A:00 X:F3 Y:00 P:A5 SP:FB CYC:112 SL:58 D9F8 24 01 BIT $01 = FF A:00 X:F3 Y:00 P:A4 SP:FB CYC:118 SL:58 D9FA A9 69 LDA #$69 A:00 X:F3 Y:00 P:E6 SP:FB CYC:127 SL:58 D9FC 8D 00 04 STA $0400 = 70 A:69 X:F3 Y:00 P:64 SP:FB CYC:133 SL:58 D9FF A9 00 LDA #$00 A:69 X:F3 Y:00 P:64 SP:FB CYC:145 SL:58 DA01 71 33 ADC ($33),Y = 0400 @ 0400 = 69 A:00 X:F3 Y:00 P:66 SP:FB CYC:151 SL:58 DA03 30 08 BMI $DA0D A:69 X:F3 Y:00 P:24 SP:FB CYC:166 SL:58 DA05 B0 06 BCS $DA0D A:69 X:F3 Y:00 P:24 SP:FB CYC:172 SL:58 DA07 C9 69 CMP #$69 A:69 X:F3 Y:00 P:24 SP:FB CYC:178 SL:58 DA09 D0 02 BNE $DA0D A:69 X:F3 Y:00 P:27 SP:FB CYC:184 SL:58 DA0B 50 02 BVC $DA0F A:69 X:F3 Y:00 P:27 SP:FB CYC:190 SL:58 DA0F E8 INX A:69 X:F3 Y:00 P:27 SP:FB CYC:199 SL:58 DA10 38 SEC A:69 X:F4 Y:00 P:A5 SP:FB CYC:205 SL:58 DA11 24 01 BIT $01 = FF A:69 X:F4 Y:00 P:A5 SP:FB CYC:211 SL:58 DA13 A9 00 LDA #$00 A:69 X:F4 Y:00 P:E5 SP:FB CYC:220 SL:58 DA15 71 33 ADC ($33),Y = 0400 @ 0400 = 69 A:00 X:F4 Y:00 P:67 SP:FB CYC:226 SL:58 DA17 30 08 BMI $DA21 A:6A X:F4 Y:00 P:24 SP:FB CYC:241 SL:58 DA19 B0 06 BCS $DA21 A:6A X:F4 Y:00 P:24 SP:FB CYC:247 SL:58 DA1B C9 6A CMP #$6A A:6A X:F4 Y:00 P:24 SP:FB CYC:253 SL:58 DA1D D0 02 BNE $DA21 A:6A X:F4 Y:00 P:27 SP:FB CYC:259 SL:58 DA1F 50 02 BVC $DA23 A:6A X:F4 Y:00 P:27 SP:FB CYC:265 SL:58 DA23 E8 INX A:6A X:F4 Y:00 P:27 SP:FB CYC:274 SL:58 DA24 38 SEC A:6A X:F5 Y:00 P:A5 SP:FB CYC:280 SL:58 DA25 B8 CLV A:6A X:F5 Y:00 P:A5 SP:FB CYC:286 SL:58 DA26 A9 7F LDA #$7F A:6A X:F5 Y:00 P:A5 SP:FB CYC:292 SL:58 DA28 8D 00 04 STA $0400 = 69 A:7F X:F5 Y:00 P:25 SP:FB CYC:298 SL:58 DA2B 71 33 ADC ($33),Y = 0400 @ 0400 = 7F A:7F X:F5 Y:00 P:25 SP:FB CYC:310 SL:58 DA2D 10 08 BPL $DA37 A:FF X:F5 Y:00 P:E4 SP:FB CYC:325 SL:58 DA2F B0 06 BCS $DA37 A:FF X:F5 Y:00 P:E4 SP:FB CYC:331 SL:58 DA31 C9 FF CMP #$FF A:FF X:F5 Y:00 P:E4 SP:FB CYC:337 SL:58 DA33 D0 02 BNE $DA37 A:FF X:F5 Y:00 P:67 SP:FB CYC: 2 SL:59 DA35 70 02 BVS $DA39 A:FF X:F5 Y:00 P:67 SP:FB CYC: 8 SL:59 DA39 E8 INX A:FF X:F5 Y:00 P:67 SP:FB CYC: 17 SL:59 DA3A 18 CLC A:FF X:F6 Y:00 P:E5 SP:FB CYC: 23 SL:59 DA3B 24 01 BIT $01 = FF A:FF X:F6 Y:00 P:E4 SP:FB CYC: 29 SL:59 DA3D A9 80 LDA #$80 A:FF X:F6 Y:00 P:E4 SP:FB CYC: 38 SL:59 DA3F 8D 00 04 STA $0400 = 7F A:80 X:F6 Y:00 P:E4 SP:FB CYC: 44 SL:59 DA42 A9 7F LDA #$7F A:80 X:F6 Y:00 P:E4 SP:FB CYC: 56 SL:59 DA44 71 33 ADC ($33),Y = 0400 @ 0400 = 80 A:7F X:F6 Y:00 P:64 SP:FB CYC: 62 SL:59 DA46 10 08 BPL $DA50 A:FF X:F6 Y:00 P:A4 SP:FB CYC: 77 SL:59 DA48 B0 06 BCS $DA50 A:FF X:F6 Y:00 P:A4 SP:FB CYC: 83 SL:59 DA4A C9 FF CMP #$FF A:FF X:F6 Y:00 P:A4 SP:FB CYC: 89 SL:59 DA4C D0 02 BNE $DA50 A:FF X:F6 Y:00 P:27 SP:FB CYC: 95 SL:59 DA4E 50 02 BVC $DA52 A:FF X:F6 Y:00 P:27 SP:FB CYC:101 SL:59 DA52 E8 INX A:FF X:F6 Y:00 P:27 SP:FB CYC:110 SL:59 DA53 38 SEC A:FF X:F7 Y:00 P:A5 SP:FB CYC:116 SL:59 DA54 B8 CLV A:FF X:F7 Y:00 P:A5 SP:FB CYC:122 SL:59 DA55 A9 80 LDA #$80 A:FF X:F7 Y:00 P:A5 SP:FB CYC:128 SL:59 DA57 8D 00 04 STA $0400 = 80 A:80 X:F7 Y:00 P:A5 SP:FB CYC:134 SL:59 DA5A A9 7F LDA #$7F A:80 X:F7 Y:00 P:A5 SP:FB CYC:146 SL:59 DA5C 71 33 ADC ($33),Y = 0400 @ 0400 = 80 A:7F X:F7 Y:00 P:25 SP:FB CYC:152 SL:59 DA5E D0 06 BNE $DA66 A:00 X:F7 Y:00 P:27 SP:FB CYC:167 SL:59 DA60 30 04 BMI $DA66 A:00 X:F7 Y:00 P:27 SP:FB CYC:173 SL:59 DA62 70 02 BVS $DA66 A:00 X:F7 Y:00 P:27 SP:FB CYC:179 SL:59 DA64 B0 02 BCS $DA68 A:00 X:F7 Y:00 P:27 SP:FB CYC:185 SL:59 DA68 E8 INX A:00 X:F7 Y:00 P:27 SP:FB CYC:194 SL:59 DA69 24 01 BIT $01 = FF A:00 X:F8 Y:00 P:A5 SP:FB CYC:200 SL:59 DA6B A9 40 LDA #$40 A:00 X:F8 Y:00 P:E7 SP:FB CYC:209 SL:59 DA6D 8D 00 04 STA $0400 = 80 A:40 X:F8 Y:00 P:65 SP:FB CYC:215 SL:59 DA70 D1 33 CMP ($33),Y = 0400 @ 0400 = 40 A:40 X:F8 Y:00 P:65 SP:FB CYC:227 SL:59 DA72 30 06 BMI $DA7A A:40 X:F8 Y:00 P:67 SP:FB CYC:242 SL:59 DA74 90 04 BCC $DA7A A:40 X:F8 Y:00 P:67 SP:FB CYC:248 SL:59 DA76 D0 02 BNE $DA7A A:40 X:F8 Y:00 P:67 SP:FB CYC:254 SL:59 DA78 70 02 BVS $DA7C A:40 X:F8 Y:00 P:67 SP:FB CYC:260 SL:59 DA7C E8 INX A:40 X:F8 Y:00 P:67 SP:FB CYC:269 SL:59 DA7D B8 CLV A:40 X:F9 Y:00 P:E5 SP:FB CYC:275 SL:59 DA7E CE 00 04 DEC $0400 = 40 A:40 X:F9 Y:00 P:A5 SP:FB CYC:281 SL:59 DA81 D1 33 CMP ($33),Y = 0400 @ 0400 = 3F A:40 X:F9 Y:00 P:25 SP:FB CYC:299 SL:59 DA83 F0 06 BEQ $DA8B A:40 X:F9 Y:00 P:25 SP:FB CYC:314 SL:59 DA85 30 04 BMI $DA8B A:40 X:F9 Y:00 P:25 SP:FB CYC:320 SL:59 DA87 90 02 BCC $DA8B A:40 X:F9 Y:00 P:25 SP:FB CYC:326 SL:59 DA89 50 02 BVC $DA8D A:40 X:F9 Y:00 P:25 SP:FB CYC:332 SL:59 DA8D E8 INX A:40 X:F9 Y:00 P:25 SP:FB CYC: 0 SL:60 DA8E EE 00 04 INC $0400 = 3F A:40 X:FA Y:00 P:A5 SP:FB CYC: 6 SL:60 DA91 EE 00 04 INC $0400 = 40 A:40 X:FA Y:00 P:25 SP:FB CYC: 24 SL:60 DA94 D1 33 CMP ($33),Y = 0400 @ 0400 = 41 A:40 X:FA Y:00 P:25 SP:FB CYC: 42 SL:60 DA96 F0 02 BEQ $DA9A A:40 X:FA Y:00 P:A4 SP:FB CYC: 57 SL:60 DA98 30 02 BMI $DA9C A:40 X:FA Y:00 P:A4 SP:FB CYC: 63 SL:60 DA9C E8 INX A:40 X:FA Y:00 P:A4 SP:FB CYC: 72 SL:60 DA9D A9 00 LDA #$00 A:40 X:FB Y:00 P:A4 SP:FB CYC: 78 SL:60 DA9F 8D 00 04 STA $0400 = 41 A:00 X:FB Y:00 P:26 SP:FB CYC: 84 SL:60 DAA2 A9 80 LDA #$80 A:00 X:FB Y:00 P:26 SP:FB CYC: 96 SL:60 DAA4 D1 33 CMP ($33),Y = 0400 @ 0400 = 00 A:80 X:FB Y:00 P:A4 SP:FB CYC:102 SL:60 DAA6 F0 04 BEQ $DAAC A:80 X:FB Y:00 P:A5 SP:FB CYC:117 SL:60 DAA8 10 02 BPL $DAAC A:80 X:FB Y:00 P:A5 SP:FB CYC:123 SL:60 DAAA B0 02 BCS $DAAE A:80 X:FB Y:00 P:A5 SP:FB CYC:129 SL:60 DAAE E8 INX A:80 X:FB Y:00 P:A5 SP:FB CYC:138 SL:60 DAAF A0 80 LDY #$80 A:80 X:FC Y:00 P:A5 SP:FB CYC:144 SL:60 DAB1 8C 00 04 STY $0400 = 00 A:80 X:FC Y:80 P:A5 SP:FB CYC:150 SL:60 DAB4 A0 00 LDY #$00 A:80 X:FC Y:80 P:A5 SP:FB CYC:162 SL:60 DAB6 D1 33 CMP ($33),Y = 0400 @ 0400 = 80 A:80 X:FC Y:00 P:27 SP:FB CYC:168 SL:60 DAB8 D0 04 BNE $DABE A:80 X:FC Y:00 P:27 SP:FB CYC:183 SL:60 DABA 30 02 BMI $DABE A:80 X:FC Y:00 P:27 SP:FB CYC:189 SL:60 DABC B0 02 BCS $DAC0 A:80 X:FC Y:00 P:27 SP:FB CYC:195 SL:60 DAC0 E8 INX A:80 X:FC Y:00 P:27 SP:FB CYC:204 SL:60 DAC1 EE 00 04 INC $0400 = 80 A:80 X:FD Y:00 P:A5 SP:FB CYC:210 SL:60 DAC4 D1 33 CMP ($33),Y = 0400 @ 0400 = 81 A:80 X:FD Y:00 P:A5 SP:FB CYC:228 SL:60 DAC6 B0 04 BCS $DACC A:80 X:FD Y:00 P:A4 SP:FB CYC:243 SL:60 DAC8 F0 02 BEQ $DACC A:80 X:FD Y:00 P:A4 SP:FB CYC:249 SL:60 DACA 30 02 BMI $DACE A:80 X:FD Y:00 P:A4 SP:FB CYC:255 SL:60 DACE E8 INX A:80 X:FD Y:00 P:A4 SP:FB CYC:264 SL:60 DACF CE 00 04 DEC $0400 = 81 A:80 X:FE Y:00 P:A4 SP:FB CYC:270 SL:60 DAD2 CE 00 04 DEC $0400 = 80 A:80 X:FE Y:00 P:A4 SP:FB CYC:288 SL:60 DAD5 D1 33 CMP ($33),Y = 0400 @ 0400 = 7F A:80 X:FE Y:00 P:24 SP:FB CYC:306 SL:60 DAD7 90 04 BCC $DADD A:80 X:FE Y:00 P:25 SP:FB CYC:321 SL:60 DAD9 F0 02 BEQ $DADD A:80 X:FE Y:00 P:25 SP:FB CYC:327 SL:60 DADB 10 02 BPL $DADF A:80 X:FE Y:00 P:25 SP:FB CYC:333 SL:60 DADF 60 RTS A:80 X:FE Y:00 P:25 SP:FB CYC: 1 SL:61 C61B A5 00 LDA $00 = 00 A:80 X:FE Y:00 P:25 SP:FD CYC: 19 SL:61 C61D 85 10 STA $10 = 00 A:00 X:FE Y:00 P:27 SP:FD CYC: 28 SL:61 C61F A9 00 LDA #$00 A:00 X:FE Y:00 P:27 SP:FD CYC: 37 SL:61 C621 85 00 STA $00 = 00 A:00 X:FE Y:00 P:27 SP:FD CYC: 43 SL:61 C623 20 E0 DA JSR $DAE0 A:00 X:FE Y:00 P:27 SP:FD CYC: 52 SL:61 DAE0 A9 00 LDA #$00 A:00 X:FE Y:00 P:27 SP:FB CYC: 70 SL:61 DAE2 85 33 STA $33 = 00 A:00 X:FE Y:00 P:27 SP:FB CYC: 76 SL:61 DAE4 A9 04 LDA #$04 A:00 X:FE Y:00 P:27 SP:FB CYC: 85 SL:61 DAE6 85 34 STA $34 = 04 A:04 X:FE Y:00 P:25 SP:FB CYC: 91 SL:61 DAE8 A0 00 LDY #$00 A:04 X:FE Y:00 P:25 SP:FB CYC:100 SL:61 DAEA A2 01 LDX #$01 A:04 X:FE Y:00 P:27 SP:FB CYC:106 SL:61 DAEC 24 01 BIT $01 = FF A:04 X:01 Y:00 P:25 SP:FB CYC:112 SL:61 DAEE A9 40 LDA #$40 A:04 X:01 Y:00 P:E5 SP:FB CYC:121 SL:61 DAF0 8D 00 04 STA $0400 = 7F A:40 X:01 Y:00 P:65 SP:FB CYC:127 SL:61 DAF3 38 SEC A:40 X:01 Y:00 P:65 SP:FB CYC:139 SL:61 DAF4 F1 33 SBC ($33),Y = 0400 @ 0400 = 40 A:40 X:01 Y:00 P:65 SP:FB CYC:145 SL:61 DAF6 30 0A BMI $DB02 A:00 X:01 Y:00 P:27 SP:FB CYC:160 SL:61 DAF8 90 08 BCC $DB02 A:00 X:01 Y:00 P:27 SP:FB CYC:166 SL:61 DAFA D0 06 BNE $DB02 A:00 X:01 Y:00 P:27 SP:FB CYC:172 SL:61 DAFC 70 04 BVS $DB02 A:00 X:01 Y:00 P:27 SP:FB CYC:178 SL:61 DAFE C9 00 CMP #$00 A:00 X:01 Y:00 P:27 SP:FB CYC:184 SL:61 DB00 F0 02 BEQ $DB04 A:00 X:01 Y:00 P:27 SP:FB CYC:190 SL:61 DB04 E8 INX A:00 X:01 Y:00 P:27 SP:FB CYC:199 SL:61 DB05 B8 CLV A:00 X:02 Y:00 P:25 SP:FB CYC:205 SL:61 DB06 38 SEC A:00 X:02 Y:00 P:25 SP:FB CYC:211 SL:61 DB07 A9 40 LDA #$40 A:00 X:02 Y:00 P:25 SP:FB CYC:217 SL:61 DB09 CE 00 04 DEC $0400 = 40 A:40 X:02 Y:00 P:25 SP:FB CYC:223 SL:61 DB0C F1 33 SBC ($33),Y = 0400 @ 0400 = 3F A:40 X:02 Y:00 P:25 SP:FB CYC:241 SL:61 DB0E F0 0A BEQ $DB1A A:01 X:02 Y:00 P:25 SP:FB CYC:256 SL:61 DB10 30 08 BMI $DB1A A:01 X:02 Y:00 P:25 SP:FB CYC:262 SL:61 DB12 90 06 BCC $DB1A A:01 X:02 Y:00 P:25 SP:FB CYC:268 SL:61 DB14 70 04 BVS $DB1A A:01 X:02 Y:00 P:25 SP:FB CYC:274 SL:61 DB16 C9 01 CMP #$01 A:01 X:02 Y:00 P:25 SP:FB CYC:280 SL:61 DB18 F0 02 BEQ $DB1C A:01 X:02 Y:00 P:27 SP:FB CYC:286 SL:61 DB1C E8 INX A:01 X:02 Y:00 P:27 SP:FB CYC:295 SL:61 DB1D A9 40 LDA #$40 A:01 X:03 Y:00 P:25 SP:FB CYC:301 SL:61 DB1F 38 SEC A:40 X:03 Y:00 P:25 SP:FB CYC:307 SL:61 DB20 24 01 BIT $01 = FF A:40 X:03 Y:00 P:25 SP:FB CYC:313 SL:61 DB22 EE 00 04 INC $0400 = 3F A:40 X:03 Y:00 P:E5 SP:FB CYC:322 SL:61 DB25 EE 00 04 INC $0400 = 40 A:40 X:03 Y:00 P:65 SP:FB CYC:340 SL:61 DB28 F1 33 SBC ($33),Y = 0400 @ 0400 = 41 A:40 X:03 Y:00 P:65 SP:FB CYC: 17 SL:62 DB2A B0 0A BCS $DB36 A:FF X:03 Y:00 P:A4 SP:FB CYC: 32 SL:62 DB2C F0 08 BEQ $DB36 A:FF X:03 Y:00 P:A4 SP:FB CYC: 38 SL:62 DB2E 10 06 BPL $DB36 A:FF X:03 Y:00 P:A4 SP:FB CYC: 44 SL:62 DB30 70 04 BVS $DB36 A:FF X:03 Y:00 P:A4 SP:FB CYC: 50 SL:62 DB32 C9 FF CMP #$FF A:FF X:03 Y:00 P:A4 SP:FB CYC: 56 SL:62 DB34 F0 02 BEQ $DB38 A:FF X:03 Y:00 P:27 SP:FB CYC: 62 SL:62 DB38 E8 INX A:FF X:03 Y:00 P:27 SP:FB CYC: 71 SL:62 DB39 18 CLC A:FF X:04 Y:00 P:25 SP:FB CYC: 77 SL:62 DB3A A9 00 LDA #$00 A:FF X:04 Y:00 P:24 SP:FB CYC: 83 SL:62 DB3C 8D 00 04 STA $0400 = 41 A:00 X:04 Y:00 P:26 SP:FB CYC: 89 SL:62 DB3F A9 80 LDA #$80 A:00 X:04 Y:00 P:26 SP:FB CYC:101 SL:62 DB41 F1 33 SBC ($33),Y = 0400 @ 0400 = 00 A:80 X:04 Y:00 P:A4 SP:FB CYC:107 SL:62 DB43 90 04 BCC $DB49 A:7F X:04 Y:00 P:65 SP:FB CYC:122 SL:62 DB45 C9 7F CMP #$7F A:7F X:04 Y:00 P:65 SP:FB CYC:128 SL:62 DB47 F0 02 BEQ $DB4B A:7F X:04 Y:00 P:67 SP:FB CYC:134 SL:62 DB4B E8 INX A:7F X:04 Y:00 P:67 SP:FB CYC:143 SL:62 DB4C 38 SEC A:7F X:05 Y:00 P:65 SP:FB CYC:149 SL:62 DB4D A9 7F LDA #$7F A:7F X:05 Y:00 P:65 SP:FB CYC:155 SL:62 DB4F 8D 00 04 STA $0400 = 00 A:7F X:05 Y:00 P:65 SP:FB CYC:161 SL:62 DB52 A9 81 LDA #$81 A:7F X:05 Y:00 P:65 SP:FB CYC:173 SL:62 DB54 F1 33 SBC ($33),Y = 0400 @ 0400 = 7F A:81 X:05 Y:00 P:E5 SP:FB CYC:179 SL:62 DB56 50 06 BVC $DB5E A:02 X:05 Y:00 P:65 SP:FB CYC:194 SL:62 DB58 90 04 BCC $DB5E A:02 X:05 Y:00 P:65 SP:FB CYC:200 SL:62 DB5A C9 02 CMP #$02 A:02 X:05 Y:00 P:65 SP:FB CYC:206 SL:62 DB5C F0 02 BEQ $DB60 A:02 X:05 Y:00 P:67 SP:FB CYC:212 SL:62 DB60 E8 INX A:02 X:05 Y:00 P:67 SP:FB CYC:221 SL:62 DB61 A9 00 LDA #$00 A:02 X:06 Y:00 P:65 SP:FB CYC:227 SL:62 DB63 A9 87 LDA #$87 A:00 X:06 Y:00 P:67 SP:FB CYC:233 SL:62 DB65 91 33 STA ($33),Y = 0400 @ 0400 = 7F A:87 X:06 Y:00 P:E5 SP:FB CYC:239 SL:62 DB67 AD 00 04 LDA $0400 = 87 A:87 X:06 Y:00 P:E5 SP:FB CYC:257 SL:62 DB6A C9 87 CMP #$87 A:87 X:06 Y:00 P:E5 SP:FB CYC:269 SL:62 DB6C F0 02 BEQ $DB70 A:87 X:06 Y:00 P:67 SP:FB CYC:275 SL:62 DB70 E8 INX A:87 X:06 Y:00 P:67 SP:FB CYC:284 SL:62 DB71 A9 7E LDA #$7E A:87 X:07 Y:00 P:65 SP:FB CYC:290 SL:62 DB73 8D 00 02 STA $0200 = 7F A:7E X:07 Y:00 P:65 SP:FB CYC:296 SL:62 DB76 A9 DB LDA #$DB A:7E X:07 Y:00 P:65 SP:FB CYC:308 SL:62 DB78 8D 01 02 STA $0201 = 00 A:DB X:07 Y:00 P:E5 SP:FB CYC:314 SL:62 DB7B 6C 00 02 JMP ($0200) = DB7E A:DB X:07 Y:00 P:E5 SP:FB CYC:326 SL:62 DB7E A9 00 LDA #$00 A:DB X:07 Y:00 P:E5 SP:FB CYC: 0 SL:63 DB80 8D FF 02 STA $02FF = 00 A:00 X:07 Y:00 P:67 SP:FB CYC: 6 SL:63 DB83 A9 01 LDA #$01 A:00 X:07 Y:00 P:67 SP:FB CYC: 18 SL:63 DB85 8D 00 03 STA $0300 = 89 A:01 X:07 Y:00 P:65 SP:FB CYC: 24 SL:63 DB88 A9 03 LDA #$03 A:01 X:07 Y:00 P:65 SP:FB CYC: 36 SL:63 DB8A 8D 00 02 STA $0200 = 7E A:03 X:07 Y:00 P:65 SP:FB CYC: 42 SL:63 DB8D A9 A9 LDA #$A9 A:03 X:07 Y:00 P:65 SP:FB CYC: 54 SL:63 DB8F 8D 00 01 STA $0100 = 00 A:A9 X:07 Y:00 P:E5 SP:FB CYC: 60 SL:63 DB92 A9 55 LDA #$55 A:A9 X:07 Y:00 P:E5 SP:FB CYC: 72 SL:63 DB94 8D 01 01 STA $0101 = 00 A:55 X:07 Y:00 P:65 SP:FB CYC: 78 SL:63 DB97 A9 60 LDA #$60 A:55 X:07 Y:00 P:65 SP:FB CYC: 90 SL:63 DB99 8D 02 01 STA $0102 = 00 A:60 X:07 Y:00 P:65 SP:FB CYC: 96 SL:63 DB9C A9 A9 LDA #$A9 A:60 X:07 Y:00 P:65 SP:FB CYC:108 SL:63 DB9E 8D 00 03 STA $0300 = 01 A:A9 X:07 Y:00 P:E5 SP:FB CYC:114 SL:63 DBA1 A9 AA LDA #$AA A:A9 X:07 Y:00 P:E5 SP:FB CYC:126 SL:63 DBA3 8D 01 03 STA $0301 = 00 A:AA X:07 Y:00 P:E5 SP:FB CYC:132 SL:63 DBA6 A9 60 LDA #$60 A:AA X:07 Y:00 P:E5 SP:FB CYC:144 SL:63 DBA8 8D 02 03 STA $0302 = 00 A:60 X:07 Y:00 P:65 SP:FB CYC:150 SL:63 DBAB 20 B5 DB JSR $DBB5 A:60 X:07 Y:00 P:65 SP:FB CYC:162 SL:63 DBB5 6C FF 02 JMP ($02FF) = A900 A:60 X:07 Y:00 P:65 SP:F9 CYC:180 SL:63 0300 A9 AA LDA #$AA A:60 X:07 Y:00 P:65 SP:F9 CYC:195 SL:63 0302 60 RTS A:AA X:07 Y:00 P:E5 SP:F9 CYC:201 SL:63 DBAE C9 AA CMP #$AA A:AA X:07 Y:00 P:E5 SP:FB CYC:219 SL:63 DBB0 F0 02 BEQ $DBB4 A:AA X:07 Y:00 P:67 SP:FB CYC:225 SL:63 DBB4 60 RTS A:AA X:07 Y:00 P:67 SP:FB CYC:234 SL:63 C626 20 4A DF JSR $DF4A A:AA X:07 Y:00 P:67 SP:FD CYC:252 SL:63 DF4A A9 89 LDA #$89 A:AA X:07 Y:00 P:67 SP:FB CYC:270 SL:63 DF4C 8D 00 03 STA $0300 = A9 A:89 X:07 Y:00 P:E5 SP:FB CYC:276 SL:63 DF4F A9 A3 LDA #$A3 A:89 X:07 Y:00 P:E5 SP:FB CYC:288 SL:63 DF51 85 33 STA $33 = 00 A:A3 X:07 Y:00 P:E5 SP:FB CYC:294 SL:63 DF53 A9 12 LDA #$12 A:A3 X:07 Y:00 P:E5 SP:FB CYC:303 SL:63 DF55 8D 45 02 STA $0245 = 12 A:12 X:07 Y:00 P:65 SP:FB CYC:309 SL:63 DF58 A2 65 LDX #$65 A:12 X:07 Y:00 P:65 SP:FB CYC:321 SL:63 DF5A A0 00 LDY #$00 A:12 X:65 Y:00 P:65 SP:FB CYC:327 SL:63 DF5C 38 SEC A:12 X:65 Y:00 P:67 SP:FB CYC:333 SL:63 DF5D A9 00 LDA #$00 A:12 X:65 Y:00 P:67 SP:FB CYC:339 SL:63 DF5F B8 CLV A:00 X:65 Y:00 P:67 SP:FB CYC: 4 SL:64 DF60 B9 00 03 LDA $0300,Y @ 0300 = 89 A:00 X:65 Y:00 P:27 SP:FB CYC: 10 SL:64 DF63 F0 0C BEQ $DF71 A:89 X:65 Y:00 P:A5 SP:FB CYC: 22 SL:64 DF65 90 0A BCC $DF71 A:89 X:65 Y:00 P:A5 SP:FB CYC: 28 SL:64 DF67 70 08 BVS $DF71 A:89 X:65 Y:00 P:A5 SP:FB CYC: 34 SL:64 DF69 C9 89 CMP #$89 A:89 X:65 Y:00 P:A5 SP:FB CYC: 40 SL:64 DF6B D0 04 BNE $DF71 A:89 X:65 Y:00 P:27 SP:FB CYC: 46 SL:64 DF6D E0 65 CPX #$65 A:89 X:65 Y:00 P:27 SP:FB CYC: 52 SL:64 DF6F F0 04 BEQ $DF75 A:89 X:65 Y:00 P:27 SP:FB CYC: 58 SL:64 DF75 A9 FF LDA #$FF A:89 X:65 Y:00 P:27 SP:FB CYC: 67 SL:64 DF77 85 01 STA $01 = FF A:FF X:65 Y:00 P:A5 SP:FB CYC: 73 SL:64 DF79 24 01 BIT $01 = FF A:FF X:65 Y:00 P:A5 SP:FB CYC: 82 SL:64 DF7B A0 34 LDY #$34 A:FF X:65 Y:00 P:E5 SP:FB CYC: 91 SL:64 DF7D B9 FF FF LDA $FFFF,Y @ 0033 = A3 A:FF X:65 Y:34 P:65 SP:FB CYC: 97 SL:64 DF80 C9 A3 CMP #$A3 A:A3 X:65 Y:34 P:E5 SP:FB CYC:112 SL:64 DF82 D0 02 BNE $DF86 A:A3 X:65 Y:34 P:67 SP:FB CYC:118 SL:64 DF84 B0 04 BCS $DF8A A:A3 X:65 Y:34 P:67 SP:FB CYC:124 SL:64 DF8A A9 46 LDA #$46 A:A3 X:65 Y:34 P:67 SP:FB CYC:133 SL:64 DF8C 85 FF STA $FF = 46 A:46 X:65 Y:34 P:65 SP:FB CYC:139 SL:64 DF8E A0 FF LDY #$FF A:46 X:65 Y:34 P:65 SP:FB CYC:148 SL:64 DF90 B9 46 01 LDA $0146,Y @ 0245 = 12 A:46 X:65 Y:FF P:E5 SP:FB CYC:154 SL:64 DF93 C9 12 CMP #$12 A:12 X:65 Y:FF P:65 SP:FB CYC:169 SL:64 DF95 F0 04 BEQ $DF9B A:12 X:65 Y:FF P:67 SP:FB CYC:175 SL:64 DF9B A2 39 LDX #$39 A:12 X:65 Y:FF P:67 SP:FB CYC:184 SL:64 DF9D 18 CLC A:12 X:39 Y:FF P:65 SP:FB CYC:190 SL:64 DF9E A9 FF LDA #$FF A:12 X:39 Y:FF P:64 SP:FB CYC:196 SL:64 DFA0 85 01 STA $01 = FF A:FF X:39 Y:FF P:E4 SP:FB CYC:202 SL:64 DFA2 24 01 BIT $01 = FF A:FF X:39 Y:FF P:E4 SP:FB CYC:211 SL:64 DFA4 A9 AA LDA #$AA A:FF X:39 Y:FF P:E4 SP:FB CYC:220 SL:64 DFA6 8D 00 04 STA $0400 = 87 A:AA X:39 Y:FF P:E4 SP:FB CYC:226 SL:64 DFA9 A9 55 LDA #$55 A:AA X:39 Y:FF P:E4 SP:FB CYC:238 SL:64 DFAB A0 00 LDY #$00 A:55 X:39 Y:FF P:64 SP:FB CYC:244 SL:64 DFAD 19 00 04 ORA $0400,Y @ 0400 = AA A:55 X:39 Y:00 P:66 SP:FB CYC:250 SL:64 DFB0 B0 08 BCS $DFBA A:FF X:39 Y:00 P:E4 SP:FB CYC:262 SL:64 DFB2 10 06 BPL $DFBA A:FF X:39 Y:00 P:E4 SP:FB CYC:268 SL:64 DFB4 C9 FF CMP #$FF A:FF X:39 Y:00 P:E4 SP:FB CYC:274 SL:64 DFB6 D0 02 BNE $DFBA A:FF X:39 Y:00 P:67 SP:FB CYC:280 SL:64 DFB8 70 02 BVS $DFBC A:FF X:39 Y:00 P:67 SP:FB CYC:286 SL:64 DFBC E8 INX A:FF X:39 Y:00 P:67 SP:FB CYC:295 SL:64 DFBD 38 SEC A:FF X:3A Y:00 P:65 SP:FB CYC:301 SL:64 DFBE B8 CLV A:FF X:3A Y:00 P:65 SP:FB CYC:307 SL:64 DFBF A9 00 LDA #$00 A:FF X:3A Y:00 P:25 SP:FB CYC:313 SL:64 DFC1 19 00 04 ORA $0400,Y @ 0400 = AA A:00 X:3A Y:00 P:27 SP:FB CYC:319 SL:64 DFC4 F0 06 BEQ $DFCC A:AA X:3A Y:00 P:A5 SP:FB CYC:331 SL:64 DFC6 70 04 BVS $DFCC A:AA X:3A Y:00 P:A5 SP:FB CYC:337 SL:64 DFC8 90 02 BCC $DFCC A:AA X:3A Y:00 P:A5 SP:FB CYC: 2 SL:65 DFCA 30 02 BMI $DFCE A:AA X:3A Y:00 P:A5 SP:FB CYC: 8 SL:65 DFCE E8 INX A:AA X:3A Y:00 P:A5 SP:FB CYC: 17 SL:65 DFCF 18 CLC A:AA X:3B Y:00 P:25 SP:FB CYC: 23 SL:65 DFD0 24 01 BIT $01 = FF A:AA X:3B Y:00 P:24 SP:FB CYC: 29 SL:65 DFD2 A9 55 LDA #$55 A:AA X:3B Y:00 P:E4 SP:FB CYC: 38 SL:65 DFD4 39 00 04 AND $0400,Y @ 0400 = AA A:55 X:3B Y:00 P:64 SP:FB CYC: 44 SL:65 DFD7 D0 06 BNE $DFDF A:00 X:3B Y:00 P:66 SP:FB CYC: 56 SL:65 DFD9 50 04 BVC $DFDF A:00 X:3B Y:00 P:66 SP:FB CYC: 62 SL:65 DFDB B0 02 BCS $DFDF A:00 X:3B Y:00 P:66 SP:FB CYC: 68 SL:65 DFDD 10 02 BPL $DFE1 A:00 X:3B Y:00 P:66 SP:FB CYC: 74 SL:65 DFE1 E8 INX A:00 X:3B Y:00 P:66 SP:FB CYC: 83 SL:65 DFE2 38 SEC A:00 X:3C Y:00 P:64 SP:FB CYC: 89 SL:65 DFE3 B8 CLV A:00 X:3C Y:00 P:65 SP:FB CYC: 95 SL:65 DFE4 A9 EF LDA #$EF A:00 X:3C Y:00 P:25 SP:FB CYC:101 SL:65 DFE6 8D 00 04 STA $0400 = AA A:EF X:3C Y:00 P:A5 SP:FB CYC:107 SL:65 DFE9 A9 F8 LDA #$F8 A:EF X:3C Y:00 P:A5 SP:FB CYC:119 SL:65 DFEB 39 00 04 AND $0400,Y @ 0400 = EF A:F8 X:3C Y:00 P:A5 SP:FB CYC:125 SL:65 DFEE 90 08 BCC $DFF8 A:E8 X:3C Y:00 P:A5 SP:FB CYC:137 SL:65 DFF0 10 06 BPL $DFF8 A:E8 X:3C Y:00 P:A5 SP:FB CYC:143 SL:65 DFF2 C9 E8 CMP #$E8 A:E8 X:3C Y:00 P:A5 SP:FB CYC:149 SL:65 DFF4 D0 02 BNE $DFF8 A:E8 X:3C Y:00 P:27 SP:FB CYC:155 SL:65 DFF6 50 02 BVC $DFFA A:E8 X:3C Y:00 P:27 SP:FB CYC:161 SL:65 DFFA E8 INX A:E8 X:3C Y:00 P:27 SP:FB CYC:170 SL:65 DFFB 18 CLC A:E8 X:3D Y:00 P:25 SP:FB CYC:176 SL:65 DFFC 24 01 BIT $01 = FF A:E8 X:3D Y:00 P:24 SP:FB CYC:182 SL:65 DFFE A9 AA LDA #$AA A:E8 X:3D Y:00 P:E4 SP:FB CYC:191 SL:65 E000 8D 00 04 STA $0400 = EF A:AA X:3D Y:00 P:E4 SP:FB CYC:197 SL:65 E003 A9 5F LDA #$5F A:AA X:3D Y:00 P:E4 SP:FB CYC:209 SL:65 E005 59 00 04 EOR $0400,Y @ 0400 = AA A:5F X:3D Y:00 P:64 SP:FB CYC:215 SL:65 E008 B0 08 BCS $E012 A:F5 X:3D Y:00 P:E4 SP:FB CYC:227 SL:65 E00A 10 06 BPL $E012 A:F5 X:3D Y:00 P:E4 SP:FB CYC:233 SL:65 E00C C9 F5 CMP #$F5 A:F5 X:3D Y:00 P:E4 SP:FB CYC:239 SL:65 E00E D0 02 BNE $E012 A:F5 X:3D Y:00 P:67 SP:FB CYC:245 SL:65 E010 70 02 BVS $E014 A:F5 X:3D Y:00 P:67 SP:FB CYC:251 SL:65 E014 E8 INX A:F5 X:3D Y:00 P:67 SP:FB CYC:260 SL:65 E015 38 SEC A:F5 X:3E Y:00 P:65 SP:FB CYC:266 SL:65 E016 B8 CLV A:F5 X:3E Y:00 P:65 SP:FB CYC:272 SL:65 E017 A9 70 LDA #$70 A:F5 X:3E Y:00 P:25 SP:FB CYC:278 SL:65 E019 8D 00 04 STA $0400 = AA A:70 X:3E Y:00 P:25 SP:FB CYC:284 SL:65 E01C 59 00 04 EOR $0400,Y @ 0400 = 70 A:70 X:3E Y:00 P:25 SP:FB CYC:296 SL:65 E01F D0 06 BNE $E027 A:00 X:3E Y:00 P:27 SP:FB CYC:308 SL:65 E021 70 04 BVS $E027 A:00 X:3E Y:00 P:27 SP:FB CYC:314 SL:65 E023 90 02 BCC $E027 A:00 X:3E Y:00 P:27 SP:FB CYC:320 SL:65 E025 10 02 BPL $E029 A:00 X:3E Y:00 P:27 SP:FB CYC:326 SL:65 E029 E8 INX A:00 X:3E Y:00 P:27 SP:FB CYC:335 SL:65 E02A 18 CLC A:00 X:3F Y:00 P:25 SP:FB CYC: 0 SL:66 E02B 24 01 BIT $01 = FF A:00 X:3F Y:00 P:24 SP:FB CYC: 6 SL:66 E02D A9 69 LDA #$69 A:00 X:3F Y:00 P:E6 SP:FB CYC: 15 SL:66 E02F 8D 00 04 STA $0400 = 70 A:69 X:3F Y:00 P:64 SP:FB CYC: 21 SL:66 E032 A9 00 LDA #$00 A:69 X:3F Y:00 P:64 SP:FB CYC: 33 SL:66 E034 79 00 04 ADC $0400,Y @ 0400 = 69 A:00 X:3F Y:00 P:66 SP:FB CYC: 39 SL:66 E037 30 08 BMI $E041 A:69 X:3F Y:00 P:24 SP:FB CYC: 51 SL:66 E039 B0 06 BCS $E041 A:69 X:3F Y:00 P:24 SP:FB CYC: 57 SL:66 E03B C9 69 CMP #$69 A:69 X:3F Y:00 P:24 SP:FB CYC: 63 SL:66 E03D D0 02 BNE $E041 A:69 X:3F Y:00 P:27 SP:FB CYC: 69 SL:66 E03F 50 02 BVC $E043 A:69 X:3F Y:00 P:27 SP:FB CYC: 75 SL:66 E043 E8 INX A:69 X:3F Y:00 P:27 SP:FB CYC: 84 SL:66 E044 38 SEC A:69 X:40 Y:00 P:25 SP:FB CYC: 90 SL:66 E045 24 01 BIT $01 = FF A:69 X:40 Y:00 P:25 SP:FB CYC: 96 SL:66 E047 A9 00 LDA #$00 A:69 X:40 Y:00 P:E5 SP:FB CYC:105 SL:66 E049 79 00 04 ADC $0400,Y @ 0400 = 69 A:00 X:40 Y:00 P:67 SP:FB CYC:111 SL:66 E04C 30 08 BMI $E056 A:6A X:40 Y:00 P:24 SP:FB CYC:123 SL:66 E04E B0 06 BCS $E056 A:6A X:40 Y:00 P:24 SP:FB CYC:129 SL:66 E050 C9 6A CMP #$6A A:6A X:40 Y:00 P:24 SP:FB CYC:135 SL:66 E052 D0 02 BNE $E056 A:6A X:40 Y:00 P:27 SP:FB CYC:141 SL:66 E054 50 02 BVC $E058 A:6A X:40 Y:00 P:27 SP:FB CYC:147 SL:66 E058 E8 INX A:6A X:40 Y:00 P:27 SP:FB CYC:156 SL:66 E059 38 SEC A:6A X:41 Y:00 P:25 SP:FB CYC:162 SL:66 E05A B8 CLV A:6A X:41 Y:00 P:25 SP:FB CYC:168 SL:66 E05B A9 7F LDA #$7F A:6A X:41 Y:00 P:25 SP:FB CYC:174 SL:66 E05D 8D 00 04 STA $0400 = 69 A:7F X:41 Y:00 P:25 SP:FB CYC:180 SL:66 E060 79 00 04 ADC $0400,Y @ 0400 = 7F A:7F X:41 Y:00 P:25 SP:FB CYC:192 SL:66 E063 10 08 BPL $E06D A:FF X:41 Y:00 P:E4 SP:FB CYC:204 SL:66 E065 B0 06 BCS $E06D A:FF X:41 Y:00 P:E4 SP:FB CYC:210 SL:66 E067 C9 FF CMP #$FF A:FF X:41 Y:00 P:E4 SP:FB CYC:216 SL:66 E069 D0 02 BNE $E06D A:FF X:41 Y:00 P:67 SP:FB CYC:222 SL:66 E06B 70 02 BVS $E06F A:FF X:41 Y:00 P:67 SP:FB CYC:228 SL:66 E06F E8 INX A:FF X:41 Y:00 P:67 SP:FB CYC:237 SL:66 E070 18 CLC A:FF X:42 Y:00 P:65 SP:FB CYC:243 SL:66 E071 24 01 BIT $01 = FF A:FF X:42 Y:00 P:64 SP:FB CYC:249 SL:66 E073 A9 80 LDA #$80 A:FF X:42 Y:00 P:E4 SP:FB CYC:258 SL:66 E075 8D 00 04 STA $0400 = 7F A:80 X:42 Y:00 P:E4 SP:FB CYC:264 SL:66 E078 A9 7F LDA #$7F A:80 X:42 Y:00 P:E4 SP:FB CYC:276 SL:66 E07A 79 00 04 ADC $0400,Y @ 0400 = 80 A:7F X:42 Y:00 P:64 SP:FB CYC:282 SL:66 E07D 10 08 BPL $E087 A:FF X:42 Y:00 P:A4 SP:FB CYC:294 SL:66 E07F B0 06 BCS $E087 A:FF X:42 Y:00 P:A4 SP:FB CYC:300 SL:66 E081 C9 FF CMP #$FF A:FF X:42 Y:00 P:A4 SP:FB CYC:306 SL:66 E083 D0 02 BNE $E087 A:FF X:42 Y:00 P:27 SP:FB CYC:312 SL:66 E085 50 02 BVC $E089 A:FF X:42 Y:00 P:27 SP:FB CYC:318 SL:66 E089 E8 INX A:FF X:42 Y:00 P:27 SP:FB CYC:327 SL:66 E08A 38 SEC A:FF X:43 Y:00 P:25 SP:FB CYC:333 SL:66 E08B B8 CLV A:FF X:43 Y:00 P:25 SP:FB CYC:339 SL:66 E08C A9 80 LDA #$80 A:FF X:43 Y:00 P:25 SP:FB CYC: 4 SL:67 E08E 8D 00 04 STA $0400 = 80 A:80 X:43 Y:00 P:A5 SP:FB CYC: 10 SL:67 E091 A9 7F LDA #$7F A:80 X:43 Y:00 P:A5 SP:FB CYC: 22 SL:67 E093 79 00 04 ADC $0400,Y @ 0400 = 80 A:7F X:43 Y:00 P:25 SP:FB CYC: 28 SL:67 E096 D0 06 BNE $E09E A:00 X:43 Y:00 P:27 SP:FB CYC: 40 SL:67 E098 30 04 BMI $E09E A:00 X:43 Y:00 P:27 SP:FB CYC: 46 SL:67 E09A 70 02 BVS $E09E A:00 X:43 Y:00 P:27 SP:FB CYC: 52 SL:67 E09C B0 02 BCS $E0A0 A:00 X:43 Y:00 P:27 SP:FB CYC: 58 SL:67 E0A0 E8 INX A:00 X:43 Y:00 P:27 SP:FB CYC: 67 SL:67 E0A1 24 01 BIT $01 = FF A:00 X:44 Y:00 P:25 SP:FB CYC: 73 SL:67 E0A3 A9 40 LDA #$40 A:00 X:44 Y:00 P:E7 SP:FB CYC: 82 SL:67 E0A5 8D 00 04 STA $0400 = 80 A:40 X:44 Y:00 P:65 SP:FB CYC: 88 SL:67 E0A8 D9 00 04 CMP $0400,Y @ 0400 = 40 A:40 X:44 Y:00 P:65 SP:FB CYC:100 SL:67 E0AB 30 06 BMI $E0B3 A:40 X:44 Y:00 P:67 SP:FB CYC:112 SL:67 E0AD 90 04 BCC $E0B3 A:40 X:44 Y:00 P:67 SP:FB CYC:118 SL:67 E0AF D0 02 BNE $E0B3 A:40 X:44 Y:00 P:67 SP:FB CYC:124 SL:67 E0B1 70 02 BVS $E0B5 A:40 X:44 Y:00 P:67 SP:FB CYC:130 SL:67 E0B5 E8 INX A:40 X:44 Y:00 P:67 SP:FB CYC:139 SL:67 E0B6 B8 CLV A:40 X:45 Y:00 P:65 SP:FB CYC:145 SL:67 E0B7 CE 00 04 DEC $0400 = 40 A:40 X:45 Y:00 P:25 SP:FB CYC:151 SL:67 E0BA D9 00 04 CMP $0400,Y @ 0400 = 3F A:40 X:45 Y:00 P:25 SP:FB CYC:169 SL:67 E0BD F0 06 BEQ $E0C5 A:40 X:45 Y:00 P:25 SP:FB CYC:181 SL:67 E0BF 30 04 BMI $E0C5 A:40 X:45 Y:00 P:25 SP:FB CYC:187 SL:67 E0C1 90 02 BCC $E0C5 A:40 X:45 Y:00 P:25 SP:FB CYC:193 SL:67 E0C3 50 02 BVC $E0C7 A:40 X:45 Y:00 P:25 SP:FB CYC:199 SL:67 E0C7 E8 INX A:40 X:45 Y:00 P:25 SP:FB CYC:208 SL:67 E0C8 EE 00 04 INC $0400 = 3F A:40 X:46 Y:00 P:25 SP:FB CYC:214 SL:67 E0CB EE 00 04 INC $0400 = 40 A:40 X:46 Y:00 P:25 SP:FB CYC:232 SL:67 E0CE D9 00 04 CMP $0400,Y @ 0400 = 41 A:40 X:46 Y:00 P:25 SP:FB CYC:250 SL:67 E0D1 F0 02 BEQ $E0D5 A:40 X:46 Y:00 P:A4 SP:FB CYC:262 SL:67 E0D3 30 02 BMI $E0D7 A:40 X:46 Y:00 P:A4 SP:FB CYC:268 SL:67 E0D7 E8 INX A:40 X:46 Y:00 P:A4 SP:FB CYC:277 SL:67 E0D8 A9 00 LDA #$00 A:40 X:47 Y:00 P:24 SP:FB CYC:283 SL:67 E0DA 8D 00 04 STA $0400 = 41 A:00 X:47 Y:00 P:26 SP:FB CYC:289 SL:67 E0DD A9 80 LDA #$80 A:00 X:47 Y:00 P:26 SP:FB CYC:301 SL:67 E0DF D9 00 04 CMP $0400,Y @ 0400 = 00 A:80 X:47 Y:00 P:A4 SP:FB CYC:307 SL:67 E0E2 F0 04 BEQ $E0E8 A:80 X:47 Y:00 P:A5 SP:FB CYC:319 SL:67 E0E4 10 02 BPL $E0E8 A:80 X:47 Y:00 P:A5 SP:FB CYC:325 SL:67 E0E6 B0 02 BCS $E0EA A:80 X:47 Y:00 P:A5 SP:FB CYC:331 SL:67 E0EA E8 INX A:80 X:47 Y:00 P:A5 SP:FB CYC:340 SL:67 E0EB A0 80 LDY #$80 A:80 X:48 Y:00 P:25 SP:FB CYC: 5 SL:68 E0ED 8C 00 04 STY $0400 = 00 A:80 X:48 Y:80 P:A5 SP:FB CYC: 11 SL:68 E0F0 A0 00 LDY #$00 A:80 X:48 Y:80 P:A5 SP:FB CYC: 23 SL:68 E0F2 D9 00 04 CMP $0400,Y @ 0400 = 80 A:80 X:48 Y:00 P:27 SP:FB CYC: 29 SL:68 E0F5 D0 04 BNE $E0FB A:80 X:48 Y:00 P:27 SP:FB CYC: 41 SL:68 E0F7 30 02 BMI $E0FB A:80 X:48 Y:00 P:27 SP:FB CYC: 47 SL:68 E0F9 B0 02 BCS $E0FD A:80 X:48 Y:00 P:27 SP:FB CYC: 53 SL:68 E0FD E8 INX A:80 X:48 Y:00 P:27 SP:FB CYC: 62 SL:68 E0FE EE 00 04 INC $0400 = 80 A:80 X:49 Y:00 P:25 SP:FB CYC: 68 SL:68 E101 D9 00 04 CMP $0400,Y @ 0400 = 81 A:80 X:49 Y:00 P:A5 SP:FB CYC: 86 SL:68 E104 B0 04 BCS $E10A A:80 X:49 Y:00 P:A4 SP:FB CYC: 98 SL:68 E106 F0 02 BEQ $E10A A:80 X:49 Y:00 P:A4 SP:FB CYC:104 SL:68 E108 30 02 BMI $E10C A:80 X:49 Y:00 P:A4 SP:FB CYC:110 SL:68 E10C E8 INX A:80 X:49 Y:00 P:A4 SP:FB CYC:119 SL:68 E10D CE 00 04 DEC $0400 = 81 A:80 X:4A Y:00 P:24 SP:FB CYC:125 SL:68 E110 CE 00 04 DEC $0400 = 80 A:80 X:4A Y:00 P:A4 SP:FB CYC:143 SL:68 E113 D9 00 04 CMP $0400,Y @ 0400 = 7F A:80 X:4A Y:00 P:24 SP:FB CYC:161 SL:68 E116 90 04 BCC $E11C A:80 X:4A Y:00 P:25 SP:FB CYC:173 SL:68 E118 F0 02 BEQ $E11C A:80 X:4A Y:00 P:25 SP:FB CYC:179 SL:68 E11A 10 02 BPL $E11E A:80 X:4A Y:00 P:25 SP:FB CYC:185 SL:68 E11E E8 INX A:80 X:4A Y:00 P:25 SP:FB CYC:194 SL:68 E11F 24 01 BIT $01 = FF A:80 X:4B Y:00 P:25 SP:FB CYC:200 SL:68 E121 A9 40 LDA #$40 A:80 X:4B Y:00 P:E5 SP:FB CYC:209 SL:68 E123 8D 00 04 STA $0400 = 7F A:40 X:4B Y:00 P:65 SP:FB CYC:215 SL:68 E126 38 SEC A:40 X:4B Y:00 P:65 SP:FB CYC:227 SL:68 E127 F9 00 04 SBC $0400,Y @ 0400 = 40 A:40 X:4B Y:00 P:65 SP:FB CYC:233 SL:68 E12A 30 0A BMI $E136 A:00 X:4B Y:00 P:27 SP:FB CYC:245 SL:68 E12C 90 08 BCC $E136 A:00 X:4B Y:00 P:27 SP:FB CYC:251 SL:68 E12E D0 06 BNE $E136 A:00 X:4B Y:00 P:27 SP:FB CYC:257 SL:68 E130 70 04 BVS $E136 A:00 X:4B Y:00 P:27 SP:FB CYC:263 SL:68 E132 C9 00 CMP #$00 A:00 X:4B Y:00 P:27 SP:FB CYC:269 SL:68 E134 F0 02 BEQ $E138 A:00 X:4B Y:00 P:27 SP:FB CYC:275 SL:68 E138 E8 INX A:00 X:4B Y:00 P:27 SP:FB CYC:284 SL:68 E139 B8 CLV A:00 X:4C Y:00 P:25 SP:FB CYC:290 SL:68 E13A 38 SEC A:00 X:4C Y:00 P:25 SP:FB CYC:296 SL:68 E13B A9 40 LDA #$40 A:00 X:4C Y:00 P:25 SP:FB CYC:302 SL:68 E13D CE 00 04 DEC $0400 = 40 A:40 X:4C Y:00 P:25 SP:FB CYC:308 SL:68 E140 F9 00 04 SBC $0400,Y @ 0400 = 3F A:40 X:4C Y:00 P:25 SP:FB CYC:326 SL:68 E143 F0 0A BEQ $E14F A:01 X:4C Y:00 P:25 SP:FB CYC:338 SL:68 E145 30 08 BMI $E14F A:01 X:4C Y:00 P:25 SP:FB CYC: 3 SL:69 E147 90 06 BCC $E14F A:01 X:4C Y:00 P:25 SP:FB CYC: 9 SL:69 E149 70 04 BVS $E14F A:01 X:4C Y:00 P:25 SP:FB CYC: 15 SL:69 E14B C9 01 CMP #$01 A:01 X:4C Y:00 P:25 SP:FB CYC: 21 SL:69 E14D F0 02 BEQ $E151 A:01 X:4C Y:00 P:27 SP:FB CYC: 27 SL:69 E151 E8 INX A:01 X:4C Y:00 P:27 SP:FB CYC: 36 SL:69 E152 A9 40 LDA #$40 A:01 X:4D Y:00 P:25 SP:FB CYC: 42 SL:69 E154 38 SEC A:40 X:4D Y:00 P:25 SP:FB CYC: 48 SL:69 E155 24 01 BIT $01 = FF A:40 X:4D Y:00 P:25 SP:FB CYC: 54 SL:69 E157 EE 00 04 INC $0400 = 3F A:40 X:4D Y:00 P:E5 SP:FB CYC: 63 SL:69 E15A EE 00 04 INC $0400 = 40 A:40 X:4D Y:00 P:65 SP:FB CYC: 81 SL:69 E15D F9 00 04 SBC $0400,Y @ 0400 = 41 A:40 X:4D Y:00 P:65 SP:FB CYC: 99 SL:69 E160 B0 0A BCS $E16C A:FF X:4D Y:00 P:A4 SP:FB CYC:111 SL:69 E162 F0 08 BEQ $E16C A:FF X:4D Y:00 P:A4 SP:FB CYC:117 SL:69 E164 10 06 BPL $E16C A:FF X:4D Y:00 P:A4 SP:FB CYC:123 SL:69 E166 70 04 BVS $E16C A:FF X:4D Y:00 P:A4 SP:FB CYC:129 SL:69 E168 C9 FF CMP #$FF A:FF X:4D Y:00 P:A4 SP:FB CYC:135 SL:69 E16A F0 02 BEQ $E16E A:FF X:4D Y:00 P:27 SP:FB CYC:141 SL:69 E16E E8 INX A:FF X:4D Y:00 P:27 SP:FB CYC:150 SL:69 E16F 18 CLC A:FF X:4E Y:00 P:25 SP:FB CYC:156 SL:69 E170 A9 00 LDA #$00 A:FF X:4E Y:00 P:24 SP:FB CYC:162 SL:69 E172 8D 00 04 STA $0400 = 41 A:00 X:4E Y:00 P:26 SP:FB CYC:168 SL:69 E175 A9 80 LDA #$80 A:00 X:4E Y:00 P:26 SP:FB CYC:180 SL:69 E177 F9 00 04 SBC $0400,Y @ 0400 = 00 A:80 X:4E Y:00 P:A4 SP:FB CYC:186 SL:69 E17A 90 04 BCC $E180 A:7F X:4E Y:00 P:65 SP:FB CYC:198 SL:69 E17C C9 7F CMP #$7F A:7F X:4E Y:00 P:65 SP:FB CYC:204 SL:69 E17E F0 02 BEQ $E182 A:7F X:4E Y:00 P:67 SP:FB CYC:210 SL:69 E182 E8 INX A:7F X:4E Y:00 P:67 SP:FB CYC:219 SL:69 E183 38 SEC A:7F X:4F Y:00 P:65 SP:FB CYC:225 SL:69 E184 A9 7F LDA #$7F A:7F X:4F Y:00 P:65 SP:FB CYC:231 SL:69 E186 8D 00 04 STA $0400 = 00 A:7F X:4F Y:00 P:65 SP:FB CYC:237 SL:69 E189 A9 81 LDA #$81 A:7F X:4F Y:00 P:65 SP:FB CYC:249 SL:69 E18B F9 00 04 SBC $0400,Y @ 0400 = 7F A:81 X:4F Y:00 P:E5 SP:FB CYC:255 SL:69 E18E 50 06 BVC $E196 A:02 X:4F Y:00 P:65 SP:FB CYC:267 SL:69 E190 90 04 BCC $E196 A:02 X:4F Y:00 P:65 SP:FB CYC:273 SL:69 E192 C9 02 CMP #$02 A:02 X:4F Y:00 P:65 SP:FB CYC:279 SL:69 E194 F0 02 BEQ $E198 A:02 X:4F Y:00 P:67 SP:FB CYC:285 SL:69 E198 E8 INX A:02 X:4F Y:00 P:67 SP:FB CYC:294 SL:69 E199 A9 00 LDA #$00 A:02 X:50 Y:00 P:65 SP:FB CYC:300 SL:69 E19B A9 87 LDA #$87 A:00 X:50 Y:00 P:67 SP:FB CYC:306 SL:69 E19D 99 00 04 STA $0400,Y @ 0400 = 7F A:87 X:50 Y:00 P:E5 SP:FB CYC:312 SL:69 E1A0 AD 00 04 LDA $0400 = 87 A:87 X:50 Y:00 P:E5 SP:FB CYC:327 SL:69 E1A3 C9 87 CMP #$87 A:87 X:50 Y:00 P:E5 SP:FB CYC:339 SL:69 E1A5 F0 02 BEQ $E1A9 A:87 X:50 Y:00 P:67 SP:FB CYC: 4 SL:70 E1A9 60 RTS A:87 X:50 Y:00 P:67 SP:FB CYC: 13 SL:70 C629 20 B8 DB JSR $DBB8 A:87 X:50 Y:00 P:67 SP:FD CYC: 31 SL:70 DBB8 A9 FF LDA #$FF A:87 X:50 Y:00 P:67 SP:FB CYC: 49 SL:70 DBBA 85 01 STA $01 = FF A:FF X:50 Y:00 P:E5 SP:FB CYC: 55 SL:70 DBBC A9 AA LDA #$AA A:FF X:50 Y:00 P:E5 SP:FB CYC: 64 SL:70 DBBE 85 33 STA $33 = A3 A:AA X:50 Y:00 P:E5 SP:FB CYC: 70 SL:70 DBC0 A9 BB LDA #$BB A:AA X:50 Y:00 P:E5 SP:FB CYC: 79 SL:70 DBC2 85 89 STA $89 = 00 A:BB X:50 Y:00 P:E5 SP:FB CYC: 85 SL:70 DBC4 A2 00 LDX #$00 A:BB X:50 Y:00 P:E5 SP:FB CYC: 94 SL:70 DBC6 A9 66 LDA #$66 A:BB X:00 Y:00 P:67 SP:FB CYC:100 SL:70 DBC8 24 01 BIT $01 = FF A:66 X:00 Y:00 P:65 SP:FB CYC:106 SL:70 DBCA 38 SEC A:66 X:00 Y:00 P:E5 SP:FB CYC:115 SL:70 DBCB A0 00 LDY #$00 A:66 X:00 Y:00 P:E5 SP:FB CYC:121 SL:70 DBCD B4 33 LDY $33,X @ 33 = AA A:66 X:00 Y:00 P:67 SP:FB CYC:127 SL:70 DBCF 10 12 BPL $DBE3 A:66 X:00 Y:AA P:E5 SP:FB CYC:139 SL:70 DBD1 F0 10 BEQ $DBE3 A:66 X:00 Y:AA P:E5 SP:FB CYC:145 SL:70 DBD3 50 0E BVC $DBE3 A:66 X:00 Y:AA P:E5 SP:FB CYC:151 SL:70 DBD5 90 0C BCC $DBE3 A:66 X:00 Y:AA P:E5 SP:FB CYC:157 SL:70 DBD7 C9 66 CMP #$66 A:66 X:00 Y:AA P:E5 SP:FB CYC:163 SL:70 DBD9 D0 08 BNE $DBE3 A:66 X:00 Y:AA P:67 SP:FB CYC:169 SL:70 DBDB E0 00 CPX #$00 A:66 X:00 Y:AA P:67 SP:FB CYC:175 SL:70 DBDD D0 04 BNE $DBE3 A:66 X:00 Y:AA P:67 SP:FB CYC:181 SL:70 DBDF C0 AA CPY #$AA A:66 X:00 Y:AA P:67 SP:FB CYC:187 SL:70 DBE1 F0 04 BEQ $DBE7 A:66 X:00 Y:AA P:67 SP:FB CYC:193 SL:70 DBE7 A2 8A LDX #$8A A:66 X:00 Y:AA P:67 SP:FB CYC:202 SL:70 DBE9 A9 66 LDA #$66 A:66 X:8A Y:AA P:E5 SP:FB CYC:208 SL:70 DBEB B8 CLV A:66 X:8A Y:AA P:65 SP:FB CYC:214 SL:70 DBEC 18 CLC A:66 X:8A Y:AA P:25 SP:FB CYC:220 SL:70 DBED A0 00 LDY #$00 A:66 X:8A Y:AA P:24 SP:FB CYC:226 SL:70 DBEF B4 FF LDY $FF,X @ 89 = BB A:66 X:8A Y:00 P:26 SP:FB CYC:232 SL:70 DBF1 10 12 BPL $DC05 A:66 X:8A Y:BB P:A4 SP:FB CYC:244 SL:70 DBF3 F0 10 BEQ $DC05 A:66 X:8A Y:BB P:A4 SP:FB CYC:250 SL:70 DBF5 70 0E BVS $DC05 A:66 X:8A Y:BB P:A4 SP:FB CYC:256 SL:70 DBF7 B0 0C BCS $DC05 A:66 X:8A Y:BB P:A4 SP:FB CYC:262 SL:70 DBF9 C0 BB CPY #$BB A:66 X:8A Y:BB P:A4 SP:FB CYC:268 SL:70 DBFB D0 08 BNE $DC05 A:66 X:8A Y:BB P:27 SP:FB CYC:274 SL:70 DBFD C9 66 CMP #$66 A:66 X:8A Y:BB P:27 SP:FB CYC:280 SL:70 DBFF D0 04 BNE $DC05 A:66 X:8A Y:BB P:27 SP:FB CYC:286 SL:70 DC01 E0 8A CPX #$8A A:66 X:8A Y:BB P:27 SP:FB CYC:292 SL:70 DC03 F0 04 BEQ $DC09 A:66 X:8A Y:BB P:27 SP:FB CYC:298 SL:70 DC09 24 01 BIT $01 = FF A:66 X:8A Y:BB P:27 SP:FB CYC:307 SL:70 DC0B 38 SEC A:66 X:8A Y:BB P:E5 SP:FB CYC:316 SL:70 DC0C A0 44 LDY #$44 A:66 X:8A Y:BB P:E5 SP:FB CYC:322 SL:70 DC0E A2 00 LDX #$00 A:66 X:8A Y:44 P:65 SP:FB CYC:328 SL:70 DC10 94 33 STY $33,X @ 33 = AA A:66 X:00 Y:44 P:67 SP:FB CYC:334 SL:70 DC12 A5 33 LDA $33 = 44 A:66 X:00 Y:44 P:67 SP:FB CYC: 5 SL:71 DC14 90 18 BCC $DC2E A:44 X:00 Y:44 P:65 SP:FB CYC: 14 SL:71 DC16 C9 44 CMP #$44 A:44 X:00 Y:44 P:65 SP:FB CYC: 20 SL:71 DC18 D0 14 BNE $DC2E A:44 X:00 Y:44 P:67 SP:FB CYC: 26 SL:71 DC1A 50 12 BVC $DC2E A:44 X:00 Y:44 P:67 SP:FB CYC: 32 SL:71 DC1C 18 CLC A:44 X:00 Y:44 P:67 SP:FB CYC: 38 SL:71 DC1D B8 CLV A:44 X:00 Y:44 P:66 SP:FB CYC: 44 SL:71 DC1E A0 99 LDY #$99 A:44 X:00 Y:44 P:26 SP:FB CYC: 50 SL:71 DC20 A2 80 LDX #$80 A:44 X:00 Y:99 P:A4 SP:FB CYC: 56 SL:71 DC22 94 85 STY $85,X @ 05 = 00 A:44 X:80 Y:99 P:A4 SP:FB CYC: 62 SL:71 DC24 A5 05 LDA $05 = 99 A:44 X:80 Y:99 P:A4 SP:FB CYC: 74 SL:71 DC26 B0 06 BCS $DC2E A:99 X:80 Y:99 P:A4 SP:FB CYC: 83 SL:71 DC28 C9 99 CMP #$99 A:99 X:80 Y:99 P:A4 SP:FB CYC: 89 SL:71 DC2A D0 02 BNE $DC2E A:99 X:80 Y:99 P:27 SP:FB CYC: 95 SL:71 DC2C 50 04 BVC $DC32 A:99 X:80 Y:99 P:27 SP:FB CYC:101 SL:71 DC32 A0 0B LDY #$0B A:99 X:80 Y:99 P:27 SP:FB CYC:110 SL:71 DC34 A9 AA LDA #$AA A:99 X:80 Y:0B P:25 SP:FB CYC:116 SL:71 DC36 A2 78 LDX #$78 A:AA X:80 Y:0B P:A5 SP:FB CYC:122 SL:71 DC38 85 78 STA $78 = 00 A:AA X:78 Y:0B P:25 SP:FB CYC:128 SL:71 DC3A 20 B6 F7 JSR $F7B6 A:AA X:78 Y:0B P:25 SP:FB CYC:137 SL:71 F7B6 18 CLC A:AA X:78 Y:0B P:25 SP:F9 CYC:155 SL:71 F7B7 A9 FF LDA #$FF A:AA X:78 Y:0B P:24 SP:F9 CYC:161 SL:71 F7B9 85 01 STA $01 = FF A:FF X:78 Y:0B P:A4 SP:F9 CYC:167 SL:71 F7BB 24 01 BIT $01 = FF A:FF X:78 Y:0B P:A4 SP:F9 CYC:176 SL:71 F7BD A9 55 LDA #$55 A:FF X:78 Y:0B P:E4 SP:F9 CYC:185 SL:71 F7BF 60 RTS A:55 X:78 Y:0B P:64 SP:F9 CYC:191 SL:71 DC3D 15 00 ORA $00,X @ 78 = AA A:55 X:78 Y:0B P:64 SP:FB CYC:209 SL:71 DC3F 20 C0 F7 JSR $F7C0 A:FF X:78 Y:0B P:E4 SP:FB CYC:221 SL:71 F7C0 B0 09 BCS $F7CB A:FF X:78 Y:0B P:E4 SP:F9 CYC:239 SL:71 F7C2 10 07 BPL $F7CB A:FF X:78 Y:0B P:E4 SP:F9 CYC:245 SL:71 F7C4 C9 FF CMP #$FF A:FF X:78 Y:0B P:E4 SP:F9 CYC:251 SL:71 F7C6 D0 03 BNE $F7CB A:FF X:78 Y:0B P:67 SP:F9 CYC:257 SL:71 F7C8 50 01 BVC $F7CB A:FF X:78 Y:0B P:67 SP:F9 CYC:263 SL:71 F7CA 60 RTS A:FF X:78 Y:0B P:67 SP:F9 CYC:269 SL:71 DC42 C8 INY A:FF X:78 Y:0B P:67 SP:FB CYC:287 SL:71 DC43 A9 00 LDA #$00 A:FF X:78 Y:0C P:65 SP:FB CYC:293 SL:71 DC45 85 78 STA $78 = AA A:00 X:78 Y:0C P:67 SP:FB CYC:299 SL:71 DC47 20 CE F7 JSR $F7CE A:00 X:78 Y:0C P:67 SP:FB CYC:308 SL:71 F7CE 38 SEC A:00 X:78 Y:0C P:67 SP:F9 CYC:326 SL:71 F7CF B8 CLV A:00 X:78 Y:0C P:67 SP:F9 CYC:332 SL:71 F7D0 A9 00 LDA #$00 A:00 X:78 Y:0C P:27 SP:F9 CYC:338 SL:71 F7D2 60 RTS A:00 X:78 Y:0C P:27 SP:F9 CYC: 3 SL:72 DC4A 15 00 ORA $00,X @ 78 = 00 A:00 X:78 Y:0C P:27 SP:FB CYC: 21 SL:72 DC4C 20 D3 F7 JSR $F7D3 A:00 X:78 Y:0C P:27 SP:FB CYC: 33 SL:72 F7D3 D0 07 BNE $F7DC A:00 X:78 Y:0C P:27 SP:F9 CYC: 51 SL:72 F7D5 70 05 BVS $F7DC A:00 X:78 Y:0C P:27 SP:F9 CYC: 57 SL:72 F7D7 90 03 BCC $F7DC A:00 X:78 Y:0C P:27 SP:F9 CYC: 63 SL:72 F7D9 30 01 BMI $F7DC A:00 X:78 Y:0C P:27 SP:F9 CYC: 69 SL:72 F7DB 60 RTS A:00 X:78 Y:0C P:27 SP:F9 CYC: 75 SL:72 DC4F C8 INY A:00 X:78 Y:0C P:27 SP:FB CYC: 93 SL:72 DC50 A9 AA LDA #$AA A:00 X:78 Y:0D P:25 SP:FB CYC: 99 SL:72 DC52 85 78 STA $78 = 00 A:AA X:78 Y:0D P:A5 SP:FB CYC:105 SL:72 DC54 20 DF F7 JSR $F7DF A:AA X:78 Y:0D P:A5 SP:FB CYC:114 SL:72 F7DF 18 CLC A:AA X:78 Y:0D P:A5 SP:F9 CYC:132 SL:72 F7E0 24 01 BIT $01 = FF A:AA X:78 Y:0D P:A4 SP:F9 CYC:138 SL:72 F7E2 A9 55 LDA #$55 A:AA X:78 Y:0D P:E4 SP:F9 CYC:147 SL:72 F7E4 60 RTS A:55 X:78 Y:0D P:64 SP:F9 CYC:153 SL:72 DC57 35 00 AND $00,X @ 78 = AA A:55 X:78 Y:0D P:64 SP:FB CYC:171 SL:72 DC59 20 E5 F7 JSR $F7E5 A:00 X:78 Y:0D P:66 SP:FB CYC:183 SL:72 F7E5 D0 07 BNE $F7EE A:00 X:78 Y:0D P:66 SP:F9 CYC:201 SL:72 F7E7 50 05 BVC $F7EE A:00 X:78 Y:0D P:66 SP:F9 CYC:207 SL:72 F7E9 B0 03 BCS $F7EE A:00 X:78 Y:0D P:66 SP:F9 CYC:213 SL:72 F7EB 30 01 BMI $F7EE A:00 X:78 Y:0D P:66 SP:F9 CYC:219 SL:72 F7ED 60 RTS A:00 X:78 Y:0D P:66 SP:F9 CYC:225 SL:72 DC5C C8 INY A:00 X:78 Y:0D P:66 SP:FB CYC:243 SL:72 DC5D A9 EF LDA #$EF A:00 X:78 Y:0E P:64 SP:FB CYC:249 SL:72 DC5F 85 78 STA $78 = AA A:EF X:78 Y:0E P:E4 SP:FB CYC:255 SL:72 DC61 20 F1 F7 JSR $F7F1 A:EF X:78 Y:0E P:E4 SP:FB CYC:264 SL:72 F7F1 38 SEC A:EF X:78 Y:0E P:E4 SP:F9 CYC:282 SL:72 F7F2 B8 CLV A:EF X:78 Y:0E P:E5 SP:F9 CYC:288 SL:72 F7F3 A9 F8 LDA #$F8 A:EF X:78 Y:0E P:A5 SP:F9 CYC:294 SL:72 F7F5 60 RTS A:F8 X:78 Y:0E P:A5 SP:F9 CYC:300 SL:72 DC64 35 00 AND $00,X @ 78 = EF A:F8 X:78 Y:0E P:A5 SP:FB CYC:318 SL:72 DC66 20 F6 F7 JSR $F7F6 A:E8 X:78 Y:0E P:A5 SP:FB CYC:330 SL:72 F7F6 90 09 BCC $F801 A:E8 X:78 Y:0E P:A5 SP:F9 CYC: 7 SL:73 F7F8 10 07 BPL $F801 A:E8 X:78 Y:0E P:A5 SP:F9 CYC: 13 SL:73 F7FA C9 E8 CMP #$E8 A:E8 X:78 Y:0E P:A5 SP:F9 CYC: 19 SL:73 F7FC D0 03 BNE $F801 A:E8 X:78 Y:0E P:27 SP:F9 CYC: 25 SL:73 F7FE 70 01 BVS $F801 A:E8 X:78 Y:0E P:27 SP:F9 CYC: 31 SL:73 F800 60 RTS A:E8 X:78 Y:0E P:27 SP:F9 CYC: 37 SL:73 DC69 C8 INY A:E8 X:78 Y:0E P:27 SP:FB CYC: 55 SL:73 DC6A A9 AA LDA #$AA A:E8 X:78 Y:0F P:25 SP:FB CYC: 61 SL:73 DC6C 85 78 STA $78 = EF A:AA X:78 Y:0F P:A5 SP:FB CYC: 67 SL:73 DC6E 20 04 F8 JSR $F804 A:AA X:78 Y:0F P:A5 SP:FB CYC: 76 SL:73 F804 18 CLC A:AA X:78 Y:0F P:A5 SP:F9 CYC: 94 SL:73 F805 24 01 BIT $01 = FF A:AA X:78 Y:0F P:A4 SP:F9 CYC:100 SL:73 F807 A9 5F LDA #$5F A:AA X:78 Y:0F P:E4 SP:F9 CYC:109 SL:73 F809 60 RTS A:5F X:78 Y:0F P:64 SP:F9 CYC:115 SL:73 DC71 55 00 EOR $00,X @ 78 = AA A:5F X:78 Y:0F P:64 SP:FB CYC:133 SL:73 DC73 20 0A F8 JSR $F80A A:F5 X:78 Y:0F P:E4 SP:FB CYC:145 SL:73 F80A B0 09 BCS $F815 A:F5 X:78 Y:0F P:E4 SP:F9 CYC:163 SL:73 F80C 10 07 BPL $F815 A:F5 X:78 Y:0F P:E4 SP:F9 CYC:169 SL:73 F80E C9 F5 CMP #$F5 A:F5 X:78 Y:0F P:E4 SP:F9 CYC:175 SL:73 F810 D0 03 BNE $F815 A:F5 X:78 Y:0F P:67 SP:F9 CYC:181 SL:73 F812 50 01 BVC $F815 A:F5 X:78 Y:0F P:67 SP:F9 CYC:187 SL:73 F814 60 RTS A:F5 X:78 Y:0F P:67 SP:F9 CYC:193 SL:73 DC76 C8 INY A:F5 X:78 Y:0F P:67 SP:FB CYC:211 SL:73 DC77 A9 70 LDA #$70 A:F5 X:78 Y:10 P:65 SP:FB CYC:217 SL:73 DC79 85 78 STA $78 = AA A:70 X:78 Y:10 P:65 SP:FB CYC:223 SL:73 DC7B 20 18 F8 JSR $F818 A:70 X:78 Y:10 P:65 SP:FB CYC:232 SL:73 F818 38 SEC A:70 X:78 Y:10 P:65 SP:F9 CYC:250 SL:73 F819 B8 CLV A:70 X:78 Y:10 P:65 SP:F9 CYC:256 SL:73 F81A A9 70 LDA #$70 A:70 X:78 Y:10 P:25 SP:F9 CYC:262 SL:73 F81C 60 RTS A:70 X:78 Y:10 P:25 SP:F9 CYC:268 SL:73 DC7E 55 00 EOR $00,X @ 78 = 70 A:70 X:78 Y:10 P:25 SP:FB CYC:286 SL:73 DC80 20 1D F8 JSR $F81D A:00 X:78 Y:10 P:27 SP:FB CYC:298 SL:73 F81D D0 07 BNE $F826 A:00 X:78 Y:10 P:27 SP:F9 CYC:316 SL:73 F81F 70 05 BVS $F826 A:00 X:78 Y:10 P:27 SP:F9 CYC:322 SL:73 F821 90 03 BCC $F826 A:00 X:78 Y:10 P:27 SP:F9 CYC:328 SL:73 F823 30 01 BMI $F826 A:00 X:78 Y:10 P:27 SP:F9 CYC:334 SL:73 F825 60 RTS A:00 X:78 Y:10 P:27 SP:F9 CYC:340 SL:73 DC83 C8 INY A:00 X:78 Y:10 P:27 SP:FB CYC: 17 SL:74 DC84 A9 69 LDA #$69 A:00 X:78 Y:11 P:25 SP:FB CYC: 23 SL:74 DC86 85 78 STA $78 = 70 A:69 X:78 Y:11 P:25 SP:FB CYC: 29 SL:74 DC88 20 29 F8 JSR $F829 A:69 X:78 Y:11 P:25 SP:FB CYC: 38 SL:74 F829 18 CLC A:69 X:78 Y:11 P:25 SP:F9 CYC: 56 SL:74 F82A 24 01 BIT $01 = FF A:69 X:78 Y:11 P:24 SP:F9 CYC: 62 SL:74 F82C A9 00 LDA #$00 A:69 X:78 Y:11 P:E4 SP:F9 CYC: 71 SL:74 F82E 60 RTS A:00 X:78 Y:11 P:66 SP:F9 CYC: 77 SL:74 DC8B 75 00 ADC $00,X @ 78 = 69 A:00 X:78 Y:11 P:66 SP:FB CYC: 95 SL:74 DC8D 20 2F F8 JSR $F82F A:69 X:78 Y:11 P:24 SP:FB CYC:107 SL:74 F82F 30 09 BMI $F83A A:69 X:78 Y:11 P:24 SP:F9 CYC:125 SL:74 F831 B0 07 BCS $F83A A:69 X:78 Y:11 P:24 SP:F9 CYC:131 SL:74 F833 C9 69 CMP #$69 A:69 X:78 Y:11 P:24 SP:F9 CYC:137 SL:74 F835 D0 03 BNE $F83A A:69 X:78 Y:11 P:27 SP:F9 CYC:143 SL:74 F837 70 01 BVS $F83A A:69 X:78 Y:11 P:27 SP:F9 CYC:149 SL:74 F839 60 RTS A:69 X:78 Y:11 P:27 SP:F9 CYC:155 SL:74 DC90 C8 INY A:69 X:78 Y:11 P:27 SP:FB CYC:173 SL:74 DC91 20 3D F8 JSR $F83D A:69 X:78 Y:12 P:25 SP:FB CYC:179 SL:74 F83D 38 SEC A:69 X:78 Y:12 P:25 SP:F9 CYC:197 SL:74 F83E 24 01 BIT $01 = FF A:69 X:78 Y:12 P:25 SP:F9 CYC:203 SL:74 F840 A9 00 LDA #$00 A:69 X:78 Y:12 P:E5 SP:F9 CYC:212 SL:74 F842 60 RTS A:00 X:78 Y:12 P:67 SP:F9 CYC:218 SL:74 DC94 75 00 ADC $00,X @ 78 = 69 A:00 X:78 Y:12 P:67 SP:FB CYC:236 SL:74 DC96 20 43 F8 JSR $F843 A:6A X:78 Y:12 P:24 SP:FB CYC:248 SL:74 F843 30 09 BMI $F84E A:6A X:78 Y:12 P:24 SP:F9 CYC:266 SL:74 F845 B0 07 BCS $F84E A:6A X:78 Y:12 P:24 SP:F9 CYC:272 SL:74 F847 C9 6A CMP #$6A A:6A X:78 Y:12 P:24 SP:F9 CYC:278 SL:74 F849 D0 03 BNE $F84E A:6A X:78 Y:12 P:27 SP:F9 CYC:284 SL:74 F84B 70 01 BVS $F84E A:6A X:78 Y:12 P:27 SP:F9 CYC:290 SL:74 F84D 60 RTS A:6A X:78 Y:12 P:27 SP:F9 CYC:296 SL:74 DC99 C8 INY A:6A X:78 Y:12 P:27 SP:FB CYC:314 SL:74 DC9A A9 7F LDA #$7F A:6A X:78 Y:13 P:25 SP:FB CYC:320 SL:74 DC9C 85 78 STA $78 = 69 A:7F X:78 Y:13 P:25 SP:FB CYC:326 SL:74 DC9E 20 51 F8 JSR $F851 A:7F X:78 Y:13 P:25 SP:FB CYC:335 SL:74 F851 38 SEC A:7F X:78 Y:13 P:25 SP:F9 CYC: 12 SL:75 F852 B8 CLV A:7F X:78 Y:13 P:25 SP:F9 CYC: 18 SL:75 F853 A9 7F LDA #$7F A:7F X:78 Y:13 P:25 SP:F9 CYC: 24 SL:75 F855 60 RTS A:7F X:78 Y:13 P:25 SP:F9 CYC: 30 SL:75 DCA1 75 00 ADC $00,X @ 78 = 7F A:7F X:78 Y:13 P:25 SP:FB CYC: 48 SL:75 DCA3 20 56 F8 JSR $F856 A:FF X:78 Y:13 P:E4 SP:FB CYC: 60 SL:75 F856 10 09 BPL $F861 A:FF X:78 Y:13 P:E4 SP:F9 CYC: 78 SL:75 F858 B0 07 BCS $F861 A:FF X:78 Y:13 P:E4 SP:F9 CYC: 84 SL:75 F85A C9 FF CMP #$FF A:FF X:78 Y:13 P:E4 SP:F9 CYC: 90 SL:75 F85C D0 03 BNE $F861 A:FF X:78 Y:13 P:67 SP:F9 CYC: 96 SL:75 F85E 50 01 BVC $F861 A:FF X:78 Y:13 P:67 SP:F9 CYC:102 SL:75 F860 60 RTS A:FF X:78 Y:13 P:67 SP:F9 CYC:108 SL:75 DCA6 C8 INY A:FF X:78 Y:13 P:67 SP:FB CYC:126 SL:75 DCA7 A9 80 LDA #$80 A:FF X:78 Y:14 P:65 SP:FB CYC:132 SL:75 DCA9 85 78 STA $78 = 7F A:80 X:78 Y:14 P:E5 SP:FB CYC:138 SL:75 DCAB 20 64 F8 JSR $F864 A:80 X:78 Y:14 P:E5 SP:FB CYC:147 SL:75 F864 18 CLC A:80 X:78 Y:14 P:E5 SP:F9 CYC:165 SL:75 F865 24 01 BIT $01 = FF A:80 X:78 Y:14 P:E4 SP:F9 CYC:171 SL:75 F867 A9 7F LDA #$7F A:80 X:78 Y:14 P:E4 SP:F9 CYC:180 SL:75 F869 60 RTS A:7F X:78 Y:14 P:64 SP:F9 CYC:186 SL:75 DCAE 75 00 ADC $00,X @ 78 = 80 A:7F X:78 Y:14 P:64 SP:FB CYC:204 SL:75 DCB0 20 6A F8 JSR $F86A A:FF X:78 Y:14 P:A4 SP:FB CYC:216 SL:75 F86A 10 09 BPL $F875 A:FF X:78 Y:14 P:A4 SP:F9 CYC:234 SL:75 F86C B0 07 BCS $F875 A:FF X:78 Y:14 P:A4 SP:F9 CYC:240 SL:75 F86E C9 FF CMP #$FF A:FF X:78 Y:14 P:A4 SP:F9 CYC:246 SL:75 F870 D0 03 BNE $F875 A:FF X:78 Y:14 P:27 SP:F9 CYC:252 SL:75 F872 70 01 BVS $F875 A:FF X:78 Y:14 P:27 SP:F9 CYC:258 SL:75 F874 60 RTS A:FF X:78 Y:14 P:27 SP:F9 CYC:264 SL:75 DCB3 C8 INY A:FF X:78 Y:14 P:27 SP:FB CYC:282 SL:75 DCB4 20 78 F8 JSR $F878 A:FF X:78 Y:15 P:25 SP:FB CYC:288 SL:75 F878 38 SEC A:FF X:78 Y:15 P:25 SP:F9 CYC:306 SL:75 F879 B8 CLV A:FF X:78 Y:15 P:25 SP:F9 CYC:312 SL:75 F87A A9 7F LDA #$7F A:FF X:78 Y:15 P:25 SP:F9 CYC:318 SL:75 F87C 60 RTS A:7F X:78 Y:15 P:25 SP:F9 CYC:324 SL:75 DCB7 75 00 ADC $00,X @ 78 = 80 A:7F X:78 Y:15 P:25 SP:FB CYC: 1 SL:76 DCB9 20 7D F8 JSR $F87D A:00 X:78 Y:15 P:27 SP:FB CYC: 13 SL:76 F87D D0 07 BNE $F886 A:00 X:78 Y:15 P:27 SP:F9 CYC: 31 SL:76 F87F 30 05 BMI $F886 A:00 X:78 Y:15 P:27 SP:F9 CYC: 37 SL:76 F881 70 03 BVS $F886 A:00 X:78 Y:15 P:27 SP:F9 CYC: 43 SL:76 F883 90 01 BCC $F886 A:00 X:78 Y:15 P:27 SP:F9 CYC: 49 SL:76 F885 60 RTS A:00 X:78 Y:15 P:27 SP:F9 CYC: 55 SL:76 DCBC C8 INY A:00 X:78 Y:15 P:27 SP:FB CYC: 73 SL:76 DCBD A9 40 LDA #$40 A:00 X:78 Y:16 P:25 SP:FB CYC: 79 SL:76 DCBF 85 78 STA $78 = 80 A:40 X:78 Y:16 P:25 SP:FB CYC: 85 SL:76 DCC1 20 89 F8 JSR $F889 A:40 X:78 Y:16 P:25 SP:FB CYC: 94 SL:76 F889 24 01 BIT $01 = FF A:40 X:78 Y:16 P:25 SP:F9 CYC:112 SL:76 F88B A9 40 LDA #$40 A:40 X:78 Y:16 P:E5 SP:F9 CYC:121 SL:76 F88D 60 RTS A:40 X:78 Y:16 P:65 SP:F9 CYC:127 SL:76 DCC4 D5 00 CMP $00,X @ 78 = 40 A:40 X:78 Y:16 P:65 SP:FB CYC:145 SL:76 DCC6 20 8E F8 JSR $F88E A:40 X:78 Y:16 P:67 SP:FB CYC:157 SL:76 F88E 30 07 BMI $F897 A:40 X:78 Y:16 P:67 SP:F9 CYC:175 SL:76 F890 90 05 BCC $F897 A:40 X:78 Y:16 P:67 SP:F9 CYC:181 SL:76 F892 D0 03 BNE $F897 A:40 X:78 Y:16 P:67 SP:F9 CYC:187 SL:76 F894 50 01 BVC $F897 A:40 X:78 Y:16 P:67 SP:F9 CYC:193 SL:76 F896 60 RTS A:40 X:78 Y:16 P:67 SP:F9 CYC:199 SL:76 DCC9 C8 INY A:40 X:78 Y:16 P:67 SP:FB CYC:217 SL:76 DCCA 48 PHA A:40 X:78 Y:17 P:65 SP:FB CYC:223 SL:76 DCCB A9 3F LDA #$3F A:40 X:78 Y:17 P:65 SP:FA CYC:232 SL:76 DCCD 85 78 STA $78 = 40 A:3F X:78 Y:17 P:65 SP:FA CYC:238 SL:76 DCCF 68 PLA A:3F X:78 Y:17 P:65 SP:FA CYC:247 SL:76 DCD0 20 9A F8 JSR $F89A A:40 X:78 Y:17 P:65 SP:FB CYC:259 SL:76 F89A B8 CLV A:40 X:78 Y:17 P:65 SP:F9 CYC:277 SL:76 F89B 60 RTS A:40 X:78 Y:17 P:25 SP:F9 CYC:283 SL:76 DCD3 D5 00 CMP $00,X @ 78 = 3F A:40 X:78 Y:17 P:25 SP:FB CYC:301 SL:76 DCD5 20 9C F8 JSR $F89C A:40 X:78 Y:17 P:25 SP:FB CYC:313 SL:76 F89C F0 07 BEQ $F8A5 A:40 X:78 Y:17 P:25 SP:F9 CYC:331 SL:76 F89E 30 05 BMI $F8A5 A:40 X:78 Y:17 P:25 SP:F9 CYC:337 SL:76 F8A0 90 03 BCC $F8A5 A:40 X:78 Y:17 P:25 SP:F9 CYC: 2 SL:77 F8A2 70 01 BVS $F8A5 A:40 X:78 Y:17 P:25 SP:F9 CYC: 8 SL:77 F8A4 60 RTS A:40 X:78 Y:17 P:25 SP:F9 CYC: 14 SL:77 DCD8 C8 INY A:40 X:78 Y:17 P:25 SP:FB CYC: 32 SL:77 DCD9 48 PHA A:40 X:78 Y:18 P:25 SP:FB CYC: 38 SL:77 DCDA A9 41 LDA #$41 A:40 X:78 Y:18 P:25 SP:FA CYC: 47 SL:77 DCDC 85 78 STA $78 = 3F A:41 X:78 Y:18 P:25 SP:FA CYC: 53 SL:77 DCDE 68 PLA A:41 X:78 Y:18 P:25 SP:FA CYC: 62 SL:77 DCDF D5 00 CMP $00,X @ 78 = 41 A:40 X:78 Y:18 P:25 SP:FB CYC: 74 SL:77 DCE1 20 A8 F8 JSR $F8A8 A:40 X:78 Y:18 P:A4 SP:FB CYC: 86 SL:77 F8A8 F0 05 BEQ $F8AF A:40 X:78 Y:18 P:A4 SP:F9 CYC:104 SL:77 F8AA 10 03 BPL $F8AF A:40 X:78 Y:18 P:A4 SP:F9 CYC:110 SL:77 F8AC 10 01 BPL $F8AF A:40 X:78 Y:18 P:A4 SP:F9 CYC:116 SL:77 F8AE 60 RTS A:40 X:78 Y:18 P:A4 SP:F9 CYC:122 SL:77 DCE4 C8 INY A:40 X:78 Y:18 P:A4 SP:FB CYC:140 SL:77 DCE5 48 PHA A:40 X:78 Y:19 P:24 SP:FB CYC:146 SL:77 DCE6 A9 00 LDA #$00 A:40 X:78 Y:19 P:24 SP:FA CYC:155 SL:77 DCE8 85 78 STA $78 = 41 A:00 X:78 Y:19 P:26 SP:FA CYC:161 SL:77 DCEA 68 PLA A:00 X:78 Y:19 P:26 SP:FA CYC:170 SL:77 DCEB 20 B2 F8 JSR $F8B2 A:40 X:78 Y:19 P:24 SP:FB CYC:182 SL:77 F8B2 A9 80 LDA #$80 A:40 X:78 Y:19 P:24 SP:F9 CYC:200 SL:77 F8B4 60 RTS A:80 X:78 Y:19 P:A4 SP:F9 CYC:206 SL:77 DCEE D5 00 CMP $00,X @ 78 = 00 A:80 X:78 Y:19 P:A4 SP:FB CYC:224 SL:77 DCF0 20 B5 F8 JSR $F8B5 A:80 X:78 Y:19 P:A5 SP:FB CYC:236 SL:77 F8B5 F0 05 BEQ $F8BC A:80 X:78 Y:19 P:A5 SP:F9 CYC:254 SL:77 F8B7 10 03 BPL $F8BC A:80 X:78 Y:19 P:A5 SP:F9 CYC:260 SL:77 F8B9 90 01 BCC $F8BC A:80 X:78 Y:19 P:A5 SP:F9 CYC:266 SL:77 F8BB 60 RTS A:80 X:78 Y:19 P:A5 SP:F9 CYC:272 SL:77 DCF3 C8 INY A:80 X:78 Y:19 P:A5 SP:FB CYC:290 SL:77 DCF4 48 PHA A:80 X:78 Y:1A P:25 SP:FB CYC:296 SL:77 DCF5 A9 80 LDA #$80 A:80 X:78 Y:1A P:25 SP:FA CYC:305 SL:77 DCF7 85 78 STA $78 = 00 A:80 X:78 Y:1A P:A5 SP:FA CYC:311 SL:77 DCF9 68 PLA A:80 X:78 Y:1A P:A5 SP:FA CYC:320 SL:77 DCFA D5 00 CMP $00,X @ 78 = 80 A:80 X:78 Y:1A P:A5 SP:FB CYC:332 SL:77 DCFC 20 BF F8 JSR $F8BF A:80 X:78 Y:1A P:27 SP:FB CYC: 3 SL:78 F8BF D0 05 BNE $F8C6 A:80 X:78 Y:1A P:27 SP:F9 CYC: 21 SL:78 F8C1 30 03 BMI $F8C6 A:80 X:78 Y:1A P:27 SP:F9 CYC: 27 SL:78 F8C3 90 01 BCC $F8C6 A:80 X:78 Y:1A P:27 SP:F9 CYC: 33 SL:78 F8C5 60 RTS A:80 X:78 Y:1A P:27 SP:F9 CYC: 39 SL:78 DCFF C8 INY A:80 X:78 Y:1A P:27 SP:FB CYC: 57 SL:78 DD00 48 PHA A:80 X:78 Y:1B P:25 SP:FB CYC: 63 SL:78 DD01 A9 81 LDA #$81 A:80 X:78 Y:1B P:25 SP:FA CYC: 72 SL:78 DD03 85 78 STA $78 = 80 A:81 X:78 Y:1B P:A5 SP:FA CYC: 78 SL:78 DD05 68 PLA A:81 X:78 Y:1B P:A5 SP:FA CYC: 87 SL:78 DD06 D5 00 CMP $00,X @ 78 = 81 A:80 X:78 Y:1B P:A5 SP:FB CYC: 99 SL:78 DD08 20 C9 F8 JSR $F8C9 A:80 X:78 Y:1B P:A4 SP:FB CYC:111 SL:78 F8C9 B0 05 BCS $F8D0 A:80 X:78 Y:1B P:A4 SP:F9 CYC:129 SL:78 F8CB F0 03 BEQ $F8D0 A:80 X:78 Y:1B P:A4 SP:F9 CYC:135 SL:78 F8CD 10 01 BPL $F8D0 A:80 X:78 Y:1B P:A4 SP:F9 CYC:141 SL:78 F8CF 60 RTS A:80 X:78 Y:1B P:A4 SP:F9 CYC:147 SL:78 DD0B C8 INY A:80 X:78 Y:1B P:A4 SP:FB CYC:165 SL:78 DD0C 48 PHA A:80 X:78 Y:1C P:24 SP:FB CYC:171 SL:78 DD0D A9 7F LDA #$7F A:80 X:78 Y:1C P:24 SP:FA CYC:180 SL:78 DD0F 85 78 STA $78 = 81 A:7F X:78 Y:1C P:24 SP:FA CYC:186 SL:78 DD11 68 PLA A:7F X:78 Y:1C P:24 SP:FA CYC:195 SL:78 DD12 D5 00 CMP $00,X @ 78 = 7F A:80 X:78 Y:1C P:A4 SP:FB CYC:207 SL:78 DD14 20 D3 F8 JSR $F8D3 A:80 X:78 Y:1C P:25 SP:FB CYC:219 SL:78 F8D3 90 05 BCC $F8DA A:80 X:78 Y:1C P:25 SP:F9 CYC:237 SL:78 F8D5 F0 03 BEQ $F8DA A:80 X:78 Y:1C P:25 SP:F9 CYC:243 SL:78 F8D7 30 01 BMI $F8DA A:80 X:78 Y:1C P:25 SP:F9 CYC:249 SL:78 F8D9 60 RTS A:80 X:78 Y:1C P:25 SP:F9 CYC:255 SL:78 DD17 C8 INY A:80 X:78 Y:1C P:25 SP:FB CYC:273 SL:78 DD18 A9 40 LDA #$40 A:80 X:78 Y:1D P:25 SP:FB CYC:279 SL:78 DD1A 85 78 STA $78 = 7F A:40 X:78 Y:1D P:25 SP:FB CYC:285 SL:78 DD1C 20 31 F9 JSR $F931 A:40 X:78 Y:1D P:25 SP:FB CYC:294 SL:78 F931 24 01 BIT $01 = FF A:40 X:78 Y:1D P:25 SP:F9 CYC:312 SL:78 F933 A9 40 LDA #$40 A:40 X:78 Y:1D P:E5 SP:F9 CYC:321 SL:78 F935 38 SEC A:40 X:78 Y:1D P:65 SP:F9 CYC:327 SL:78 F936 60 RTS A:40 X:78 Y:1D P:65 SP:F9 CYC:333 SL:78 DD1F F5 00 SBC $00,X @ 78 = 40 A:40 X:78 Y:1D P:65 SP:FB CYC: 10 SL:79 DD21 20 37 F9 JSR $F937 A:00 X:78 Y:1D P:27 SP:FB CYC: 22 SL:79 F937 30 0B BMI $F944 A:00 X:78 Y:1D P:27 SP:F9 CYC: 40 SL:79 F939 90 09 BCC $F944 A:00 X:78 Y:1D P:27 SP:F9 CYC: 46 SL:79 F93B D0 07 BNE $F944 A:00 X:78 Y:1D P:27 SP:F9 CYC: 52 SL:79 F93D 70 05 BVS $F944 A:00 X:78 Y:1D P:27 SP:F9 CYC: 58 SL:79 F93F C9 00 CMP #$00 A:00 X:78 Y:1D P:27 SP:F9 CYC: 64 SL:79 F941 D0 01 BNE $F944 A:00 X:78 Y:1D P:27 SP:F9 CYC: 70 SL:79 F943 60 RTS A:00 X:78 Y:1D P:27 SP:F9 CYC: 76 SL:79 DD24 C8 INY A:00 X:78 Y:1D P:27 SP:FB CYC: 94 SL:79 DD25 A9 3F LDA #$3F A:00 X:78 Y:1E P:25 SP:FB CYC:100 SL:79 DD27 85 78 STA $78 = 40 A:3F X:78 Y:1E P:25 SP:FB CYC:106 SL:79 DD29 20 47 F9 JSR $F947 A:3F X:78 Y:1E P:25 SP:FB CYC:115 SL:79 F947 B8 CLV A:3F X:78 Y:1E P:25 SP:F9 CYC:133 SL:79 F948 38 SEC A:3F X:78 Y:1E P:25 SP:F9 CYC:139 SL:79 F949 A9 40 LDA #$40 A:3F X:78 Y:1E P:25 SP:F9 CYC:145 SL:79 F94B 60 RTS A:40 X:78 Y:1E P:25 SP:F9 CYC:151 SL:79 DD2C F5 00 SBC $00,X @ 78 = 3F A:40 X:78 Y:1E P:25 SP:FB CYC:169 SL:79 DD2E 20 4C F9 JSR $F94C A:01 X:78 Y:1E P:25 SP:FB CYC:181 SL:79 F94C F0 0B BEQ $F959 A:01 X:78 Y:1E P:25 SP:F9 CYC:199 SL:79 F94E 30 09 BMI $F959 A:01 X:78 Y:1E P:25 SP:F9 CYC:205 SL:79 F950 90 07 BCC $F959 A:01 X:78 Y:1E P:25 SP:F9 CYC:211 SL:79 F952 70 05 BVS $F959 A:01 X:78 Y:1E P:25 SP:F9 CYC:217 SL:79 F954 C9 01 CMP #$01 A:01 X:78 Y:1E P:25 SP:F9 CYC:223 SL:79 F956 D0 01 BNE $F959 A:01 X:78 Y:1E P:27 SP:F9 CYC:229 SL:79 F958 60 RTS A:01 X:78 Y:1E P:27 SP:F9 CYC:235 SL:79 DD31 C8 INY A:01 X:78 Y:1E P:27 SP:FB CYC:253 SL:79 DD32 A9 41 LDA #$41 A:01 X:78 Y:1F P:25 SP:FB CYC:259 SL:79 DD34 85 78 STA $78 = 3F A:41 X:78 Y:1F P:25 SP:FB CYC:265 SL:79 DD36 20 5C F9 JSR $F95C A:41 X:78 Y:1F P:25 SP:FB CYC:274 SL:79 F95C A9 40 LDA #$40 A:41 X:78 Y:1F P:25 SP:F9 CYC:292 SL:79 F95E 38 SEC A:40 X:78 Y:1F P:25 SP:F9 CYC:298 SL:79 F95F 24 01 BIT $01 = FF A:40 X:78 Y:1F P:25 SP:F9 CYC:304 SL:79 F961 60 RTS A:40 X:78 Y:1F P:E5 SP:F9 CYC:313 SL:79 DD39 F5 00 SBC $00,X @ 78 = 41 A:40 X:78 Y:1F P:E5 SP:FB CYC:331 SL:79 DD3B 20 62 F9 JSR $F962 A:FF X:78 Y:1F P:A4 SP:FB CYC: 2 SL:80 F962 B0 0B BCS $F96F A:FF X:78 Y:1F P:A4 SP:F9 CYC: 20 SL:80 F964 F0 09 BEQ $F96F A:FF X:78 Y:1F P:A4 SP:F9 CYC: 26 SL:80 F966 10 07 BPL $F96F A:FF X:78 Y:1F P:A4 SP:F9 CYC: 32 SL:80 F968 70 05 BVS $F96F A:FF X:78 Y:1F P:A4 SP:F9 CYC: 38 SL:80 F96A C9 FF CMP #$FF A:FF X:78 Y:1F P:A4 SP:F9 CYC: 44 SL:80 F96C D0 01 BNE $F96F A:FF X:78 Y:1F P:27 SP:F9 CYC: 50 SL:80 F96E 60 RTS A:FF X:78 Y:1F P:27 SP:F9 CYC: 56 SL:80 DD3E C8 INY A:FF X:78 Y:1F P:27 SP:FB CYC: 74 SL:80 DD3F A9 00 LDA #$00 A:FF X:78 Y:20 P:25 SP:FB CYC: 80 SL:80 DD41 85 78 STA $78 = 41 A:00 X:78 Y:20 P:27 SP:FB CYC: 86 SL:80 DD43 20 72 F9 JSR $F972 A:00 X:78 Y:20 P:27 SP:FB CYC: 95 SL:80 F972 18 CLC A:00 X:78 Y:20 P:27 SP:F9 CYC:113 SL:80 F973 A9 80 LDA #$80 A:00 X:78 Y:20 P:26 SP:F9 CYC:119 SL:80 F975 60 RTS A:80 X:78 Y:20 P:A4 SP:F9 CYC:125 SL:80 DD46 F5 00 SBC $00,X @ 78 = 00 A:80 X:78 Y:20 P:A4 SP:FB CYC:143 SL:80 DD48 20 76 F9 JSR $F976 A:7F X:78 Y:20 P:65 SP:FB CYC:155 SL:80 F976 90 05 BCC $F97D A:7F X:78 Y:20 P:65 SP:F9 CYC:173 SL:80 F978 C9 7F CMP #$7F A:7F X:78 Y:20 P:65 SP:F9 CYC:179 SL:80 F97A D0 01 BNE $F97D A:7F X:78 Y:20 P:67 SP:F9 CYC:185 SL:80 F97C 60 RTS A:7F X:78 Y:20 P:67 SP:F9 CYC:191 SL:80 DD4B C8 INY A:7F X:78 Y:20 P:67 SP:FB CYC:209 SL:80 DD4C A9 7F LDA #$7F A:7F X:78 Y:21 P:65 SP:FB CYC:215 SL:80 DD4E 85 78 STA $78 = 00 A:7F X:78 Y:21 P:65 SP:FB CYC:221 SL:80 DD50 20 80 F9 JSR $F980 A:7F X:78 Y:21 P:65 SP:FB CYC:230 SL:80 F980 38 SEC A:7F X:78 Y:21 P:65 SP:F9 CYC:248 SL:80 F981 A9 81 LDA #$81 A:7F X:78 Y:21 P:65 SP:F9 CYC:254 SL:80 F983 60 RTS A:81 X:78 Y:21 P:E5 SP:F9 CYC:260 SL:80 DD53 F5 00 SBC $00,X @ 78 = 7F A:81 X:78 Y:21 P:E5 SP:FB CYC:278 SL:80 DD55 20 84 F9 JSR $F984 A:02 X:78 Y:21 P:65 SP:FB CYC:290 SL:80 F984 50 07 BVC $F98D A:02 X:78 Y:21 P:65 SP:F9 CYC:308 SL:80 F986 90 05 BCC $F98D A:02 X:78 Y:21 P:65 SP:F9 CYC:314 SL:80 F988 C9 02 CMP #$02 A:02 X:78 Y:21 P:65 SP:F9 CYC:320 SL:80 F98A D0 01 BNE $F98D A:02 X:78 Y:21 P:67 SP:F9 CYC:326 SL:80 F98C 60 RTS A:02 X:78 Y:21 P:67 SP:F9 CYC:332 SL:80 DD58 A9 AA LDA #$AA A:02 X:78 Y:21 P:67 SP:FB CYC: 9 SL:81 DD5A 85 33 STA $33 = 44 A:AA X:78 Y:21 P:E5 SP:FB CYC: 15 SL:81 DD5C A9 BB LDA #$BB A:AA X:78 Y:21 P:E5 SP:FB CYC: 24 SL:81 DD5E 85 89 STA $89 = BB A:BB X:78 Y:21 P:E5 SP:FB CYC: 30 SL:81 DD60 A2 00 LDX #$00 A:BB X:78 Y:21 P:E5 SP:FB CYC: 39 SL:81 DD62 A0 66 LDY #$66 A:BB X:00 Y:21 P:67 SP:FB CYC: 45 SL:81 DD64 24 01 BIT $01 = FF A:BB X:00 Y:66 P:65 SP:FB CYC: 51 SL:81 DD66 38 SEC A:BB X:00 Y:66 P:E5 SP:FB CYC: 60 SL:81 DD67 A9 00 LDA #$00 A:BB X:00 Y:66 P:E5 SP:FB CYC: 66 SL:81 DD69 B5 33 LDA $33,X @ 33 = AA A:00 X:00 Y:66 P:67 SP:FB CYC: 72 SL:81 DD6B 10 12 BPL $DD7F A:AA X:00 Y:66 P:E5 SP:FB CYC: 84 SL:81 DD6D F0 10 BEQ $DD7F A:AA X:00 Y:66 P:E5 SP:FB CYC: 90 SL:81 DD6F 50 0E BVC $DD7F A:AA X:00 Y:66 P:E5 SP:FB CYC: 96 SL:81 DD71 90 0C BCC $DD7F A:AA X:00 Y:66 P:E5 SP:FB CYC:102 SL:81 DD73 C0 66 CPY #$66 A:AA X:00 Y:66 P:E5 SP:FB CYC:108 SL:81 DD75 D0 08 BNE $DD7F A:AA X:00 Y:66 P:67 SP:FB CYC:114 SL:81 DD77 E0 00 CPX #$00 A:AA X:00 Y:66 P:67 SP:FB CYC:120 SL:81 DD79 D0 04 BNE $DD7F A:AA X:00 Y:66 P:67 SP:FB CYC:126 SL:81 DD7B C9 AA CMP #$AA A:AA X:00 Y:66 P:67 SP:FB CYC:132 SL:81 DD7D F0 04 BEQ $DD83 A:AA X:00 Y:66 P:67 SP:FB CYC:138 SL:81 DD83 A2 8A LDX #$8A A:AA X:00 Y:66 P:67 SP:FB CYC:147 SL:81 DD85 A0 66 LDY #$66 A:AA X:8A Y:66 P:E5 SP:FB CYC:153 SL:81 DD87 B8 CLV A:AA X:8A Y:66 P:65 SP:FB CYC:159 SL:81 DD88 18 CLC A:AA X:8A Y:66 P:25 SP:FB CYC:165 SL:81 DD89 A9 00 LDA #$00 A:AA X:8A Y:66 P:24 SP:FB CYC:171 SL:81 DD8B B5 FF LDA $FF,X @ 89 = BB A:00 X:8A Y:66 P:26 SP:FB CYC:177 SL:81 DD8D 10 12 BPL $DDA1 A:BB X:8A Y:66 P:A4 SP:FB CYC:189 SL:81 DD8F F0 10 BEQ $DDA1 A:BB X:8A Y:66 P:A4 SP:FB CYC:195 SL:81 DD91 70 0E BVS $DDA1 A:BB X:8A Y:66 P:A4 SP:FB CYC:201 SL:81 DD93 B0 0C BCS $DDA1 A:BB X:8A Y:66 P:A4 SP:FB CYC:207 SL:81 DD95 C9 BB CMP #$BB A:BB X:8A Y:66 P:A4 SP:FB CYC:213 SL:81 DD97 D0 08 BNE $DDA1 A:BB X:8A Y:66 P:27 SP:FB CYC:219 SL:81 DD99 C0 66 CPY #$66 A:BB X:8A Y:66 P:27 SP:FB CYC:225 SL:81 DD9B D0 04 BNE $DDA1 A:BB X:8A Y:66 P:27 SP:FB CYC:231 SL:81 DD9D E0 8A CPX #$8A A:BB X:8A Y:66 P:27 SP:FB CYC:237 SL:81 DD9F F0 04 BEQ $DDA5 A:BB X:8A Y:66 P:27 SP:FB CYC:243 SL:81 DDA5 24 01 BIT $01 = FF A:BB X:8A Y:66 P:27 SP:FB CYC:252 SL:81 DDA7 38 SEC A:BB X:8A Y:66 P:E5 SP:FB CYC:261 SL:81 DDA8 A9 44 LDA #$44 A:BB X:8A Y:66 P:E5 SP:FB CYC:267 SL:81 DDAA A2 00 LDX #$00 A:44 X:8A Y:66 P:65 SP:FB CYC:273 SL:81 DDAC 95 33 STA $33,X @ 33 = AA A:44 X:00 Y:66 P:67 SP:FB CYC:279 SL:81 DDAE A5 33 LDA $33 = 44 A:44 X:00 Y:66 P:67 SP:FB CYC:291 SL:81 DDB0 90 18 BCC $DDCA A:44 X:00 Y:66 P:65 SP:FB CYC:300 SL:81 DDB2 C9 44 CMP #$44 A:44 X:00 Y:66 P:65 SP:FB CYC:306 SL:81 DDB4 D0 14 BNE $DDCA A:44 X:00 Y:66 P:67 SP:FB CYC:312 SL:81 DDB6 50 12 BVC $DDCA A:44 X:00 Y:66 P:67 SP:FB CYC:318 SL:81 DDB8 18 CLC A:44 X:00 Y:66 P:67 SP:FB CYC:324 SL:81 DDB9 B8 CLV A:44 X:00 Y:66 P:66 SP:FB CYC:330 SL:81 DDBA A9 99 LDA #$99 A:44 X:00 Y:66 P:26 SP:FB CYC:336 SL:81 DDBC A2 80 LDX #$80 A:99 X:00 Y:66 P:A4 SP:FB CYC: 1 SL:82 DDBE 95 85 STA $85,X @ 05 = 99 A:99 X:80 Y:66 P:A4 SP:FB CYC: 7 SL:82 DDC0 A5 05 LDA $05 = 99 A:99 X:80 Y:66 P:A4 SP:FB CYC: 19 SL:82 DDC2 B0 06 BCS $DDCA A:99 X:80 Y:66 P:A4 SP:FB CYC: 28 SL:82 DDC4 C9 99 CMP #$99 A:99 X:80 Y:66 P:A4 SP:FB CYC: 34 SL:82 DDC6 D0 02 BNE $DDCA A:99 X:80 Y:66 P:27 SP:FB CYC: 40 SL:82 DDC8 50 04 BVC $DDCE A:99 X:80 Y:66 P:27 SP:FB CYC: 46 SL:82 DDCE A0 25 LDY #$25 A:99 X:80 Y:66 P:27 SP:FB CYC: 55 SL:82 DDD0 A2 78 LDX #$78 A:99 X:80 Y:25 P:25 SP:FB CYC: 61 SL:82 DDD2 20 90 F9 JSR $F990 A:99 X:78 Y:25 P:25 SP:FB CYC: 67 SL:82 F990 A2 55 LDX #$55 A:99 X:78 Y:25 P:25 SP:F9 CYC: 85 SL:82 F992 A9 FF LDA #$FF A:99 X:55 Y:25 P:25 SP:F9 CYC: 91 SL:82 F994 85 01 STA $01 = FF A:FF X:55 Y:25 P:A5 SP:F9 CYC: 97 SL:82 F996 EA NOP A:FF X:55 Y:25 P:A5 SP:F9 CYC:106 SL:82 F997 24 01 BIT $01 = FF A:FF X:55 Y:25 P:A5 SP:F9 CYC:112 SL:82 F999 38 SEC A:FF X:55 Y:25 P:E5 SP:F9 CYC:121 SL:82 F99A A9 01 LDA #$01 A:FF X:55 Y:25 P:E5 SP:F9 CYC:127 SL:82 F99C 60 RTS A:01 X:55 Y:25 P:65 SP:F9 CYC:133 SL:82 DDD5 95 00 STA $00,X @ 55 = 00 A:01 X:55 Y:25 P:65 SP:FB CYC:151 SL:82 DDD7 56 00 LSR $00,X @ 55 = 01 A:01 X:55 Y:25 P:65 SP:FB CYC:163 SL:82 DDD9 B5 00 LDA $00,X @ 55 = 00 A:01 X:55 Y:25 P:67 SP:FB CYC:181 SL:82 DDDB 20 9D F9 JSR $F99D A:00 X:55 Y:25 P:67 SP:FB CYC:193 SL:82 F99D 90 1B BCC $F9BA A:00 X:55 Y:25 P:67 SP:F9 CYC:211 SL:82 F99F D0 19 BNE $F9BA A:00 X:55 Y:25 P:67 SP:F9 CYC:217 SL:82 F9A1 30 17 BMI $F9BA A:00 X:55 Y:25 P:67 SP:F9 CYC:223 SL:82 F9A3 50 15 BVC $F9BA A:00 X:55 Y:25 P:67 SP:F9 CYC:229 SL:82 F9A5 C9 00 CMP #$00 A:00 X:55 Y:25 P:67 SP:F9 CYC:235 SL:82 F9A7 D0 11 BNE $F9BA A:00 X:55 Y:25 P:67 SP:F9 CYC:241 SL:82 F9A9 B8 CLV A:00 X:55 Y:25 P:67 SP:F9 CYC:247 SL:82 F9AA A9 AA LDA #$AA A:00 X:55 Y:25 P:27 SP:F9 CYC:253 SL:82 F9AC 60 RTS A:AA X:55 Y:25 P:A5 SP:F9 CYC:259 SL:82 DDDE C8 INY A:AA X:55 Y:25 P:A5 SP:FB CYC:277 SL:82 DDDF 95 00 STA $00,X @ 55 = 00 A:AA X:55 Y:26 P:25 SP:FB CYC:283 SL:82 DDE1 56 00 LSR $00,X @ 55 = AA A:AA X:55 Y:26 P:25 SP:FB CYC:295 SL:82 DDE3 B5 00 LDA $00,X @ 55 = 55 A:AA X:55 Y:26 P:24 SP:FB CYC:313 SL:82 DDE5 20 AD F9 JSR $F9AD A:55 X:55 Y:26 P:24 SP:FB CYC:325 SL:82 F9AD B0 0B BCS $F9BA A:55 X:55 Y:26 P:24 SP:F9 CYC: 2 SL:83 F9AF F0 09 BEQ $F9BA A:55 X:55 Y:26 P:24 SP:F9 CYC: 8 SL:83 F9B1 30 07 BMI $F9BA A:55 X:55 Y:26 P:24 SP:F9 CYC: 14 SL:83 F9B3 70 05 BVS $F9BA A:55 X:55 Y:26 P:24 SP:F9 CYC: 20 SL:83 F9B5 C9 55 CMP #$55 A:55 X:55 Y:26 P:24 SP:F9 CYC: 26 SL:83 F9B7 D0 01 BNE $F9BA A:55 X:55 Y:26 P:27 SP:F9 CYC: 32 SL:83 F9B9 60 RTS A:55 X:55 Y:26 P:27 SP:F9 CYC: 38 SL:83 DDE8 C8 INY A:55 X:55 Y:26 P:27 SP:FB CYC: 56 SL:83 DDE9 20 BD F9 JSR $F9BD A:55 X:55 Y:27 P:25 SP:FB CYC: 62 SL:83 F9BD 24 01 BIT $01 = FF A:55 X:55 Y:27 P:25 SP:F9 CYC: 80 SL:83 F9BF 38 SEC A:55 X:55 Y:27 P:E5 SP:F9 CYC: 89 SL:83 F9C0 A9 80 LDA #$80 A:55 X:55 Y:27 P:E5 SP:F9 CYC: 95 SL:83 F9C2 60 RTS A:80 X:55 Y:27 P:E5 SP:F9 CYC:101 SL:83 DDEC 95 00 STA $00,X @ 55 = 55 A:80 X:55 Y:27 P:E5 SP:FB CYC:119 SL:83 DDEE 16 00 ASL $00,X @ 55 = 80 A:80 X:55 Y:27 P:E5 SP:FB CYC:131 SL:83 DDF0 B5 00 LDA $00,X @ 55 = 00 A:80 X:55 Y:27 P:67 SP:FB CYC:149 SL:83 DDF2 20 C3 F9 JSR $F9C3 A:00 X:55 Y:27 P:67 SP:FB CYC:161 SL:83 F9C3 90 1C BCC $F9E1 A:00 X:55 Y:27 P:67 SP:F9 CYC:179 SL:83 F9C5 D0 1A BNE $F9E1 A:00 X:55 Y:27 P:67 SP:F9 CYC:185 SL:83 F9C7 30 18 BMI $F9E1 A:00 X:55 Y:27 P:67 SP:F9 CYC:191 SL:83 F9C9 50 16 BVC $F9E1 A:00 X:55 Y:27 P:67 SP:F9 CYC:197 SL:83 F9CB C9 00 CMP #$00 A:00 X:55 Y:27 P:67 SP:F9 CYC:203 SL:83 F9CD D0 12 BNE $F9E1 A:00 X:55 Y:27 P:67 SP:F9 CYC:209 SL:83 F9CF B8 CLV A:00 X:55 Y:27 P:67 SP:F9 CYC:215 SL:83 F9D0 A9 55 LDA #$55 A:00 X:55 Y:27 P:27 SP:F9 CYC:221 SL:83 F9D2 38 SEC A:55 X:55 Y:27 P:25 SP:F9 CYC:227 SL:83 F9D3 60 RTS A:55 X:55 Y:27 P:25 SP:F9 CYC:233 SL:83 DDF5 C8 INY A:55 X:55 Y:27 P:25 SP:FB CYC:251 SL:83 DDF6 95 00 STA $00,X @ 55 = 00 A:55 X:55 Y:28 P:25 SP:FB CYC:257 SL:83 DDF8 16 00 ASL $00,X @ 55 = 55 A:55 X:55 Y:28 P:25 SP:FB CYC:269 SL:83 DDFA B5 00 LDA $00,X @ 55 = AA A:55 X:55 Y:28 P:A4 SP:FB CYC:287 SL:83 DDFC 20 D4 F9 JSR $F9D4 A:AA X:55 Y:28 P:A4 SP:FB CYC:299 SL:83 F9D4 B0 0B BCS $F9E1 A:AA X:55 Y:28 P:A4 SP:F9 CYC:317 SL:83 F9D6 F0 09 BEQ $F9E1 A:AA X:55 Y:28 P:A4 SP:F9 CYC:323 SL:83 F9D8 10 07 BPL $F9E1 A:AA X:55 Y:28 P:A4 SP:F9 CYC:329 SL:83 F9DA 70 05 BVS $F9E1 A:AA X:55 Y:28 P:A4 SP:F9 CYC:335 SL:83 F9DC C9 AA CMP #$AA A:AA X:55 Y:28 P:A4 SP:F9 CYC: 0 SL:84 F9DE D0 01 BNE $F9E1 A:AA X:55 Y:28 P:27 SP:F9 CYC: 6 SL:84 F9E0 60 RTS A:AA X:55 Y:28 P:27 SP:F9 CYC: 12 SL:84 DDFF C8 INY A:AA X:55 Y:28 P:27 SP:FB CYC: 30 SL:84 DE00 20 E4 F9 JSR $F9E4 A:AA X:55 Y:29 P:25 SP:FB CYC: 36 SL:84 F9E4 24 01 BIT $01 = FF A:AA X:55 Y:29 P:25 SP:F9 CYC: 54 SL:84 F9E6 38 SEC A:AA X:55 Y:29 P:E5 SP:F9 CYC: 63 SL:84 F9E7 A9 01 LDA #$01 A:AA X:55 Y:29 P:E5 SP:F9 CYC: 69 SL:84 F9E9 60 RTS A:01 X:55 Y:29 P:65 SP:F9 CYC: 75 SL:84 DE03 95 00 STA $00,X @ 55 = AA A:01 X:55 Y:29 P:65 SP:FB CYC: 93 SL:84 DE05 76 00 ROR $00,X @ 55 = 01 A:01 X:55 Y:29 P:65 SP:FB CYC:105 SL:84 DE07 B5 00 LDA $00,X @ 55 = 80 A:01 X:55 Y:29 P:E5 SP:FB CYC:123 SL:84 DE09 20 EA F9 JSR $F9EA A:80 X:55 Y:29 P:E5 SP:FB CYC:135 SL:84 F9EA 90 1C BCC $FA08 A:80 X:55 Y:29 P:E5 SP:F9 CYC:153 SL:84 F9EC F0 1A BEQ $FA08 A:80 X:55 Y:29 P:E5 SP:F9 CYC:159 SL:84 F9EE 10 18 BPL $FA08 A:80 X:55 Y:29 P:E5 SP:F9 CYC:165 SL:84 F9F0 50 16 BVC $FA08 A:80 X:55 Y:29 P:E5 SP:F9 CYC:171 SL:84 F9F2 C9 80 CMP #$80 A:80 X:55 Y:29 P:E5 SP:F9 CYC:177 SL:84 F9F4 D0 12 BNE $FA08 A:80 X:55 Y:29 P:67 SP:F9 CYC:183 SL:84 F9F6 B8 CLV A:80 X:55 Y:29 P:67 SP:F9 CYC:189 SL:84 F9F7 18 CLC A:80 X:55 Y:29 P:27 SP:F9 CYC:195 SL:84 F9F8 A9 55 LDA #$55 A:80 X:55 Y:29 P:26 SP:F9 CYC:201 SL:84 F9FA 60 RTS A:55 X:55 Y:29 P:24 SP:F9 CYC:207 SL:84 DE0C C8 INY A:55 X:55 Y:29 P:24 SP:FB CYC:225 SL:84 DE0D 95 00 STA $00,X @ 55 = 80 A:55 X:55 Y:2A P:24 SP:FB CYC:231 SL:84 DE0F 76 00 ROR $00,X @ 55 = 55 A:55 X:55 Y:2A P:24 SP:FB CYC:243 SL:84 DE11 B5 00 LDA $00,X @ 55 = 2A A:55 X:55 Y:2A P:25 SP:FB CYC:261 SL:84 DE13 20 FB F9 JSR $F9FB A:2A X:55 Y:2A P:25 SP:FB CYC:273 SL:84 F9FB 90 0B BCC $FA08 A:2A X:55 Y:2A P:25 SP:F9 CYC:291 SL:84 F9FD F0 09 BEQ $FA08 A:2A X:55 Y:2A P:25 SP:F9 CYC:297 SL:84 F9FF 30 07 BMI $FA08 A:2A X:55 Y:2A P:25 SP:F9 CYC:303 SL:84 FA01 70 05 BVS $FA08 A:2A X:55 Y:2A P:25 SP:F9 CYC:309 SL:84 FA03 C9 2A CMP #$2A A:2A X:55 Y:2A P:25 SP:F9 CYC:315 SL:84 FA05 D0 01 BNE $FA08 A:2A X:55 Y:2A P:27 SP:F9 CYC:321 SL:84 FA07 60 RTS A:2A X:55 Y:2A P:27 SP:F9 CYC:327 SL:84 DE16 C8 INY A:2A X:55 Y:2A P:27 SP:FB CYC: 4 SL:85 DE17 20 0A FA JSR $FA0A A:2A X:55 Y:2B P:25 SP:FB CYC: 10 SL:85 FA0A 24 01 BIT $01 = FF A:2A X:55 Y:2B P:25 SP:F9 CYC: 28 SL:85 FA0C 38 SEC A:2A X:55 Y:2B P:E5 SP:F9 CYC: 37 SL:85 FA0D A9 80 LDA #$80 A:2A X:55 Y:2B P:E5 SP:F9 CYC: 43 SL:85 FA0F 60 RTS A:80 X:55 Y:2B P:E5 SP:F9 CYC: 49 SL:85 DE1A 95 00 STA $00,X @ 55 = 2A A:80 X:55 Y:2B P:E5 SP:FB CYC: 67 SL:85 DE1C 36 00 ROL $00,X @ 55 = 80 A:80 X:55 Y:2B P:E5 SP:FB CYC: 79 SL:85 DE1E B5 00 LDA $00,X @ 55 = 01 A:80 X:55 Y:2B P:65 SP:FB CYC: 97 SL:85 DE20 20 10 FA JSR $FA10 A:01 X:55 Y:2B P:65 SP:FB CYC:109 SL:85 FA10 90 1C BCC $FA2E A:01 X:55 Y:2B P:65 SP:F9 CYC:127 SL:85 FA12 F0 1A BEQ $FA2E A:01 X:55 Y:2B P:65 SP:F9 CYC:133 SL:85 FA14 30 18 BMI $FA2E A:01 X:55 Y:2B P:65 SP:F9 CYC:139 SL:85 FA16 50 16 BVC $FA2E A:01 X:55 Y:2B P:65 SP:F9 CYC:145 SL:85 FA18 C9 01 CMP #$01 A:01 X:55 Y:2B P:65 SP:F9 CYC:151 SL:85 FA1A D0 12 BNE $FA2E A:01 X:55 Y:2B P:67 SP:F9 CYC:157 SL:85 FA1C B8 CLV A:01 X:55 Y:2B P:67 SP:F9 CYC:163 SL:85 FA1D 18 CLC A:01 X:55 Y:2B P:27 SP:F9 CYC:169 SL:85 FA1E A9 55 LDA #$55 A:01 X:55 Y:2B P:26 SP:F9 CYC:175 SL:85 FA20 60 RTS A:55 X:55 Y:2B P:24 SP:F9 CYC:181 SL:85 DE23 C8 INY A:55 X:55 Y:2B P:24 SP:FB CYC:199 SL:85 DE24 95 00 STA $00,X @ 55 = 01 A:55 X:55 Y:2C P:24 SP:FB CYC:205 SL:85 DE26 36 00 ROL $00,X @ 55 = 55 A:55 X:55 Y:2C P:24 SP:FB CYC:217 SL:85 DE28 B5 00 LDA $00,X @ 55 = AA A:55 X:55 Y:2C P:A4 SP:FB CYC:235 SL:85 DE2A 20 21 FA JSR $FA21 A:AA X:55 Y:2C P:A4 SP:FB CYC:247 SL:85 FA21 B0 0B BCS $FA2E A:AA X:55 Y:2C P:A4 SP:F9 CYC:265 SL:85 FA23 F0 09 BEQ $FA2E A:AA X:55 Y:2C P:A4 SP:F9 CYC:271 SL:85 FA25 10 07 BPL $FA2E A:AA X:55 Y:2C P:A4 SP:F9 CYC:277 SL:85 FA27 70 05 BVS $FA2E A:AA X:55 Y:2C P:A4 SP:F9 CYC:283 SL:85 FA29 C9 AA CMP #$AA A:AA X:55 Y:2C P:A4 SP:F9 CYC:289 SL:85 FA2B D0 01 BNE $FA2E A:AA X:55 Y:2C P:27 SP:F9 CYC:295 SL:85 FA2D 60 RTS A:AA X:55 Y:2C P:27 SP:F9 CYC:301 SL:85 DE2D A9 FF LDA #$FF A:AA X:55 Y:2C P:27 SP:FB CYC:319 SL:85 DE2F 95 00 STA $00,X @ 55 = AA A:FF X:55 Y:2C P:A5 SP:FB CYC:325 SL:85 DE31 85 01 STA $01 = FF A:FF X:55 Y:2C P:A5 SP:FB CYC:337 SL:85 DE33 24 01 BIT $01 = FF A:FF X:55 Y:2C P:A5 SP:FB CYC: 5 SL:86 DE35 38 SEC A:FF X:55 Y:2C P:E5 SP:FB CYC: 14 SL:86 DE36 F6 00 INC $00,X @ 55 = FF A:FF X:55 Y:2C P:E5 SP:FB CYC: 20 SL:86 DE38 D0 0C BNE $DE46 A:FF X:55 Y:2C P:67 SP:FB CYC: 38 SL:86 DE3A 30 0A BMI $DE46 A:FF X:55 Y:2C P:67 SP:FB CYC: 44 SL:86 DE3C 50 08 BVC $DE46 A:FF X:55 Y:2C P:67 SP:FB CYC: 50 SL:86 DE3E 90 06 BCC $DE46 A:FF X:55 Y:2C P:67 SP:FB CYC: 56 SL:86 DE40 B5 00 LDA $00,X @ 55 = 00 A:FF X:55 Y:2C P:67 SP:FB CYC: 62 SL:86 DE42 C9 00 CMP #$00 A:00 X:55 Y:2C P:67 SP:FB CYC: 74 SL:86 DE44 F0 04 BEQ $DE4A A:00 X:55 Y:2C P:67 SP:FB CYC: 80 SL:86 DE4A A9 7F LDA #$7F A:00 X:55 Y:2C P:67 SP:FB CYC: 89 SL:86 DE4C 95 00 STA $00,X @ 55 = 00 A:7F X:55 Y:2C P:65 SP:FB CYC: 95 SL:86 DE4E B8 CLV A:7F X:55 Y:2C P:65 SP:FB CYC:107 SL:86 DE4F 18 CLC A:7F X:55 Y:2C P:25 SP:FB CYC:113 SL:86 DE50 F6 00 INC $00,X @ 55 = 7F A:7F X:55 Y:2C P:24 SP:FB CYC:119 SL:86 DE52 F0 0C BEQ $DE60 A:7F X:55 Y:2C P:A4 SP:FB CYC:137 SL:86 DE54 10 0A BPL $DE60 A:7F X:55 Y:2C P:A4 SP:FB CYC:143 SL:86 DE56 70 08 BVS $DE60 A:7F X:55 Y:2C P:A4 SP:FB CYC:149 SL:86 DE58 B0 06 BCS $DE60 A:7F X:55 Y:2C P:A4 SP:FB CYC:155 SL:86 DE5A B5 00 LDA $00,X @ 55 = 80 A:7F X:55 Y:2C P:A4 SP:FB CYC:161 SL:86 DE5C C9 80 CMP #$80 A:80 X:55 Y:2C P:A4 SP:FB CYC:173 SL:86 DE5E F0 04 BEQ $DE64 A:80 X:55 Y:2C P:27 SP:FB CYC:179 SL:86 DE64 A9 00 LDA #$00 A:80 X:55 Y:2C P:27 SP:FB CYC:188 SL:86 DE66 95 00 STA $00,X @ 55 = 80 A:00 X:55 Y:2C P:27 SP:FB CYC:194 SL:86 DE68 24 01 BIT $01 = FF A:00 X:55 Y:2C P:27 SP:FB CYC:206 SL:86 DE6A 38 SEC A:00 X:55 Y:2C P:E7 SP:FB CYC:215 SL:86 DE6B D6 00 DEC $00,X @ 55 = 00 A:00 X:55 Y:2C P:E7 SP:FB CYC:221 SL:86 DE6D F0 0C BEQ $DE7B A:00 X:55 Y:2C P:E5 SP:FB CYC:239 SL:86 DE6F 10 0A BPL $DE7B A:00 X:55 Y:2C P:E5 SP:FB CYC:245 SL:86 DE71 50 08 BVC $DE7B A:00 X:55 Y:2C P:E5 SP:FB CYC:251 SL:86 DE73 90 06 BCC $DE7B A:00 X:55 Y:2C P:E5 SP:FB CYC:257 SL:86 DE75 B5 00 LDA $00,X @ 55 = FF A:00 X:55 Y:2C P:E5 SP:FB CYC:263 SL:86 DE77 C9 FF CMP #$FF A:FF X:55 Y:2C P:E5 SP:FB CYC:275 SL:86 DE79 F0 04 BEQ $DE7F A:FF X:55 Y:2C P:67 SP:FB CYC:281 SL:86 DE7F A9 80 LDA #$80 A:FF X:55 Y:2C P:67 SP:FB CYC:290 SL:86 DE81 95 00 STA $00,X @ 55 = FF A:80 X:55 Y:2C P:E5 SP:FB CYC:296 SL:86 DE83 B8 CLV A:80 X:55 Y:2C P:E5 SP:FB CYC:308 SL:86 DE84 18 CLC A:80 X:55 Y:2C P:A5 SP:FB CYC:314 SL:86 DE85 D6 00 DEC $00,X @ 55 = 80 A:80 X:55 Y:2C P:A4 SP:FB CYC:320 SL:86 DE87 F0 0C BEQ $DE95 A:80 X:55 Y:2C P:24 SP:FB CYC:338 SL:86 DE89 30 0A BMI $DE95 A:80 X:55 Y:2C P:24 SP:FB CYC: 3 SL:87 DE8B 70 08 BVS $DE95 A:80 X:55 Y:2C P:24 SP:FB CYC: 9 SL:87 DE8D B0 06 BCS $DE95 A:80 X:55 Y:2C P:24 SP:FB CYC: 15 SL:87 DE8F B5 00 LDA $00,X @ 55 = 7F A:80 X:55 Y:2C P:24 SP:FB CYC: 21 SL:87 DE91 C9 7F CMP #$7F A:7F X:55 Y:2C P:24 SP:FB CYC: 33 SL:87 DE93 F0 04 BEQ $DE99 A:7F X:55 Y:2C P:27 SP:FB CYC: 39 SL:87 DE99 A9 01 LDA #$01 A:7F X:55 Y:2C P:27 SP:FB CYC: 48 SL:87 DE9B 95 00 STA $00,X @ 55 = 7F A:01 X:55 Y:2C P:25 SP:FB CYC: 54 SL:87 DE9D D6 00 DEC $00,X @ 55 = 01 A:01 X:55 Y:2C P:25 SP:FB CYC: 66 SL:87 DE9F F0 04 BEQ $DEA5 A:01 X:55 Y:2C P:27 SP:FB CYC: 84 SL:87 DEA5 A9 33 LDA #$33 A:01 X:55 Y:2C P:27 SP:FB CYC: 93 SL:87 DEA7 85 78 STA $78 = 7F A:33 X:55 Y:2C P:25 SP:FB CYC: 99 SL:87 DEA9 A9 44 LDA #$44 A:33 X:55 Y:2C P:25 SP:FB CYC:108 SL:87 DEAB A0 78 LDY #$78 A:44 X:55 Y:2C P:25 SP:FB CYC:114 SL:87 DEAD A2 00 LDX #$00 A:44 X:55 Y:78 P:25 SP:FB CYC:120 SL:87 DEAF 38 SEC A:44 X:00 Y:78 P:27 SP:FB CYC:126 SL:87 DEB0 24 01 BIT $01 = FF A:44 X:00 Y:78 P:27 SP:FB CYC:132 SL:87 DEB2 B6 00 LDX $00,Y @ 78 = 33 A:44 X:00 Y:78 P:E5 SP:FB CYC:141 SL:87 DEB4 90 12 BCC $DEC8 A:44 X:33 Y:78 P:65 SP:FB CYC:153 SL:87 DEB6 50 10 BVC $DEC8 A:44 X:33 Y:78 P:65 SP:FB CYC:159 SL:87 DEB8 30 0E BMI $DEC8 A:44 X:33 Y:78 P:65 SP:FB CYC:165 SL:87 DEBA F0 0C BEQ $DEC8 A:44 X:33 Y:78 P:65 SP:FB CYC:171 SL:87 DEBC E0 33 CPX #$33 A:44 X:33 Y:78 P:65 SP:FB CYC:177 SL:87 DEBE D0 08 BNE $DEC8 A:44 X:33 Y:78 P:67 SP:FB CYC:183 SL:87 DEC0 C0 78 CPY #$78 A:44 X:33 Y:78 P:67 SP:FB CYC:189 SL:87 DEC2 D0 04 BNE $DEC8 A:44 X:33 Y:78 P:67 SP:FB CYC:195 SL:87 DEC4 C9 44 CMP #$44 A:44 X:33 Y:78 P:67 SP:FB CYC:201 SL:87 DEC6 F0 04 BEQ $DECC A:44 X:33 Y:78 P:67 SP:FB CYC:207 SL:87 DECC A9 97 LDA #$97 A:44 X:33 Y:78 P:67 SP:FB CYC:216 SL:87 DECE 85 7F STA $7F = 00 A:97 X:33 Y:78 P:E5 SP:FB CYC:222 SL:87 DED0 A9 47 LDA #$47 A:97 X:33 Y:78 P:E5 SP:FB CYC:231 SL:87 DED2 A0 FF LDY #$FF A:47 X:33 Y:78 P:65 SP:FB CYC:237 SL:87 DED4 A2 00 LDX #$00 A:47 X:33 Y:FF P:E5 SP:FB CYC:243 SL:87 DED6 18 CLC A:47 X:00 Y:FF P:67 SP:FB CYC:249 SL:87 DED7 B8 CLV A:47 X:00 Y:FF P:66 SP:FB CYC:255 SL:87 DED8 B6 80 LDX $80,Y @ 7F = 97 A:47 X:00 Y:FF P:26 SP:FB CYC:261 SL:87 DEDA B0 12 BCS $DEEE A:47 X:97 Y:FF P:A4 SP:FB CYC:273 SL:87 DEDC 70 10 BVS $DEEE A:47 X:97 Y:FF P:A4 SP:FB CYC:279 SL:87 DEDE 10 0E BPL $DEEE A:47 X:97 Y:FF P:A4 SP:FB CYC:285 SL:87 DEE0 F0 0C BEQ $DEEE A:47 X:97 Y:FF P:A4 SP:FB CYC:291 SL:87 DEE2 E0 97 CPX #$97 A:47 X:97 Y:FF P:A4 SP:FB CYC:297 SL:87 DEE4 D0 08 BNE $DEEE A:47 X:97 Y:FF P:27 SP:FB CYC:303 SL:87 DEE6 C0 FF CPY #$FF A:47 X:97 Y:FF P:27 SP:FB CYC:309 SL:87 DEE8 D0 04 BNE $DEEE A:47 X:97 Y:FF P:27 SP:FB CYC:315 SL:87 DEEA C9 47 CMP #$47 A:47 X:97 Y:FF P:27 SP:FB CYC:321 SL:87 DEEC F0 04 BEQ $DEF2 A:47 X:97 Y:FF P:27 SP:FB CYC:327 SL:87 DEF2 A9 00 LDA #$00 A:47 X:97 Y:FF P:27 SP:FB CYC:336 SL:87 DEF4 85 7F STA $7F = 97 A:00 X:97 Y:FF P:27 SP:FB CYC: 1 SL:88 DEF6 A9 47 LDA #$47 A:00 X:97 Y:FF P:27 SP:FB CYC: 10 SL:88 DEF8 A0 FF LDY #$FF A:47 X:97 Y:FF P:25 SP:FB CYC: 16 SL:88 DEFA A2 69 LDX #$69 A:47 X:97 Y:FF P:A5 SP:FB CYC: 22 SL:88 DEFC 18 CLC A:47 X:69 Y:FF P:25 SP:FB CYC: 28 SL:88 DEFD B8 CLV A:47 X:69 Y:FF P:24 SP:FB CYC: 34 SL:88 DEFE 96 80 STX $80,Y @ 7F = 00 A:47 X:69 Y:FF P:24 SP:FB CYC: 40 SL:88 DF00 B0 18 BCS $DF1A A:47 X:69 Y:FF P:24 SP:FB CYC: 52 SL:88 DF02 70 16 BVS $DF1A A:47 X:69 Y:FF P:24 SP:FB CYC: 58 SL:88 DF04 30 14 BMI $DF1A A:47 X:69 Y:FF P:24 SP:FB CYC: 64 SL:88 DF06 F0 12 BEQ $DF1A A:47 X:69 Y:FF P:24 SP:FB CYC: 70 SL:88 DF08 E0 69 CPX #$69 A:47 X:69 Y:FF P:24 SP:FB CYC: 76 SL:88 DF0A D0 0E BNE $DF1A A:47 X:69 Y:FF P:27 SP:FB CYC: 82 SL:88 DF0C C0 FF CPY #$FF A:47 X:69 Y:FF P:27 SP:FB CYC: 88 SL:88 DF0E D0 0A BNE $DF1A A:47 X:69 Y:FF P:27 SP:FB CYC: 94 SL:88 DF10 C9 47 CMP #$47 A:47 X:69 Y:FF P:27 SP:FB CYC:100 SL:88 DF12 D0 06 BNE $DF1A A:47 X:69 Y:FF P:27 SP:FB CYC:106 SL:88 DF14 A5 7F LDA $7F = 69 A:47 X:69 Y:FF P:27 SP:FB CYC:112 SL:88 DF16 C9 69 CMP #$69 A:69 X:69 Y:FF P:25 SP:FB CYC:121 SL:88 DF18 F0 04 BEQ $DF1E A:69 X:69 Y:FF P:27 SP:FB CYC:127 SL:88 DF1E A9 F5 LDA #$F5 A:69 X:69 Y:FF P:27 SP:FB CYC:136 SL:88 DF20 85 4F STA $4F = 00 A:F5 X:69 Y:FF P:A5 SP:FB CYC:142 SL:88 DF22 A9 47 LDA #$47 A:F5 X:69 Y:FF P:A5 SP:FB CYC:151 SL:88 DF24 A0 4F LDY #$4F A:47 X:69 Y:FF P:25 SP:FB CYC:157 SL:88 DF26 24 01 BIT $01 = FF A:47 X:69 Y:4F P:25 SP:FB CYC:163 SL:88 DF28 A2 00 LDX #$00 A:47 X:69 Y:4F P:E5 SP:FB CYC:172 SL:88 DF2A 38 SEC A:47 X:00 Y:4F P:67 SP:FB CYC:178 SL:88 DF2B 96 00 STX $00,Y @ 4F = F5 A:47 X:00 Y:4F P:67 SP:FB CYC:184 SL:88 DF2D 90 16 BCC $DF45 A:47 X:00 Y:4F P:67 SP:FB CYC:196 SL:88 DF2F 50 14 BVC $DF45 A:47 X:00 Y:4F P:67 SP:FB CYC:202 SL:88 DF31 30 12 BMI $DF45 A:47 X:00 Y:4F P:67 SP:FB CYC:208 SL:88 DF33 D0 10 BNE $DF45 A:47 X:00 Y:4F P:67 SP:FB CYC:214 SL:88 DF35 E0 00 CPX #$00 A:47 X:00 Y:4F P:67 SP:FB CYC:220 SL:88 DF37 D0 0C BNE $DF45 A:47 X:00 Y:4F P:67 SP:FB CYC:226 SL:88 DF39 C0 4F CPY #$4F A:47 X:00 Y:4F P:67 SP:FB CYC:232 SL:88 DF3B D0 08 BNE $DF45 A:47 X:00 Y:4F P:67 SP:FB CYC:238 SL:88 DF3D C9 47 CMP #$47 A:47 X:00 Y:4F P:67 SP:FB CYC:244 SL:88 DF3F D0 04 BNE $DF45 A:47 X:00 Y:4F P:67 SP:FB CYC:250 SL:88 DF41 A5 4F LDA $4F = 00 A:47 X:00 Y:4F P:67 SP:FB CYC:256 SL:88 DF43 F0 04 BEQ $DF49 A:00 X:00 Y:4F P:67 SP:FB CYC:265 SL:88 DF49 60 RTS A:00 X:00 Y:4F P:67 SP:FB CYC:274 SL:88 C62C 20 AA E1 JSR $E1AA A:00 X:00 Y:4F P:67 SP:FD CYC:292 SL:88 E1AA A9 FF LDA #$FF A:00 X:00 Y:4F P:67 SP:FB CYC:310 SL:88 E1AC 85 01 STA $01 = FF A:FF X:00 Y:4F P:E5 SP:FB CYC:316 SL:88 E1AE A9 AA LDA #$AA A:FF X:00 Y:4F P:E5 SP:FB CYC:325 SL:88 E1B0 8D 33 06 STA $0633 = 00 A:AA X:00 Y:4F P:E5 SP:FB CYC:331 SL:88 E1B3 A9 BB LDA #$BB A:AA X:00 Y:4F P:E5 SP:FB CYC: 2 SL:89 E1B5 8D 89 06 STA $0689 = 00 A:BB X:00 Y:4F P:E5 SP:FB CYC: 8 SL:89 E1B8 A2 00 LDX #$00 A:BB X:00 Y:4F P:E5 SP:FB CYC: 20 SL:89 E1BA A9 66 LDA #$66 A:BB X:00 Y:4F P:67 SP:FB CYC: 26 SL:89 E1BC 24 01 BIT $01 = FF A:66 X:00 Y:4F P:65 SP:FB CYC: 32 SL:89 E1BE 38 SEC A:66 X:00 Y:4F P:E5 SP:FB CYC: 41 SL:89 E1BF A0 00 LDY #$00 A:66 X:00 Y:4F P:E5 SP:FB CYC: 47 SL:89 E1C1 BC 33 06 LDY $0633,X @ 0633 = AA A:66 X:00 Y:00 P:67 SP:FB CYC: 53 SL:89 E1C4 10 12 BPL $E1D8 A:66 X:00 Y:AA P:E5 SP:FB CYC: 65 SL:89 E1C6 F0 10 BEQ $E1D8 A:66 X:00 Y:AA P:E5 SP:FB CYC: 71 SL:89 E1C8 50 0E BVC $E1D8 A:66 X:00 Y:AA P:E5 SP:FB CYC: 77 SL:89 E1CA 90 0C BCC $E1D8 A:66 X:00 Y:AA P:E5 SP:FB CYC: 83 SL:89 E1CC C9 66 CMP #$66 A:66 X:00 Y:AA P:E5 SP:FB CYC: 89 SL:89 E1CE D0 08 BNE $E1D8 A:66 X:00 Y:AA P:67 SP:FB CYC: 95 SL:89 E1D0 E0 00 CPX #$00 A:66 X:00 Y:AA P:67 SP:FB CYC:101 SL:89 E1D2 D0 04 BNE $E1D8 A:66 X:00 Y:AA P:67 SP:FB CYC:107 SL:89 E1D4 C0 AA CPY #$AA A:66 X:00 Y:AA P:67 SP:FB CYC:113 SL:89 E1D6 F0 04 BEQ $E1DC A:66 X:00 Y:AA P:67 SP:FB CYC:119 SL:89 E1DC A2 8A LDX #$8A A:66 X:00 Y:AA P:67 SP:FB CYC:128 SL:89 E1DE A9 66 LDA #$66 A:66 X:8A Y:AA P:E5 SP:FB CYC:134 SL:89 E1E0 B8 CLV A:66 X:8A Y:AA P:65 SP:FB CYC:140 SL:89 E1E1 18 CLC A:66 X:8A Y:AA P:25 SP:FB CYC:146 SL:89 E1E2 A0 00 LDY #$00 A:66 X:8A Y:AA P:24 SP:FB CYC:152 SL:89 E1E4 BC FF 05 LDY $05FF,X @ 0689 = BB A:66 X:8A Y:00 P:26 SP:FB CYC:158 SL:89 E1E7 10 12 BPL $E1FB A:66 X:8A Y:BB P:A4 SP:FB CYC:173 SL:89 E1E9 F0 10 BEQ $E1FB A:66 X:8A Y:BB P:A4 SP:FB CYC:179 SL:89 E1EB 70 0E BVS $E1FB A:66 X:8A Y:BB P:A4 SP:FB CYC:185 SL:89 E1ED B0 0C BCS $E1FB A:66 X:8A Y:BB P:A4 SP:FB CYC:191 SL:89 E1EF C0 BB CPY #$BB A:66 X:8A Y:BB P:A4 SP:FB CYC:197 SL:89 E1F1 D0 08 BNE $E1FB A:66 X:8A Y:BB P:27 SP:FB CYC:203 SL:89 E1F3 C9 66 CMP #$66 A:66 X:8A Y:BB P:27 SP:FB CYC:209 SL:89 E1F5 D0 04 BNE $E1FB A:66 X:8A Y:BB P:27 SP:FB CYC:215 SL:89 E1F7 E0 8A CPX #$8A A:66 X:8A Y:BB P:27 SP:FB CYC:221 SL:89 E1F9 F0 04 BEQ $E1FF A:66 X:8A Y:BB P:27 SP:FB CYC:227 SL:89 E1FF A0 53 LDY #$53 A:66 X:8A Y:BB P:27 SP:FB CYC:236 SL:89 E201 A9 AA LDA #$AA A:66 X:8A Y:53 P:25 SP:FB CYC:242 SL:89 E203 A2 78 LDX #$78 A:AA X:8A Y:53 P:A5 SP:FB CYC:248 SL:89 E205 8D 78 06 STA $0678 = 00 A:AA X:78 Y:53 P:25 SP:FB CYC:254 SL:89 E208 20 B6 F7 JSR $F7B6 A:AA X:78 Y:53 P:25 SP:FB CYC:266 SL:89 F7B6 18 CLC A:AA X:78 Y:53 P:25 SP:F9 CYC:284 SL:89 F7B7 A9 FF LDA #$FF A:AA X:78 Y:53 P:24 SP:F9 CYC:290 SL:89 F7B9 85 01 STA $01 = FF A:FF X:78 Y:53 P:A4 SP:F9 CYC:296 SL:89 F7BB 24 01 BIT $01 = FF A:FF X:78 Y:53 P:A4 SP:F9 CYC:305 SL:89 F7BD A9 55 LDA #$55 A:FF X:78 Y:53 P:E4 SP:F9 CYC:314 SL:89 F7BF 60 RTS A:55 X:78 Y:53 P:64 SP:F9 CYC:320 SL:89 E20B 1D 00 06 ORA $0600,X @ 0678 = AA A:55 X:78 Y:53 P:64 SP:FB CYC:338 SL:89 E20E 20 C0 F7 JSR $F7C0 A:FF X:78 Y:53 P:E4 SP:FB CYC: 9 SL:90 F7C0 B0 09 BCS $F7CB A:FF X:78 Y:53 P:E4 SP:F9 CYC: 27 SL:90 F7C2 10 07 BPL $F7CB A:FF X:78 Y:53 P:E4 SP:F9 CYC: 33 SL:90 F7C4 C9 FF CMP #$FF A:FF X:78 Y:53 P:E4 SP:F9 CYC: 39 SL:90 F7C6 D0 03 BNE $F7CB A:FF X:78 Y:53 P:67 SP:F9 CYC: 45 SL:90 F7C8 50 01 BVC $F7CB A:FF X:78 Y:53 P:67 SP:F9 CYC: 51 SL:90 F7CA 60 RTS A:FF X:78 Y:53 P:67 SP:F9 CYC: 57 SL:90 E211 C8 INY A:FF X:78 Y:53 P:67 SP:FB CYC: 75 SL:90 E212 A9 00 LDA #$00 A:FF X:78 Y:54 P:65 SP:FB CYC: 81 SL:90 E214 8D 78 06 STA $0678 = AA A:00 X:78 Y:54 P:67 SP:FB CYC: 87 SL:90 E217 20 CE F7 JSR $F7CE A:00 X:78 Y:54 P:67 SP:FB CYC: 99 SL:90 F7CE 38 SEC A:00 X:78 Y:54 P:67 SP:F9 CYC:117 SL:90 F7CF B8 CLV A:00 X:78 Y:54 P:67 SP:F9 CYC:123 SL:90 F7D0 A9 00 LDA #$00 A:00 X:78 Y:54 P:27 SP:F9 CYC:129 SL:90 F7D2 60 RTS A:00 X:78 Y:54 P:27 SP:F9 CYC:135 SL:90 E21A 1D 00 06 ORA $0600,X @ 0678 = 00 A:00 X:78 Y:54 P:27 SP:FB CYC:153 SL:90 E21D 20 D3 F7 JSR $F7D3 A:00 X:78 Y:54 P:27 SP:FB CYC:165 SL:90 F7D3 D0 07 BNE $F7DC A:00 X:78 Y:54 P:27 SP:F9 CYC:183 SL:90 F7D5 70 05 BVS $F7DC A:00 X:78 Y:54 P:27 SP:F9 CYC:189 SL:90 F7D7 90 03 BCC $F7DC A:00 X:78 Y:54 P:27 SP:F9 CYC:195 SL:90 F7D9 30 01 BMI $F7DC A:00 X:78 Y:54 P:27 SP:F9 CYC:201 SL:90 F7DB 60 RTS A:00 X:78 Y:54 P:27 SP:F9 CYC:207 SL:90 E220 C8 INY A:00 X:78 Y:54 P:27 SP:FB CYC:225 SL:90 E221 A9 AA LDA #$AA A:00 X:78 Y:55 P:25 SP:FB CYC:231 SL:90 E223 8D 78 06 STA $0678 = 00 A:AA X:78 Y:55 P:A5 SP:FB CYC:237 SL:90 E226 20 DF F7 JSR $F7DF A:AA X:78 Y:55 P:A5 SP:FB CYC:249 SL:90 F7DF 18 CLC A:AA X:78 Y:55 P:A5 SP:F9 CYC:267 SL:90 F7E0 24 01 BIT $01 = FF A:AA X:78 Y:55 P:A4 SP:F9 CYC:273 SL:90 F7E2 A9 55 LDA #$55 A:AA X:78 Y:55 P:E4 SP:F9 CYC:282 SL:90 F7E4 60 RTS A:55 X:78 Y:55 P:64 SP:F9 CYC:288 SL:90 E229 3D 00 06 AND $0600,X @ 0678 = AA A:55 X:78 Y:55 P:64 SP:FB CYC:306 SL:90 E22C 20 E5 F7 JSR $F7E5 A:00 X:78 Y:55 P:66 SP:FB CYC:318 SL:90 F7E5 D0 07 BNE $F7EE A:00 X:78 Y:55 P:66 SP:F9 CYC:336 SL:90 F7E7 50 05 BVC $F7EE A:00 X:78 Y:55 P:66 SP:F9 CYC: 1 SL:91 F7E9 B0 03 BCS $F7EE A:00 X:78 Y:55 P:66 SP:F9 CYC: 7 SL:91 F7EB 30 01 BMI $F7EE A:00 X:78 Y:55 P:66 SP:F9 CYC: 13 SL:91 F7ED 60 RTS A:00 X:78 Y:55 P:66 SP:F9 CYC: 19 SL:91 E22F C8 INY A:00 X:78 Y:55 P:66 SP:FB CYC: 37 SL:91 E230 A9 EF LDA #$EF A:00 X:78 Y:56 P:64 SP:FB CYC: 43 SL:91 E232 8D 78 06 STA $0678 = AA A:EF X:78 Y:56 P:E4 SP:FB CYC: 49 SL:91 E235 20 F1 F7 JSR $F7F1 A:EF X:78 Y:56 P:E4 SP:FB CYC: 61 SL:91 F7F1 38 SEC A:EF X:78 Y:56 P:E4 SP:F9 CYC: 79 SL:91 F7F2 B8 CLV A:EF X:78 Y:56 P:E5 SP:F9 CYC: 85 SL:91 F7F3 A9 F8 LDA #$F8 A:EF X:78 Y:56 P:A5 SP:F9 CYC: 91 SL:91 F7F5 60 RTS A:F8 X:78 Y:56 P:A5 SP:F9 CYC: 97 SL:91 E238 3D 00 06 AND $0600,X @ 0678 = EF A:F8 X:78 Y:56 P:A5 SP:FB CYC:115 SL:91 E23B 20 F6 F7 JSR $F7F6 A:E8 X:78 Y:56 P:A5 SP:FB CYC:127 SL:91 F7F6 90 09 BCC $F801 A:E8 X:78 Y:56 P:A5 SP:F9 CYC:145 SL:91 F7F8 10 07 BPL $F801 A:E8 X:78 Y:56 P:A5 SP:F9 CYC:151 SL:91 F7FA C9 E8 CMP #$E8 A:E8 X:78 Y:56 P:A5 SP:F9 CYC:157 SL:91 F7FC D0 03 BNE $F801 A:E8 X:78 Y:56 P:27 SP:F9 CYC:163 SL:91 F7FE 70 01 BVS $F801 A:E8 X:78 Y:56 P:27 SP:F9 CYC:169 SL:91 F800 60 RTS A:E8 X:78 Y:56 P:27 SP:F9 CYC:175 SL:91 E23E C8 INY A:E8 X:78 Y:56 P:27 SP:FB CYC:193 SL:91 E23F A9 AA LDA #$AA A:E8 X:78 Y:57 P:25 SP:FB CYC:199 SL:91 E241 8D 78 06 STA $0678 = EF A:AA X:78 Y:57 P:A5 SP:FB CYC:205 SL:91 E244 20 04 F8 JSR $F804 A:AA X:78 Y:57 P:A5 SP:FB CYC:217 SL:91 F804 18 CLC A:AA X:78 Y:57 P:A5 SP:F9 CYC:235 SL:91 F805 24 01 BIT $01 = FF A:AA X:78 Y:57 P:A4 SP:F9 CYC:241 SL:91 F807 A9 5F LDA #$5F A:AA X:78 Y:57 P:E4 SP:F9 CYC:250 SL:91 F809 60 RTS A:5F X:78 Y:57 P:64 SP:F9 CYC:256 SL:91 E247 5D 00 06 EOR $0600,X @ 0678 = AA A:5F X:78 Y:57 P:64 SP:FB CYC:274 SL:91 E24A 20 0A F8 JSR $F80A A:F5 X:78 Y:57 P:E4 SP:FB CYC:286 SL:91 F80A B0 09 BCS $F815 A:F5 X:78 Y:57 P:E4 SP:F9 CYC:304 SL:91 F80C 10 07 BPL $F815 A:F5 X:78 Y:57 P:E4 SP:F9 CYC:310 SL:91 F80E C9 F5 CMP #$F5 A:F5 X:78 Y:57 P:E4 SP:F9 CYC:316 SL:91 F810 D0 03 BNE $F815 A:F5 X:78 Y:57 P:67 SP:F9 CYC:322 SL:91 F812 50 01 BVC $F815 A:F5 X:78 Y:57 P:67 SP:F9 CYC:328 SL:91 F814 60 RTS A:F5 X:78 Y:57 P:67 SP:F9 CYC:334 SL:91 E24D C8 INY A:F5 X:78 Y:57 P:67 SP:FB CYC: 11 SL:92 E24E A9 70 LDA #$70 A:F5 X:78 Y:58 P:65 SP:FB CYC: 17 SL:92 E250 8D 78 06 STA $0678 = AA A:70 X:78 Y:58 P:65 SP:FB CYC: 23 SL:92 E253 20 18 F8 JSR $F818 A:70 X:78 Y:58 P:65 SP:FB CYC: 35 SL:92 F818 38 SEC A:70 X:78 Y:58 P:65 SP:F9 CYC: 53 SL:92 F819 B8 CLV A:70 X:78 Y:58 P:65 SP:F9 CYC: 59 SL:92 F81A A9 70 LDA #$70 A:70 X:78 Y:58 P:25 SP:F9 CYC: 65 SL:92 F81C 60 RTS A:70 X:78 Y:58 P:25 SP:F9 CYC: 71 SL:92 E256 5D 00 06 EOR $0600,X @ 0678 = 70 A:70 X:78 Y:58 P:25 SP:FB CYC: 89 SL:92 E259 20 1D F8 JSR $F81D A:00 X:78 Y:58 P:27 SP:FB CYC:101 SL:92 F81D D0 07 BNE $F826 A:00 X:78 Y:58 P:27 SP:F9 CYC:119 SL:92 F81F 70 05 BVS $F826 A:00 X:78 Y:58 P:27 SP:F9 CYC:125 SL:92 F821 90 03 BCC $F826 A:00 X:78 Y:58 P:27 SP:F9 CYC:131 SL:92 F823 30 01 BMI $F826 A:00 X:78 Y:58 P:27 SP:F9 CYC:137 SL:92 F825 60 RTS A:00 X:78 Y:58 P:27 SP:F9 CYC:143 SL:92 E25C C8 INY A:00 X:78 Y:58 P:27 SP:FB CYC:161 SL:92 E25D A9 69 LDA #$69 A:00 X:78 Y:59 P:25 SP:FB CYC:167 SL:92 E25F 8D 78 06 STA $0678 = 70 A:69 X:78 Y:59 P:25 SP:FB CYC:173 SL:92 E262 20 29 F8 JSR $F829 A:69 X:78 Y:59 P:25 SP:FB CYC:185 SL:92 F829 18 CLC A:69 X:78 Y:59 P:25 SP:F9 CYC:203 SL:92 F82A 24 01 BIT $01 = FF A:69 X:78 Y:59 P:24 SP:F9 CYC:209 SL:92 F82C A9 00 LDA #$00 A:69 X:78 Y:59 P:E4 SP:F9 CYC:218 SL:92 F82E 60 RTS A:00 X:78 Y:59 P:66 SP:F9 CYC:224 SL:92 E265 7D 00 06 ADC $0600,X @ 0678 = 69 A:00 X:78 Y:59 P:66 SP:FB CYC:242 SL:92 E268 20 2F F8 JSR $F82F A:69 X:78 Y:59 P:24 SP:FB CYC:254 SL:92 F82F 30 09 BMI $F83A A:69 X:78 Y:59 P:24 SP:F9 CYC:272 SL:92 F831 B0 07 BCS $F83A A:69 X:78 Y:59 P:24 SP:F9 CYC:278 SL:92 F833 C9 69 CMP #$69 A:69 X:78 Y:59 P:24 SP:F9 CYC:284 SL:92 F835 D0 03 BNE $F83A A:69 X:78 Y:59 P:27 SP:F9 CYC:290 SL:92 F837 70 01 BVS $F83A A:69 X:78 Y:59 P:27 SP:F9 CYC:296 SL:92 F839 60 RTS A:69 X:78 Y:59 P:27 SP:F9 CYC:302 SL:92 E26B C8 INY A:69 X:78 Y:59 P:27 SP:FB CYC:320 SL:92 E26C 20 3D F8 JSR $F83D A:69 X:78 Y:5A P:25 SP:FB CYC:326 SL:92 F83D 38 SEC A:69 X:78 Y:5A P:25 SP:F9 CYC: 3 SL:93 F83E 24 01 BIT $01 = FF A:69 X:78 Y:5A P:25 SP:F9 CYC: 9 SL:93 F840 A9 00 LDA #$00 A:69 X:78 Y:5A P:E5 SP:F9 CYC: 18 SL:93 F842 60 RTS A:00 X:78 Y:5A P:67 SP:F9 CYC: 24 SL:93 E26F 7D 00 06 ADC $0600,X @ 0678 = 69 A:00 X:78 Y:5A P:67 SP:FB CYC: 42 SL:93 E272 20 43 F8 JSR $F843 A:6A X:78 Y:5A P:24 SP:FB CYC: 54 SL:93 F843 30 09 BMI $F84E A:6A X:78 Y:5A P:24 SP:F9 CYC: 72 SL:93 F845 B0 07 BCS $F84E A:6A X:78 Y:5A P:24 SP:F9 CYC: 78 SL:93 F847 C9 6A CMP #$6A A:6A X:78 Y:5A P:24 SP:F9 CYC: 84 SL:93 F849 D0 03 BNE $F84E A:6A X:78 Y:5A P:27 SP:F9 CYC: 90 SL:93 F84B 70 01 BVS $F84E A:6A X:78 Y:5A P:27 SP:F9 CYC: 96 SL:93 F84D 60 RTS A:6A X:78 Y:5A P:27 SP:F9 CYC:102 SL:93 E275 C8 INY A:6A X:78 Y:5A P:27 SP:FB CYC:120 SL:93 E276 A9 7F LDA #$7F A:6A X:78 Y:5B P:25 SP:FB CYC:126 SL:93 E278 8D 78 06 STA $0678 = 69 A:7F X:78 Y:5B P:25 SP:FB CYC:132 SL:93 E27B 20 51 F8 JSR $F851 A:7F X:78 Y:5B P:25 SP:FB CYC:144 SL:93 F851 38 SEC A:7F X:78 Y:5B P:25 SP:F9 CYC:162 SL:93 F852 B8 CLV A:7F X:78 Y:5B P:25 SP:F9 CYC:168 SL:93 F853 A9 7F LDA #$7F A:7F X:78 Y:5B P:25 SP:F9 CYC:174 SL:93 F855 60 RTS A:7F X:78 Y:5B P:25 SP:F9 CYC:180 SL:93 E27E 7D 00 06 ADC $0600,X @ 0678 = 7F A:7F X:78 Y:5B P:25 SP:FB CYC:198 SL:93 E281 20 56 F8 JSR $F856 A:FF X:78 Y:5B P:E4 SP:FB CYC:210 SL:93 F856 10 09 BPL $F861 A:FF X:78 Y:5B P:E4 SP:F9 CYC:228 SL:93 F858 B0 07 BCS $F861 A:FF X:78 Y:5B P:E4 SP:F9 CYC:234 SL:93 F85A C9 FF CMP #$FF A:FF X:78 Y:5B P:E4 SP:F9 CYC:240 SL:93 F85C D0 03 BNE $F861 A:FF X:78 Y:5B P:67 SP:F9 CYC:246 SL:93 F85E 50 01 BVC $F861 A:FF X:78 Y:5B P:67 SP:F9 CYC:252 SL:93 F860 60 RTS A:FF X:78 Y:5B P:67 SP:F9 CYC:258 SL:93 E284 C8 INY A:FF X:78 Y:5B P:67 SP:FB CYC:276 SL:93 E285 A9 80 LDA #$80 A:FF X:78 Y:5C P:65 SP:FB CYC:282 SL:93 E287 8D 78 06 STA $0678 = 7F A:80 X:78 Y:5C P:E5 SP:FB CYC:288 SL:93 E28A 20 64 F8 JSR $F864 A:80 X:78 Y:5C P:E5 SP:FB CYC:300 SL:93 F864 18 CLC A:80 X:78 Y:5C P:E5 SP:F9 CYC:318 SL:93 F865 24 01 BIT $01 = FF A:80 X:78 Y:5C P:E4 SP:F9 CYC:324 SL:93 F867 A9 7F LDA #$7F A:80 X:78 Y:5C P:E4 SP:F9 CYC:333 SL:93 F869 60 RTS A:7F X:78 Y:5C P:64 SP:F9 CYC:339 SL:93 E28D 7D 00 06 ADC $0600,X @ 0678 = 80 A:7F X:78 Y:5C P:64 SP:FB CYC: 16 SL:94 E290 20 6A F8 JSR $F86A A:FF X:78 Y:5C P:A4 SP:FB CYC: 28 SL:94 F86A 10 09 BPL $F875 A:FF X:78 Y:5C P:A4 SP:F9 CYC: 46 SL:94 F86C B0 07 BCS $F875 A:FF X:78 Y:5C P:A4 SP:F9 CYC: 52 SL:94 F86E C9 FF CMP #$FF A:FF X:78 Y:5C P:A4 SP:F9 CYC: 58 SL:94 F870 D0 03 BNE $F875 A:FF X:78 Y:5C P:27 SP:F9 CYC: 64 SL:94 F872 70 01 BVS $F875 A:FF X:78 Y:5C P:27 SP:F9 CYC: 70 SL:94 F874 60 RTS A:FF X:78 Y:5C P:27 SP:F9 CYC: 76 SL:94 E293 C8 INY A:FF X:78 Y:5C P:27 SP:FB CYC: 94 SL:94 E294 20 78 F8 JSR $F878 A:FF X:78 Y:5D P:25 SP:FB CYC:100 SL:94 F878 38 SEC A:FF X:78 Y:5D P:25 SP:F9 CYC:118 SL:94 F879 B8 CLV A:FF X:78 Y:5D P:25 SP:F9 CYC:124 SL:94 F87A A9 7F LDA #$7F A:FF X:78 Y:5D P:25 SP:F9 CYC:130 SL:94 F87C 60 RTS A:7F X:78 Y:5D P:25 SP:F9 CYC:136 SL:94 E297 7D 00 06 ADC $0600,X @ 0678 = 80 A:7F X:78 Y:5D P:25 SP:FB CYC:154 SL:94 E29A 20 7D F8 JSR $F87D A:00 X:78 Y:5D P:27 SP:FB CYC:166 SL:94 F87D D0 07 BNE $F886 A:00 X:78 Y:5D P:27 SP:F9 CYC:184 SL:94 F87F 30 05 BMI $F886 A:00 X:78 Y:5D P:27 SP:F9 CYC:190 SL:94 F881 70 03 BVS $F886 A:00 X:78 Y:5D P:27 SP:F9 CYC:196 SL:94 F883 90 01 BCC $F886 A:00 X:78 Y:5D P:27 SP:F9 CYC:202 SL:94 F885 60 RTS A:00 X:78 Y:5D P:27 SP:F9 CYC:208 SL:94 E29D C8 INY A:00 X:78 Y:5D P:27 SP:FB CYC:226 SL:94 E29E A9 40 LDA #$40 A:00 X:78 Y:5E P:25 SP:FB CYC:232 SL:94 E2A0 8D 78 06 STA $0678 = 80 A:40 X:78 Y:5E P:25 SP:FB CYC:238 SL:94 E2A3 20 89 F8 JSR $F889 A:40 X:78 Y:5E P:25 SP:FB CYC:250 SL:94 F889 24 01 BIT $01 = FF A:40 X:78 Y:5E P:25 SP:F9 CYC:268 SL:94 F88B A9 40 LDA #$40 A:40 X:78 Y:5E P:E5 SP:F9 CYC:277 SL:94 F88D 60 RTS A:40 X:78 Y:5E P:65 SP:F9 CYC:283 SL:94 E2A6 DD 00 06 CMP $0600,X @ 0678 = 40 A:40 X:78 Y:5E P:65 SP:FB CYC:301 SL:94 E2A9 20 8E F8 JSR $F88E A:40 X:78 Y:5E P:67 SP:FB CYC:313 SL:94 F88E 30 07 BMI $F897 A:40 X:78 Y:5E P:67 SP:F9 CYC:331 SL:94 F890 90 05 BCC $F897 A:40 X:78 Y:5E P:67 SP:F9 CYC:337 SL:94 F892 D0 03 BNE $F897 A:40 X:78 Y:5E P:67 SP:F9 CYC: 2 SL:95 F894 50 01 BVC $F897 A:40 X:78 Y:5E P:67 SP:F9 CYC: 8 SL:95 F896 60 RTS A:40 X:78 Y:5E P:67 SP:F9 CYC: 14 SL:95 E2AC C8 INY A:40 X:78 Y:5E P:67 SP:FB CYC: 32 SL:95 E2AD 48 PHA A:40 X:78 Y:5F P:65 SP:FB CYC: 38 SL:95 E2AE A9 3F LDA #$3F A:40 X:78 Y:5F P:65 SP:FA CYC: 47 SL:95 E2B0 8D 78 06 STA $0678 = 40 A:3F X:78 Y:5F P:65 SP:FA CYC: 53 SL:95 E2B3 68 PLA A:3F X:78 Y:5F P:65 SP:FA CYC: 65 SL:95 E2B4 20 9A F8 JSR $F89A A:40 X:78 Y:5F P:65 SP:FB CYC: 77 SL:95 F89A B8 CLV A:40 X:78 Y:5F P:65 SP:F9 CYC: 95 SL:95 F89B 60 RTS A:40 X:78 Y:5F P:25 SP:F9 CYC:101 SL:95 E2B7 DD 00 06 CMP $0600,X @ 0678 = 3F A:40 X:78 Y:5F P:25 SP:FB CYC:119 SL:95 E2BA 20 9C F8 JSR $F89C A:40 X:78 Y:5F P:25 SP:FB CYC:131 SL:95 F89C F0 07 BEQ $F8A5 A:40 X:78 Y:5F P:25 SP:F9 CYC:149 SL:95 F89E 30 05 BMI $F8A5 A:40 X:78 Y:5F P:25 SP:F9 CYC:155 SL:95 F8A0 90 03 BCC $F8A5 A:40 X:78 Y:5F P:25 SP:F9 CYC:161 SL:95 F8A2 70 01 BVS $F8A5 A:40 X:78 Y:5F P:25 SP:F9 CYC:167 SL:95 F8A4 60 RTS A:40 X:78 Y:5F P:25 SP:F9 CYC:173 SL:95 E2BD C8 INY A:40 X:78 Y:5F P:25 SP:FB CYC:191 SL:95 E2BE 48 PHA A:40 X:78 Y:60 P:25 SP:FB CYC:197 SL:95 E2BF A9 41 LDA #$41 A:40 X:78 Y:60 P:25 SP:FA CYC:206 SL:95 E2C1 8D 78 06 STA $0678 = 3F A:41 X:78 Y:60 P:25 SP:FA CYC:212 SL:95 E2C4 68 PLA A:41 X:78 Y:60 P:25 SP:FA CYC:224 SL:95 E2C5 DD 00 06 CMP $0600,X @ 0678 = 41 A:40 X:78 Y:60 P:25 SP:FB CYC:236 SL:95 E2C8 20 A8 F8 JSR $F8A8 A:40 X:78 Y:60 P:A4 SP:FB CYC:248 SL:95 F8A8 F0 05 BEQ $F8AF A:40 X:78 Y:60 P:A4 SP:F9 CYC:266 SL:95 F8AA 10 03 BPL $F8AF A:40 X:78 Y:60 P:A4 SP:F9 CYC:272 SL:95 F8AC 10 01 BPL $F8AF A:40 X:78 Y:60 P:A4 SP:F9 CYC:278 SL:95 F8AE 60 RTS A:40 X:78 Y:60 P:A4 SP:F9 CYC:284 SL:95 E2CB C8 INY A:40 X:78 Y:60 P:A4 SP:FB CYC:302 SL:95 E2CC 48 PHA A:40 X:78 Y:61 P:24 SP:FB CYC:308 SL:95 E2CD A9 00 LDA #$00 A:40 X:78 Y:61 P:24 SP:FA CYC:317 SL:95 E2CF 8D 78 06 STA $0678 = 41 A:00 X:78 Y:61 P:26 SP:FA CYC:323 SL:95 E2D2 68 PLA A:00 X:78 Y:61 P:26 SP:FA CYC:335 SL:95 E2D3 20 B2 F8 JSR $F8B2 A:40 X:78 Y:61 P:24 SP:FB CYC: 6 SL:96 F8B2 A9 80 LDA #$80 A:40 X:78 Y:61 P:24 SP:F9 CYC: 24 SL:96 F8B4 60 RTS A:80 X:78 Y:61 P:A4 SP:F9 CYC: 30 SL:96 E2D6 DD 00 06 CMP $0600,X @ 0678 = 00 A:80 X:78 Y:61 P:A4 SP:FB CYC: 48 SL:96 E2D9 20 B5 F8 JSR $F8B5 A:80 X:78 Y:61 P:A5 SP:FB CYC: 60 SL:96 F8B5 F0 05 BEQ $F8BC A:80 X:78 Y:61 P:A5 SP:F9 CYC: 78 SL:96 F8B7 10 03 BPL $F8BC A:80 X:78 Y:61 P:A5 SP:F9 CYC: 84 SL:96 F8B9 90 01 BCC $F8BC A:80 X:78 Y:61 P:A5 SP:F9 CYC: 90 SL:96 F8BB 60 RTS A:80 X:78 Y:61 P:A5 SP:F9 CYC: 96 SL:96 E2DC C8 INY A:80 X:78 Y:61 P:A5 SP:FB CYC:114 SL:96 E2DD 48 PHA A:80 X:78 Y:62 P:25 SP:FB CYC:120 SL:96 E2DE A9 80 LDA #$80 A:80 X:78 Y:62 P:25 SP:FA CYC:129 SL:96 E2E0 8D 78 06 STA $0678 = 00 A:80 X:78 Y:62 P:A5 SP:FA CYC:135 SL:96 E2E3 68 PLA A:80 X:78 Y:62 P:A5 SP:FA CYC:147 SL:96 E2E4 DD 00 06 CMP $0600,X @ 0678 = 80 A:80 X:78 Y:62 P:A5 SP:FB CYC:159 SL:96 E2E7 20 BF F8 JSR $F8BF A:80 X:78 Y:62 P:27 SP:FB CYC:171 SL:96 F8BF D0 05 BNE $F8C6 A:80 X:78 Y:62 P:27 SP:F9 CYC:189 SL:96 F8C1 30 03 BMI $F8C6 A:80 X:78 Y:62 P:27 SP:F9 CYC:195 SL:96 F8C3 90 01 BCC $F8C6 A:80 X:78 Y:62 P:27 SP:F9 CYC:201 SL:96 F8C5 60 RTS A:80 X:78 Y:62 P:27 SP:F9 CYC:207 SL:96 E2EA C8 INY A:80 X:78 Y:62 P:27 SP:FB CYC:225 SL:96 E2EB 48 PHA A:80 X:78 Y:63 P:25 SP:FB CYC:231 SL:96 E2EC A9 81 LDA #$81 A:80 X:78 Y:63 P:25 SP:FA CYC:240 SL:96 E2EE 8D 78 06 STA $0678 = 80 A:81 X:78 Y:63 P:A5 SP:FA CYC:246 SL:96 E2F1 68 PLA A:81 X:78 Y:63 P:A5 SP:FA CYC:258 SL:96 E2F2 DD 00 06 CMP $0600,X @ 0678 = 81 A:80 X:78 Y:63 P:A5 SP:FB CYC:270 SL:96 E2F5 20 C9 F8 JSR $F8C9 A:80 X:78 Y:63 P:A4 SP:FB CYC:282 SL:96 F8C9 B0 05 BCS $F8D0 A:80 X:78 Y:63 P:A4 SP:F9 CYC:300 SL:96 F8CB F0 03 BEQ $F8D0 A:80 X:78 Y:63 P:A4 SP:F9 CYC:306 SL:96 F8CD 10 01 BPL $F8D0 A:80 X:78 Y:63 P:A4 SP:F9 CYC:312 SL:96 F8CF 60 RTS A:80 X:78 Y:63 P:A4 SP:F9 CYC:318 SL:96 E2F8 C8 INY A:80 X:78 Y:63 P:A4 SP:FB CYC:336 SL:96 E2F9 48 PHA A:80 X:78 Y:64 P:24 SP:FB CYC: 1 SL:97 E2FA A9 7F LDA #$7F A:80 X:78 Y:64 P:24 SP:FA CYC: 10 SL:97 E2FC 8D 78 06 STA $0678 = 81 A:7F X:78 Y:64 P:24 SP:FA CYC: 16 SL:97 E2FF 68 PLA A:7F X:78 Y:64 P:24 SP:FA CYC: 28 SL:97 E300 DD 00 06 CMP $0600,X @ 0678 = 7F A:80 X:78 Y:64 P:A4 SP:FB CYC: 40 SL:97 E303 20 D3 F8 JSR $F8D3 A:80 X:78 Y:64 P:25 SP:FB CYC: 52 SL:97 F8D3 90 05 BCC $F8DA A:80 X:78 Y:64 P:25 SP:F9 CYC: 70 SL:97 F8D5 F0 03 BEQ $F8DA A:80 X:78 Y:64 P:25 SP:F9 CYC: 76 SL:97 F8D7 30 01 BMI $F8DA A:80 X:78 Y:64 P:25 SP:F9 CYC: 82 SL:97 F8D9 60 RTS A:80 X:78 Y:64 P:25 SP:F9 CYC: 88 SL:97 E306 C8 INY A:80 X:78 Y:64 P:25 SP:FB CYC:106 SL:97 E307 A9 40 LDA #$40 A:80 X:78 Y:65 P:25 SP:FB CYC:112 SL:97 E309 8D 78 06 STA $0678 = 7F A:40 X:78 Y:65 P:25 SP:FB CYC:118 SL:97 E30C 20 31 F9 JSR $F931 A:40 X:78 Y:65 P:25 SP:FB CYC:130 SL:97 F931 24 01 BIT $01 = FF A:40 X:78 Y:65 P:25 SP:F9 CYC:148 SL:97 F933 A9 40 LDA #$40 A:40 X:78 Y:65 P:E5 SP:F9 CYC:157 SL:97 F935 38 SEC A:40 X:78 Y:65 P:65 SP:F9 CYC:163 SL:97 F936 60 RTS A:40 X:78 Y:65 P:65 SP:F9 CYC:169 SL:97 E30F FD 00 06 SBC $0600,X @ 0678 = 40 A:40 X:78 Y:65 P:65 SP:FB CYC:187 SL:97 E312 20 37 F9 JSR $F937 A:00 X:78 Y:65 P:27 SP:FB CYC:199 SL:97 F937 30 0B BMI $F944 A:00 X:78 Y:65 P:27 SP:F9 CYC:217 SL:97 F939 90 09 BCC $F944 A:00 X:78 Y:65 P:27 SP:F9 CYC:223 SL:97 F93B D0 07 BNE $F944 A:00 X:78 Y:65 P:27 SP:F9 CYC:229 SL:97 F93D 70 05 BVS $F944 A:00 X:78 Y:65 P:27 SP:F9 CYC:235 SL:97 F93F C9 00 CMP #$00 A:00 X:78 Y:65 P:27 SP:F9 CYC:241 SL:97 F941 D0 01 BNE $F944 A:00 X:78 Y:65 P:27 SP:F9 CYC:247 SL:97 F943 60 RTS A:00 X:78 Y:65 P:27 SP:F9 CYC:253 SL:97 E315 C8 INY A:00 X:78 Y:65 P:27 SP:FB CYC:271 SL:97 E316 A9 3F LDA #$3F A:00 X:78 Y:66 P:25 SP:FB CYC:277 SL:97 E318 8D 78 06 STA $0678 = 40 A:3F X:78 Y:66 P:25 SP:FB CYC:283 SL:97 E31B 20 47 F9 JSR $F947 A:3F X:78 Y:66 P:25 SP:FB CYC:295 SL:97 F947 B8 CLV A:3F X:78 Y:66 P:25 SP:F9 CYC:313 SL:97 F948 38 SEC A:3F X:78 Y:66 P:25 SP:F9 CYC:319 SL:97 F949 A9 40 LDA #$40 A:3F X:78 Y:66 P:25 SP:F9 CYC:325 SL:97 F94B 60 RTS A:40 X:78 Y:66 P:25 SP:F9 CYC:331 SL:97 E31E FD 00 06 SBC $0600,X @ 0678 = 3F A:40 X:78 Y:66 P:25 SP:FB CYC: 8 SL:98 E321 20 4C F9 JSR $F94C A:01 X:78 Y:66 P:25 SP:FB CYC: 20 SL:98 F94C F0 0B BEQ $F959 A:01 X:78 Y:66 P:25 SP:F9 CYC: 38 SL:98 F94E 30 09 BMI $F959 A:01 X:78 Y:66 P:25 SP:F9 CYC: 44 SL:98 F950 90 07 BCC $F959 A:01 X:78 Y:66 P:25 SP:F9 CYC: 50 SL:98 F952 70 05 BVS $F959 A:01 X:78 Y:66 P:25 SP:F9 CYC: 56 SL:98 F954 C9 01 CMP #$01 A:01 X:78 Y:66 P:25 SP:F9 CYC: 62 SL:98 F956 D0 01 BNE $F959 A:01 X:78 Y:66 P:27 SP:F9 CYC: 68 SL:98 F958 60 RTS A:01 X:78 Y:66 P:27 SP:F9 CYC: 74 SL:98 E324 C8 INY A:01 X:78 Y:66 P:27 SP:FB CYC: 92 SL:98 E325 A9 41 LDA #$41 A:01 X:78 Y:67 P:25 SP:FB CYC: 98 SL:98 E327 8D 78 06 STA $0678 = 3F A:41 X:78 Y:67 P:25 SP:FB CYC:104 SL:98 E32A 20 5C F9 JSR $F95C A:41 X:78 Y:67 P:25 SP:FB CYC:116 SL:98 F95C A9 40 LDA #$40 A:41 X:78 Y:67 P:25 SP:F9 CYC:134 SL:98 F95E 38 SEC A:40 X:78 Y:67 P:25 SP:F9 CYC:140 SL:98 F95F 24 01 BIT $01 = FF A:40 X:78 Y:67 P:25 SP:F9 CYC:146 SL:98 F961 60 RTS A:40 X:78 Y:67 P:E5 SP:F9 CYC:155 SL:98 E32D FD 00 06 SBC $0600,X @ 0678 = 41 A:40 X:78 Y:67 P:E5 SP:FB CYC:173 SL:98 E330 20 62 F9 JSR $F962 A:FF X:78 Y:67 P:A4 SP:FB CYC:185 SL:98 F962 B0 0B BCS $F96F A:FF X:78 Y:67 P:A4 SP:F9 CYC:203 SL:98 F964 F0 09 BEQ $F96F A:FF X:78 Y:67 P:A4 SP:F9 CYC:209 SL:98 F966 10 07 BPL $F96F A:FF X:78 Y:67 P:A4 SP:F9 CYC:215 SL:98 F968 70 05 BVS $F96F A:FF X:78 Y:67 P:A4 SP:F9 CYC:221 SL:98 F96A C9 FF CMP #$FF A:FF X:78 Y:67 P:A4 SP:F9 CYC:227 SL:98 F96C D0 01 BNE $F96F A:FF X:78 Y:67 P:27 SP:F9 CYC:233 SL:98 F96E 60 RTS A:FF X:78 Y:67 P:27 SP:F9 CYC:239 SL:98 E333 C8 INY A:FF X:78 Y:67 P:27 SP:FB CYC:257 SL:98 E334 A9 00 LDA #$00 A:FF X:78 Y:68 P:25 SP:FB CYC:263 SL:98 E336 8D 78 06 STA $0678 = 41 A:00 X:78 Y:68 P:27 SP:FB CYC:269 SL:98 E339 20 72 F9 JSR $F972 A:00 X:78 Y:68 P:27 SP:FB CYC:281 SL:98 F972 18 CLC A:00 X:78 Y:68 P:27 SP:F9 CYC:299 SL:98 F973 A9 80 LDA #$80 A:00 X:78 Y:68 P:26 SP:F9 CYC:305 SL:98 F975 60 RTS A:80 X:78 Y:68 P:A4 SP:F9 CYC:311 SL:98 E33C FD 00 06 SBC $0600,X @ 0678 = 00 A:80 X:78 Y:68 P:A4 SP:FB CYC:329 SL:98 E33F 20 76 F9 JSR $F976 A:7F X:78 Y:68 P:65 SP:FB CYC: 0 SL:99 F976 90 05 BCC $F97D A:7F X:78 Y:68 P:65 SP:F9 CYC: 18 SL:99 F978 C9 7F CMP #$7F A:7F X:78 Y:68 P:65 SP:F9 CYC: 24 SL:99 F97A D0 01 BNE $F97D A:7F X:78 Y:68 P:67 SP:F9 CYC: 30 SL:99 F97C 60 RTS A:7F X:78 Y:68 P:67 SP:F9 CYC: 36 SL:99 E342 C8 INY A:7F X:78 Y:68 P:67 SP:FB CYC: 54 SL:99 E343 A9 7F LDA #$7F A:7F X:78 Y:69 P:65 SP:FB CYC: 60 SL:99 E345 8D 78 06 STA $0678 = 00 A:7F X:78 Y:69 P:65 SP:FB CYC: 66 SL:99 E348 20 80 F9 JSR $F980 A:7F X:78 Y:69 P:65 SP:FB CYC: 78 SL:99 F980 38 SEC A:7F X:78 Y:69 P:65 SP:F9 CYC: 96 SL:99 F981 A9 81 LDA #$81 A:7F X:78 Y:69 P:65 SP:F9 CYC:102 SL:99 F983 60 RTS A:81 X:78 Y:69 P:E5 SP:F9 CYC:108 SL:99 E34B FD 00 06 SBC $0600,X @ 0678 = 7F A:81 X:78 Y:69 P:E5 SP:FB CYC:126 SL:99 E34E 20 84 F9 JSR $F984 A:02 X:78 Y:69 P:65 SP:FB CYC:138 SL:99 F984 50 07 BVC $F98D A:02 X:78 Y:69 P:65 SP:F9 CYC:156 SL:99 F986 90 05 BCC $F98D A:02 X:78 Y:69 P:65 SP:F9 CYC:162 SL:99 F988 C9 02 CMP #$02 A:02 X:78 Y:69 P:65 SP:F9 CYC:168 SL:99 F98A D0 01 BNE $F98D A:02 X:78 Y:69 P:67 SP:F9 CYC:174 SL:99 F98C 60 RTS A:02 X:78 Y:69 P:67 SP:F9 CYC:180 SL:99 E351 A9 AA LDA #$AA A:02 X:78 Y:69 P:67 SP:FB CYC:198 SL:99 E353 8D 33 06 STA $0633 = AA A:AA X:78 Y:69 P:E5 SP:FB CYC:204 SL:99 E356 A9 BB LDA #$BB A:AA X:78 Y:69 P:E5 SP:FB CYC:216 SL:99 E358 8D 89 06 STA $0689 = BB A:BB X:78 Y:69 P:E5 SP:FB CYC:222 SL:99 E35B A2 00 LDX #$00 A:BB X:78 Y:69 P:E5 SP:FB CYC:234 SL:99 E35D A0 66 LDY #$66 A:BB X:00 Y:69 P:67 SP:FB CYC:240 SL:99 E35F 24 01 BIT $01 = FF A:BB X:00 Y:66 P:65 SP:FB CYC:246 SL:99 E361 38 SEC A:BB X:00 Y:66 P:E5 SP:FB CYC:255 SL:99 E362 A9 00 LDA #$00 A:BB X:00 Y:66 P:E5 SP:FB CYC:261 SL:99 E364 BD 33 06 LDA $0633,X @ 0633 = AA A:00 X:00 Y:66 P:67 SP:FB CYC:267 SL:99 E367 10 12 BPL $E37B A:AA X:00 Y:66 P:E5 SP:FB CYC:279 SL:99 E369 F0 10 BEQ $E37B A:AA X:00 Y:66 P:E5 SP:FB CYC:285 SL:99 E36B 50 0E BVC $E37B A:AA X:00 Y:66 P:E5 SP:FB CYC:291 SL:99 E36D 90 0C BCC $E37B A:AA X:00 Y:66 P:E5 SP:FB CYC:297 SL:99 E36F C0 66 CPY #$66 A:AA X:00 Y:66 P:E5 SP:FB CYC:303 SL:99 E371 D0 08 BNE $E37B A:AA X:00 Y:66 P:67 SP:FB CYC:309 SL:99 E373 E0 00 CPX #$00 A:AA X:00 Y:66 P:67 SP:FB CYC:315 SL:99 E375 D0 04 BNE $E37B A:AA X:00 Y:66 P:67 SP:FB CYC:321 SL:99 E377 C9 AA CMP #$AA A:AA X:00 Y:66 P:67 SP:FB CYC:327 SL:99 E379 F0 04 BEQ $E37F A:AA X:00 Y:66 P:67 SP:FB CYC:333 SL:99 E37F A2 8A LDX #$8A A:AA X:00 Y:66 P:67 SP:FB CYC: 1 SL:100 E381 A0 66 LDY #$66 A:AA X:8A Y:66 P:E5 SP:FB CYC: 7 SL:100 E383 B8 CLV A:AA X:8A Y:66 P:65 SP:FB CYC: 13 SL:100 E384 18 CLC A:AA X:8A Y:66 P:25 SP:FB CYC: 19 SL:100 E385 A9 00 LDA #$00 A:AA X:8A Y:66 P:24 SP:FB CYC: 25 SL:100 E387 BD FF 05 LDA $05FF,X @ 0689 = BB A:00 X:8A Y:66 P:26 SP:FB CYC: 31 SL:100 E38A 10 12 BPL $E39E A:BB X:8A Y:66 P:A4 SP:FB CYC: 46 SL:100 E38C F0 10 BEQ $E39E A:BB X:8A Y:66 P:A4 SP:FB CYC: 52 SL:100 E38E 70 0E BVS $E39E A:BB X:8A Y:66 P:A4 SP:FB CYC: 58 SL:100 E390 B0 0C BCS $E39E A:BB X:8A Y:66 P:A4 SP:FB CYC: 64 SL:100 E392 C9 BB CMP #$BB A:BB X:8A Y:66 P:A4 SP:FB CYC: 70 SL:100 E394 D0 08 BNE $E39E A:BB X:8A Y:66 P:27 SP:FB CYC: 76 SL:100 E396 C0 66 CPY #$66 A:BB X:8A Y:66 P:27 SP:FB CYC: 82 SL:100 E398 D0 04 BNE $E39E A:BB X:8A Y:66 P:27 SP:FB CYC: 88 SL:100 E39A E0 8A CPX #$8A A:BB X:8A Y:66 P:27 SP:FB CYC: 94 SL:100 E39C F0 04 BEQ $E3A2 A:BB X:8A Y:66 P:27 SP:FB CYC:100 SL:100 E3A2 24 01 BIT $01 = FF A:BB X:8A Y:66 P:27 SP:FB CYC:109 SL:100 E3A4 38 SEC A:BB X:8A Y:66 P:E5 SP:FB CYC:118 SL:100 E3A5 A9 44 LDA #$44 A:BB X:8A Y:66 P:E5 SP:FB CYC:124 SL:100 E3A7 A2 00 LDX #$00 A:44 X:8A Y:66 P:65 SP:FB CYC:130 SL:100 E3A9 9D 33 06 STA $0633,X @ 0633 = AA A:44 X:00 Y:66 P:67 SP:FB CYC:136 SL:100 E3AC AD 33 06 LDA $0633 = 44 A:44 X:00 Y:66 P:67 SP:FB CYC:151 SL:100 E3AF 90 1A BCC $E3CB A:44 X:00 Y:66 P:65 SP:FB CYC:163 SL:100 E3B1 C9 44 CMP #$44 A:44 X:00 Y:66 P:65 SP:FB CYC:169 SL:100 E3B3 D0 16 BNE $E3CB A:44 X:00 Y:66 P:67 SP:FB CYC:175 SL:100 E3B5 50 14 BVC $E3CB A:44 X:00 Y:66 P:67 SP:FB CYC:181 SL:100 E3B7 18 CLC A:44 X:00 Y:66 P:67 SP:FB CYC:187 SL:100 E3B8 B8 CLV A:44 X:00 Y:66 P:66 SP:FB CYC:193 SL:100 E3B9 A9 99 LDA #$99 A:44 X:00 Y:66 P:26 SP:FB CYC:199 SL:100 E3BB A2 80 LDX #$80 A:99 X:00 Y:66 P:A4 SP:FB CYC:205 SL:100 E3BD 9D 85 05 STA $0585,X @ 0605 = 00 A:99 X:80 Y:66 P:A4 SP:FB CYC:211 SL:100 E3C0 AD 05 06 LDA $0605 = 99 A:99 X:80 Y:66 P:A4 SP:FB CYC:226 SL:100 E3C3 B0 06 BCS $E3CB A:99 X:80 Y:66 P:A4 SP:FB CYC:238 SL:100 E3C5 C9 99 CMP #$99 A:99 X:80 Y:66 P:A4 SP:FB CYC:244 SL:100 E3C7 D0 02 BNE $E3CB A:99 X:80 Y:66 P:27 SP:FB CYC:250 SL:100 E3C9 50 04 BVC $E3CF A:99 X:80 Y:66 P:27 SP:FB CYC:256 SL:100 E3CF A0 6D LDY #$6D A:99 X:80 Y:66 P:27 SP:FB CYC:265 SL:100 E3D1 A2 6D LDX #$6D A:99 X:80 Y:6D P:25 SP:FB CYC:271 SL:100 E3D3 20 90 F9 JSR $F990 A:99 X:6D Y:6D P:25 SP:FB CYC:277 SL:100 F990 A2 55 LDX #$55 A:99 X:6D Y:6D P:25 SP:F9 CYC:295 SL:100 F992 A9 FF LDA #$FF A:99 X:55 Y:6D P:25 SP:F9 CYC:301 SL:100 F994 85 01 STA $01 = FF A:FF X:55 Y:6D P:A5 SP:F9 CYC:307 SL:100 F996 EA NOP A:FF X:55 Y:6D P:A5 SP:F9 CYC:316 SL:100 F997 24 01 BIT $01 = FF A:FF X:55 Y:6D P:A5 SP:F9 CYC:322 SL:100 F999 38 SEC A:FF X:55 Y:6D P:E5 SP:F9 CYC:331 SL:100 F99A A9 01 LDA #$01 A:FF X:55 Y:6D P:E5 SP:F9 CYC:337 SL:100 F99C 60 RTS A:01 X:55 Y:6D P:65 SP:F9 CYC: 2 SL:101 E3D6 9D 00 06 STA $0600,X @ 0655 = 00 A:01 X:55 Y:6D P:65 SP:FB CYC: 20 SL:101 E3D9 5E 00 06 LSR $0600,X @ 0655 = 01 A:01 X:55 Y:6D P:65 SP:FB CYC: 35 SL:101 E3DC BD 00 06 LDA $0600,X @ 0655 = 00 A:01 X:55 Y:6D P:67 SP:FB CYC: 56 SL:101 E3DF 20 9D F9 JSR $F99D A:00 X:55 Y:6D P:67 SP:FB CYC: 68 SL:101 F99D 90 1B BCC $F9BA A:00 X:55 Y:6D P:67 SP:F9 CYC: 86 SL:101 F99F D0 19 BNE $F9BA A:00 X:55 Y:6D P:67 SP:F9 CYC: 92 SL:101 F9A1 30 17 BMI $F9BA A:00 X:55 Y:6D P:67 SP:F9 CYC: 98 SL:101 F9A3 50 15 BVC $F9BA A:00 X:55 Y:6D P:67 SP:F9 CYC:104 SL:101 F9A5 C9 00 CMP #$00 A:00 X:55 Y:6D P:67 SP:F9 CYC:110 SL:101 F9A7 D0 11 BNE $F9BA A:00 X:55 Y:6D P:67 SP:F9 CYC:116 SL:101 F9A9 B8 CLV A:00 X:55 Y:6D P:67 SP:F9 CYC:122 SL:101 F9AA A9 AA LDA #$AA A:00 X:55 Y:6D P:27 SP:F9 CYC:128 SL:101 F9AC 60 RTS A:AA X:55 Y:6D P:A5 SP:F9 CYC:134 SL:101 E3E2 C8 INY A:AA X:55 Y:6D P:A5 SP:FB CYC:152 SL:101 E3E3 9D 00 06 STA $0600,X @ 0655 = 00 A:AA X:55 Y:6E P:25 SP:FB CYC:158 SL:101 E3E6 5E 00 06 LSR $0600,X @ 0655 = AA A:AA X:55 Y:6E P:25 SP:FB CYC:173 SL:101 E3E9 BD 00 06 LDA $0600,X @ 0655 = 55 A:AA X:55 Y:6E P:24 SP:FB CYC:194 SL:101 E3EC 20 AD F9 JSR $F9AD A:55 X:55 Y:6E P:24 SP:FB CYC:206 SL:101 F9AD B0 0B BCS $F9BA A:55 X:55 Y:6E P:24 SP:F9 CYC:224 SL:101 F9AF F0 09 BEQ $F9BA A:55 X:55 Y:6E P:24 SP:F9 CYC:230 SL:101 F9B1 30 07 BMI $F9BA A:55 X:55 Y:6E P:24 SP:F9 CYC:236 SL:101 F9B3 70 05 BVS $F9BA A:55 X:55 Y:6E P:24 SP:F9 CYC:242 SL:101 F9B5 C9 55 CMP #$55 A:55 X:55 Y:6E P:24 SP:F9 CYC:248 SL:101 F9B7 D0 01 BNE $F9BA A:55 X:55 Y:6E P:27 SP:F9 CYC:254 SL:101 F9B9 60 RTS A:55 X:55 Y:6E P:27 SP:F9 CYC:260 SL:101 E3EF C8 INY A:55 X:55 Y:6E P:27 SP:FB CYC:278 SL:101 E3F0 20 BD F9 JSR $F9BD A:55 X:55 Y:6F P:25 SP:FB CYC:284 SL:101 F9BD 24 01 BIT $01 = FF A:55 X:55 Y:6F P:25 SP:F9 CYC:302 SL:101 F9BF 38 SEC A:55 X:55 Y:6F P:E5 SP:F9 CYC:311 SL:101 F9C0 A9 80 LDA #$80 A:55 X:55 Y:6F P:E5 SP:F9 CYC:317 SL:101 F9C2 60 RTS A:80 X:55 Y:6F P:E5 SP:F9 CYC:323 SL:101 E3F3 9D 00 06 STA $0600,X @ 0655 = 55 A:80 X:55 Y:6F P:E5 SP:FB CYC: 0 SL:102 E3F6 1E 00 06 ASL $0600,X @ 0655 = 80 A:80 X:55 Y:6F P:E5 SP:FB CYC: 15 SL:102 E3F9 BD 00 06 LDA $0600,X @ 0655 = 00 A:80 X:55 Y:6F P:67 SP:FB CYC: 36 SL:102 E3FC 20 C3 F9 JSR $F9C3 A:00 X:55 Y:6F P:67 SP:FB CYC: 48 SL:102 F9C3 90 1C BCC $F9E1 A:00 X:55 Y:6F P:67 SP:F9 CYC: 66 SL:102 F9C5 D0 1A BNE $F9E1 A:00 X:55 Y:6F P:67 SP:F9 CYC: 72 SL:102 F9C7 30 18 BMI $F9E1 A:00 X:55 Y:6F P:67 SP:F9 CYC: 78 SL:102 F9C9 50 16 BVC $F9E1 A:00 X:55 Y:6F P:67 SP:F9 CYC: 84 SL:102 F9CB C9 00 CMP #$00 A:00 X:55 Y:6F P:67 SP:F9 CYC: 90 SL:102 F9CD D0 12 BNE $F9E1 A:00 X:55 Y:6F P:67 SP:F9 CYC: 96 SL:102 F9CF B8 CLV A:00 X:55 Y:6F P:67 SP:F9 CYC:102 SL:102 F9D0 A9 55 LDA #$55 A:00 X:55 Y:6F P:27 SP:F9 CYC:108 SL:102 F9D2 38 SEC A:55 X:55 Y:6F P:25 SP:F9 CYC:114 SL:102 F9D3 60 RTS A:55 X:55 Y:6F P:25 SP:F9 CYC:120 SL:102 E3FF C8 INY A:55 X:55 Y:6F P:25 SP:FB CYC:138 SL:102 E400 9D 00 06 STA $0600,X @ 0655 = 00 A:55 X:55 Y:70 P:25 SP:FB CYC:144 SL:102 E403 1E 00 06 ASL $0600,X @ 0655 = 55 A:55 X:55 Y:70 P:25 SP:FB CYC:159 SL:102 E406 BD 00 06 LDA $0600,X @ 0655 = AA A:55 X:55 Y:70 P:A4 SP:FB CYC:180 SL:102 E409 20 D4 F9 JSR $F9D4 A:AA X:55 Y:70 P:A4 SP:FB CYC:192 SL:102 F9D4 B0 0B BCS $F9E1 A:AA X:55 Y:70 P:A4 SP:F9 CYC:210 SL:102 F9D6 F0 09 BEQ $F9E1 A:AA X:55 Y:70 P:A4 SP:F9 CYC:216 SL:102 F9D8 10 07 BPL $F9E1 A:AA X:55 Y:70 P:A4 SP:F9 CYC:222 SL:102 F9DA 70 05 BVS $F9E1 A:AA X:55 Y:70 P:A4 SP:F9 CYC:228 SL:102 F9DC C9 AA CMP #$AA A:AA X:55 Y:70 P:A4 SP:F9 CYC:234 SL:102 F9DE D0 01 BNE $F9E1 A:AA X:55 Y:70 P:27 SP:F9 CYC:240 SL:102 F9E0 60 RTS A:AA X:55 Y:70 P:27 SP:F9 CYC:246 SL:102 E40C C8 INY A:AA X:55 Y:70 P:27 SP:FB CYC:264 SL:102 E40D 20 E4 F9 JSR $F9E4 A:AA X:55 Y:71 P:25 SP:FB CYC:270 SL:102 F9E4 24 01 BIT $01 = FF A:AA X:55 Y:71 P:25 SP:F9 CYC:288 SL:102 F9E6 38 SEC A:AA X:55 Y:71 P:E5 SP:F9 CYC:297 SL:102 F9E7 A9 01 LDA #$01 A:AA X:55 Y:71 P:E5 SP:F9 CYC:303 SL:102 F9E9 60 RTS A:01 X:55 Y:71 P:65 SP:F9 CYC:309 SL:102 E410 9D 00 06 STA $0600,X @ 0655 = AA A:01 X:55 Y:71 P:65 SP:FB CYC:327 SL:102 E413 7E 00 06 ROR $0600,X @ 0655 = 01 A:01 X:55 Y:71 P:65 SP:FB CYC: 1 SL:103 E416 BD 00 06 LDA $0600,X @ 0655 = 80 A:01 X:55 Y:71 P:E5 SP:FB CYC: 22 SL:103 E419 20 EA F9 JSR $F9EA A:80 X:55 Y:71 P:E5 SP:FB CYC: 34 SL:103 F9EA 90 1C BCC $FA08 A:80 X:55 Y:71 P:E5 SP:F9 CYC: 52 SL:103 F9EC F0 1A BEQ $FA08 A:80 X:55 Y:71 P:E5 SP:F9 CYC: 58 SL:103 F9EE 10 18 BPL $FA08 A:80 X:55 Y:71 P:E5 SP:F9 CYC: 64 SL:103 F9F0 50 16 BVC $FA08 A:80 X:55 Y:71 P:E5 SP:F9 CYC: 70 SL:103 F9F2 C9 80 CMP #$80 A:80 X:55 Y:71 P:E5 SP:F9 CYC: 76 SL:103 F9F4 D0 12 BNE $FA08 A:80 X:55 Y:71 P:67 SP:F9 CYC: 82 SL:103 F9F6 B8 CLV A:80 X:55 Y:71 P:67 SP:F9 CYC: 88 SL:103 F9F7 18 CLC A:80 X:55 Y:71 P:27 SP:F9 CYC: 94 SL:103 F9F8 A9 55 LDA #$55 A:80 X:55 Y:71 P:26 SP:F9 CYC:100 SL:103 F9FA 60 RTS A:55 X:55 Y:71 P:24 SP:F9 CYC:106 SL:103 E41C C8 INY A:55 X:55 Y:71 P:24 SP:FB CYC:124 SL:103 E41D 9D 00 06 STA $0600,X @ 0655 = 80 A:55 X:55 Y:72 P:24 SP:FB CYC:130 SL:103 E420 7E 00 06 ROR $0600,X @ 0655 = 55 A:55 X:55 Y:72 P:24 SP:FB CYC:145 SL:103 E423 BD 00 06 LDA $0600,X @ 0655 = 2A A:55 X:55 Y:72 P:25 SP:FB CYC:166 SL:103 E426 20 FB F9 JSR $F9FB A:2A X:55 Y:72 P:25 SP:FB CYC:178 SL:103 F9FB 90 0B BCC $FA08 A:2A X:55 Y:72 P:25 SP:F9 CYC:196 SL:103 F9FD F0 09 BEQ $FA08 A:2A X:55 Y:72 P:25 SP:F9 CYC:202 SL:103 F9FF 30 07 BMI $FA08 A:2A X:55 Y:72 P:25 SP:F9 CYC:208 SL:103 FA01 70 05 BVS $FA08 A:2A X:55 Y:72 P:25 SP:F9 CYC:214 SL:103 FA03 C9 2A CMP #$2A A:2A X:55 Y:72 P:25 SP:F9 CYC:220 SL:103 FA05 D0 01 BNE $FA08 A:2A X:55 Y:72 P:27 SP:F9 CYC:226 SL:103 FA07 60 RTS A:2A X:55 Y:72 P:27 SP:F9 CYC:232 SL:103 E429 C8 INY A:2A X:55 Y:72 P:27 SP:FB CYC:250 SL:103 E42A 20 0A FA JSR $FA0A A:2A X:55 Y:73 P:25 SP:FB CYC:256 SL:103 FA0A 24 01 BIT $01 = FF A:2A X:55 Y:73 P:25 SP:F9 CYC:274 SL:103 FA0C 38 SEC A:2A X:55 Y:73 P:E5 SP:F9 CYC:283 SL:103 FA0D A9 80 LDA #$80 A:2A X:55 Y:73 P:E5 SP:F9 CYC:289 SL:103 FA0F 60 RTS A:80 X:55 Y:73 P:E5 SP:F9 CYC:295 SL:103 E42D 9D 00 06 STA $0600,X @ 0655 = 2A A:80 X:55 Y:73 P:E5 SP:FB CYC:313 SL:103 E430 3E 00 06 ROL $0600,X @ 0655 = 80 A:80 X:55 Y:73 P:E5 SP:FB CYC:328 SL:103 E433 BD 00 06 LDA $0600,X @ 0655 = 01 A:80 X:55 Y:73 P:65 SP:FB CYC: 8 SL:104 E436 20 10 FA JSR $FA10 A:01 X:55 Y:73 P:65 SP:FB CYC: 20 SL:104 FA10 90 1C BCC $FA2E A:01 X:55 Y:73 P:65 SP:F9 CYC: 38 SL:104 FA12 F0 1A BEQ $FA2E A:01 X:55 Y:73 P:65 SP:F9 CYC: 44 SL:104 FA14 30 18 BMI $FA2E A:01 X:55 Y:73 P:65 SP:F9 CYC: 50 SL:104 FA16 50 16 BVC $FA2E A:01 X:55 Y:73 P:65 SP:F9 CYC: 56 SL:104 FA18 C9 01 CMP #$01 A:01 X:55 Y:73 P:65 SP:F9 CYC: 62 SL:104 FA1A D0 12 BNE $FA2E A:01 X:55 Y:73 P:67 SP:F9 CYC: 68 SL:104 FA1C B8 CLV A:01 X:55 Y:73 P:67 SP:F9 CYC: 74 SL:104 FA1D 18 CLC A:01 X:55 Y:73 P:27 SP:F9 CYC: 80 SL:104 FA1E A9 55 LDA #$55 A:01 X:55 Y:73 P:26 SP:F9 CYC: 86 SL:104 FA20 60 RTS A:55 X:55 Y:73 P:24 SP:F9 CYC: 92 SL:104 E439 C8 INY A:55 X:55 Y:73 P:24 SP:FB CYC:110 SL:104 E43A 9D 00 06 STA $0600,X @ 0655 = 01 A:55 X:55 Y:74 P:24 SP:FB CYC:116 SL:104 E43D 3E 00 06 ROL $0600,X @ 0655 = 55 A:55 X:55 Y:74 P:24 SP:FB CYC:131 SL:104 E440 BD 00 06 LDA $0600,X @ 0655 = AA A:55 X:55 Y:74 P:A4 SP:FB CYC:152 SL:104 E443 20 21 FA JSR $FA21 A:AA X:55 Y:74 P:A4 SP:FB CYC:164 SL:104 FA21 B0 0B BCS $FA2E A:AA X:55 Y:74 P:A4 SP:F9 CYC:182 SL:104 FA23 F0 09 BEQ $FA2E A:AA X:55 Y:74 P:A4 SP:F9 CYC:188 SL:104 FA25 10 07 BPL $FA2E A:AA X:55 Y:74 P:A4 SP:F9 CYC:194 SL:104 FA27 70 05 BVS $FA2E A:AA X:55 Y:74 P:A4 SP:F9 CYC:200 SL:104 FA29 C9 AA CMP #$AA A:AA X:55 Y:74 P:A4 SP:F9 CYC:206 SL:104 FA2B D0 01 BNE $FA2E A:AA X:55 Y:74 P:27 SP:F9 CYC:212 SL:104 FA2D 60 RTS A:AA X:55 Y:74 P:27 SP:F9 CYC:218 SL:104 E446 A9 FF LDA #$FF A:AA X:55 Y:74 P:27 SP:FB CYC:236 SL:104 E448 9D 00 06 STA $0600,X @ 0655 = AA A:FF X:55 Y:74 P:A5 SP:FB CYC:242 SL:104 E44B 85 01 STA $01 = FF A:FF X:55 Y:74 P:A5 SP:FB CYC:257 SL:104 E44D 24 01 BIT $01 = FF A:FF X:55 Y:74 P:A5 SP:FB CYC:266 SL:104 E44F 38 SEC A:FF X:55 Y:74 P:E5 SP:FB CYC:275 SL:104 E450 FE 00 06 INC $0600,X @ 0655 = FF A:FF X:55 Y:74 P:E5 SP:FB CYC:281 SL:104 E453 D0 0D BNE $E462 A:FF X:55 Y:74 P:67 SP:FB CYC:302 SL:104 E455 30 0B BMI $E462 A:FF X:55 Y:74 P:67 SP:FB CYC:308 SL:104 E457 50 09 BVC $E462 A:FF X:55 Y:74 P:67 SP:FB CYC:314 SL:104 E459 90 07 BCC $E462 A:FF X:55 Y:74 P:67 SP:FB CYC:320 SL:104 E45B BD 00 06 LDA $0600,X @ 0655 = 00 A:FF X:55 Y:74 P:67 SP:FB CYC:326 SL:104 E45E C9 00 CMP #$00 A:00 X:55 Y:74 P:67 SP:FB CYC:338 SL:104 E460 F0 04 BEQ $E466 A:00 X:55 Y:74 P:67 SP:FB CYC: 3 SL:105 E466 A9 7F LDA #$7F A:00 X:55 Y:74 P:67 SP:FB CYC: 12 SL:105 E468 9D 00 06 STA $0600,X @ 0655 = 00 A:7F X:55 Y:74 P:65 SP:FB CYC: 18 SL:105 E46B B8 CLV A:7F X:55 Y:74 P:65 SP:FB CYC: 33 SL:105 E46C 18 CLC A:7F X:55 Y:74 P:25 SP:FB CYC: 39 SL:105 E46D FE 00 06 INC $0600,X @ 0655 = 7F A:7F X:55 Y:74 P:24 SP:FB CYC: 45 SL:105 E470 F0 0D BEQ $E47F A:7F X:55 Y:74 P:A4 SP:FB CYC: 66 SL:105 E472 10 0B BPL $E47F A:7F X:55 Y:74 P:A4 SP:FB CYC: 72 SL:105 E474 70 09 BVS $E47F A:7F X:55 Y:74 P:A4 SP:FB CYC: 78 SL:105 E476 B0 07 BCS $E47F A:7F X:55 Y:74 P:A4 SP:FB CYC: 84 SL:105 E478 BD 00 06 LDA $0600,X @ 0655 = 80 A:7F X:55 Y:74 P:A4 SP:FB CYC: 90 SL:105 E47B C9 80 CMP #$80 A:80 X:55 Y:74 P:A4 SP:FB CYC:102 SL:105 E47D F0 04 BEQ $E483 A:80 X:55 Y:74 P:27 SP:FB CYC:108 SL:105 E483 A9 00 LDA #$00 A:80 X:55 Y:74 P:27 SP:FB CYC:117 SL:105 E485 9D 00 06 STA $0600,X @ 0655 = 80 A:00 X:55 Y:74 P:27 SP:FB CYC:123 SL:105 E488 24 01 BIT $01 = FF A:00 X:55 Y:74 P:27 SP:FB CYC:138 SL:105 E48A 38 SEC A:00 X:55 Y:74 P:E7 SP:FB CYC:147 SL:105 E48B DE 00 06 DEC $0600,X @ 0655 = 00 A:00 X:55 Y:74 P:E7 SP:FB CYC:153 SL:105 E48E F0 0D BEQ $E49D A:00 X:55 Y:74 P:E5 SP:FB CYC:174 SL:105 E490 10 0B BPL $E49D A:00 X:55 Y:74 P:E5 SP:FB CYC:180 SL:105 E492 50 09 BVC $E49D A:00 X:55 Y:74 P:E5 SP:FB CYC:186 SL:105 E494 90 07 BCC $E49D A:00 X:55 Y:74 P:E5 SP:FB CYC:192 SL:105 E496 BD 00 06 LDA $0600,X @ 0655 = FF A:00 X:55 Y:74 P:E5 SP:FB CYC:198 SL:105 E499 C9 FF CMP #$FF A:FF X:55 Y:74 P:E5 SP:FB CYC:210 SL:105 E49B F0 04 BEQ $E4A1 A:FF X:55 Y:74 P:67 SP:FB CYC:216 SL:105 E4A1 A9 80 LDA #$80 A:FF X:55 Y:74 P:67 SP:FB CYC:225 SL:105 E4A3 9D 00 06 STA $0600,X @ 0655 = FF A:80 X:55 Y:74 P:E5 SP:FB CYC:231 SL:105 E4A6 B8 CLV A:80 X:55 Y:74 P:E5 SP:FB CYC:246 SL:105 E4A7 18 CLC A:80 X:55 Y:74 P:A5 SP:FB CYC:252 SL:105 E4A8 DE 00 06 DEC $0600,X @ 0655 = 80 A:80 X:55 Y:74 P:A4 SP:FB CYC:258 SL:105 E4AB F0 0D BEQ $E4BA A:80 X:55 Y:74 P:24 SP:FB CYC:279 SL:105 E4AD 30 0B BMI $E4BA A:80 X:55 Y:74 P:24 SP:FB CYC:285 SL:105 E4AF 70 09 BVS $E4BA A:80 X:55 Y:74 P:24 SP:FB CYC:291 SL:105 E4B1 B0 07 BCS $E4BA A:80 X:55 Y:74 P:24 SP:FB CYC:297 SL:105 E4B3 BD 00 06 LDA $0600,X @ 0655 = 7F A:80 X:55 Y:74 P:24 SP:FB CYC:303 SL:105 E4B6 C9 7F CMP #$7F A:7F X:55 Y:74 P:24 SP:FB CYC:315 SL:105 E4B8 F0 04 BEQ $E4BE A:7F X:55 Y:74 P:27 SP:FB CYC:321 SL:105 E4BE A9 01 LDA #$01 A:7F X:55 Y:74 P:27 SP:FB CYC:330 SL:105 E4C0 9D 00 06 STA $0600,X @ 0655 = 7F A:01 X:55 Y:74 P:25 SP:FB CYC:336 SL:105 E4C3 DE 00 06 DEC $0600,X @ 0655 = 01 A:01 X:55 Y:74 P:25 SP:FB CYC: 10 SL:106 E4C6 F0 04 BEQ $E4CC A:01 X:55 Y:74 P:27 SP:FB CYC: 31 SL:106 E4CC A9 33 LDA #$33 A:01 X:55 Y:74 P:27 SP:FB CYC: 40 SL:106 E4CE 8D 78 06 STA $0678 = 7F A:33 X:55 Y:74 P:25 SP:FB CYC: 46 SL:106 E4D1 A9 44 LDA #$44 A:33 X:55 Y:74 P:25 SP:FB CYC: 58 SL:106 E4D3 A0 78 LDY #$78 A:44 X:55 Y:74 P:25 SP:FB CYC: 64 SL:106 E4D5 A2 00 LDX #$00 A:44 X:55 Y:78 P:25 SP:FB CYC: 70 SL:106 E4D7 38 SEC A:44 X:00 Y:78 P:27 SP:FB CYC: 76 SL:106 E4D8 24 01 BIT $01 = FF A:44 X:00 Y:78 P:27 SP:FB CYC: 82 SL:106 E4DA BE 00 06 LDX $0600,Y @ 0678 = 33 A:44 X:00 Y:78 P:E5 SP:FB CYC: 91 SL:106 E4DD 90 12 BCC $E4F1 A:44 X:33 Y:78 P:65 SP:FB CYC:103 SL:106 E4DF 50 10 BVC $E4F1 A:44 X:33 Y:78 P:65 SP:FB CYC:109 SL:106 E4E1 30 0E BMI $E4F1 A:44 X:33 Y:78 P:65 SP:FB CYC:115 SL:106 E4E3 F0 0C BEQ $E4F1 A:44 X:33 Y:78 P:65 SP:FB CYC:121 SL:106 E4E5 E0 33 CPX #$33 A:44 X:33 Y:78 P:65 SP:FB CYC:127 SL:106 E4E7 D0 08 BNE $E4F1 A:44 X:33 Y:78 P:67 SP:FB CYC:133 SL:106 E4E9 C0 78 CPY #$78 A:44 X:33 Y:78 P:67 SP:FB CYC:139 SL:106 E4EB D0 04 BNE $E4F1 A:44 X:33 Y:78 P:67 SP:FB CYC:145 SL:106 E4ED C9 44 CMP #$44 A:44 X:33 Y:78 P:67 SP:FB CYC:151 SL:106 E4EF F0 04 BEQ $E4F5 A:44 X:33 Y:78 P:67 SP:FB CYC:157 SL:106 E4F5 A9 97 LDA #$97 A:44 X:33 Y:78 P:67 SP:FB CYC:166 SL:106 E4F7 8D 7F 06 STA $067F = 00 A:97 X:33 Y:78 P:E5 SP:FB CYC:172 SL:106 E4FA A9 47 LDA #$47 A:97 X:33 Y:78 P:E5 SP:FB CYC:184 SL:106 E4FC A0 FF LDY #$FF A:47 X:33 Y:78 P:65 SP:FB CYC:190 SL:106 E4FE A2 00 LDX #$00 A:47 X:33 Y:FF P:E5 SP:FB CYC:196 SL:106 E500 18 CLC A:47 X:00 Y:FF P:67 SP:FB CYC:202 SL:106 E501 B8 CLV A:47 X:00 Y:FF P:66 SP:FB CYC:208 SL:106 E502 BE 80 05 LDX $0580,Y @ 067F = 97 A:47 X:00 Y:FF P:26 SP:FB CYC:214 SL:106 E505 B0 12 BCS $E519 A:47 X:97 Y:FF P:A4 SP:FB CYC:229 SL:106 E507 70 10 BVS $E519 A:47 X:97 Y:FF P:A4 SP:FB CYC:235 SL:106 E509 10 0E BPL $E519 A:47 X:97 Y:FF P:A4 SP:FB CYC:241 SL:106 E50B F0 0C BEQ $E519 A:47 X:97 Y:FF P:A4 SP:FB CYC:247 SL:106 E50D E0 97 CPX #$97 A:47 X:97 Y:FF P:A4 SP:FB CYC:253 SL:106 E50F D0 08 BNE $E519 A:47 X:97 Y:FF P:27 SP:FB CYC:259 SL:106 E511 C0 FF CPY #$FF A:47 X:97 Y:FF P:27 SP:FB CYC:265 SL:106 E513 D0 04 BNE $E519 A:47 X:97 Y:FF P:27 SP:FB CYC:271 SL:106 E515 C9 47 CMP #$47 A:47 X:97 Y:FF P:27 SP:FB CYC:277 SL:106 E517 F0 04 BEQ $E51D A:47 X:97 Y:FF P:27 SP:FB CYC:283 SL:106 E51D 60 RTS A:47 X:97 Y:FF P:27 SP:FB CYC:292 SL:106 C62F 20 A3 C6 JSR $C6A3 A:47 X:97 Y:FF P:27 SP:FD CYC:310 SL:106 C6A3 A0 4E LDY #$4E A:47 X:97 Y:FF P:27 SP:FB CYC:328 SL:106 C6A5 A9 FF LDA #$FF A:47 X:97 Y:4E P:25 SP:FB CYC:334 SL:106 C6A7 85 01 STA $01 = FF A:FF X:97 Y:4E P:A5 SP:FB CYC:340 SL:106 C6A9 20 B0 C6 JSR $C6B0 A:FF X:97 Y:4E P:A5 SP:FB CYC: 8 SL:107 C6B0 A9 FF LDA #$FF A:FF X:97 Y:4E P:A5 SP:F9 CYC: 26 SL:107 C6B2 48 PHA A:FF X:97 Y:4E P:A5 SP:F9 CYC: 32 SL:107 C6B3 A9 AA LDA #$AA A:FF X:97 Y:4E P:A5 SP:F8 CYC: 41 SL:107 C6B5 D0 05 BNE $C6BC A:AA X:97 Y:4E P:A5 SP:F8 CYC: 47 SL:107 C6BC 28 PLP A:AA X:97 Y:4E P:A5 SP:F8 CYC: 56 SL:107 C6BD 04 A9 *NOP $A9 = 00 A:AA X:97 Y:4E P:EF SP:F9 CYC: 68 SL:107 C6BF 44 A9 *NOP $A9 = 00 A:AA X:97 Y:4E P:EF SP:F9 CYC: 77 SL:107 C6C1 64 A9 *NOP $A9 = 00 A:AA X:97 Y:4E P:EF SP:F9 CYC: 86 SL:107 C6C3 EA NOP A:AA X:97 Y:4E P:EF SP:F9 CYC: 95 SL:107 C6C4 EA NOP A:AA X:97 Y:4E P:EF SP:F9 CYC:101 SL:107 C6C5 EA NOP A:AA X:97 Y:4E P:EF SP:F9 CYC:107 SL:107 C6C6 EA NOP A:AA X:97 Y:4E P:EF SP:F9 CYC:113 SL:107 C6C7 08 PHP A:AA X:97 Y:4E P:EF SP:F9 CYC:119 SL:107 C6C8 48 PHA A:AA X:97 Y:4E P:EF SP:F8 CYC:128 SL:107 C6C9 0C A9 A9 *NOP $A9A9 = A9 A:AA X:97 Y:4E P:EF SP:F7 CYC:137 SL:107 C6CC EA NOP A:AA X:97 Y:4E P:EF SP:F7 CYC:149 SL:107 C6CD EA NOP A:AA X:97 Y:4E P:EF SP:F7 CYC:155 SL:107 C6CE EA NOP A:AA X:97 Y:4E P:EF SP:F7 CYC:161 SL:107 C6CF EA NOP A:AA X:97 Y:4E P:EF SP:F7 CYC:167 SL:107 C6D0 08 PHP A:AA X:97 Y:4E P:EF SP:F7 CYC:173 SL:107 C6D1 48 PHA A:AA X:97 Y:4E P:EF SP:F6 CYC:182 SL:107 C6D2 14 A9 *NOP $A9,X @ 40 = 00 A:AA X:97 Y:4E P:EF SP:F5 CYC:191 SL:107 C6D4 34 A9 *NOP $A9,X @ 40 = 00 A:AA X:97 Y:4E P:EF SP:F5 CYC:203 SL:107 C6D6 54 A9 *NOP $A9,X @ 40 = 00 A:AA X:97 Y:4E P:EF SP:F5 CYC:215 SL:107 C6D8 74 A9 *NOP $A9,X @ 40 = 00 A:AA X:97 Y:4E P:EF SP:F5 CYC:227 SL:107 C6DA D4 A9 *NOP $A9,X @ 40 = 00 A:AA X:97 Y:4E P:EF SP:F5 CYC:239 SL:107 C6DC F4 A9 *NOP $A9,X @ 40 = 00 A:AA X:97 Y:4E P:EF SP:F5 CYC:251 SL:107 C6DE EA NOP A:AA X:97 Y:4E P:EF SP:F5 CYC:263 SL:107 C6DF EA NOP A:AA X:97 Y:4E P:EF SP:F5 CYC:269 SL:107 C6E0 EA NOP A:AA X:97 Y:4E P:EF SP:F5 CYC:275 SL:107 C6E1 EA NOP A:AA X:97 Y:4E P:EF SP:F5 CYC:281 SL:107 C6E2 08 PHP A:AA X:97 Y:4E P:EF SP:F5 CYC:287 SL:107 C6E3 48 PHA A:AA X:97 Y:4E P:EF SP:F4 CYC:296 SL:107 C6E4 1A *NOP A:AA X:97 Y:4E P:EF SP:F3 CYC:305 SL:107 C6E5 3A *NOP A:AA X:97 Y:4E P:EF SP:F3 CYC:311 SL:107 C6E6 5A *NOP A:AA X:97 Y:4E P:EF SP:F3 CYC:317 SL:107 C6E7 7A *NOP A:AA X:97 Y:4E P:EF SP:F3 CYC:323 SL:107 C6E8 DA *NOP A:AA X:97 Y:4E P:EF SP:F3 CYC:329 SL:107 C6E9 FA *NOP A:AA X:97 Y:4E P:EF SP:F3 CYC:335 SL:107 C6EA 80 89 *NOP #$89 A:AA X:97 Y:4E P:EF SP:F3 CYC: 0 SL:108 C6EC EA NOP A:AA X:97 Y:4E P:EF SP:F3 CYC: 6 SL:108 C6ED EA NOP A:AA X:97 Y:4E P:EF SP:F3 CYC: 12 SL:108 C6EE EA NOP A:AA X:97 Y:4E P:EF SP:F3 CYC: 18 SL:108 C6EF EA NOP A:AA X:97 Y:4E P:EF SP:F3 CYC: 24 SL:108 C6F0 08 PHP A:AA X:97 Y:4E P:EF SP:F3 CYC: 30 SL:108 C6F1 48 PHA A:AA X:97 Y:4E P:EF SP:F2 CYC: 39 SL:108 C6F2 1C A9 A9 *NOP $A9A9,X @ AA40 = 00 A:AA X:97 Y:4E P:EF SP:F1 CYC: 48 SL:108 C6F5 3C A9 A9 *NOP $A9A9,X @ AA40 = 00 A:AA X:97 Y:4E P:EF SP:F1 CYC: 63 SL:108 C6F8 5C A9 A9 *NOP $A9A9,X @ AA40 = 00 A:AA X:97 Y:4E P:EF SP:F1 CYC: 78 SL:108 C6FB 7C A9 A9 *NOP $A9A9,X @ AA40 = 00 A:AA X:97 Y:4E P:EF SP:F1 CYC: 93 SL:108 C6FE DC A9 A9 *NOP $A9A9,X @ AA40 = 00 A:AA X:97 Y:4E P:EF SP:F1 CYC:108 SL:108 C701 FC A9 A9 *NOP $A9A9,X @ AA40 = 00 A:AA X:97 Y:4E P:EF SP:F1 CYC:123 SL:108 C704 EA NOP A:AA X:97 Y:4E P:EF SP:F1 CYC:138 SL:108 C705 EA NOP A:AA X:97 Y:4E P:EF SP:F1 CYC:144 SL:108 C706 EA NOP A:AA X:97 Y:4E P:EF SP:F1 CYC:150 SL:108 C707 EA NOP A:AA X:97 Y:4E P:EF SP:F1 CYC:156 SL:108 C708 08 PHP A:AA X:97 Y:4E P:EF SP:F1 CYC:162 SL:108 C709 48 PHA A:AA X:97 Y:4E P:EF SP:F0 CYC:171 SL:108 C70A A2 05 LDX #$05 A:AA X:97 Y:4E P:EF SP:EF CYC:180 SL:108 C70C 68 PLA A:AA X:05 Y:4E P:6D SP:EF CYC:186 SL:108 C70D C9 55 CMP #$55 A:AA X:05 Y:4E P:ED SP:F0 CYC:198 SL:108 C70F F0 0A BEQ $C71B A:AA X:05 Y:4E P:6D SP:F0 CYC:204 SL:108 C711 C9 AA CMP #$AA A:AA X:05 Y:4E P:6D SP:F0 CYC:210 SL:108 C713 F0 06 BEQ $C71B A:AA X:05 Y:4E P:6F SP:F0 CYC:216 SL:108 C71B 68 PLA A:AA X:05 Y:4E P:6F SP:F0 CYC:225 SL:108 C71C 29 CB AND #$CB A:FF X:05 Y:4E P:ED SP:F1 CYC:237 SL:108 C71E C9 00 CMP #$00 A:CB X:05 Y:4E P:ED SP:F1 CYC:243 SL:108 C720 F0 06 BEQ $C728 A:CB X:05 Y:4E P:ED SP:F1 CYC:249 SL:108 C722 C9 CB CMP #$CB A:CB X:05 Y:4E P:ED SP:F1 CYC:255 SL:108 C724 F0 02 BEQ $C728 A:CB X:05 Y:4E P:6F SP:F1 CYC:261 SL:108 C728 C8 INY A:CB X:05 Y:4E P:6F SP:F1 CYC:270 SL:108 C729 CA DEX A:CB X:05 Y:4F P:6D SP:F1 CYC:276 SL:108 C72A D0 E0 BNE $C70C A:CB X:04 Y:4F P:6D SP:F1 CYC:282 SL:108 C70C 68 PLA A:CB X:04 Y:4F P:6D SP:F1 CYC:291 SL:108 C70D C9 55 CMP #$55 A:AA X:04 Y:4F P:ED SP:F2 CYC:303 SL:108 C70F F0 0A BEQ $C71B A:AA X:04 Y:4F P:6D SP:F2 CYC:309 SL:108 C711 C9 AA CMP #$AA A:AA X:04 Y:4F P:6D SP:F2 CYC:315 SL:108 C713 F0 06 BEQ $C71B A:AA X:04 Y:4F P:6F SP:F2 CYC:321 SL:108 C71B 68 PLA A:AA X:04 Y:4F P:6F SP:F2 CYC:330 SL:108 C71C 29 CB AND #$CB A:FF X:04 Y:4F P:ED SP:F3 CYC: 1 SL:109 C71E C9 00 CMP #$00 A:CB X:04 Y:4F P:ED SP:F3 CYC: 7 SL:109 C720 F0 06 BEQ $C728 A:CB X:04 Y:4F P:ED SP:F3 CYC: 13 SL:109 C722 C9 CB CMP #$CB A:CB X:04 Y:4F P:ED SP:F3 CYC: 19 SL:109 C724 F0 02 BEQ $C728 A:CB X:04 Y:4F P:6F SP:F3 CYC: 25 SL:109 C728 C8 INY A:CB X:04 Y:4F P:6F SP:F3 CYC: 34 SL:109 C729 CA DEX A:CB X:04 Y:50 P:6D SP:F3 CYC: 40 SL:109 C72A D0 E0 BNE $C70C A:CB X:03 Y:50 P:6D SP:F3 CYC: 46 SL:109 C70C 68 PLA A:CB X:03 Y:50 P:6D SP:F3 CYC: 55 SL:109 C70D C9 55 CMP #$55 A:AA X:03 Y:50 P:ED SP:F4 CYC: 67 SL:109 C70F F0 0A BEQ $C71B A:AA X:03 Y:50 P:6D SP:F4 CYC: 73 SL:109 C711 C9 AA CMP #$AA A:AA X:03 Y:50 P:6D SP:F4 CYC: 79 SL:109 C713 F0 06 BEQ $C71B A:AA X:03 Y:50 P:6F SP:F4 CYC: 85 SL:109 C71B 68 PLA A:AA X:03 Y:50 P:6F SP:F4 CYC: 94 SL:109 C71C 29 CB AND #$CB A:FF X:03 Y:50 P:ED SP:F5 CYC:106 SL:109 C71E C9 00 CMP #$00 A:CB X:03 Y:50 P:ED SP:F5 CYC:112 SL:109 C720 F0 06 BEQ $C728 A:CB X:03 Y:50 P:ED SP:F5 CYC:118 SL:109 C722 C9 CB CMP #$CB A:CB X:03 Y:50 P:ED SP:F5 CYC:124 SL:109 C724 F0 02 BEQ $C728 A:CB X:03 Y:50 P:6F SP:F5 CYC:130 SL:109 C728 C8 INY A:CB X:03 Y:50 P:6F SP:F5 CYC:139 SL:109 C729 CA DEX A:CB X:03 Y:51 P:6D SP:F5 CYC:145 SL:109 C72A D0 E0 BNE $C70C A:CB X:02 Y:51 P:6D SP:F5 CYC:151 SL:109 C70C 68 PLA A:CB X:02 Y:51 P:6D SP:F5 CYC:160 SL:109 C70D C9 55 CMP #$55 A:AA X:02 Y:51 P:ED SP:F6 CYC:172 SL:109 C70F F0 0A BEQ $C71B A:AA X:02 Y:51 P:6D SP:F6 CYC:178 SL:109 C711 C9 AA CMP #$AA A:AA X:02 Y:51 P:6D SP:F6 CYC:184 SL:109 C713 F0 06 BEQ $C71B A:AA X:02 Y:51 P:6F SP:F6 CYC:190 SL:109 C71B 68 PLA A:AA X:02 Y:51 P:6F SP:F6 CYC:199 SL:109 C71C 29 CB AND #$CB A:FF X:02 Y:51 P:ED SP:F7 CYC:211 SL:109 C71E C9 00 CMP #$00 A:CB X:02 Y:51 P:ED SP:F7 CYC:217 SL:109 C720 F0 06 BEQ $C728 A:CB X:02 Y:51 P:ED SP:F7 CYC:223 SL:109 C722 C9 CB CMP #$CB A:CB X:02 Y:51 P:ED SP:F7 CYC:229 SL:109 C724 F0 02 BEQ $C728 A:CB X:02 Y:51 P:6F SP:F7 CYC:235 SL:109 C728 C8 INY A:CB X:02 Y:51 P:6F SP:F7 CYC:244 SL:109 C729 CA DEX A:CB X:02 Y:52 P:6D SP:F7 CYC:250 SL:109 C72A D0 E0 BNE $C70C A:CB X:01 Y:52 P:6D SP:F7 CYC:256 SL:109 C70C 68 PLA A:CB X:01 Y:52 P:6D SP:F7 CYC:265 SL:109 C70D C9 55 CMP #$55 A:AA X:01 Y:52 P:ED SP:F8 CYC:277 SL:109 C70F F0 0A BEQ $C71B A:AA X:01 Y:52 P:6D SP:F8 CYC:283 SL:109 C711 C9 AA CMP #$AA A:AA X:01 Y:52 P:6D SP:F8 CYC:289 SL:109 C713 F0 06 BEQ $C71B A:AA X:01 Y:52 P:6F SP:F8 CYC:295 SL:109 C71B 68 PLA A:AA X:01 Y:52 P:6F SP:F8 CYC:304 SL:109 C71C 29 CB AND #$CB A:FF X:01 Y:52 P:ED SP:F9 CYC:316 SL:109 C71E C9 00 CMP #$00 A:CB X:01 Y:52 P:ED SP:F9 CYC:322 SL:109 C720 F0 06 BEQ $C728 A:CB X:01 Y:52 P:ED SP:F9 CYC:328 SL:109 C722 C9 CB CMP #$CB A:CB X:01 Y:52 P:ED SP:F9 CYC:334 SL:109 C724 F0 02 BEQ $C728 A:CB X:01 Y:52 P:6F SP:F9 CYC:340 SL:109 C728 C8 INY A:CB X:01 Y:52 P:6F SP:F9 CYC: 8 SL:110 C729 CA DEX A:CB X:01 Y:53 P:6D SP:F9 CYC: 14 SL:110 C72A D0 E0 BNE $C70C A:CB X:00 Y:53 P:6F SP:F9 CYC: 20 SL:110 C72C 60 RTS A:CB X:00 Y:53 P:6F SP:F9 CYC: 26 SL:110 C6AC 20 B7 C6 JSR $C6B7 A:CB X:00 Y:53 P:6F SP:FB CYC: 44 SL:110 C6B7 A9 34 LDA #$34 A:CB X:00 Y:53 P:6F SP:F9 CYC: 62 SL:110 C6B9 48 PHA A:34 X:00 Y:53 P:6D SP:F9 CYC: 68 SL:110 C6BA A9 55 LDA #$55 A:34 X:00 Y:53 P:6D SP:F8 CYC: 77 SL:110 C6BC 28 PLP A:55 X:00 Y:53 P:6D SP:F8 CYC: 83 SL:110 C6BD 04 A9 *NOP $A9 = 00 A:55 X:00 Y:53 P:24 SP:F9 CYC: 95 SL:110 C6BF 44 A9 *NOP $A9 = 00 A:55 X:00 Y:53 P:24 SP:F9 CYC:104 SL:110 C6C1 64 A9 *NOP $A9 = 00 A:55 X:00 Y:53 P:24 SP:F9 CYC:113 SL:110 C6C3 EA NOP A:55 X:00 Y:53 P:24 SP:F9 CYC:122 SL:110 C6C4 EA NOP A:55 X:00 Y:53 P:24 SP:F9 CYC:128 SL:110 C6C5 EA NOP A:55 X:00 Y:53 P:24 SP:F9 CYC:134 SL:110 C6C6 EA NOP A:55 X:00 Y:53 P:24 SP:F9 CYC:140 SL:110 C6C7 08 PHP A:55 X:00 Y:53 P:24 SP:F9 CYC:146 SL:110 C6C8 48 PHA A:55 X:00 Y:53 P:24 SP:F8 CYC:155 SL:110 C6C9 0C A9 A9 *NOP $A9A9 = A9 A:55 X:00 Y:53 P:24 SP:F7 CYC:164 SL:110 C6CC EA NOP A:55 X:00 Y:53 P:24 SP:F7 CYC:176 SL:110 C6CD EA NOP A:55 X:00 Y:53 P:24 SP:F7 CYC:182 SL:110 C6CE EA NOP A:55 X:00 Y:53 P:24 SP:F7 CYC:188 SL:110 C6CF EA NOP A:55 X:00 Y:53 P:24 SP:F7 CYC:194 SL:110 C6D0 08 PHP A:55 X:00 Y:53 P:24 SP:F7 CYC:200 SL:110 C6D1 48 PHA A:55 X:00 Y:53 P:24 SP:F6 CYC:209 SL:110 C6D2 14 A9 *NOP $A9,X @ A9 = 00 A:55 X:00 Y:53 P:24 SP:F5 CYC:218 SL:110 C6D4 34 A9 *NOP $A9,X @ A9 = 00 A:55 X:00 Y:53 P:24 SP:F5 CYC:230 SL:110 C6D6 54 A9 *NOP $A9,X @ A9 = 00 A:55 X:00 Y:53 P:24 SP:F5 CYC:242 SL:110 C6D8 74 A9 *NOP $A9,X @ A9 = 00 A:55 X:00 Y:53 P:24 SP:F5 CYC:254 SL:110 C6DA D4 A9 *NOP $A9,X @ A9 = 00 A:55 X:00 Y:53 P:24 SP:F5 CYC:266 SL:110 C6DC F4 A9 *NOP $A9,X @ A9 = 00 A:55 X:00 Y:53 P:24 SP:F5 CYC:278 SL:110 C6DE EA NOP A:55 X:00 Y:53 P:24 SP:F5 CYC:290 SL:110 C6DF EA NOP A:55 X:00 Y:53 P:24 SP:F5 CYC:296 SL:110 C6E0 EA NOP A:55 X:00 Y:53 P:24 SP:F5 CYC:302 SL:110 C6E1 EA NOP A:55 X:00 Y:53 P:24 SP:F5 CYC:308 SL:110 C6E2 08 PHP A:55 X:00 Y:53 P:24 SP:F5 CYC:314 SL:110 C6E3 48 PHA A:55 X:00 Y:53 P:24 SP:F4 CYC:323 SL:110 C6E4 1A *NOP A:55 X:00 Y:53 P:24 SP:F3 CYC:332 SL:110 C6E5 3A *NOP A:55 X:00 Y:53 P:24 SP:F3 CYC:338 SL:110 C6E6 5A *NOP A:55 X:00 Y:53 P:24 SP:F3 CYC: 3 SL:111 C6E7 7A *NOP A:55 X:00 Y:53 P:24 SP:F3 CYC: 9 SL:111 C6E8 DA *NOP A:55 X:00 Y:53 P:24 SP:F3 CYC: 15 SL:111 C6E9 FA *NOP A:55 X:00 Y:53 P:24 SP:F3 CYC: 21 SL:111 C6EA 80 89 *NOP #$89 A:55 X:00 Y:53 P:24 SP:F3 CYC: 27 SL:111 C6EC EA NOP A:55 X:00 Y:53 P:24 SP:F3 CYC: 33 SL:111 C6ED EA NOP A:55 X:00 Y:53 P:24 SP:F3 CYC: 39 SL:111 C6EE EA NOP A:55 X:00 Y:53 P:24 SP:F3 CYC: 45 SL:111 C6EF EA NOP A:55 X:00 Y:53 P:24 SP:F3 CYC: 51 SL:111 C6F0 08 PHP A:55 X:00 Y:53 P:24 SP:F3 CYC: 57 SL:111 C6F1 48 PHA A:55 X:00 Y:53 P:24 SP:F2 CYC: 66 SL:111 C6F2 1C A9 A9 *NOP $A9A9,X @ A9A9 = A9 A:55 X:00 Y:53 P:24 SP:F1 CYC: 75 SL:111 C6F5 3C A9 A9 *NOP $A9A9,X @ A9A9 = A9 A:55 X:00 Y:53 P:24 SP:F1 CYC: 87 SL:111 C6F8 5C A9 A9 *NOP $A9A9,X @ A9A9 = A9 A:55 X:00 Y:53 P:24 SP:F1 CYC: 99 SL:111 C6FB 7C A9 A9 *NOP $A9A9,X @ A9A9 = A9 A:55 X:00 Y:53 P:24 SP:F1 CYC:111 SL:111 C6FE DC A9 A9 *NOP $A9A9,X @ A9A9 = A9 A:55 X:00 Y:53 P:24 SP:F1 CYC:123 SL:111 C701 FC A9 A9 *NOP $A9A9,X @ A9A9 = A9 A:55 X:00 Y:53 P:24 SP:F1 CYC:135 SL:111 C704 EA NOP A:55 X:00 Y:53 P:24 SP:F1 CYC:147 SL:111 C705 EA NOP A:55 X:00 Y:53 P:24 SP:F1 CYC:153 SL:111 C706 EA NOP A:55 X:00 Y:53 P:24 SP:F1 CYC:159 SL:111 C707 EA NOP A:55 X:00 Y:53 P:24 SP:F1 CYC:165 SL:111 C708 08 PHP A:55 X:00 Y:53 P:24 SP:F1 CYC:171 SL:111 C709 48 PHA A:55 X:00 Y:53 P:24 SP:F0 CYC:180 SL:111 C70A A2 05 LDX #$05 A:55 X:00 Y:53 P:24 SP:EF CYC:189 SL:111 C70C 68 PLA A:55 X:05 Y:53 P:24 SP:EF CYC:195 SL:111 C70D C9 55 CMP #$55 A:55 X:05 Y:53 P:24 SP:F0 CYC:207 SL:111 C70F F0 0A BEQ $C71B A:55 X:05 Y:53 P:27 SP:F0 CYC:213 SL:111 C71B 68 PLA A:55 X:05 Y:53 P:27 SP:F0 CYC:222 SL:111 C71C 29 CB AND #$CB A:34 X:05 Y:53 P:25 SP:F1 CYC:234 SL:111 C71E C9 00 CMP #$00 A:00 X:05 Y:53 P:27 SP:F1 CYC:240 SL:111 C720 F0 06 BEQ $C728 A:00 X:05 Y:53 P:27 SP:F1 CYC:246 SL:111 C728 C8 INY A:00 X:05 Y:53 P:27 SP:F1 CYC:255 SL:111 C729 CA DEX A:00 X:05 Y:54 P:25 SP:F1 CYC:261 SL:111 C72A D0 E0 BNE $C70C A:00 X:04 Y:54 P:25 SP:F1 CYC:267 SL:111 C70C 68 PLA A:00 X:04 Y:54 P:25 SP:F1 CYC:276 SL:111 C70D C9 55 CMP #$55 A:55 X:04 Y:54 P:25 SP:F2 CYC:288 SL:111 C70F F0 0A BEQ $C71B A:55 X:04 Y:54 P:27 SP:F2 CYC:294 SL:111 C71B 68 PLA A:55 X:04 Y:54 P:27 SP:F2 CYC:303 SL:111 C71C 29 CB AND #$CB A:34 X:04 Y:54 P:25 SP:F3 CYC:315 SL:111 C71E C9 00 CMP #$00 A:00 X:04 Y:54 P:27 SP:F3 CYC:321 SL:111 C720 F0 06 BEQ $C728 A:00 X:04 Y:54 P:27 SP:F3 CYC:327 SL:111 C728 C8 INY A:00 X:04 Y:54 P:27 SP:F3 CYC:336 SL:111 C729 CA DEX A:00 X:04 Y:55 P:25 SP:F3 CYC: 1 SL:112 C72A D0 E0 BNE $C70C A:00 X:03 Y:55 P:25 SP:F3 CYC: 7 SL:112 C70C 68 PLA A:00 X:03 Y:55 P:25 SP:F3 CYC: 16 SL:112 C70D C9 55 CMP #$55 A:55 X:03 Y:55 P:25 SP:F4 CYC: 28 SL:112 C70F F0 0A BEQ $C71B A:55 X:03 Y:55 P:27 SP:F4 CYC: 34 SL:112 C71B 68 PLA A:55 X:03 Y:55 P:27 SP:F4 CYC: 43 SL:112 C71C 29 CB AND #$CB A:34 X:03 Y:55 P:25 SP:F5 CYC: 55 SL:112 C71E C9 00 CMP #$00 A:00 X:03 Y:55 P:27 SP:F5 CYC: 61 SL:112 C720 F0 06 BEQ $C728 A:00 X:03 Y:55 P:27 SP:F5 CYC: 67 SL:112 C728 C8 INY A:00 X:03 Y:55 P:27 SP:F5 CYC: 76 SL:112 C729 CA DEX A:00 X:03 Y:56 P:25 SP:F5 CYC: 82 SL:112 C72A D0 E0 BNE $C70C A:00 X:02 Y:56 P:25 SP:F5 CYC: 88 SL:112 C70C 68 PLA A:00 X:02 Y:56 P:25 SP:F5 CYC: 97 SL:112 C70D C9 55 CMP #$55 A:55 X:02 Y:56 P:25 SP:F6 CYC:109 SL:112 C70F F0 0A BEQ $C71B A:55 X:02 Y:56 P:27 SP:F6 CYC:115 SL:112 C71B 68 PLA A:55 X:02 Y:56 P:27 SP:F6 CYC:124 SL:112 C71C 29 CB AND #$CB A:34 X:02 Y:56 P:25 SP:F7 CYC:136 SL:112 C71E C9 00 CMP #$00 A:00 X:02 Y:56 P:27 SP:F7 CYC:142 SL:112 C720 F0 06 BEQ $C728 A:00 X:02 Y:56 P:27 SP:F7 CYC:148 SL:112 C728 C8 INY A:00 X:02 Y:56 P:27 SP:F7 CYC:157 SL:112 C729 CA DEX A:00 X:02 Y:57 P:25 SP:F7 CYC:163 SL:112 C72A D0 E0 BNE $C70C A:00 X:01 Y:57 P:25 SP:F7 CYC:169 SL:112 C70C 68 PLA A:00 X:01 Y:57 P:25 SP:F7 CYC:178 SL:112 C70D C9 55 CMP #$55 A:55 X:01 Y:57 P:25 SP:F8 CYC:190 SL:112 C70F F0 0A BEQ $C71B A:55 X:01 Y:57 P:27 SP:F8 CYC:196 SL:112 C71B 68 PLA A:55 X:01 Y:57 P:27 SP:F8 CYC:205 SL:112 C71C 29 CB AND #$CB A:34 X:01 Y:57 P:25 SP:F9 CYC:217 SL:112 C71E C9 00 CMP #$00 A:00 X:01 Y:57 P:27 SP:F9 CYC:223 SL:112 C720 F0 06 BEQ $C728 A:00 X:01 Y:57 P:27 SP:F9 CYC:229 SL:112 C728 C8 INY A:00 X:01 Y:57 P:27 SP:F9 CYC:238 SL:112 C729 CA DEX A:00 X:01 Y:58 P:25 SP:F9 CYC:244 SL:112 C72A D0 E0 BNE $C70C A:00 X:00 Y:58 P:27 SP:F9 CYC:250 SL:112 C72C 60 RTS A:00 X:00 Y:58 P:27 SP:F9 CYC:256 SL:112 C6AF 60 RTS A:00 X:00 Y:58 P:27 SP:FB CYC:274 SL:112 C632 20 1E E5 JSR $E51E A:00 X:00 Y:58 P:27 SP:FD CYC:292 SL:112 E51E A9 55 LDA #$55 A:00 X:00 Y:58 P:27 SP:FB CYC:310 SL:112 E520 8D 80 05 STA $0580 = 00 A:55 X:00 Y:58 P:25 SP:FB CYC:316 SL:112 E523 A9 AA LDA #$AA A:55 X:00 Y:58 P:25 SP:FB CYC:328 SL:112 E525 8D 32 04 STA $0432 = 00 A:AA X:00 Y:58 P:A5 SP:FB CYC:334 SL:112 E528 A9 80 LDA #$80 A:AA X:00 Y:58 P:A5 SP:FB CYC: 5 SL:113 E52A 85 43 STA $43 = 00 A:80 X:00 Y:58 P:A5 SP:FB CYC: 11 SL:113 E52C A9 05 LDA #$05 A:80 X:00 Y:58 P:A5 SP:FB CYC: 20 SL:113 E52E 85 44 STA $44 = 00 A:05 X:00 Y:58 P:25 SP:FB CYC: 26 SL:113 E530 A9 32 LDA #$32 A:05 X:00 Y:58 P:25 SP:FB CYC: 35 SL:113 E532 85 45 STA $45 = 00 A:32 X:00 Y:58 P:25 SP:FB CYC: 41 SL:113 E534 A9 04 LDA #$04 A:32 X:00 Y:58 P:25 SP:FB CYC: 50 SL:113 E536 85 46 STA $46 = 00 A:04 X:00 Y:58 P:25 SP:FB CYC: 56 SL:113 E538 A2 03 LDX #$03 A:04 X:00 Y:58 P:25 SP:FB CYC: 65 SL:113 E53A A0 77 LDY #$77 A:04 X:03 Y:58 P:25 SP:FB CYC: 71 SL:113 E53C A9 FF LDA #$FF A:04 X:03 Y:77 P:25 SP:FB CYC: 77 SL:113 E53E 85 01 STA $01 = FF A:FF X:03 Y:77 P:A5 SP:FB CYC: 83 SL:113 E540 24 01 BIT $01 = FF A:FF X:03 Y:77 P:A5 SP:FB CYC: 92 SL:113 E542 38 SEC A:FF X:03 Y:77 P:E5 SP:FB CYC:101 SL:113 E543 A9 00 LDA #$00 A:FF X:03 Y:77 P:E5 SP:FB CYC:107 SL:113 E545 A3 40 *LAX ($40,X) @ 43 = 0580 = 55 A:00 X:03 Y:77 P:67 SP:FB CYC:113 SL:113 E547 EA NOP A:55 X:55 Y:77 P:65 SP:FB CYC:131 SL:113 E548 EA NOP A:55 X:55 Y:77 P:65 SP:FB CYC:137 SL:113 E549 EA NOP A:55 X:55 Y:77 P:65 SP:FB CYC:143 SL:113 E54A EA NOP A:55 X:55 Y:77 P:65 SP:FB CYC:149 SL:113 E54B F0 12 BEQ $E55F A:55 X:55 Y:77 P:65 SP:FB CYC:155 SL:113 E54D 30 10 BMI $E55F A:55 X:55 Y:77 P:65 SP:FB CYC:161 SL:113 E54F 50 0E BVC $E55F A:55 X:55 Y:77 P:65 SP:FB CYC:167 SL:113 E551 90 0C BCC $E55F A:55 X:55 Y:77 P:65 SP:FB CYC:173 SL:113 E553 C9 55 CMP #$55 A:55 X:55 Y:77 P:65 SP:FB CYC:179 SL:113 E555 D0 08 BNE $E55F A:55 X:55 Y:77 P:67 SP:FB CYC:185 SL:113 E557 E0 55 CPX #$55 A:55 X:55 Y:77 P:67 SP:FB CYC:191 SL:113 E559 D0 04 BNE $E55F A:55 X:55 Y:77 P:67 SP:FB CYC:197 SL:113 E55B C0 77 CPY #$77 A:55 X:55 Y:77 P:67 SP:FB CYC:203 SL:113 E55D F0 04 BEQ $E563 A:55 X:55 Y:77 P:67 SP:FB CYC:209 SL:113 E563 A2 05 LDX #$05 A:55 X:55 Y:77 P:67 SP:FB CYC:218 SL:113 E565 A0 33 LDY #$33 A:55 X:05 Y:77 P:65 SP:FB CYC:224 SL:113 E567 B8 CLV A:55 X:05 Y:33 P:65 SP:FB CYC:230 SL:113 E568 18 CLC A:55 X:05 Y:33 P:25 SP:FB CYC:236 SL:113 E569 A9 00 LDA #$00 A:55 X:05 Y:33 P:24 SP:FB CYC:242 SL:113 E56B A3 40 *LAX ($40,X) @ 45 = 0432 = AA A:00 X:05 Y:33 P:26 SP:FB CYC:248 SL:113 E56D EA NOP A:AA X:AA Y:33 P:A4 SP:FB CYC:266 SL:113 E56E EA NOP A:AA X:AA Y:33 P:A4 SP:FB CYC:272 SL:113 E56F EA NOP A:AA X:AA Y:33 P:A4 SP:FB CYC:278 SL:113 E570 EA NOP A:AA X:AA Y:33 P:A4 SP:FB CYC:284 SL:113 E571 F0 12 BEQ $E585 A:AA X:AA Y:33 P:A4 SP:FB CYC:290 SL:113 E573 10 10 BPL $E585 A:AA X:AA Y:33 P:A4 SP:FB CYC:296 SL:113 E575 70 0E BVS $E585 A:AA X:AA Y:33 P:A4 SP:FB CYC:302 SL:113 E577 B0 0C BCS $E585 A:AA X:AA Y:33 P:A4 SP:FB CYC:308 SL:113 E579 C9 AA CMP #$AA A:AA X:AA Y:33 P:A4 SP:FB CYC:314 SL:113 E57B D0 08 BNE $E585 A:AA X:AA Y:33 P:27 SP:FB CYC:320 SL:113 E57D E0 AA CPX #$AA A:AA X:AA Y:33 P:27 SP:FB CYC:326 SL:113 E57F D0 04 BNE $E585 A:AA X:AA Y:33 P:27 SP:FB CYC:332 SL:113 E581 C0 33 CPY #$33 A:AA X:AA Y:33 P:27 SP:FB CYC:338 SL:113 E583 F0 04 BEQ $E589 A:AA X:AA Y:33 P:27 SP:FB CYC: 3 SL:114 E589 A9 87 LDA #$87 A:AA X:AA Y:33 P:27 SP:FB CYC: 12 SL:114 E58B 85 67 STA $67 = 00 A:87 X:AA Y:33 P:A5 SP:FB CYC: 18 SL:114 E58D A9 32 LDA #$32 A:87 X:AA Y:33 P:A5 SP:FB CYC: 27 SL:114 E58F 85 68 STA $68 = 00 A:32 X:AA Y:33 P:25 SP:FB CYC: 33 SL:114 E591 A0 57 LDY #$57 A:32 X:AA Y:33 P:25 SP:FB CYC: 42 SL:114 E593 24 01 BIT $01 = FF A:32 X:AA Y:57 P:25 SP:FB CYC: 48 SL:114 E595 38 SEC A:32 X:AA Y:57 P:E5 SP:FB CYC: 57 SL:114 E596 A9 00 LDA #$00 A:32 X:AA Y:57 P:E5 SP:FB CYC: 63 SL:114 E598 A7 67 *LAX $67 = 87 A:00 X:AA Y:57 P:67 SP:FB CYC: 69 SL:114 E59A EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC: 78 SL:114 E59B EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC: 84 SL:114 E59C EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC: 90 SL:114 E59D EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC: 96 SL:114 E59E F0 12 BEQ $E5B2 A:87 X:87 Y:57 P:E5 SP:FB CYC:102 SL:114 E5A0 10 10 BPL $E5B2 A:87 X:87 Y:57 P:E5 SP:FB CYC:108 SL:114 E5A2 50 0E BVC $E5B2 A:87 X:87 Y:57 P:E5 SP:FB CYC:114 SL:114 E5A4 90 0C BCC $E5B2 A:87 X:87 Y:57 P:E5 SP:FB CYC:120 SL:114 E5A6 C9 87 CMP #$87 A:87 X:87 Y:57 P:E5 SP:FB CYC:126 SL:114 E5A8 D0 08 BNE $E5B2 A:87 X:87 Y:57 P:67 SP:FB CYC:132 SL:114 E5AA E0 87 CPX #$87 A:87 X:87 Y:57 P:67 SP:FB CYC:138 SL:114 E5AC D0 04 BNE $E5B2 A:87 X:87 Y:57 P:67 SP:FB CYC:144 SL:114 E5AE C0 57 CPY #$57 A:87 X:87 Y:57 P:67 SP:FB CYC:150 SL:114 E5B0 F0 04 BEQ $E5B6 A:87 X:87 Y:57 P:67 SP:FB CYC:156 SL:114 E5B6 A0 53 LDY #$53 A:87 X:87 Y:57 P:67 SP:FB CYC:165 SL:114 E5B8 B8 CLV A:87 X:87 Y:53 P:65 SP:FB CYC:171 SL:114 E5B9 18 CLC A:87 X:87 Y:53 P:25 SP:FB CYC:177 SL:114 E5BA A9 00 LDA #$00 A:87 X:87 Y:53 P:24 SP:FB CYC:183 SL:114 E5BC A7 68 *LAX $68 = 32 A:00 X:87 Y:53 P:26 SP:FB CYC:189 SL:114 E5BE EA NOP A:32 X:32 Y:53 P:24 SP:FB CYC:198 SL:114 E5BF EA NOP A:32 X:32 Y:53 P:24 SP:FB CYC:204 SL:114 E5C0 EA NOP A:32 X:32 Y:53 P:24 SP:FB CYC:210 SL:114 E5C1 EA NOP A:32 X:32 Y:53 P:24 SP:FB CYC:216 SL:114 E5C2 F0 12 BEQ $E5D6 A:32 X:32 Y:53 P:24 SP:FB CYC:222 SL:114 E5C4 30 10 BMI $E5D6 A:32 X:32 Y:53 P:24 SP:FB CYC:228 SL:114 E5C6 70 0E BVS $E5D6 A:32 X:32 Y:53 P:24 SP:FB CYC:234 SL:114 E5C8 B0 0C BCS $E5D6 A:32 X:32 Y:53 P:24 SP:FB CYC:240 SL:114 E5CA C9 32 CMP #$32 A:32 X:32 Y:53 P:24 SP:FB CYC:246 SL:114 E5CC D0 08 BNE $E5D6 A:32 X:32 Y:53 P:27 SP:FB CYC:252 SL:114 E5CE E0 32 CPX #$32 A:32 X:32 Y:53 P:27 SP:FB CYC:258 SL:114 E5D0 D0 04 BNE $E5D6 A:32 X:32 Y:53 P:27 SP:FB CYC:264 SL:114 E5D2 C0 53 CPY #$53 A:32 X:32 Y:53 P:27 SP:FB CYC:270 SL:114 E5D4 F0 04 BEQ $E5DA A:32 X:32 Y:53 P:27 SP:FB CYC:276 SL:114 E5DA A9 87 LDA #$87 A:32 X:32 Y:53 P:27 SP:FB CYC:285 SL:114 E5DC 8D 77 05 STA $0577 = 00 A:87 X:32 Y:53 P:A5 SP:FB CYC:291 SL:114 E5DF A9 32 LDA #$32 A:87 X:32 Y:53 P:A5 SP:FB CYC:303 SL:114 E5E1 8D 78 05 STA $0578 = 00 A:32 X:32 Y:53 P:25 SP:FB CYC:309 SL:114 E5E4 A0 57 LDY #$57 A:32 X:32 Y:53 P:25 SP:FB CYC:321 SL:114 E5E6 24 01 BIT $01 = FF A:32 X:32 Y:57 P:25 SP:FB CYC:327 SL:114 E5E8 38 SEC A:32 X:32 Y:57 P:E5 SP:FB CYC:336 SL:114 E5E9 A9 00 LDA #$00 A:32 X:32 Y:57 P:E5 SP:FB CYC: 1 SL:115 E5EB AF 77 05 *LAX $0577 = 87 A:00 X:32 Y:57 P:67 SP:FB CYC: 7 SL:115 E5EE EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC: 19 SL:115 E5EF EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC: 25 SL:115 E5F0 EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC: 31 SL:115 E5F1 EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC: 37 SL:115 E5F2 F0 12 BEQ $E606 A:87 X:87 Y:57 P:E5 SP:FB CYC: 43 SL:115 E5F4 10 10 BPL $E606 A:87 X:87 Y:57 P:E5 SP:FB CYC: 49 SL:115 E5F6 50 0E BVC $E606 A:87 X:87 Y:57 P:E5 SP:FB CYC: 55 SL:115 E5F8 90 0C BCC $E606 A:87 X:87 Y:57 P:E5 SP:FB CYC: 61 SL:115 E5FA C9 87 CMP #$87 A:87 X:87 Y:57 P:E5 SP:FB CYC: 67 SL:115 E5FC D0 08 BNE $E606 A:87 X:87 Y:57 P:67 SP:FB CYC: 73 SL:115 E5FE E0 87 CPX #$87 A:87 X:87 Y:57 P:67 SP:FB CYC: 79 SL:115 E600 D0 04 BNE $E606 A:87 X:87 Y:57 P:67 SP:FB CYC: 85 SL:115 E602 C0 57 CPY #$57 A:87 X:87 Y:57 P:67 SP:FB CYC: 91 SL:115 E604 F0 04 BEQ $E60A A:87 X:87 Y:57 P:67 SP:FB CYC: 97 SL:115 E60A A0 53 LDY #$53 A:87 X:87 Y:57 P:67 SP:FB CYC:106 SL:115 E60C B8 CLV A:87 X:87 Y:53 P:65 SP:FB CYC:112 SL:115 E60D 18 CLC A:87 X:87 Y:53 P:25 SP:FB CYC:118 SL:115 E60E A9 00 LDA #$00 A:87 X:87 Y:53 P:24 SP:FB CYC:124 SL:115 E610 AF 78 05 *LAX $0578 = 32 A:00 X:87 Y:53 P:26 SP:FB CYC:130 SL:115 E613 EA NOP A:32 X:32 Y:53 P:24 SP:FB CYC:142 SL:115 E614 EA NOP A:32 X:32 Y:53 P:24 SP:FB CYC:148 SL:115 E615 EA NOP A:32 X:32 Y:53 P:24 SP:FB CYC:154 SL:115 E616 EA NOP A:32 X:32 Y:53 P:24 SP:FB CYC:160 SL:115 E617 F0 12 BEQ $E62B A:32 X:32 Y:53 P:24 SP:FB CYC:166 SL:115 E619 30 10 BMI $E62B A:32 X:32 Y:53 P:24 SP:FB CYC:172 SL:115 E61B 70 0E BVS $E62B A:32 X:32 Y:53 P:24 SP:FB CYC:178 SL:115 E61D B0 0C BCS $E62B A:32 X:32 Y:53 P:24 SP:FB CYC:184 SL:115 E61F C9 32 CMP #$32 A:32 X:32 Y:53 P:24 SP:FB CYC:190 SL:115 E621 D0 08 BNE $E62B A:32 X:32 Y:53 P:27 SP:FB CYC:196 SL:115 E623 E0 32 CPX #$32 A:32 X:32 Y:53 P:27 SP:FB CYC:202 SL:115 E625 D0 04 BNE $E62B A:32 X:32 Y:53 P:27 SP:FB CYC:208 SL:115 E627 C0 53 CPY #$53 A:32 X:32 Y:53 P:27 SP:FB CYC:214 SL:115 E629 F0 04 BEQ $E62F A:32 X:32 Y:53 P:27 SP:FB CYC:220 SL:115 E62F A9 FF LDA #$FF A:32 X:32 Y:53 P:27 SP:FB CYC:229 SL:115 E631 85 43 STA $43 = 80 A:FF X:32 Y:53 P:A5 SP:FB CYC:235 SL:115 E633 A9 04 LDA #$04 A:FF X:32 Y:53 P:A5 SP:FB CYC:244 SL:115 E635 85 44 STA $44 = 05 A:04 X:32 Y:53 P:25 SP:FB CYC:250 SL:115 E637 A9 32 LDA #$32 A:04 X:32 Y:53 P:25 SP:FB CYC:259 SL:115 E639 85 45 STA $45 = 32 A:32 X:32 Y:53 P:25 SP:FB CYC:265 SL:115 E63B A9 04 LDA #$04 A:32 X:32 Y:53 P:25 SP:FB CYC:274 SL:115 E63D 85 46 STA $46 = 04 A:04 X:32 Y:53 P:25 SP:FB CYC:280 SL:115 E63F A9 55 LDA #$55 A:04 X:32 Y:53 P:25 SP:FB CYC:289 SL:115 E641 8D 80 05 STA $0580 = 55 A:55 X:32 Y:53 P:25 SP:FB CYC:295 SL:115 E644 A9 AA LDA #$AA A:55 X:32 Y:53 P:25 SP:FB CYC:307 SL:115 E646 8D 32 04 STA $0432 = AA A:AA X:32 Y:53 P:A5 SP:FB CYC:313 SL:115 E649 A2 03 LDX #$03 A:AA X:32 Y:53 P:A5 SP:FB CYC:325 SL:115 E64B A0 81 LDY #$81 A:AA X:03 Y:53 P:25 SP:FB CYC:331 SL:115 E64D 24 01 BIT $01 = FF A:AA X:03 Y:81 P:A5 SP:FB CYC:337 SL:115 E64F 38 SEC A:AA X:03 Y:81 P:E5 SP:FB CYC: 5 SL:116 E650 A9 00 LDA #$00 A:AA X:03 Y:81 P:E5 SP:FB CYC: 11 SL:116 E652 B3 43 *LAX ($43),Y = 04FF @ 0580 = 55 A:00 X:03 Y:81 P:67 SP:FB CYC: 17 SL:116 E654 EA NOP A:55 X:55 Y:81 P:65 SP:FB CYC: 35 SL:116 E655 EA NOP A:55 X:55 Y:81 P:65 SP:FB CYC: 41 SL:116 E656 EA NOP A:55 X:55 Y:81 P:65 SP:FB CYC: 47 SL:116 E657 EA NOP A:55 X:55 Y:81 P:65 SP:FB CYC: 53 SL:116 E658 F0 12 BEQ $E66C A:55 X:55 Y:81 P:65 SP:FB CYC: 59 SL:116 E65A 30 10 BMI $E66C A:55 X:55 Y:81 P:65 SP:FB CYC: 65 SL:116 E65C 50 0E BVC $E66C A:55 X:55 Y:81 P:65 SP:FB CYC: 71 SL:116 E65E 90 0C BCC $E66C A:55 X:55 Y:81 P:65 SP:FB CYC: 77 SL:116 E660 C9 55 CMP #$55 A:55 X:55 Y:81 P:65 SP:FB CYC: 83 SL:116 E662 D0 08 BNE $E66C A:55 X:55 Y:81 P:67 SP:FB CYC: 89 SL:116 E664 E0 55 CPX #$55 A:55 X:55 Y:81 P:67 SP:FB CYC: 95 SL:116 E666 D0 04 BNE $E66C A:55 X:55 Y:81 P:67 SP:FB CYC:101 SL:116 E668 C0 81 CPY #$81 A:55 X:55 Y:81 P:67 SP:FB CYC:107 SL:116 E66A F0 04 BEQ $E670 A:55 X:55 Y:81 P:67 SP:FB CYC:113 SL:116 E670 A2 05 LDX #$05 A:55 X:55 Y:81 P:67 SP:FB CYC:122 SL:116 E672 A0 00 LDY #$00 A:55 X:05 Y:81 P:65 SP:FB CYC:128 SL:116 E674 B8 CLV A:55 X:05 Y:00 P:67 SP:FB CYC:134 SL:116 E675 18 CLC A:55 X:05 Y:00 P:27 SP:FB CYC:140 SL:116 E676 A9 00 LDA #$00 A:55 X:05 Y:00 P:26 SP:FB CYC:146 SL:116 E678 B3 45 *LAX ($45),Y = 0432 @ 0432 = AA A:00 X:05 Y:00 P:26 SP:FB CYC:152 SL:116 E67A EA NOP A:AA X:AA Y:00 P:A4 SP:FB CYC:167 SL:116 E67B EA NOP A:AA X:AA Y:00 P:A4 SP:FB CYC:173 SL:116 E67C EA NOP A:AA X:AA Y:00 P:A4 SP:FB CYC:179 SL:116 E67D EA NOP A:AA X:AA Y:00 P:A4 SP:FB CYC:185 SL:116 E67E F0 12 BEQ $E692 A:AA X:AA Y:00 P:A4 SP:FB CYC:191 SL:116 E680 10 10 BPL $E692 A:AA X:AA Y:00 P:A4 SP:FB CYC:197 SL:116 E682 70 0E BVS $E692 A:AA X:AA Y:00 P:A4 SP:FB CYC:203 SL:116 E684 B0 0C BCS $E692 A:AA X:AA Y:00 P:A4 SP:FB CYC:209 SL:116 E686 C9 AA CMP #$AA A:AA X:AA Y:00 P:A4 SP:FB CYC:215 SL:116 E688 D0 08 BNE $E692 A:AA X:AA Y:00 P:27 SP:FB CYC:221 SL:116 E68A E0 AA CPX #$AA A:AA X:AA Y:00 P:27 SP:FB CYC:227 SL:116 E68C D0 04 BNE $E692 A:AA X:AA Y:00 P:27 SP:FB CYC:233 SL:116 E68E C0 00 CPY #$00 A:AA X:AA Y:00 P:27 SP:FB CYC:239 SL:116 E690 F0 04 BEQ $E696 A:AA X:AA Y:00 P:27 SP:FB CYC:245 SL:116 E696 A9 87 LDA #$87 A:AA X:AA Y:00 P:27 SP:FB CYC:254 SL:116 E698 85 67 STA $67 = 87 A:87 X:AA Y:00 P:A5 SP:FB CYC:260 SL:116 E69A A9 32 LDA #$32 A:87 X:AA Y:00 P:A5 SP:FB CYC:269 SL:116 E69C 85 68 STA $68 = 32 A:32 X:AA Y:00 P:25 SP:FB CYC:275 SL:116 E69E A0 57 LDY #$57 A:32 X:AA Y:00 P:25 SP:FB CYC:284 SL:116 E6A0 24 01 BIT $01 = FF A:32 X:AA Y:57 P:25 SP:FB CYC:290 SL:116 E6A2 38 SEC A:32 X:AA Y:57 P:E5 SP:FB CYC:299 SL:116 E6A3 A9 00 LDA #$00 A:32 X:AA Y:57 P:E5 SP:FB CYC:305 SL:116 E6A5 B7 10 *LAX $10,Y @ 67 = 87 A:00 X:AA Y:57 P:67 SP:FB CYC:311 SL:116 E6A7 EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC:323 SL:116 E6A8 EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC:329 SL:116 E6A9 EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC:335 SL:116 E6AA EA NOP A:87 X:87 Y:57 P:E5 SP:FB CYC: 0 SL:117 E6AB F0 12 BEQ $E6BF A:87 X:87 Y:57 P:E5 SP:FB CYC: 6 SL:117 E6AD 10 10 BPL $E6BF A:87 X:87 Y:57 P:E5 SP:FB CYC: 12 SL:117 E6AF 50 0E BVC $E6BF A:87 X:87 Y:57 P:E5 SP:FB CYC: 18 SL:117 E6B1 90 0C BCC $E6BF A:87 X:87 Y:57 P:E5 SP:FB CYC: 24 SL:117 E6B3 C9 87 CMP #$87 A:87 X:87 Y:57 P:E5 SP:FB CYC: 30 SL:117 E6B5 D0 08 BNE $E6BF A:87 X:87 Y:57 P:67 SP:FB CYC: 36 SL:117 E6B7 E0 87 CPX #$87 A:87 X:87 Y:57 P:67 SP:FB CYC: 42 SL:117 E6B9 D0 04 BNE $E6BF A:87 X:87 Y:57 P:67 SP:FB CYC: 48 SL:117 E6BB C0 57 CPY #$57 A:87 X:87 Y:57 P:67 SP:FB CYC: 54 SL:117 E6BD F0 04 BEQ $E6C3 A:87 X:87 Y:57 P:67 SP:FB CYC: 60 SL:117 E6C3 A0 FF LDY #$FF A:87 X:87 Y:57 P:67 SP:FB CYC: 69 SL:117 E6C5 B8 CLV A:87 X:87 Y:FF P:E5 SP:FB CYC: 75 SL:117 E6C6 18 CLC A:87 X:87 Y:FF P:A5 SP:FB CYC: 81 SL:117 E6C7 A9 00 LDA #$00 A:87 X:87 Y:FF P:A4 SP:FB CYC: 87 SL:117 E6C9 B7 69 *LAX $69,Y @ 68 = 32 A:00 X:87 Y:FF P:26 SP:FB CYC: 93 SL:117 E6CB EA NOP A:32 X:32 Y:FF P:24 SP:FB CYC:105 SL:117 E6CC EA NOP A:32 X:32 Y:FF P:24 SP:FB CYC:111 SL:117 E6CD EA NOP A:32 X:32 Y:FF P:24 SP:FB CYC:117 SL:117 E6CE EA NOP A:32 X:32 Y:FF P:24 SP:FB CYC:123 SL:117 E6CF F0 12 BEQ $E6E3 A:32 X:32 Y:FF P:24 SP:FB CYC:129 SL:117 E6D1 30 10 BMI $E6E3 A:32 X:32 Y:FF P:24 SP:FB CYC:135 SL:117 E6D3 70 0E BVS $E6E3 A:32 X:32 Y:FF P:24 SP:FB CYC:141 SL:117 E6D5 B0 0C BCS $E6E3 A:32 X:32 Y:FF P:24 SP:FB CYC:147 SL:117 E6D7 C9 32 CMP #$32 A:32 X:32 Y:FF P:24 SP:FB CYC:153 SL:117 E6D9 D0 08 BNE $E6E3 A:32 X:32 Y:FF P:27 SP:FB CYC:159 SL:117 E6DB E0 32 CPX #$32 A:32 X:32 Y:FF P:27 SP:FB CYC:165 SL:117 E6DD D0 04 BNE $E6E3 A:32 X:32 Y:FF P:27 SP:FB CYC:171 SL:117 E6DF C0 FF CPY #$FF A:32 X:32 Y:FF P:27 SP:FB CYC:177 SL:117 E6E1 F0 04 BEQ $E6E7 A:32 X:32 Y:FF P:27 SP:FB CYC:183 SL:117 E6E7 A9 87 LDA #$87 A:32 X:32 Y:FF P:27 SP:FB CYC:192 SL:117 E6E9 8D 87 05 STA $0587 = 00 A:87 X:32 Y:FF P:A5 SP:FB CYC:198 SL:117 E6EC A9 32 LDA #$32 A:87 X:32 Y:FF P:A5 SP:FB CYC:210 SL:117 E6EE 8D 88 05 STA $0588 = 00 A:32 X:32 Y:FF P:25 SP:FB CYC:216 SL:117 E6F1 A0 30 LDY #$30 A:32 X:32 Y:FF P:25 SP:FB CYC:228 SL:117 E6F3 24 01 BIT $01 = FF A:32 X:32 Y:30 P:25 SP:FB CYC:234 SL:117 E6F5 38 SEC A:32 X:32 Y:30 P:E5 SP:FB CYC:243 SL:117 E6F6 A9 00 LDA #$00 A:32 X:32 Y:30 P:E5 SP:FB CYC:249 SL:117 E6F8 BF 57 05 *LAX $0557,Y @ 0587 = 87 A:00 X:32 Y:30 P:67 SP:FB CYC:255 SL:117 E6FB EA NOP A:87 X:87 Y:30 P:E5 SP:FB CYC:267 SL:117 E6FC EA NOP A:87 X:87 Y:30 P:E5 SP:FB CYC:273 SL:117 E6FD EA NOP A:87 X:87 Y:30 P:E5 SP:FB CYC:279 SL:117 E6FE EA NOP A:87 X:87 Y:30 P:E5 SP:FB CYC:285 SL:117 E6FF F0 12 BEQ $E713 A:87 X:87 Y:30 P:E5 SP:FB CYC:291 SL:117 E701 10 10 BPL $E713 A:87 X:87 Y:30 P:E5 SP:FB CYC:297 SL:117 E703 50 0E BVC $E713 A:87 X:87 Y:30 P:E5 SP:FB CYC:303 SL:117 E705 90 0C BCC $E713 A:87 X:87 Y:30 P:E5 SP:FB CYC:309 SL:117 E707 C9 87 CMP #$87 A:87 X:87 Y:30 P:E5 SP:FB CYC:315 SL:117 E709 D0 08 BNE $E713 A:87 X:87 Y:30 P:67 SP:FB CYC:321 SL:117 E70B E0 87 CPX #$87 A:87 X:87 Y:30 P:67 SP:FB CYC:327 SL:117 E70D D0 04 BNE $E713 A:87 X:87 Y:30 P:67 SP:FB CYC:333 SL:117 E70F C0 30 CPY #$30 A:87 X:87 Y:30 P:67 SP:FB CYC:339 SL:117 E711 F0 04 BEQ $E717 A:87 X:87 Y:30 P:67 SP:FB CYC: 4 SL:118 E717 A0 40 LDY #$40 A:87 X:87 Y:30 P:67 SP:FB CYC: 13 SL:118 E719 B8 CLV A:87 X:87 Y:40 P:65 SP:FB CYC: 19 SL:118 E71A 18 CLC A:87 X:87 Y:40 P:25 SP:FB CYC: 25 SL:118 E71B A9 00 LDA #$00 A:87 X:87 Y:40 P:24 SP:FB CYC: 31 SL:118 E71D BF 48 05 *LAX $0548,Y @ 0588 = 32 A:00 X:87 Y:40 P:26 SP:FB CYC: 37 SL:118 E720 EA NOP A:32 X:32 Y:40 P:24 SP:FB CYC: 49 SL:118 E721 EA NOP A:32 X:32 Y:40 P:24 SP:FB CYC: 55 SL:118 E722 EA NOP A:32 X:32 Y:40 P:24 SP:FB CYC: 61 SL:118 E723 EA NOP A:32 X:32 Y:40 P:24 SP:FB CYC: 67 SL:118 E724 F0 12 BEQ $E738 A:32 X:32 Y:40 P:24 SP:FB CYC: 73 SL:118 E726 30 10 BMI $E738 A:32 X:32 Y:40 P:24 SP:FB CYC: 79 SL:118 E728 70 0E BVS $E738 A:32 X:32 Y:40 P:24 SP:FB CYC: 85 SL:118 E72A B0 0C BCS $E738 A:32 X:32 Y:40 P:24 SP:FB CYC: 91 SL:118 E72C C9 32 CMP #$32 A:32 X:32 Y:40 P:24 SP:FB CYC: 97 SL:118 E72E D0 08 BNE $E738 A:32 X:32 Y:40 P:27 SP:FB CYC:103 SL:118 E730 E0 32 CPX #$32 A:32 X:32 Y:40 P:27 SP:FB CYC:109 SL:118 E732 D0 04 BNE $E738 A:32 X:32 Y:40 P:27 SP:FB CYC:115 SL:118 E734 C0 40 CPY #$40 A:32 X:32 Y:40 P:27 SP:FB CYC:121 SL:118 E736 F0 04 BEQ $E73C A:32 X:32 Y:40 P:27 SP:FB CYC:127 SL:118 E73C 60 RTS A:32 X:32 Y:40 P:27 SP:FB CYC:136 SL:118 C635 20 3D E7 JSR $E73D A:32 X:32 Y:40 P:27 SP:FD CYC:154 SL:118 E73D A9 C0 LDA #$C0 A:32 X:32 Y:40 P:27 SP:FB CYC:172 SL:118 E73F 85 01 STA $01 = FF A:C0 X:32 Y:40 P:A5 SP:FB CYC:178 SL:118 E741 A9 00 LDA #$00 A:C0 X:32 Y:40 P:A5 SP:FB CYC:187 SL:118 E743 8D 89 04 STA $0489 = 00 A:00 X:32 Y:40 P:27 SP:FB CYC:193 SL:118 E746 A9 89 LDA #$89 A:00 X:32 Y:40 P:27 SP:FB CYC:205 SL:118 E748 85 60 STA $60 = 00 A:89 X:32 Y:40 P:A5 SP:FB CYC:211 SL:118 E74A A9 04 LDA #$04 A:89 X:32 Y:40 P:A5 SP:FB CYC:220 SL:118 E74C 85 61 STA $61 = 00 A:04 X:32 Y:40 P:25 SP:FB CYC:226 SL:118 E74E A0 44 LDY #$44 A:04 X:32 Y:40 P:25 SP:FB CYC:235 SL:118 E750 A2 17 LDX #$17 A:04 X:32 Y:44 P:25 SP:FB CYC:241 SL:118 E752 A9 3E LDA #$3E A:04 X:17 Y:44 P:25 SP:FB CYC:247 SL:118 E754 24 01 BIT $01 = C0 A:3E X:17 Y:44 P:25 SP:FB CYC:253 SL:118 E756 18 CLC A:3E X:17 Y:44 P:E7 SP:FB CYC:262 SL:118 E757 83 49 *SAX ($49,X) @ 60 = 0489 = 00 A:3E X:17 Y:44 P:E6 SP:FB CYC:268 SL:118 E759 EA NOP A:3E X:17 Y:44 P:E6 SP:FB CYC:286 SL:118 E75A EA NOP A:3E X:17 Y:44 P:E6 SP:FB CYC:292 SL:118 E75B EA NOP A:3E X:17 Y:44 P:E6 SP:FB CYC:298 SL:118 E75C EA NOP A:3E X:17 Y:44 P:E6 SP:FB CYC:304 SL:118 E75D D0 19 BNE $E778 A:3E X:17 Y:44 P:E6 SP:FB CYC:310 SL:118 E75F B0 17 BCS $E778 A:3E X:17 Y:44 P:E6 SP:FB CYC:316 SL:118 E761 50 15 BVC $E778 A:3E X:17 Y:44 P:E6 SP:FB CYC:322 SL:118 E763 10 13 BPL $E778 A:3E X:17 Y:44 P:E6 SP:FB CYC:328 SL:118 E765 C9 3E CMP #$3E A:3E X:17 Y:44 P:E6 SP:FB CYC:334 SL:118 E767 D0 0F BNE $E778 A:3E X:17 Y:44 P:67 SP:FB CYC:340 SL:118 E769 C0 44 CPY #$44 A:3E X:17 Y:44 P:67 SP:FB CYC: 5 SL:119 E76B D0 0B BNE $E778 A:3E X:17 Y:44 P:67 SP:FB CYC: 11 SL:119 E76D E0 17 CPX #$17 A:3E X:17 Y:44 P:67 SP:FB CYC: 17 SL:119 E76F D0 07 BNE $E778 A:3E X:17 Y:44 P:67 SP:FB CYC: 23 SL:119 E771 AD 89 04 LDA $0489 = 16 A:3E X:17 Y:44 P:67 SP:FB CYC: 29 SL:119 E774 C9 16 CMP #$16 A:16 X:17 Y:44 P:65 SP:FB CYC: 41 SL:119 E776 F0 04 BEQ $E77C A:16 X:17 Y:44 P:67 SP:FB CYC: 47 SL:119 E77C A0 44 LDY #$44 A:16 X:17 Y:44 P:67 SP:FB CYC: 56 SL:119 E77E A2 7A LDX #$7A A:16 X:17 Y:44 P:65 SP:FB CYC: 62 SL:119 E780 A9 66 LDA #$66 A:16 X:7A Y:44 P:65 SP:FB CYC: 68 SL:119 E782 38 SEC A:66 X:7A Y:44 P:65 SP:FB CYC: 74 SL:119 E783 B8 CLV A:66 X:7A Y:44 P:65 SP:FB CYC: 80 SL:119 E784 83 E6 *SAX ($E6,X) @ 60 = 0489 = 16 A:66 X:7A Y:44 P:25 SP:FB CYC: 86 SL:119 E786 EA NOP A:66 X:7A Y:44 P:25 SP:FB CYC:104 SL:119 E787 EA NOP A:66 X:7A Y:44 P:25 SP:FB CYC:110 SL:119 E788 EA NOP A:66 X:7A Y:44 P:25 SP:FB CYC:116 SL:119 E789 EA NOP A:66 X:7A Y:44 P:25 SP:FB CYC:122 SL:119 E78A F0 19 BEQ $E7A5 A:66 X:7A Y:44 P:25 SP:FB CYC:128 SL:119 E78C 90 17 BCC $E7A5 A:66 X:7A Y:44 P:25 SP:FB CYC:134 SL:119 E78E 70 15 BVS $E7A5 A:66 X:7A Y:44 P:25 SP:FB CYC:140 SL:119 E790 30 13 BMI $E7A5 A:66 X:7A Y:44 P:25 SP:FB CYC:146 SL:119 E792 C9 66 CMP #$66 A:66 X:7A Y:44 P:25 SP:FB CYC:152 SL:119 E794 D0 0F BNE $E7A5 A:66 X:7A Y:44 P:27 SP:FB CYC:158 SL:119 E796 C0 44 CPY #$44 A:66 X:7A Y:44 P:27 SP:FB CYC:164 SL:119 E798 D0 0B BNE $E7A5 A:66 X:7A Y:44 P:27 SP:FB CYC:170 SL:119 E79A E0 7A CPX #$7A A:66 X:7A Y:44 P:27 SP:FB CYC:176 SL:119 E79C D0 07 BNE $E7A5 A:66 X:7A Y:44 P:27 SP:FB CYC:182 SL:119 E79E AD 89 04 LDA $0489 = 62 A:66 X:7A Y:44 P:27 SP:FB CYC:188 SL:119 E7A1 C9 62 CMP #$62 A:62 X:7A Y:44 P:25 SP:FB CYC:200 SL:119 E7A3 F0 04 BEQ $E7A9 A:62 X:7A Y:44 P:27 SP:FB CYC:206 SL:119 E7A9 A9 FF LDA #$FF A:62 X:7A Y:44 P:27 SP:FB CYC:215 SL:119 E7AB 85 49 STA $49 = 00 A:FF X:7A Y:44 P:A5 SP:FB CYC:221 SL:119 E7AD A0 44 LDY #$44 A:FF X:7A Y:44 P:A5 SP:FB CYC:230 SL:119 E7AF A2 AA LDX #$AA A:FF X:7A Y:44 P:25 SP:FB CYC:236 SL:119 E7B1 A9 55 LDA #$55 A:FF X:AA Y:44 P:A5 SP:FB CYC:242 SL:119 E7B3 24 01 BIT $01 = C0 A:55 X:AA Y:44 P:25 SP:FB CYC:248 SL:119 E7B5 18 CLC A:55 X:AA Y:44 P:E5 SP:FB CYC:257 SL:119 E7B6 87 49 *SAX $49 = FF A:55 X:AA Y:44 P:E4 SP:FB CYC:263 SL:119 E7B8 EA NOP A:55 X:AA Y:44 P:E4 SP:FB CYC:272 SL:119 E7B9 EA NOP A:55 X:AA Y:44 P:E4 SP:FB CYC:278 SL:119 E7BA EA NOP A:55 X:AA Y:44 P:E4 SP:FB CYC:284 SL:119 E7BB EA NOP A:55 X:AA Y:44 P:E4 SP:FB CYC:290 SL:119 E7BC F0 18 BEQ $E7D6 A:55 X:AA Y:44 P:E4 SP:FB CYC:296 SL:119 E7BE B0 16 BCS $E7D6 A:55 X:AA Y:44 P:E4 SP:FB CYC:302 SL:119 E7C0 50 14 BVC $E7D6 A:55 X:AA Y:44 P:E4 SP:FB CYC:308 SL:119 E7C2 10 12 BPL $E7D6 A:55 X:AA Y:44 P:E4 SP:FB CYC:314 SL:119 E7C4 C9 55 CMP #$55 A:55 X:AA Y:44 P:E4 SP:FB CYC:320 SL:119 E7C6 D0 0E BNE $E7D6 A:55 X:AA Y:44 P:67 SP:FB CYC:326 SL:119 E7C8 C0 44 CPY #$44 A:55 X:AA Y:44 P:67 SP:FB CYC:332 SL:119 E7CA D0 0A BNE $E7D6 A:55 X:AA Y:44 P:67 SP:FB CYC:338 SL:119 E7CC E0 AA CPX #$AA A:55 X:AA Y:44 P:67 SP:FB CYC: 3 SL:120 E7CE D0 06 BNE $E7D6 A:55 X:AA Y:44 P:67 SP:FB CYC: 9 SL:120 E7D0 A5 49 LDA $49 = 00 A:55 X:AA Y:44 P:67 SP:FB CYC: 15 SL:120 E7D2 C9 00 CMP #$00 A:00 X:AA Y:44 P:67 SP:FB CYC: 24 SL:120 E7D4 F0 04 BEQ $E7DA A:00 X:AA Y:44 P:67 SP:FB CYC: 30 SL:120 E7DA A9 00 LDA #$00 A:00 X:AA Y:44 P:67 SP:FB CYC: 39 SL:120 E7DC 85 56 STA $56 = 00 A:00 X:AA Y:44 P:67 SP:FB CYC: 45 SL:120 E7DE A0 58 LDY #$58 A:00 X:AA Y:44 P:67 SP:FB CYC: 54 SL:120 E7E0 A2 EF LDX #$EF A:00 X:AA Y:58 P:65 SP:FB CYC: 60 SL:120 E7E2 A9 66 LDA #$66 A:00 X:EF Y:58 P:E5 SP:FB CYC: 66 SL:120 E7E4 38 SEC A:66 X:EF Y:58 P:65 SP:FB CYC: 72 SL:120 E7E5 B8 CLV A:66 X:EF Y:58 P:65 SP:FB CYC: 78 SL:120 E7E6 87 56 *SAX $56 = 00 A:66 X:EF Y:58 P:25 SP:FB CYC: 84 SL:120 E7E8 EA NOP A:66 X:EF Y:58 P:25 SP:FB CYC: 93 SL:120 E7E9 EA NOP A:66 X:EF Y:58 P:25 SP:FB CYC: 99 SL:120 E7EA EA NOP A:66 X:EF Y:58 P:25 SP:FB CYC:105 SL:120 E7EB EA NOP A:66 X:EF Y:58 P:25 SP:FB CYC:111 SL:120 E7EC F0 18 BEQ $E806 A:66 X:EF Y:58 P:25 SP:FB CYC:117 SL:120 E7EE 90 16 BCC $E806 A:66 X:EF Y:58 P:25 SP:FB CYC:123 SL:120 E7F0 70 14 BVS $E806 A:66 X:EF Y:58 P:25 SP:FB CYC:129 SL:120 E7F2 30 12 BMI $E806 A:66 X:EF Y:58 P:25 SP:FB CYC:135 SL:120 E7F4 C9 66 CMP #$66 A:66 X:EF Y:58 P:25 SP:FB CYC:141 SL:120 E7F6 D0 0E BNE $E806 A:66 X:EF Y:58 P:27 SP:FB CYC:147 SL:120 E7F8 C0 58 CPY #$58 A:66 X:EF Y:58 P:27 SP:FB CYC:153 SL:120 E7FA D0 0A BNE $E806 A:66 X:EF Y:58 P:27 SP:FB CYC:159 SL:120 E7FC E0 EF CPX #$EF A:66 X:EF Y:58 P:27 SP:FB CYC:165 SL:120 E7FE D0 06 BNE $E806 A:66 X:EF Y:58 P:27 SP:FB CYC:171 SL:120 E800 A5 56 LDA $56 = 66 A:66 X:EF Y:58 P:27 SP:FB CYC:177 SL:120 E802 C9 66 CMP #$66 A:66 X:EF Y:58 P:25 SP:FB CYC:186 SL:120 E804 F0 04 BEQ $E80A A:66 X:EF Y:58 P:27 SP:FB CYC:192 SL:120 E80A A9 FF LDA #$FF A:66 X:EF Y:58 P:27 SP:FB CYC:201 SL:120 E80C 8D 49 05 STA $0549 = 00 A:FF X:EF Y:58 P:A5 SP:FB CYC:207 SL:120 E80F A0 E5 LDY #$E5 A:FF X:EF Y:58 P:A5 SP:FB CYC:219 SL:120 E811 A2 AF LDX #$AF A:FF X:EF Y:E5 P:A5 SP:FB CYC:225 SL:120 E813 A9 F5 LDA #$F5 A:FF X:AF Y:E5 P:A5 SP:FB CYC:231 SL:120 E815 24 01 BIT $01 = C0 A:F5 X:AF Y:E5 P:A5 SP:FB CYC:237 SL:120 E817 18 CLC A:F5 X:AF Y:E5 P:E5 SP:FB CYC:246 SL:120 E818 8F 49 05 *SAX $0549 = FF A:F5 X:AF Y:E5 P:E4 SP:FB CYC:252 SL:120 E81B EA NOP A:F5 X:AF Y:E5 P:E4 SP:FB CYC:264 SL:120 E81C EA NOP A:F5 X:AF Y:E5 P:E4 SP:FB CYC:270 SL:120 E81D EA NOP A:F5 X:AF Y:E5 P:E4 SP:FB CYC:276 SL:120 E81E EA NOP A:F5 X:AF Y:E5 P:E4 SP:FB CYC:282 SL:120 E81F F0 19 BEQ $E83A A:F5 X:AF Y:E5 P:E4 SP:FB CYC:288 SL:120 E821 B0 17 BCS $E83A A:F5 X:AF Y:E5 P:E4 SP:FB CYC:294 SL:120 E823 50 15 BVC $E83A A:F5 X:AF Y:E5 P:E4 SP:FB CYC:300 SL:120 E825 10 13 BPL $E83A A:F5 X:AF Y:E5 P:E4 SP:FB CYC:306 SL:120 E827 C9 F5 CMP #$F5 A:F5 X:AF Y:E5 P:E4 SP:FB CYC:312 SL:120 E829 D0 0F BNE $E83A A:F5 X:AF Y:E5 P:67 SP:FB CYC:318 SL:120 E82B C0 E5 CPY #$E5 A:F5 X:AF Y:E5 P:67 SP:FB CYC:324 SL:120 E82D D0 0B BNE $E83A A:F5 X:AF Y:E5 P:67 SP:FB CYC:330 SL:120 E82F E0 AF CPX #$AF A:F5 X:AF Y:E5 P:67 SP:FB CYC:336 SL:120 E831 D0 07 BNE $E83A A:F5 X:AF Y:E5 P:67 SP:FB CYC: 1 SL:121 E833 AD 49 05 LDA $0549 = A5 A:F5 X:AF Y:E5 P:67 SP:FB CYC: 7 SL:121 E836 C9 A5 CMP #$A5 A:A5 X:AF Y:E5 P:E5 SP:FB CYC: 19 SL:121 E838 F0 04 BEQ $E83E A:A5 X:AF Y:E5 P:67 SP:FB CYC: 25 SL:121 E83E A9 00 LDA #$00 A:A5 X:AF Y:E5 P:67 SP:FB CYC: 34 SL:121 E840 8D 56 05 STA $0556 = 00 A:00 X:AF Y:E5 P:67 SP:FB CYC: 40 SL:121 E843 A0 58 LDY #$58 A:00 X:AF Y:E5 P:67 SP:FB CYC: 52 SL:121 E845 A2 B3 LDX #$B3 A:00 X:AF Y:58 P:65 SP:FB CYC: 58 SL:121 E847 A9 97 LDA #$97 A:00 X:B3 Y:58 P:E5 SP:FB CYC: 64 SL:121 E849 38 SEC A:97 X:B3 Y:58 P:E5 SP:FB CYC: 70 SL:121 E84A B8 CLV A:97 X:B3 Y:58 P:E5 SP:FB CYC: 76 SL:121 E84B 8F 56 05 *SAX $0556 = 00 A:97 X:B3 Y:58 P:A5 SP:FB CYC: 82 SL:121 E84E EA NOP A:97 X:B3 Y:58 P:A5 SP:FB CYC: 94 SL:121 E84F EA NOP A:97 X:B3 Y:58 P:A5 SP:FB CYC:100 SL:121 E850 EA NOP A:97 X:B3 Y:58 P:A5 SP:FB CYC:106 SL:121 E851 EA NOP A:97 X:B3 Y:58 P:A5 SP:FB CYC:112 SL:121 E852 F0 19 BEQ $E86D A:97 X:B3 Y:58 P:A5 SP:FB CYC:118 SL:121 E854 90 17 BCC $E86D A:97 X:B3 Y:58 P:A5 SP:FB CYC:124 SL:121 E856 70 15 BVS $E86D A:97 X:B3 Y:58 P:A5 SP:FB CYC:130 SL:121 E858 10 13 BPL $E86D A:97 X:B3 Y:58 P:A5 SP:FB CYC:136 SL:121 E85A C9 97 CMP #$97 A:97 X:B3 Y:58 P:A5 SP:FB CYC:142 SL:121 E85C D0 0F BNE $E86D A:97 X:B3 Y:58 P:27 SP:FB CYC:148 SL:121 E85E C0 58 CPY #$58 A:97 X:B3 Y:58 P:27 SP:FB CYC:154 SL:121 E860 D0 0B BNE $E86D A:97 X:B3 Y:58 P:27 SP:FB CYC:160 SL:121 E862 E0 B3 CPX #$B3 A:97 X:B3 Y:58 P:27 SP:FB CYC:166 SL:121 E864 D0 07 BNE $E86D A:97 X:B3 Y:58 P:27 SP:FB CYC:172 SL:121 E866 AD 56 05 LDA $0556 = 93 A:97 X:B3 Y:58 P:27 SP:FB CYC:178 SL:121 E869 C9 93 CMP #$93 A:93 X:B3 Y:58 P:A5 SP:FB CYC:190 SL:121 E86B F0 04 BEQ $E871 A:93 X:B3 Y:58 P:27 SP:FB CYC:196 SL:121 E871 A9 FF LDA #$FF A:93 X:B3 Y:58 P:27 SP:FB CYC:205 SL:121 E873 85 49 STA $49 = 00 A:FF X:B3 Y:58 P:A5 SP:FB CYC:211 SL:121 E875 A0 FF LDY #$FF A:FF X:B3 Y:58 P:A5 SP:FB CYC:220 SL:121 E877 A2 AA LDX #$AA A:FF X:B3 Y:FF P:A5 SP:FB CYC:226 SL:121 E879 A9 55 LDA #$55 A:FF X:AA Y:FF P:A5 SP:FB CYC:232 SL:121 E87B 24 01 BIT $01 = C0 A:55 X:AA Y:FF P:25 SP:FB CYC:238 SL:121 E87D 18 CLC A:55 X:AA Y:FF P:E5 SP:FB CYC:247 SL:121 E87E 97 4A *SAX $4A,Y @ 49 = FF A:55 X:AA Y:FF P:E4 SP:FB CYC:253 SL:121 E880 EA NOP A:55 X:AA Y:FF P:E4 SP:FB CYC:265 SL:121 E881 EA NOP A:55 X:AA Y:FF P:E4 SP:FB CYC:271 SL:121 E882 EA NOP A:55 X:AA Y:FF P:E4 SP:FB CYC:277 SL:121 E883 EA NOP A:55 X:AA Y:FF P:E4 SP:FB CYC:283 SL:121 E884 F0 18 BEQ $E89E A:55 X:AA Y:FF P:E4 SP:FB CYC:289 SL:121 E886 B0 16 BCS $E89E A:55 X:AA Y:FF P:E4 SP:FB CYC:295 SL:121 E888 50 14 BVC $E89E A:55 X:AA Y:FF P:E4 SP:FB CYC:301 SL:121 E88A 10 12 BPL $E89E A:55 X:AA Y:FF P:E4 SP:FB CYC:307 SL:121 E88C C9 55 CMP #$55 A:55 X:AA Y:FF P:E4 SP:FB CYC:313 SL:121 E88E D0 0E BNE $E89E A:55 X:AA Y:FF P:67 SP:FB CYC:319 SL:121 E890 C0 FF CPY #$FF A:55 X:AA Y:FF P:67 SP:FB CYC:325 SL:121 E892 D0 0A BNE $E89E A:55 X:AA Y:FF P:67 SP:FB CYC:331 SL:121 E894 E0 AA CPX #$AA A:55 X:AA Y:FF P:67 SP:FB CYC:337 SL:121 E896 D0 06 BNE $E89E A:55 X:AA Y:FF P:67 SP:FB CYC: 2 SL:122 E898 A5 49 LDA $49 = 00 A:55 X:AA Y:FF P:67 SP:FB CYC: 8 SL:122 E89A C9 00 CMP #$00 A:00 X:AA Y:FF P:67 SP:FB CYC: 17 SL:122 E89C F0 04 BEQ $E8A2 A:00 X:AA Y:FF P:67 SP:FB CYC: 23 SL:122 E8A2 A9 00 LDA #$00 A:00 X:AA Y:FF P:67 SP:FB CYC: 32 SL:122 E8A4 85 56 STA $56 = 66 A:00 X:AA Y:FF P:67 SP:FB CYC: 38 SL:122 E8A6 A0 06 LDY #$06 A:00 X:AA Y:FF P:67 SP:FB CYC: 47 SL:122 E8A8 A2 EF LDX #$EF A:00 X:AA Y:06 P:65 SP:FB CYC: 53 SL:122 E8AA A9 66 LDA #$66 A:00 X:EF Y:06 P:E5 SP:FB CYC: 59 SL:122 E8AC 38 SEC A:66 X:EF Y:06 P:65 SP:FB CYC: 65 SL:122 E8AD B8 CLV A:66 X:EF Y:06 P:65 SP:FB CYC: 71 SL:122 E8AE 97 50 *SAX $50,Y @ 56 = 00 A:66 X:EF Y:06 P:25 SP:FB CYC: 77 SL:122 E8B0 EA NOP A:66 X:EF Y:06 P:25 SP:FB CYC: 89 SL:122 E8B1 EA NOP A:66 X:EF Y:06 P:25 SP:FB CYC: 95 SL:122 E8B2 EA NOP A:66 X:EF Y:06 P:25 SP:FB CYC:101 SL:122 E8B3 EA NOP A:66 X:EF Y:06 P:25 SP:FB CYC:107 SL:122 E8B4 F0 18 BEQ $E8CE A:66 X:EF Y:06 P:25 SP:FB CYC:113 SL:122 E8B6 90 16 BCC $E8CE A:66 X:EF Y:06 P:25 SP:FB CYC:119 SL:122 E8B8 70 14 BVS $E8CE A:66 X:EF Y:06 P:25 SP:FB CYC:125 SL:122 E8BA 30 12 BMI $E8CE A:66 X:EF Y:06 P:25 SP:FB CYC:131 SL:122 E8BC C9 66 CMP #$66 A:66 X:EF Y:06 P:25 SP:FB CYC:137 SL:122 E8BE D0 0E BNE $E8CE A:66 X:EF Y:06 P:27 SP:FB CYC:143 SL:122 E8C0 C0 06 CPY #$06 A:66 X:EF Y:06 P:27 SP:FB CYC:149 SL:122 E8C2 D0 0A BNE $E8CE A:66 X:EF Y:06 P:27 SP:FB CYC:155 SL:122 E8C4 E0 EF CPX #$EF A:66 X:EF Y:06 P:27 SP:FB CYC:161 SL:122 E8C6 D0 06 BNE $E8CE A:66 X:EF Y:06 P:27 SP:FB CYC:167 SL:122 E8C8 A5 56 LDA $56 = 66 A:66 X:EF Y:06 P:27 SP:FB CYC:173 SL:122 E8CA C9 66 CMP #$66 A:66 X:EF Y:06 P:25 SP:FB CYC:182 SL:122 E8CC F0 04 BEQ $E8D2 A:66 X:EF Y:06 P:27 SP:FB CYC:188 SL:122 E8D2 60 RTS A:66 X:EF Y:06 P:27 SP:FB CYC:197 SL:122 C638 20 D3 E8 JSR $E8D3 A:66 X:EF Y:06 P:27 SP:FD CYC:215 SL:122 E8D3 A0 90 LDY #$90 A:66 X:EF Y:06 P:27 SP:FB CYC:233 SL:122 E8D5 20 31 F9 JSR $F931 A:66 X:EF Y:90 P:A5 SP:FB CYC:239 SL:122 F931 24 01 BIT $01 = C0 A:66 X:EF Y:90 P:A5 SP:F9 CYC:257 SL:122 F933 A9 40 LDA #$40 A:66 X:EF Y:90 P:E5 SP:F9 CYC:266 SL:122 F935 38 SEC A:40 X:EF Y:90 P:65 SP:F9 CYC:272 SL:122 F936 60 RTS A:40 X:EF Y:90 P:65 SP:F9 CYC:278 SL:122 E8D8 EB 40 *SBC #$40 A:40 X:EF Y:90 P:65 SP:FB CYC:296 SL:122 E8DA EA NOP A:00 X:EF Y:90 P:27 SP:FB CYC:302 SL:122 E8DB EA NOP A:00 X:EF Y:90 P:27 SP:FB CYC:308 SL:122 E8DC EA NOP A:00 X:EF Y:90 P:27 SP:FB CYC:314 SL:122 E8DD EA NOP A:00 X:EF Y:90 P:27 SP:FB CYC:320 SL:122 E8DE 20 37 F9 JSR $F937 A:00 X:EF Y:90 P:27 SP:FB CYC:326 SL:122 F937 30 0B BMI $F944 A:00 X:EF Y:90 P:27 SP:F9 CYC: 3 SL:123 F939 90 09 BCC $F944 A:00 X:EF Y:90 P:27 SP:F9 CYC: 9 SL:123 F93B D0 07 BNE $F944 A:00 X:EF Y:90 P:27 SP:F9 CYC: 15 SL:123 F93D 70 05 BVS $F944 A:00 X:EF Y:90 P:27 SP:F9 CYC: 21 SL:123 F93F C9 00 CMP #$00 A:00 X:EF Y:90 P:27 SP:F9 CYC: 27 SL:123 F941 D0 01 BNE $F944 A:00 X:EF Y:90 P:27 SP:F9 CYC: 33 SL:123 F943 60 RTS A:00 X:EF Y:90 P:27 SP:F9 CYC: 39 SL:123 E8E1 C8 INY A:00 X:EF Y:90 P:27 SP:FB CYC: 57 SL:123 E8E2 20 47 F9 JSR $F947 A:00 X:EF Y:91 P:A5 SP:FB CYC: 63 SL:123 F947 B8 CLV A:00 X:EF Y:91 P:A5 SP:F9 CYC: 81 SL:123 F948 38 SEC A:00 X:EF Y:91 P:A5 SP:F9 CYC: 87 SL:123 F949 A9 40 LDA #$40 A:00 X:EF Y:91 P:A5 SP:F9 CYC: 93 SL:123 F94B 60 RTS A:40 X:EF Y:91 P:25 SP:F9 CYC: 99 SL:123 E8E5 EB 3F *SBC #$3F A:40 X:EF Y:91 P:25 SP:FB CYC:117 SL:123 E8E7 EA NOP A:01 X:EF Y:91 P:25 SP:FB CYC:123 SL:123 E8E8 EA NOP A:01 X:EF Y:91 P:25 SP:FB CYC:129 SL:123 E8E9 EA NOP A:01 X:EF Y:91 P:25 SP:FB CYC:135 SL:123 E8EA EA NOP A:01 X:EF Y:91 P:25 SP:FB CYC:141 SL:123 E8EB 20 4C F9 JSR $F94C A:01 X:EF Y:91 P:25 SP:FB CYC:147 SL:123 F94C F0 0B BEQ $F959 A:01 X:EF Y:91 P:25 SP:F9 CYC:165 SL:123 F94E 30 09 BMI $F959 A:01 X:EF Y:91 P:25 SP:F9 CYC:171 SL:123 F950 90 07 BCC $F959 A:01 X:EF Y:91 P:25 SP:F9 CYC:177 SL:123 F952 70 05 BVS $F959 A:01 X:EF Y:91 P:25 SP:F9 CYC:183 SL:123 F954 C9 01 CMP #$01 A:01 X:EF Y:91 P:25 SP:F9 CYC:189 SL:123 F956 D0 01 BNE $F959 A:01 X:EF Y:91 P:27 SP:F9 CYC:195 SL:123 F958 60 RTS A:01 X:EF Y:91 P:27 SP:F9 CYC:201 SL:123 E8EE C8 INY A:01 X:EF Y:91 P:27 SP:FB CYC:219 SL:123 E8EF 20 5C F9 JSR $F95C A:01 X:EF Y:92 P:A5 SP:FB CYC:225 SL:123 F95C A9 40 LDA #$40 A:01 X:EF Y:92 P:A5 SP:F9 CYC:243 SL:123 F95E 38 SEC A:40 X:EF Y:92 P:25 SP:F9 CYC:249 SL:123 F95F 24 01 BIT $01 = C0 A:40 X:EF Y:92 P:25 SP:F9 CYC:255 SL:123 F961 60 RTS A:40 X:EF Y:92 P:E5 SP:F9 CYC:264 SL:123 E8F2 EB 41 *SBC #$41 A:40 X:EF Y:92 P:E5 SP:FB CYC:282 SL:123 E8F4 EA NOP A:FF X:EF Y:92 P:A4 SP:FB CYC:288 SL:123 E8F5 EA NOP A:FF X:EF Y:92 P:A4 SP:FB CYC:294 SL:123 E8F6 EA NOP A:FF X:EF Y:92 P:A4 SP:FB CYC:300 SL:123 E8F7 EA NOP A:FF X:EF Y:92 P:A4 SP:FB CYC:306 SL:123 E8F8 20 62 F9 JSR $F962 A:FF X:EF Y:92 P:A4 SP:FB CYC:312 SL:123 F962 B0 0B BCS $F96F A:FF X:EF Y:92 P:A4 SP:F9 CYC:330 SL:123 F964 F0 09 BEQ $F96F A:FF X:EF Y:92 P:A4 SP:F9 CYC:336 SL:123 F966 10 07 BPL $F96F A:FF X:EF Y:92 P:A4 SP:F9 CYC: 1 SL:124 F968 70 05 BVS $F96F A:FF X:EF Y:92 P:A4 SP:F9 CYC: 7 SL:124 F96A C9 FF CMP #$FF A:FF X:EF Y:92 P:A4 SP:F9 CYC: 13 SL:124 F96C D0 01 BNE $F96F A:FF X:EF Y:92 P:27 SP:F9 CYC: 19 SL:124 F96E 60 RTS A:FF X:EF Y:92 P:27 SP:F9 CYC: 25 SL:124 E8FB C8 INY A:FF X:EF Y:92 P:27 SP:FB CYC: 43 SL:124 E8FC 20 72 F9 JSR $F972 A:FF X:EF Y:93 P:A5 SP:FB CYC: 49 SL:124 F972 18 CLC A:FF X:EF Y:93 P:A5 SP:F9 CYC: 67 SL:124 F973 A9 80 LDA #$80 A:FF X:EF Y:93 P:A4 SP:F9 CYC: 73 SL:124 F975 60 RTS A:80 X:EF Y:93 P:A4 SP:F9 CYC: 79 SL:124 E8FF EB 00 *SBC #$00 A:80 X:EF Y:93 P:A4 SP:FB CYC: 97 SL:124 E901 EA NOP A:7F X:EF Y:93 P:65 SP:FB CYC:103 SL:124 E902 EA NOP A:7F X:EF Y:93 P:65 SP:FB CYC:109 SL:124 E903 EA NOP A:7F X:EF Y:93 P:65 SP:FB CYC:115 SL:124 E904 EA NOP A:7F X:EF Y:93 P:65 SP:FB CYC:121 SL:124 E905 20 76 F9 JSR $F976 A:7F X:EF Y:93 P:65 SP:FB CYC:127 SL:124 F976 90 05 BCC $F97D A:7F X:EF Y:93 P:65 SP:F9 CYC:145 SL:124 F978 C9 7F CMP #$7F A:7F X:EF Y:93 P:65 SP:F9 CYC:151 SL:124 F97A D0 01 BNE $F97D A:7F X:EF Y:93 P:67 SP:F9 CYC:157 SL:124 F97C 60 RTS A:7F X:EF Y:93 P:67 SP:F9 CYC:163 SL:124 E908 C8 INY A:7F X:EF Y:93 P:67 SP:FB CYC:181 SL:124 E909 20 80 F9 JSR $F980 A:7F X:EF Y:94 P:E5 SP:FB CYC:187 SL:124 F980 38 SEC A:7F X:EF Y:94 P:E5 SP:F9 CYC:205 SL:124 F981 A9 81 LDA #$81 A:7F X:EF Y:94 P:E5 SP:F9 CYC:211 SL:124 F983 60 RTS A:81 X:EF Y:94 P:E5 SP:F9 CYC:217 SL:124 E90C EB 7F *SBC #$7F A:81 X:EF Y:94 P:E5 SP:FB CYC:235 SL:124 E90E EA NOP A:02 X:EF Y:94 P:65 SP:FB CYC:241 SL:124 E90F EA NOP A:02 X:EF Y:94 P:65 SP:FB CYC:247 SL:124 E910 EA NOP A:02 X:EF Y:94 P:65 SP:FB CYC:253 SL:124 E911 EA NOP A:02 X:EF Y:94 P:65 SP:FB CYC:259 SL:124 E912 20 84 F9 JSR $F984 A:02 X:EF Y:94 P:65 SP:FB CYC:265 SL:124 F984 50 07 BVC $F98D A:02 X:EF Y:94 P:65 SP:F9 CYC:283 SL:124 F986 90 05 BCC $F98D A:02 X:EF Y:94 P:65 SP:F9 CYC:289 SL:124 F988 C9 02 CMP #$02 A:02 X:EF Y:94 P:65 SP:F9 CYC:295 SL:124 F98A D0 01 BNE $F98D A:02 X:EF Y:94 P:67 SP:F9 CYC:301 SL:124 F98C 60 RTS A:02 X:EF Y:94 P:67 SP:F9 CYC:307 SL:124 E915 60 RTS A:02 X:EF Y:94 P:67 SP:FB CYC:325 SL:124 C63B 20 16 E9 JSR $E916 A:02 X:EF Y:94 P:67 SP:FD CYC: 2 SL:125 E916 A9 FF LDA #$FF A:02 X:EF Y:94 P:67 SP:FB CYC: 20 SL:125 E918 85 01 STA $01 = C0 A:FF X:EF Y:94 P:E5 SP:FB CYC: 26 SL:125 E91A A0 95 LDY #$95 A:FF X:EF Y:94 P:E5 SP:FB CYC: 35 SL:125 E91C A2 02 LDX #$02 A:FF X:EF Y:95 P:E5 SP:FB CYC: 41 SL:125 E91E A9 47 LDA #$47 A:FF X:02 Y:95 P:65 SP:FB CYC: 47 SL:125 E920 85 47 STA $47 = 00 A:47 X:02 Y:95 P:65 SP:FB CYC: 53 SL:125 E922 A9 06 LDA #$06 A:47 X:02 Y:95 P:65 SP:FB CYC: 62 SL:125 E924 85 48 STA $48 = 00 A:06 X:02 Y:95 P:65 SP:FB CYC: 68 SL:125 E926 A9 EB LDA #$EB A:06 X:02 Y:95 P:65 SP:FB CYC: 77 SL:125 E928 8D 47 06 STA $0647 = 00 A:EB X:02 Y:95 P:E5 SP:FB CYC: 83 SL:125 E92B 20 31 FA JSR $FA31 A:EB X:02 Y:95 P:E5 SP:FB CYC: 95 SL:125 FA31 24 01 BIT $01 = FF A:EB X:02 Y:95 P:E5 SP:F9 CYC:113 SL:125 FA33 18 CLC A:EB X:02 Y:95 P:E5 SP:F9 CYC:122 SL:125 FA34 A9 40 LDA #$40 A:EB X:02 Y:95 P:E4 SP:F9 CYC:128 SL:125 FA36 60 RTS A:40 X:02 Y:95 P:64 SP:F9 CYC:134 SL:125 E92E C3 45 *DCP ($45,X) @ 47 = 0647 = EB A:40 X:02 Y:95 P:64 SP:FB CYC:152 SL:125 E930 EA NOP A:40 X:02 Y:95 P:64 SP:FB CYC:176 SL:125 E931 EA NOP A:40 X:02 Y:95 P:64 SP:FB CYC:182 SL:125 E932 EA NOP A:40 X:02 Y:95 P:64 SP:FB CYC:188 SL:125 E933 EA NOP A:40 X:02 Y:95 P:64 SP:FB CYC:194 SL:125 E934 20 37 FA JSR $FA37 A:40 X:02 Y:95 P:64 SP:FB CYC:200 SL:125 FA37 50 2C BVC $FA65 A:40 X:02 Y:95 P:64 SP:F9 CYC:218 SL:125 FA39 B0 2A BCS $FA65 A:40 X:02 Y:95 P:64 SP:F9 CYC:224 SL:125 FA3B 30 28 BMI $FA65 A:40 X:02 Y:95 P:64 SP:F9 CYC:230 SL:125 FA3D C9 40 CMP #$40 A:40 X:02 Y:95 P:64 SP:F9 CYC:236 SL:125 FA3F D0 24 BNE $FA65 A:40 X:02 Y:95 P:67 SP:F9 CYC:242 SL:125 FA41 60 RTS A:40 X:02 Y:95 P:67 SP:F9 CYC:248 SL:125 E937 AD 47 06 LDA $0647 = EA A:40 X:02 Y:95 P:67 SP:FB CYC:266 SL:125 E93A C9 EA CMP #$EA A:EA X:02 Y:95 P:E5 SP:FB CYC:278 SL:125 E93C F0 02 BEQ $E940 A:EA X:02 Y:95 P:67 SP:FB CYC:284 SL:125 E940 C8 INY A:EA X:02 Y:95 P:67 SP:FB CYC:293 SL:125 E941 A9 00 LDA #$00 A:EA X:02 Y:96 P:E5 SP:FB CYC:299 SL:125 E943 8D 47 06 STA $0647 = EA A:00 X:02 Y:96 P:67 SP:FB CYC:305 SL:125 E946 20 42 FA JSR $FA42 A:00 X:02 Y:96 P:67 SP:FB CYC:317 SL:125 FA42 B8 CLV A:00 X:02 Y:96 P:67 SP:F9 CYC:335 SL:125 FA43 38 SEC A:00 X:02 Y:96 P:27 SP:F9 CYC: 0 SL:126 FA44 A9 FF LDA #$FF A:00 X:02 Y:96 P:27 SP:F9 CYC: 6 SL:126 FA46 60 RTS A:FF X:02 Y:96 P:A5 SP:F9 CYC: 12 SL:126 E949 C3 45 *DCP ($45,X) @ 47 = 0647 = 00 A:FF X:02 Y:96 P:A5 SP:FB CYC: 30 SL:126 E94B EA NOP A:FF X:02 Y:96 P:27 SP:FB CYC: 54 SL:126 E94C EA NOP A:FF X:02 Y:96 P:27 SP:FB CYC: 60 SL:126 E94D EA NOP A:FF X:02 Y:96 P:27 SP:FB CYC: 66 SL:126 E94E EA NOP A:FF X:02 Y:96 P:27 SP:FB CYC: 72 SL:126 E94F 20 47 FA JSR $FA47 A:FF X:02 Y:96 P:27 SP:FB CYC: 78 SL:126 FA47 70 1C BVS $FA65 A:FF X:02 Y:96 P:27 SP:F9 CYC: 96 SL:126 FA49 D0 1A BNE $FA65 A:FF X:02 Y:96 P:27 SP:F9 CYC:102 SL:126 FA4B 30 18 BMI $FA65 A:FF X:02 Y:96 P:27 SP:F9 CYC:108 SL:126 FA4D 90 16 BCC $FA65 A:FF X:02 Y:96 P:27 SP:F9 CYC:114 SL:126 FA4F C9 FF CMP #$FF A:FF X:02 Y:96 P:27 SP:F9 CYC:120 SL:126 FA51 D0 12 BNE $FA65 A:FF X:02 Y:96 P:27 SP:F9 CYC:126 SL:126 FA53 60 RTS A:FF X:02 Y:96 P:27 SP:F9 CYC:132 SL:126 E952 AD 47 06 LDA $0647 = FF A:FF X:02 Y:96 P:27 SP:FB CYC:150 SL:126 E955 C9 FF CMP #$FF A:FF X:02 Y:96 P:A5 SP:FB CYC:162 SL:126 E957 F0 02 BEQ $E95B A:FF X:02 Y:96 P:27 SP:FB CYC:168 SL:126 E95B C8 INY A:FF X:02 Y:96 P:27 SP:FB CYC:177 SL:126 E95C A9 37 LDA #$37 A:FF X:02 Y:97 P:A5 SP:FB CYC:183 SL:126 E95E 8D 47 06 STA $0647 = FF A:37 X:02 Y:97 P:25 SP:FB CYC:189 SL:126 E961 20 54 FA JSR $FA54 A:37 X:02 Y:97 P:25 SP:FB CYC:201 SL:126 FA54 24 01 BIT $01 = FF A:37 X:02 Y:97 P:25 SP:F9 CYC:219 SL:126 FA56 A9 F0 LDA #$F0 A:37 X:02 Y:97 P:E5 SP:F9 CYC:228 SL:126 FA58 60 RTS A:F0 X:02 Y:97 P:E5 SP:F9 CYC:234 SL:126 E964 C3 45 *DCP ($45,X) @ 47 = 0647 = 37 A:F0 X:02 Y:97 P:E5 SP:FB CYC:252 SL:126 E966 EA NOP A:F0 X:02 Y:97 P:E5 SP:FB CYC:276 SL:126 E967 EA NOP A:F0 X:02 Y:97 P:E5 SP:FB CYC:282 SL:126 E968 EA NOP A:F0 X:02 Y:97 P:E5 SP:FB CYC:288 SL:126 E969 EA NOP A:F0 X:02 Y:97 P:E5 SP:FB CYC:294 SL:126 E96A 20 59 FA JSR $FA59 A:F0 X:02 Y:97 P:E5 SP:FB CYC:300 SL:126 FA59 50 0A BVC $FA65 A:F0 X:02 Y:97 P:E5 SP:F9 CYC:318 SL:126 FA5B F0 08 BEQ $FA65 A:F0 X:02 Y:97 P:E5 SP:F9 CYC:324 SL:126 FA5D 10 06 BPL $FA65 A:F0 X:02 Y:97 P:E5 SP:F9 CYC:330 SL:126 FA5F 90 04 BCC $FA65 A:F0 X:02 Y:97 P:E5 SP:F9 CYC:336 SL:126 FA61 C9 F0 CMP #$F0 A:F0 X:02 Y:97 P:E5 SP:F9 CYC: 1 SL:127 FA63 F0 02 BEQ $FA67 A:F0 X:02 Y:97 P:67 SP:F9 CYC: 7 SL:127 FA67 60 RTS A:F0 X:02 Y:97 P:67 SP:F9 CYC: 16 SL:127 E96D AD 47 06 LDA $0647 = 36 A:F0 X:02 Y:97 P:67 SP:FB CYC: 34 SL:127 E970 C9 36 CMP #$36 A:36 X:02 Y:97 P:65 SP:FB CYC: 46 SL:127 E972 F0 02 BEQ $E976 A:36 X:02 Y:97 P:67 SP:FB CYC: 52 SL:127 E976 C8 INY A:36 X:02 Y:97 P:67 SP:FB CYC: 61 SL:127 E977 A9 EB LDA #$EB A:36 X:02 Y:98 P:E5 SP:FB CYC: 67 SL:127 E979 85 47 STA $47 = 47 A:EB X:02 Y:98 P:E5 SP:FB CYC: 73 SL:127 E97B 20 31 FA JSR $FA31 A:EB X:02 Y:98 P:E5 SP:FB CYC: 82 SL:127 FA31 24 01 BIT $01 = FF A:EB X:02 Y:98 P:E5 SP:F9 CYC:100 SL:127 FA33 18 CLC A:EB X:02 Y:98 P:E5 SP:F9 CYC:109 SL:127 FA34 A9 40 LDA #$40 A:EB X:02 Y:98 P:E4 SP:F9 CYC:115 SL:127 FA36 60 RTS A:40 X:02 Y:98 P:64 SP:F9 CYC:121 SL:127 E97E C7 47 *DCP $47 = EB A:40 X:02 Y:98 P:64 SP:FB CYC:139 SL:127 E980 EA NOP A:40 X:02 Y:98 P:64 SP:FB CYC:154 SL:127 E981 EA NOP A:40 X:02 Y:98 P:64 SP:FB CYC:160 SL:127 E982 EA NOP A:40 X:02 Y:98 P:64 SP:FB CYC:166 SL:127 E983 EA NOP A:40 X:02 Y:98 P:64 SP:FB CYC:172 SL:127 E984 20 37 FA JSR $FA37 A:40 X:02 Y:98 P:64 SP:FB CYC:178 SL:127 FA37 50 2C BVC $FA65 A:40 X:02 Y:98 P:64 SP:F9 CYC:196 SL:127 FA39 B0 2A BCS $FA65 A:40 X:02 Y:98 P:64 SP:F9 CYC:202 SL:127 FA3B 30 28 BMI $FA65 A:40 X:02 Y:98 P:64 SP:F9 CYC:208 SL:127 FA3D C9 40 CMP #$40 A:40 X:02 Y:98 P:64 SP:F9 CYC:214 SL:127 FA3F D0 24 BNE $FA65 A:40 X:02 Y:98 P:67 SP:F9 CYC:220 SL:127 FA41 60 RTS A:40 X:02 Y:98 P:67 SP:F9 CYC:226 SL:127 E987 A5 47 LDA $47 = EA A:40 X:02 Y:98 P:67 SP:FB CYC:244 SL:127 E989 C9 EA CMP #$EA A:EA X:02 Y:98 P:E5 SP:FB CYC:253 SL:127 E98B F0 02 BEQ $E98F A:EA X:02 Y:98 P:67 SP:FB CYC:259 SL:127 E98F C8 INY A:EA X:02 Y:98 P:67 SP:FB CYC:268 SL:127 E990 A9 00 LDA #$00 A:EA X:02 Y:99 P:E5 SP:FB CYC:274 SL:127 E992 85 47 STA $47 = EA A:00 X:02 Y:99 P:67 SP:FB CYC:280 SL:127 E994 20 42 FA JSR $FA42 A:00 X:02 Y:99 P:67 SP:FB CYC:289 SL:127 FA42 B8 CLV A:00 X:02 Y:99 P:67 SP:F9 CYC:307 SL:127 FA43 38 SEC A:00 X:02 Y:99 P:27 SP:F9 CYC:313 SL:127 FA44 A9 FF LDA #$FF A:00 X:02 Y:99 P:27 SP:F9 CYC:319 SL:127 FA46 60 RTS A:FF X:02 Y:99 P:A5 SP:F9 CYC:325 SL:127 E997 C7 47 *DCP $47 = 00 A:FF X:02 Y:99 P:A5 SP:FB CYC: 2 SL:128 E999 EA NOP A:FF X:02 Y:99 P:27 SP:FB CYC: 17 SL:128 E99A EA NOP A:FF X:02 Y:99 P:27 SP:FB CYC: 23 SL:128 E99B EA NOP A:FF X:02 Y:99 P:27 SP:FB CYC: 29 SL:128 E99C EA NOP A:FF X:02 Y:99 P:27 SP:FB CYC: 35 SL:128 E99D 20 47 FA JSR $FA47 A:FF X:02 Y:99 P:27 SP:FB CYC: 41 SL:128 FA47 70 1C BVS $FA65 A:FF X:02 Y:99 P:27 SP:F9 CYC: 59 SL:128 FA49 D0 1A BNE $FA65 A:FF X:02 Y:99 P:27 SP:F9 CYC: 65 SL:128 FA4B 30 18 BMI $FA65 A:FF X:02 Y:99 P:27 SP:F9 CYC: 71 SL:128 FA4D 90 16 BCC $FA65 A:FF X:02 Y:99 P:27 SP:F9 CYC: 77 SL:128 FA4F C9 FF CMP #$FF A:FF X:02 Y:99 P:27 SP:F9 CYC: 83 SL:128 FA51 D0 12 BNE $FA65 A:FF X:02 Y:99 P:27 SP:F9 CYC: 89 SL:128 FA53 60 RTS A:FF X:02 Y:99 P:27 SP:F9 CYC: 95 SL:128 E9A0 A5 47 LDA $47 = FF A:FF X:02 Y:99 P:27 SP:FB CYC:113 SL:128 E9A2 C9 FF CMP #$FF A:FF X:02 Y:99 P:A5 SP:FB CYC:122 SL:128 E9A4 F0 02 BEQ $E9A8 A:FF X:02 Y:99 P:27 SP:FB CYC:128 SL:128 E9A8 C8 INY A:FF X:02 Y:99 P:27 SP:FB CYC:137 SL:128 E9A9 A9 37 LDA #$37 A:FF X:02 Y:9A P:A5 SP:FB CYC:143 SL:128 E9AB 85 47 STA $47 = FF A:37 X:02 Y:9A P:25 SP:FB CYC:149 SL:128 E9AD 20 54 FA JSR $FA54 A:37 X:02 Y:9A P:25 SP:FB CYC:158 SL:128 FA54 24 01 BIT $01 = FF A:37 X:02 Y:9A P:25 SP:F9 CYC:176 SL:128 FA56 A9 F0 LDA #$F0 A:37 X:02 Y:9A P:E5 SP:F9 CYC:185 SL:128 FA58 60 RTS A:F0 X:02 Y:9A P:E5 SP:F9 CYC:191 SL:128 E9B0 C7 47 *DCP $47 = 37 A:F0 X:02 Y:9A P:E5 SP:FB CYC:209 SL:128 E9B2 EA NOP A:F0 X:02 Y:9A P:E5 SP:FB CYC:224 SL:128 E9B3 EA NOP A:F0 X:02 Y:9A P:E5 SP:FB CYC:230 SL:128 E9B4 EA NOP A:F0 X:02 Y:9A P:E5 SP:FB CYC:236 SL:128 E9B5 EA NOP A:F0 X:02 Y:9A P:E5 SP:FB CYC:242 SL:128 E9B6 20 59 FA JSR $FA59 A:F0 X:02 Y:9A P:E5 SP:FB CYC:248 SL:128 FA59 50 0A BVC $FA65 A:F0 X:02 Y:9A P:E5 SP:F9 CYC:266 SL:128 FA5B F0 08 BEQ $FA65 A:F0 X:02 Y:9A P:E5 SP:F9 CYC:272 SL:128 FA5D 10 06 BPL $FA65 A:F0 X:02 Y:9A P:E5 SP:F9 CYC:278 SL:128 FA5F 90 04 BCC $FA65 A:F0 X:02 Y:9A P:E5 SP:F9 CYC:284 SL:128 FA61 C9 F0 CMP #$F0 A:F0 X:02 Y:9A P:E5 SP:F9 CYC:290 SL:128 FA63 F0 02 BEQ $FA67 A:F0 X:02 Y:9A P:67 SP:F9 CYC:296 SL:128 FA67 60 RTS A:F0 X:02 Y:9A P:67 SP:F9 CYC:305 SL:128 E9B9 A5 47 LDA $47 = 36 A:F0 X:02 Y:9A P:67 SP:FB CYC:323 SL:128 E9BB C9 36 CMP #$36 A:36 X:02 Y:9A P:65 SP:FB CYC:332 SL:128 E9BD F0 02 BEQ $E9C1 A:36 X:02 Y:9A P:67 SP:FB CYC:338 SL:128 E9C1 C8 INY A:36 X:02 Y:9A P:67 SP:FB CYC: 6 SL:129 E9C2 A9 EB LDA #$EB A:36 X:02 Y:9B P:E5 SP:FB CYC: 12 SL:129 E9C4 8D 47 06 STA $0647 = 36 A:EB X:02 Y:9B P:E5 SP:FB CYC: 18 SL:129 E9C7 20 31 FA JSR $FA31 A:EB X:02 Y:9B P:E5 SP:FB CYC: 30 SL:129 FA31 24 01 BIT $01 = FF A:EB X:02 Y:9B P:E5 SP:F9 CYC: 48 SL:129 FA33 18 CLC A:EB X:02 Y:9B P:E5 SP:F9 CYC: 57 SL:129 FA34 A9 40 LDA #$40 A:EB X:02 Y:9B P:E4 SP:F9 CYC: 63 SL:129 FA36 60 RTS A:40 X:02 Y:9B P:64 SP:F9 CYC: 69 SL:129 E9CA CF 47 06 *DCP $0647 = EB A:40 X:02 Y:9B P:64 SP:FB CYC: 87 SL:129 E9CD EA NOP A:40 X:02 Y:9B P:64 SP:FB CYC:105 SL:129 E9CE EA NOP A:40 X:02 Y:9B P:64 SP:FB CYC:111 SL:129 E9CF EA NOP A:40 X:02 Y:9B P:64 SP:FB CYC:117 SL:129 E9D0 EA NOP A:40 X:02 Y:9B P:64 SP:FB CYC:123 SL:129 E9D1 20 37 FA JSR $FA37 A:40 X:02 Y:9B P:64 SP:FB CYC:129 SL:129 FA37 50 2C BVC $FA65 A:40 X:02 Y:9B P:64 SP:F9 CYC:147 SL:129 FA39 B0 2A BCS $FA65 A:40 X:02 Y:9B P:64 SP:F9 CYC:153 SL:129 FA3B 30 28 BMI $FA65 A:40 X:02 Y:9B P:64 SP:F9 CYC:159 SL:129 FA3D C9 40 CMP #$40 A:40 X:02 Y:9B P:64 SP:F9 CYC:165 SL:129 FA3F D0 24 BNE $FA65 A:40 X:02 Y:9B P:67 SP:F9 CYC:171 SL:129 FA41 60 RTS A:40 X:02 Y:9B P:67 SP:F9 CYC:177 SL:129 E9D4 AD 47 06 LDA $0647 = EA A:40 X:02 Y:9B P:67 SP:FB CYC:195 SL:129 E9D7 C9 EA CMP #$EA A:EA X:02 Y:9B P:E5 SP:FB CYC:207 SL:129 E9D9 F0 02 BEQ $E9DD A:EA X:02 Y:9B P:67 SP:FB CYC:213 SL:129 E9DD C8 INY A:EA X:02 Y:9B P:67 SP:FB CYC:222 SL:129 E9DE A9 00 LDA #$00 A:EA X:02 Y:9C P:E5 SP:FB CYC:228 SL:129 E9E0 8D 47 06 STA $0647 = EA A:00 X:02 Y:9C P:67 SP:FB CYC:234 SL:129 E9E3 20 42 FA JSR $FA42 A:00 X:02 Y:9C P:67 SP:FB CYC:246 SL:129 FA42 B8 CLV A:00 X:02 Y:9C P:67 SP:F9 CYC:264 SL:129 FA43 38 SEC A:00 X:02 Y:9C P:27 SP:F9 CYC:270 SL:129 FA44 A9 FF LDA #$FF A:00 X:02 Y:9C P:27 SP:F9 CYC:276 SL:129 FA46 60 RTS A:FF X:02 Y:9C P:A5 SP:F9 CYC:282 SL:129 E9E6 CF 47 06 *DCP $0647 = 00 A:FF X:02 Y:9C P:A5 SP:FB CYC:300 SL:129 E9E9 EA NOP A:FF X:02 Y:9C P:27 SP:FB CYC:318 SL:129 E9EA EA NOP A:FF X:02 Y:9C P:27 SP:FB CYC:324 SL:129 E9EB EA NOP A:FF X:02 Y:9C P:27 SP:FB CYC:330 SL:129 E9EC EA NOP A:FF X:02 Y:9C P:27 SP:FB CYC:336 SL:129 E9ED 20 47 FA JSR $FA47 A:FF X:02 Y:9C P:27 SP:FB CYC: 1 SL:130 FA47 70 1C BVS $FA65 A:FF X:02 Y:9C P:27 SP:F9 CYC: 19 SL:130 FA49 D0 1A BNE $FA65 A:FF X:02 Y:9C P:27 SP:F9 CYC: 25 SL:130 FA4B 30 18 BMI $FA65 A:FF X:02 Y:9C P:27 SP:F9 CYC: 31 SL:130 FA4D 90 16 BCC $FA65 A:FF X:02 Y:9C P:27 SP:F9 CYC: 37 SL:130 FA4F C9 FF CMP #$FF A:FF X:02 Y:9C P:27 SP:F9 CYC: 43 SL:130 FA51 D0 12 BNE $FA65 A:FF X:02 Y:9C P:27 SP:F9 CYC: 49 SL:130 FA53 60 RTS A:FF X:02 Y:9C P:27 SP:F9 CYC: 55 SL:130 E9F0 AD 47 06 LDA $0647 = FF A:FF X:02 Y:9C P:27 SP:FB CYC: 73 SL:130 E9F3 C9 FF CMP #$FF A:FF X:02 Y:9C P:A5 SP:FB CYC: 85 SL:130 E9F5 F0 02 BEQ $E9F9 A:FF X:02 Y:9C P:27 SP:FB CYC: 91 SL:130 E9F9 C8 INY A:FF X:02 Y:9C P:27 SP:FB CYC:100 SL:130 E9FA A9 37 LDA #$37 A:FF X:02 Y:9D P:A5 SP:FB CYC:106 SL:130 E9FC 8D 47 06 STA $0647 = FF A:37 X:02 Y:9D P:25 SP:FB CYC:112 SL:130 E9FF 20 54 FA JSR $FA54 A:37 X:02 Y:9D P:25 SP:FB CYC:124 SL:130 FA54 24 01 BIT $01 = FF A:37 X:02 Y:9D P:25 SP:F9 CYC:142 SL:130 FA56 A9 F0 LDA #$F0 A:37 X:02 Y:9D P:E5 SP:F9 CYC:151 SL:130 FA58 60 RTS A:F0 X:02 Y:9D P:E5 SP:F9 CYC:157 SL:130 EA02 CF 47 06 *DCP $0647 = 37 A:F0 X:02 Y:9D P:E5 SP:FB CYC:175 SL:130 EA05 EA NOP A:F0 X:02 Y:9D P:E5 SP:FB CYC:193 SL:130 EA06 EA NOP A:F0 X:02 Y:9D P:E5 SP:FB CYC:199 SL:130 EA07 EA NOP A:F0 X:02 Y:9D P:E5 SP:FB CYC:205 SL:130 EA08 EA NOP A:F0 X:02 Y:9D P:E5 SP:FB CYC:211 SL:130 EA09 20 59 FA JSR $FA59 A:F0 X:02 Y:9D P:E5 SP:FB CYC:217 SL:130 FA59 50 0A BVC $FA65 A:F0 X:02 Y:9D P:E5 SP:F9 CYC:235 SL:130 FA5B F0 08 BEQ $FA65 A:F0 X:02 Y:9D P:E5 SP:F9 CYC:241 SL:130 FA5D 10 06 BPL $FA65 A:F0 X:02 Y:9D P:E5 SP:F9 CYC:247 SL:130 FA5F 90 04 BCC $FA65 A:F0 X:02 Y:9D P:E5 SP:F9 CYC:253 SL:130 FA61 C9 F0 CMP #$F0 A:F0 X:02 Y:9D P:E5 SP:F9 CYC:259 SL:130 FA63 F0 02 BEQ $FA67 A:F0 X:02 Y:9D P:67 SP:F9 CYC:265 SL:130 FA67 60 RTS A:F0 X:02 Y:9D P:67 SP:F9 CYC:274 SL:130 EA0C AD 47 06 LDA $0647 = 36 A:F0 X:02 Y:9D P:67 SP:FB CYC:292 SL:130 EA0F C9 36 CMP #$36 A:36 X:02 Y:9D P:65 SP:FB CYC:304 SL:130 EA11 F0 02 BEQ $EA15 A:36 X:02 Y:9D P:67 SP:FB CYC:310 SL:130 EA15 A9 EB LDA #$EB A:36 X:02 Y:9D P:67 SP:FB CYC:319 SL:130 EA17 8D 47 06 STA $0647 = 36 A:EB X:02 Y:9D P:E5 SP:FB CYC:325 SL:130 EA1A A9 48 LDA #$48 A:EB X:02 Y:9D P:E5 SP:FB CYC:337 SL:130 EA1C 85 45 STA $45 = 32 A:48 X:02 Y:9D P:65 SP:FB CYC: 2 SL:131 EA1E A9 05 LDA #$05 A:48 X:02 Y:9D P:65 SP:FB CYC: 11 SL:131 EA20 85 46 STA $46 = 04 A:05 X:02 Y:9D P:65 SP:FB CYC: 17 SL:131 EA22 A0 FF LDY #$FF A:05 X:02 Y:9D P:65 SP:FB CYC: 26 SL:131 EA24 20 31 FA JSR $FA31 A:05 X:02 Y:FF P:E5 SP:FB CYC: 32 SL:131 FA31 24 01 BIT $01 = FF A:05 X:02 Y:FF P:E5 SP:F9 CYC: 50 SL:131 FA33 18 CLC A:05 X:02 Y:FF P:E5 SP:F9 CYC: 59 SL:131 FA34 A9 40 LDA #$40 A:05 X:02 Y:FF P:E4 SP:F9 CYC: 65 SL:131 FA36 60 RTS A:40 X:02 Y:FF P:64 SP:F9 CYC: 71 SL:131 EA27 D3 45 *DCP ($45),Y = 0548 @ 0647 = EB A:40 X:02 Y:FF P:64 SP:FB CYC: 89 SL:131 EA29 EA NOP A:40 X:02 Y:FF P:64 SP:FB CYC:113 SL:131 EA2A EA NOP A:40 X:02 Y:FF P:64 SP:FB CYC:119 SL:131 EA2B 08 PHP A:40 X:02 Y:FF P:64 SP:FB CYC:125 SL:131 EA2C 48 PHA A:40 X:02 Y:FF P:64 SP:FA CYC:134 SL:131 EA2D A0 9E LDY #$9E A:40 X:02 Y:FF P:64 SP:F9 CYC:143 SL:131 EA2F 68 PLA A:40 X:02 Y:9E P:E4 SP:F9 CYC:149 SL:131 EA30 28 PLP A:40 X:02 Y:9E P:64 SP:FA CYC:161 SL:131 EA31 20 37 FA JSR $FA37 A:40 X:02 Y:9E P:64 SP:FB CYC:173 SL:131 FA37 50 2C BVC $FA65 A:40 X:02 Y:9E P:64 SP:F9 CYC:191 SL:131 FA39 B0 2A BCS $FA65 A:40 X:02 Y:9E P:64 SP:F9 CYC:197 SL:131 FA3B 30 28 BMI $FA65 A:40 X:02 Y:9E P:64 SP:F9 CYC:203 SL:131 FA3D C9 40 CMP #$40 A:40 X:02 Y:9E P:64 SP:F9 CYC:209 SL:131 FA3F D0 24 BNE $FA65 A:40 X:02 Y:9E P:67 SP:F9 CYC:215 SL:131 FA41 60 RTS A:40 X:02 Y:9E P:67 SP:F9 CYC:221 SL:131 EA34 AD 47 06 LDA $0647 = EA A:40 X:02 Y:9E P:67 SP:FB CYC:239 SL:131 EA37 C9 EA CMP #$EA A:EA X:02 Y:9E P:E5 SP:FB CYC:251 SL:131 EA39 F0 02 BEQ $EA3D A:EA X:02 Y:9E P:67 SP:FB CYC:257 SL:131 EA3D A0 FF LDY #$FF A:EA X:02 Y:9E P:67 SP:FB CYC:266 SL:131 EA3F A9 00 LDA #$00 A:EA X:02 Y:FF P:E5 SP:FB CYC:272 SL:131 EA41 8D 47 06 STA $0647 = EA A:00 X:02 Y:FF P:67 SP:FB CYC:278 SL:131 EA44 20 42 FA JSR $FA42 A:00 X:02 Y:FF P:67 SP:FB CYC:290 SL:131 FA42 B8 CLV A:00 X:02 Y:FF P:67 SP:F9 CYC:308 SL:131 FA43 38 SEC A:00 X:02 Y:FF P:27 SP:F9 CYC:314 SL:131 FA44 A9 FF LDA #$FF A:00 X:02 Y:FF P:27 SP:F9 CYC:320 SL:131 FA46 60 RTS A:FF X:02 Y:FF P:A5 SP:F9 CYC:326 SL:131 EA47 D3 45 *DCP ($45),Y = 0548 @ 0647 = 00 A:FF X:02 Y:FF P:A5 SP:FB CYC: 3 SL:132 EA49 EA NOP A:FF X:02 Y:FF P:27 SP:FB CYC: 27 SL:132 EA4A EA NOP A:FF X:02 Y:FF P:27 SP:FB CYC: 33 SL:132 EA4B 08 PHP A:FF X:02 Y:FF P:27 SP:FB CYC: 39 SL:132 EA4C 48 PHA A:FF X:02 Y:FF P:27 SP:FA CYC: 48 SL:132 EA4D A0 9F LDY #$9F A:FF X:02 Y:FF P:27 SP:F9 CYC: 57 SL:132 EA4F 68 PLA A:FF X:02 Y:9F P:A5 SP:F9 CYC: 63 SL:132 EA50 28 PLP A:FF X:02 Y:9F P:A5 SP:FA CYC: 75 SL:132 EA51 20 47 FA JSR $FA47 A:FF X:02 Y:9F P:27 SP:FB CYC: 87 SL:132 FA47 70 1C BVS $FA65 A:FF X:02 Y:9F P:27 SP:F9 CYC:105 SL:132 FA49 D0 1A BNE $FA65 A:FF X:02 Y:9F P:27 SP:F9 CYC:111 SL:132 FA4B 30 18 BMI $FA65 A:FF X:02 Y:9F P:27 SP:F9 CYC:117 SL:132 FA4D 90 16 BCC $FA65 A:FF X:02 Y:9F P:27 SP:F9 CYC:123 SL:132 FA4F C9 FF CMP #$FF A:FF X:02 Y:9F P:27 SP:F9 CYC:129 SL:132 FA51 D0 12 BNE $FA65 A:FF X:02 Y:9F P:27 SP:F9 CYC:135 SL:132 FA53 60 RTS A:FF X:02 Y:9F P:27 SP:F9 CYC:141 SL:132 EA54 AD 47 06 LDA $0647 = FF A:FF X:02 Y:9F P:27 SP:FB CYC:159 SL:132 EA57 C9 FF CMP #$FF A:FF X:02 Y:9F P:A5 SP:FB CYC:171 SL:132 EA59 F0 02 BEQ $EA5D A:FF X:02 Y:9F P:27 SP:FB CYC:177 SL:132 EA5D A0 FF LDY #$FF A:FF X:02 Y:9F P:27 SP:FB CYC:186 SL:132 EA5F A9 37 LDA #$37 A:FF X:02 Y:FF P:A5 SP:FB CYC:192 SL:132 EA61 8D 47 06 STA $0647 = FF A:37 X:02 Y:FF P:25 SP:FB CYC:198 SL:132 EA64 20 54 FA JSR $FA54 A:37 X:02 Y:FF P:25 SP:FB CYC:210 SL:132 FA54 24 01 BIT $01 = FF A:37 X:02 Y:FF P:25 SP:F9 CYC:228 SL:132 FA56 A9 F0 LDA #$F0 A:37 X:02 Y:FF P:E5 SP:F9 CYC:237 SL:132 FA58 60 RTS A:F0 X:02 Y:FF P:E5 SP:F9 CYC:243 SL:132 EA67 D3 45 *DCP ($45),Y = 0548 @ 0647 = 37 A:F0 X:02 Y:FF P:E5 SP:FB CYC:261 SL:132 EA69 EA NOP A:F0 X:02 Y:FF P:E5 SP:FB CYC:285 SL:132 EA6A EA NOP A:F0 X:02 Y:FF P:E5 SP:FB CYC:291 SL:132 EA6B 08 PHP A:F0 X:02 Y:FF P:E5 SP:FB CYC:297 SL:132 EA6C 48 PHA A:F0 X:02 Y:FF P:E5 SP:FA CYC:306 SL:132 EA6D A0 A0 LDY #$A0 A:F0 X:02 Y:FF P:E5 SP:F9 CYC:315 SL:132 EA6F 68 PLA A:F0 X:02 Y:A0 P:E5 SP:F9 CYC:321 SL:132 EA70 28 PLP A:F0 X:02 Y:A0 P:E5 SP:FA CYC:333 SL:132 EA71 20 59 FA JSR $FA59 A:F0 X:02 Y:A0 P:E5 SP:FB CYC: 4 SL:133 FA59 50 0A BVC $FA65 A:F0 X:02 Y:A0 P:E5 SP:F9 CYC: 22 SL:133 FA5B F0 08 BEQ $FA65 A:F0 X:02 Y:A0 P:E5 SP:F9 CYC: 28 SL:133 FA5D 10 06 BPL $FA65 A:F0 X:02 Y:A0 P:E5 SP:F9 CYC: 34 SL:133 FA5F 90 04 BCC $FA65 A:F0 X:02 Y:A0 P:E5 SP:F9 CYC: 40 SL:133 FA61 C9 F0 CMP #$F0 A:F0 X:02 Y:A0 P:E5 SP:F9 CYC: 46 SL:133 FA63 F0 02 BEQ $FA67 A:F0 X:02 Y:A0 P:67 SP:F9 CYC: 52 SL:133 FA67 60 RTS A:F0 X:02 Y:A0 P:67 SP:F9 CYC: 61 SL:133 EA74 AD 47 06 LDA $0647 = 36 A:F0 X:02 Y:A0 P:67 SP:FB CYC: 79 SL:133 EA77 C9 36 CMP #$36 A:36 X:02 Y:A0 P:65 SP:FB CYC: 91 SL:133 EA79 F0 02 BEQ $EA7D A:36 X:02 Y:A0 P:67 SP:FB CYC: 97 SL:133 EA7D A0 A1 LDY #$A1 A:36 X:02 Y:A0 P:67 SP:FB CYC:106 SL:133 EA7F A2 FF LDX #$FF A:36 X:02 Y:A1 P:E5 SP:FB CYC:112 SL:133 EA81 A9 EB LDA #$EB A:36 X:FF Y:A1 P:E5 SP:FB CYC:118 SL:133 EA83 85 47 STA $47 = 36 A:EB X:FF Y:A1 P:E5 SP:FB CYC:124 SL:133 EA85 20 31 FA JSR $FA31 A:EB X:FF Y:A1 P:E5 SP:FB CYC:133 SL:133 FA31 24 01 BIT $01 = FF A:EB X:FF Y:A1 P:E5 SP:F9 CYC:151 SL:133 FA33 18 CLC A:EB X:FF Y:A1 P:E5 SP:F9 CYC:160 SL:133 FA34 A9 40 LDA #$40 A:EB X:FF Y:A1 P:E4 SP:F9 CYC:166 SL:133 FA36 60 RTS A:40 X:FF Y:A1 P:64 SP:F9 CYC:172 SL:133 EA88 D7 48 *DCP $48,X @ 47 = EB A:40 X:FF Y:A1 P:64 SP:FB CYC:190 SL:133 EA8A EA NOP A:40 X:FF Y:A1 P:64 SP:FB CYC:208 SL:133 EA8B EA NOP A:40 X:FF Y:A1 P:64 SP:FB CYC:214 SL:133 EA8C EA NOP A:40 X:FF Y:A1 P:64 SP:FB CYC:220 SL:133 EA8D EA NOP A:40 X:FF Y:A1 P:64 SP:FB CYC:226 SL:133 EA8E 20 37 FA JSR $FA37 A:40 X:FF Y:A1 P:64 SP:FB CYC:232 SL:133 FA37 50 2C BVC $FA65 A:40 X:FF Y:A1 P:64 SP:F9 CYC:250 SL:133 FA39 B0 2A BCS $FA65 A:40 X:FF Y:A1 P:64 SP:F9 CYC:256 SL:133 FA3B 30 28 BMI $FA65 A:40 X:FF Y:A1 P:64 SP:F9 CYC:262 SL:133 FA3D C9 40 CMP #$40 A:40 X:FF Y:A1 P:64 SP:F9 CYC:268 SL:133 FA3F D0 24 BNE $FA65 A:40 X:FF Y:A1 P:67 SP:F9 CYC:274 SL:133 FA41 60 RTS A:40 X:FF Y:A1 P:67 SP:F9 CYC:280 SL:133 EA91 A5 47 LDA $47 = EA A:40 X:FF Y:A1 P:67 SP:FB CYC:298 SL:133 EA93 C9 EA CMP #$EA A:EA X:FF Y:A1 P:E5 SP:FB CYC:307 SL:133 EA95 F0 02 BEQ $EA99 A:EA X:FF Y:A1 P:67 SP:FB CYC:313 SL:133 EA99 C8 INY A:EA X:FF Y:A1 P:67 SP:FB CYC:322 SL:133 EA9A A9 00 LDA #$00 A:EA X:FF Y:A2 P:E5 SP:FB CYC:328 SL:133 EA9C 85 47 STA $47 = EA A:00 X:FF Y:A2 P:67 SP:FB CYC:334 SL:133 EA9E 20 42 FA JSR $FA42 A:00 X:FF Y:A2 P:67 SP:FB CYC: 2 SL:134 FA42 B8 CLV A:00 X:FF Y:A2 P:67 SP:F9 CYC: 20 SL:134 FA43 38 SEC A:00 X:FF Y:A2 P:27 SP:F9 CYC: 26 SL:134 FA44 A9 FF LDA #$FF A:00 X:FF Y:A2 P:27 SP:F9 CYC: 32 SL:134 FA46 60 RTS A:FF X:FF Y:A2 P:A5 SP:F9 CYC: 38 SL:134 EAA1 D7 48 *DCP $48,X @ 47 = 00 A:FF X:FF Y:A2 P:A5 SP:FB CYC: 56 SL:134 EAA3 EA NOP A:FF X:FF Y:A2 P:27 SP:FB CYC: 74 SL:134 EAA4 EA NOP A:FF X:FF Y:A2 P:27 SP:FB CYC: 80 SL:134 EAA5 EA NOP A:FF X:FF Y:A2 P:27 SP:FB CYC: 86 SL:134 EAA6 EA NOP A:FF X:FF Y:A2 P:27 SP:FB CYC: 92 SL:134 EAA7 20 47 FA JSR $FA47 A:FF X:FF Y:A2 P:27 SP:FB CYC: 98 SL:134 FA47 70 1C BVS $FA65 A:FF X:FF Y:A2 P:27 SP:F9 CYC:116 SL:134 FA49 D0 1A BNE $FA65 A:FF X:FF Y:A2 P:27 SP:F9 CYC:122 SL:134 FA4B 30 18 BMI $FA65 A:FF X:FF Y:A2 P:27 SP:F9 CYC:128 SL:134 FA4D 90 16 BCC $FA65 A:FF X:FF Y:A2 P:27 SP:F9 CYC:134 SL:134 FA4F C9 FF CMP #$FF A:FF X:FF Y:A2 P:27 SP:F9 CYC:140 SL:134 FA51 D0 12 BNE $FA65 A:FF X:FF Y:A2 P:27 SP:F9 CYC:146 SL:134 FA53 60 RTS A:FF X:FF Y:A2 P:27 SP:F9 CYC:152 SL:134 EAAA A5 47 LDA $47 = FF A:FF X:FF Y:A2 P:27 SP:FB CYC:170 SL:134 EAAC C9 FF CMP #$FF A:FF X:FF Y:A2 P:A5 SP:FB CYC:179 SL:134 EAAE F0 02 BEQ $EAB2 A:FF X:FF Y:A2 P:27 SP:FB CYC:185 SL:134 EAB2 C8 INY A:FF X:FF Y:A2 P:27 SP:FB CYC:194 SL:134 EAB3 A9 37 LDA #$37 A:FF X:FF Y:A3 P:A5 SP:FB CYC:200 SL:134 EAB5 85 47 STA $47 = FF A:37 X:FF Y:A3 P:25 SP:FB CYC:206 SL:134 EAB7 20 54 FA JSR $FA54 A:37 X:FF Y:A3 P:25 SP:FB CYC:215 SL:134 FA54 24 01 BIT $01 = FF A:37 X:FF Y:A3 P:25 SP:F9 CYC:233 SL:134 FA56 A9 F0 LDA #$F0 A:37 X:FF Y:A3 P:E5 SP:F9 CYC:242 SL:134 FA58 60 RTS A:F0 X:FF Y:A3 P:E5 SP:F9 CYC:248 SL:134 EABA D7 48 *DCP $48,X @ 47 = 37 A:F0 X:FF Y:A3 P:E5 SP:FB CYC:266 SL:134 EABC EA NOP A:F0 X:FF Y:A3 P:E5 SP:FB CYC:284 SL:134 EABD EA NOP A:F0 X:FF Y:A3 P:E5 SP:FB CYC:290 SL:134 EABE EA NOP A:F0 X:FF Y:A3 P:E5 SP:FB CYC:296 SL:134 EABF EA NOP A:F0 X:FF Y:A3 P:E5 SP:FB CYC:302 SL:134 EAC0 20 59 FA JSR $FA59 A:F0 X:FF Y:A3 P:E5 SP:FB CYC:308 SL:134 FA59 50 0A BVC $FA65 A:F0 X:FF Y:A3 P:E5 SP:F9 CYC:326 SL:134 FA5B F0 08 BEQ $FA65 A:F0 X:FF Y:A3 P:E5 SP:F9 CYC:332 SL:134 FA5D 10 06 BPL $FA65 A:F0 X:FF Y:A3 P:E5 SP:F9 CYC:338 SL:134 FA5F 90 04 BCC $FA65 A:F0 X:FF Y:A3 P:E5 SP:F9 CYC: 3 SL:135 FA61 C9 F0 CMP #$F0 A:F0 X:FF Y:A3 P:E5 SP:F9 CYC: 9 SL:135 FA63 F0 02 BEQ $FA67 A:F0 X:FF Y:A3 P:67 SP:F9 CYC: 15 SL:135 FA67 60 RTS A:F0 X:FF Y:A3 P:67 SP:F9 CYC: 24 SL:135 EAC3 A5 47 LDA $47 = 36 A:F0 X:FF Y:A3 P:67 SP:FB CYC: 42 SL:135 EAC5 C9 36 CMP #$36 A:36 X:FF Y:A3 P:65 SP:FB CYC: 51 SL:135 EAC7 F0 02 BEQ $EACB A:36 X:FF Y:A3 P:67 SP:FB CYC: 57 SL:135 EACB A9 EB LDA #$EB A:36 X:FF Y:A3 P:67 SP:FB CYC: 66 SL:135 EACD 8D 47 06 STA $0647 = 36 A:EB X:FF Y:A3 P:E5 SP:FB CYC: 72 SL:135 EAD0 A0 FF LDY #$FF A:EB X:FF Y:A3 P:E5 SP:FB CYC: 84 SL:135 EAD2 20 31 FA JSR $FA31 A:EB X:FF Y:FF P:E5 SP:FB CYC: 90 SL:135 FA31 24 01 BIT $01 = FF A:EB X:FF Y:FF P:E5 SP:F9 CYC:108 SL:135 FA33 18 CLC A:EB X:FF Y:FF P:E5 SP:F9 CYC:117 SL:135 FA34 A9 40 LDA #$40 A:EB X:FF Y:FF P:E4 SP:F9 CYC:123 SL:135 FA36 60 RTS A:40 X:FF Y:FF P:64 SP:F9 CYC:129 SL:135 EAD5 DB 48 05 *DCP $0548,Y @ 0647 = EB A:40 X:FF Y:FF P:64 SP:FB CYC:147 SL:135 EAD8 EA NOP A:40 X:FF Y:FF P:64 SP:FB CYC:168 SL:135 EAD9 EA NOP A:40 X:FF Y:FF P:64 SP:FB CYC:174 SL:135 EADA 08 PHP A:40 X:FF Y:FF P:64 SP:FB CYC:180 SL:135 EADB 48 PHA A:40 X:FF Y:FF P:64 SP:FA CYC:189 SL:135 EADC A0 A4 LDY #$A4 A:40 X:FF Y:FF P:64 SP:F9 CYC:198 SL:135 EADE 68 PLA A:40 X:FF Y:A4 P:E4 SP:F9 CYC:204 SL:135 EADF 28 PLP A:40 X:FF Y:A4 P:64 SP:FA CYC:216 SL:135 EAE0 20 37 FA JSR $FA37 A:40 X:FF Y:A4 P:64 SP:FB CYC:228 SL:135 FA37 50 2C BVC $FA65 A:40 X:FF Y:A4 P:64 SP:F9 CYC:246 SL:135 FA39 B0 2A BCS $FA65 A:40 X:FF Y:A4 P:64 SP:F9 CYC:252 SL:135 FA3B 30 28 BMI $FA65 A:40 X:FF Y:A4 P:64 SP:F9 CYC:258 SL:135 FA3D C9 40 CMP #$40 A:40 X:FF Y:A4 P:64 SP:F9 CYC:264 SL:135 FA3F D0 24 BNE $FA65 A:40 X:FF Y:A4 P:67 SP:F9 CYC:270 SL:135 FA41 60 RTS A:40 X:FF Y:A4 P:67 SP:F9 CYC:276 SL:135 EAE3 AD 47 06 LDA $0647 = EA A:40 X:FF Y:A4 P:67 SP:FB CYC:294 SL:135 EAE6 C9 EA CMP #$EA A:EA X:FF Y:A4 P:E5 SP:FB CYC:306 SL:135 EAE8 F0 02 BEQ $EAEC A:EA X:FF Y:A4 P:67 SP:FB CYC:312 SL:135 EAEC A0 FF LDY #$FF A:EA X:FF Y:A4 P:67 SP:FB CYC:321 SL:135 EAEE A9 00 LDA #$00 A:EA X:FF Y:FF P:E5 SP:FB CYC:327 SL:135 EAF0 8D 47 06 STA $0647 = EA A:00 X:FF Y:FF P:67 SP:FB CYC:333 SL:135 EAF3 20 42 FA JSR $FA42 A:00 X:FF Y:FF P:67 SP:FB CYC: 4 SL:136 FA42 B8 CLV A:00 X:FF Y:FF P:67 SP:F9 CYC: 22 SL:136 FA43 38 SEC A:00 X:FF Y:FF P:27 SP:F9 CYC: 28 SL:136 FA44 A9 FF LDA #$FF A:00 X:FF Y:FF P:27 SP:F9 CYC: 34 SL:136 FA46 60 RTS A:FF X:FF Y:FF P:A5 SP:F9 CYC: 40 SL:136 EAF6 DB 48 05 *DCP $0548,Y @ 0647 = 00 A:FF X:FF Y:FF P:A5 SP:FB CYC: 58 SL:136 EAF9 EA NOP A:FF X:FF Y:FF P:27 SP:FB CYC: 79 SL:136 EAFA EA NOP A:FF X:FF Y:FF P:27 SP:FB CYC: 85 SL:136 EAFB 08 PHP A:FF X:FF Y:FF P:27 SP:FB CYC: 91 SL:136 EAFC 48 PHA A:FF X:FF Y:FF P:27 SP:FA CYC:100 SL:136 EAFD A0 A5 LDY #$A5 A:FF X:FF Y:FF P:27 SP:F9 CYC:109 SL:136 EAFF 68 PLA A:FF X:FF Y:A5 P:A5 SP:F9 CYC:115 SL:136 EB00 28 PLP A:FF X:FF Y:A5 P:A5 SP:FA CYC:127 SL:136 EB01 20 47 FA JSR $FA47 A:FF X:FF Y:A5 P:27 SP:FB CYC:139 SL:136 FA47 70 1C BVS $FA65 A:FF X:FF Y:A5 P:27 SP:F9 CYC:157 SL:136 FA49 D0 1A BNE $FA65 A:FF X:FF Y:A5 P:27 SP:F9 CYC:163 SL:136 FA4B 30 18 BMI $FA65 A:FF X:FF Y:A5 P:27 SP:F9 CYC:169 SL:136 FA4D 90 16 BCC $FA65 A:FF X:FF Y:A5 P:27 SP:F9 CYC:175 SL:136 FA4F C9 FF CMP #$FF A:FF X:FF Y:A5 P:27 SP:F9 CYC:181 SL:136 FA51 D0 12 BNE $FA65 A:FF X:FF Y:A5 P:27 SP:F9 CYC:187 SL:136 FA53 60 RTS A:FF X:FF Y:A5 P:27 SP:F9 CYC:193 SL:136 EB04 AD 47 06 LDA $0647 = FF A:FF X:FF Y:A5 P:27 SP:FB CYC:211 SL:136 EB07 C9 FF CMP #$FF A:FF X:FF Y:A5 P:A5 SP:FB CYC:223 SL:136 EB09 F0 02 BEQ $EB0D A:FF X:FF Y:A5 P:27 SP:FB CYC:229 SL:136 EB0D A0 FF LDY #$FF A:FF X:FF Y:A5 P:27 SP:FB CYC:238 SL:136 EB0F A9 37 LDA #$37 A:FF X:FF Y:FF P:A5 SP:FB CYC:244 SL:136 EB11 8D 47 06 STA $0647 = FF A:37 X:FF Y:FF P:25 SP:FB CYC:250 SL:136 EB14 20 54 FA JSR $FA54 A:37 X:FF Y:FF P:25 SP:FB CYC:262 SL:136 FA54 24 01 BIT $01 = FF A:37 X:FF Y:FF P:25 SP:F9 CYC:280 SL:136 FA56 A9 F0 LDA #$F0 A:37 X:FF Y:FF P:E5 SP:F9 CYC:289 SL:136 FA58 60 RTS A:F0 X:FF Y:FF P:E5 SP:F9 CYC:295 SL:136 EB17 DB 48 05 *DCP $0548,Y @ 0647 = 37 A:F0 X:FF Y:FF P:E5 SP:FB CYC:313 SL:136 EB1A EA NOP A:F0 X:FF Y:FF P:E5 SP:FB CYC:334 SL:136 EB1B EA NOP A:F0 X:FF Y:FF P:E5 SP:FB CYC:340 SL:136 EB1C 08 PHP A:F0 X:FF Y:FF P:E5 SP:FB CYC: 5 SL:137 EB1D 48 PHA A:F0 X:FF Y:FF P:E5 SP:FA CYC: 14 SL:137 EB1E A0 A6 LDY #$A6 A:F0 X:FF Y:FF P:E5 SP:F9 CYC: 23 SL:137 EB20 68 PLA A:F0 X:FF Y:A6 P:E5 SP:F9 CYC: 29 SL:137 EB21 28 PLP A:F0 X:FF Y:A6 P:E5 SP:FA CYC: 41 SL:137 EB22 20 59 FA JSR $FA59 A:F0 X:FF Y:A6 P:E5 SP:FB CYC: 53 SL:137 FA59 50 0A BVC $FA65 A:F0 X:FF Y:A6 P:E5 SP:F9 CYC: 71 SL:137 FA5B F0 08 BEQ $FA65 A:F0 X:FF Y:A6 P:E5 SP:F9 CYC: 77 SL:137 FA5D 10 06 BPL $FA65 A:F0 X:FF Y:A6 P:E5 SP:F9 CYC: 83 SL:137 FA5F 90 04 BCC $FA65 A:F0 X:FF Y:A6 P:E5 SP:F9 CYC: 89 SL:137 FA61 C9 F0 CMP #$F0 A:F0 X:FF Y:A6 P:E5 SP:F9 CYC: 95 SL:137 FA63 F0 02 BEQ $FA67 A:F0 X:FF Y:A6 P:67 SP:F9 CYC:101 SL:137 FA67 60 RTS A:F0 X:FF Y:A6 P:67 SP:F9 CYC:110 SL:137 EB25 AD 47 06 LDA $0647 = 36 A:F0 X:FF Y:A6 P:67 SP:FB CYC:128 SL:137 EB28 C9 36 CMP #$36 A:36 X:FF Y:A6 P:65 SP:FB CYC:140 SL:137 EB2A F0 02 BEQ $EB2E A:36 X:FF Y:A6 P:67 SP:FB CYC:146 SL:137 EB2E A0 A7 LDY #$A7 A:36 X:FF Y:A6 P:67 SP:FB CYC:155 SL:137 EB30 A2 FF LDX #$FF A:36 X:FF Y:A7 P:E5 SP:FB CYC:161 SL:137 EB32 A9 EB LDA #$EB A:36 X:FF Y:A7 P:E5 SP:FB CYC:167 SL:137 EB34 8D 47 06 STA $0647 = 36 A:EB X:FF Y:A7 P:E5 SP:FB CYC:173 SL:137 EB37 20 31 FA JSR $FA31 A:EB X:FF Y:A7 P:E5 SP:FB CYC:185 SL:137 FA31 24 01 BIT $01 = FF A:EB X:FF Y:A7 P:E5 SP:F9 CYC:203 SL:137 FA33 18 CLC A:EB X:FF Y:A7 P:E5 SP:F9 CYC:212 SL:137 FA34 A9 40 LDA #$40 A:EB X:FF Y:A7 P:E4 SP:F9 CYC:218 SL:137 FA36 60 RTS A:40 X:FF Y:A7 P:64 SP:F9 CYC:224 SL:137 EB3A DF 48 05 *DCP $0548,X @ 0647 = EB A:40 X:FF Y:A7 P:64 SP:FB CYC:242 SL:137 EB3D EA NOP A:40 X:FF Y:A7 P:64 SP:FB CYC:263 SL:137 EB3E EA NOP A:40 X:FF Y:A7 P:64 SP:FB CYC:269 SL:137 EB3F EA NOP A:40 X:FF Y:A7 P:64 SP:FB CYC:275 SL:137 EB40 EA NOP A:40 X:FF Y:A7 P:64 SP:FB CYC:281 SL:137 EB41 20 37 FA JSR $FA37 A:40 X:FF Y:A7 P:64 SP:FB CYC:287 SL:137 FA37 50 2C BVC $FA65 A:40 X:FF Y:A7 P:64 SP:F9 CYC:305 SL:137 FA39 B0 2A BCS $FA65 A:40 X:FF Y:A7 P:64 SP:F9 CYC:311 SL:137 FA3B 30 28 BMI $FA65 A:40 X:FF Y:A7 P:64 SP:F9 CYC:317 SL:137 FA3D C9 40 CMP #$40 A:40 X:FF Y:A7 P:64 SP:F9 CYC:323 SL:137 FA3F D0 24 BNE $FA65 A:40 X:FF Y:A7 P:67 SP:F9 CYC:329 SL:137 FA41 60 RTS A:40 X:FF Y:A7 P:67 SP:F9 CYC:335 SL:137 EB44 AD 47 06 LDA $0647 = EA A:40 X:FF Y:A7 P:67 SP:FB CYC: 12 SL:138 EB47 C9 EA CMP #$EA A:EA X:FF Y:A7 P:E5 SP:FB CYC: 24 SL:138 EB49 F0 02 BEQ $EB4D A:EA X:FF Y:A7 P:67 SP:FB CYC: 30 SL:138 EB4D C8 INY A:EA X:FF Y:A7 P:67 SP:FB CYC: 39 SL:138 EB4E A9 00 LDA #$00 A:EA X:FF Y:A8 P:E5 SP:FB CYC: 45 SL:138 EB50 8D 47 06 STA $0647 = EA A:00 X:FF Y:A8 P:67 SP:FB CYC: 51 SL:138 EB53 20 42 FA JSR $FA42 A:00 X:FF Y:A8 P:67 SP:FB CYC: 63 SL:138 FA42 B8 CLV A:00 X:FF Y:A8 P:67 SP:F9 CYC: 81 SL:138 FA43 38 SEC A:00 X:FF Y:A8 P:27 SP:F9 CYC: 87 SL:138 FA44 A9 FF LDA #$FF A:00 X:FF Y:A8 P:27 SP:F9 CYC: 93 SL:138 FA46 60 RTS A:FF X:FF Y:A8 P:A5 SP:F9 CYC: 99 SL:138 EB56 DF 48 05 *DCP $0548,X @ 0647 = 00 A:FF X:FF Y:A8 P:A5 SP:FB CYC:117 SL:138 EB59 EA NOP A:FF X:FF Y:A8 P:27 SP:FB CYC:138 SL:138 EB5A EA NOP A:FF X:FF Y:A8 P:27 SP:FB CYC:144 SL:138 EB5B EA NOP A:FF X:FF Y:A8 P:27 SP:FB CYC:150 SL:138 EB5C EA NOP A:FF X:FF Y:A8 P:27 SP:FB CYC:156 SL:138 EB5D 20 47 FA JSR $FA47 A:FF X:FF Y:A8 P:27 SP:FB CYC:162 SL:138 FA47 70 1C BVS $FA65 A:FF X:FF Y:A8 P:27 SP:F9 CYC:180 SL:138 FA49 D0 1A BNE $FA65 A:FF X:FF Y:A8 P:27 SP:F9 CYC:186 SL:138 FA4B 30 18 BMI $FA65 A:FF X:FF Y:A8 P:27 SP:F9 CYC:192 SL:138 FA4D 90 16 BCC $FA65 A:FF X:FF Y:A8 P:27 SP:F9 CYC:198 SL:138 FA4F C9 FF CMP #$FF A:FF X:FF Y:A8 P:27 SP:F9 CYC:204 SL:138 FA51 D0 12 BNE $FA65 A:FF X:FF Y:A8 P:27 SP:F9 CYC:210 SL:138 FA53 60 RTS A:FF X:FF Y:A8 P:27 SP:F9 CYC:216 SL:138 EB60 AD 47 06 LDA $0647 = FF A:FF X:FF Y:A8 P:27 SP:FB CYC:234 SL:138 EB63 C9 FF CMP #$FF A:FF X:FF Y:A8 P:A5 SP:FB CYC:246 SL:138 EB65 F0 02 BEQ $EB69 A:FF X:FF Y:A8 P:27 SP:FB CYC:252 SL:138 EB69 C8 INY A:FF X:FF Y:A8 P:27 SP:FB CYC:261 SL:138 EB6A A9 37 LDA #$37 A:FF X:FF Y:A9 P:A5 SP:FB CYC:267 SL:138 EB6C 8D 47 06 STA $0647 = FF A:37 X:FF Y:A9 P:25 SP:FB CYC:273 SL:138 EB6F 20 54 FA JSR $FA54 A:37 X:FF Y:A9 P:25 SP:FB CYC:285 SL:138 FA54 24 01 BIT $01 = FF A:37 X:FF Y:A9 P:25 SP:F9 CYC:303 SL:138 FA56 A9 F0 LDA #$F0 A:37 X:FF Y:A9 P:E5 SP:F9 CYC:312 SL:138 FA58 60 RTS A:F0 X:FF Y:A9 P:E5 SP:F9 CYC:318 SL:138 EB72 DF 48 05 *DCP $0548,X @ 0647 = 37 A:F0 X:FF Y:A9 P:E5 SP:FB CYC:336 SL:138 EB75 EA NOP A:F0 X:FF Y:A9 P:E5 SP:FB CYC: 16 SL:139 EB76 EA NOP A:F0 X:FF Y:A9 P:E5 SP:FB CYC: 22 SL:139 EB77 EA NOP A:F0 X:FF Y:A9 P:E5 SP:FB CYC: 28 SL:139 EB78 EA NOP A:F0 X:FF Y:A9 P:E5 SP:FB CYC: 34 SL:139 EB79 20 59 FA JSR $FA59 A:F0 X:FF Y:A9 P:E5 SP:FB CYC: 40 SL:139 FA59 50 0A BVC $FA65 A:F0 X:FF Y:A9 P:E5 SP:F9 CYC: 58 SL:139 FA5B F0 08 BEQ $FA65 A:F0 X:FF Y:A9 P:E5 SP:F9 CYC: 64 SL:139 FA5D 10 06 BPL $FA65 A:F0 X:FF Y:A9 P:E5 SP:F9 CYC: 70 SL:139 FA5F 90 04 BCC $FA65 A:F0 X:FF Y:A9 P:E5 SP:F9 CYC: 76 SL:139 FA61 C9 F0 CMP #$F0 A:F0 X:FF Y:A9 P:E5 SP:F9 CYC: 82 SL:139 FA63 F0 02 BEQ $FA67 A:F0 X:FF Y:A9 P:67 SP:F9 CYC: 88 SL:139 FA67 60 RTS A:F0 X:FF Y:A9 P:67 SP:F9 CYC: 97 SL:139 EB7C AD 47 06 LDA $0647 = 36 A:F0 X:FF Y:A9 P:67 SP:FB CYC:115 SL:139 EB7F C9 36 CMP #$36 A:36 X:FF Y:A9 P:65 SP:FB CYC:127 SL:139 EB81 F0 02 BEQ $EB85 A:36 X:FF Y:A9 P:67 SP:FB CYC:133 SL:139 EB85 60 RTS A:36 X:FF Y:A9 P:67 SP:FB CYC:142 SL:139 C63E 20 86 EB JSR $EB86 A:36 X:FF Y:A9 P:67 SP:FD CYC:160 SL:139 EB86 A9 FF LDA #$FF A:36 X:FF Y:A9 P:67 SP:FB CYC:178 SL:139 EB88 85 01 STA $01 = FF A:FF X:FF Y:A9 P:E5 SP:FB CYC:184 SL:139 EB8A A0 AA LDY #$AA A:FF X:FF Y:A9 P:E5 SP:FB CYC:193 SL:139 EB8C A2 02 LDX #$02 A:FF X:FF Y:AA P:E5 SP:FB CYC:199 SL:139 EB8E A9 47 LDA #$47 A:FF X:02 Y:AA P:65 SP:FB CYC:205 SL:139 EB90 85 47 STA $47 = 36 A:47 X:02 Y:AA P:65 SP:FB CYC:211 SL:139 EB92 A9 06 LDA #$06 A:47 X:02 Y:AA P:65 SP:FB CYC:220 SL:139 EB94 85 48 STA $48 = 06 A:06 X:02 Y:AA P:65 SP:FB CYC:226 SL:139 EB96 A9 EB LDA #$EB A:06 X:02 Y:AA P:65 SP:FB CYC:235 SL:139 EB98 8D 47 06 STA $0647 = 36 A:EB X:02 Y:AA P:E5 SP:FB CYC:241 SL:139 EB9B 20 B1 FA JSR $FAB1 A:EB X:02 Y:AA P:E5 SP:FB CYC:253 SL:139 FAB1 24 01 BIT $01 = FF A:EB X:02 Y:AA P:E5 SP:F9 CYC:271 SL:139 FAB3 18 CLC A:EB X:02 Y:AA P:E5 SP:F9 CYC:280 SL:139 FAB4 A9 40 LDA #$40 A:EB X:02 Y:AA P:E4 SP:F9 CYC:286 SL:139 FAB6 60 RTS A:40 X:02 Y:AA P:64 SP:F9 CYC:292 SL:139 EB9E E3 45 *ISB ($45,X) @ 47 = 0647 = EB A:40 X:02 Y:AA P:64 SP:FB CYC:310 SL:139 EBA0 EA NOP A:53 X:02 Y:AA P:24 SP:FB CYC:334 SL:139 EBA1 EA NOP A:53 X:02 Y:AA P:24 SP:FB CYC:340 SL:139 EBA2 EA NOP A:53 X:02 Y:AA P:24 SP:FB CYC: 5 SL:140 EBA3 EA NOP A:53 X:02 Y:AA P:24 SP:FB CYC: 11 SL:140 EBA4 20 B7 FA JSR $FAB7 A:53 X:02 Y:AA P:24 SP:FB CYC: 17 SL:140 FAB7 70 2D BVS $FAE6 A:53 X:02 Y:AA P:24 SP:F9 CYC: 35 SL:140 FAB9 B0 2B BCS $FAE6 A:53 X:02 Y:AA P:24 SP:F9 CYC: 41 SL:140 FABB 30 29 BMI $FAE6 A:53 X:02 Y:AA P:24 SP:F9 CYC: 47 SL:140 FABD C9 53 CMP #$53 A:53 X:02 Y:AA P:24 SP:F9 CYC: 53 SL:140 FABF D0 25 BNE $FAE6 A:53 X:02 Y:AA P:27 SP:F9 CYC: 59 SL:140 FAC1 60 RTS A:53 X:02 Y:AA P:27 SP:F9 CYC: 65 SL:140 EBA7 AD 47 06 LDA $0647 = EC A:53 X:02 Y:AA P:27 SP:FB CYC: 83 SL:140 EBAA C9 EC CMP #$EC A:EC X:02 Y:AA P:A5 SP:FB CYC: 95 SL:140 EBAC F0 02 BEQ $EBB0 A:EC X:02 Y:AA P:27 SP:FB CYC:101 SL:140 EBB0 C8 INY A:EC X:02 Y:AA P:27 SP:FB CYC:110 SL:140 EBB1 A9 FF LDA #$FF A:EC X:02 Y:AB P:A5 SP:FB CYC:116 SL:140 EBB3 8D 47 06 STA $0647 = EC A:FF X:02 Y:AB P:A5 SP:FB CYC:122 SL:140 EBB6 20 C2 FA JSR $FAC2 A:FF X:02 Y:AB P:A5 SP:FB CYC:134 SL:140 FAC2 B8 CLV A:FF X:02 Y:AB P:A5 SP:F9 CYC:152 SL:140 FAC3 38 SEC A:FF X:02 Y:AB P:A5 SP:F9 CYC:158 SL:140 FAC4 A9 FF LDA #$FF A:FF X:02 Y:AB P:A5 SP:F9 CYC:164 SL:140 FAC6 60 RTS A:FF X:02 Y:AB P:A5 SP:F9 CYC:170 SL:140 EBB9 E3 45 *ISB ($45,X) @ 47 = 0647 = FF A:FF X:02 Y:AB P:A5 SP:FB CYC:188 SL:140 EBBB EA NOP A:FF X:02 Y:AB P:A5 SP:FB CYC:212 SL:140 EBBC EA NOP A:FF X:02 Y:AB P:A5 SP:FB CYC:218 SL:140 EBBD EA NOP A:FF X:02 Y:AB P:A5 SP:FB CYC:224 SL:140 EBBE EA NOP A:FF X:02 Y:AB P:A5 SP:FB CYC:230 SL:140 EBBF 20 C7 FA JSR $FAC7 A:FF X:02 Y:AB P:A5 SP:FB CYC:236 SL:140 FAC7 70 1D BVS $FAE6 A:FF X:02 Y:AB P:A5 SP:F9 CYC:254 SL:140 FAC9 F0 1B BEQ $FAE6 A:FF X:02 Y:AB P:A5 SP:F9 CYC:260 SL:140 FACB 10 19 BPL $FAE6 A:FF X:02 Y:AB P:A5 SP:F9 CYC:266 SL:140 FACD 90 17 BCC $FAE6 A:FF X:02 Y:AB P:A5 SP:F9 CYC:272 SL:140 FACF C9 FF CMP #$FF A:FF X:02 Y:AB P:A5 SP:F9 CYC:278 SL:140 FAD1 D0 13 BNE $FAE6 A:FF X:02 Y:AB P:27 SP:F9 CYC:284 SL:140 FAD3 60 RTS A:FF X:02 Y:AB P:27 SP:F9 CYC:290 SL:140 EBC2 AD 47 06 LDA $0647 = 00 A:FF X:02 Y:AB P:27 SP:FB CYC:308 SL:140 EBC5 C9 00 CMP #$00 A:00 X:02 Y:AB P:27 SP:FB CYC:320 SL:140 EBC7 F0 02 BEQ $EBCB A:00 X:02 Y:AB P:27 SP:FB CYC:326 SL:140 EBCB C8 INY A:00 X:02 Y:AB P:27 SP:FB CYC:335 SL:140 EBCC A9 37 LDA #$37 A:00 X:02 Y:AC P:A5 SP:FB CYC: 0 SL:141 EBCE 8D 47 06 STA $0647 = 00 A:37 X:02 Y:AC P:25 SP:FB CYC: 6 SL:141 EBD1 20 D4 FA JSR $FAD4 A:37 X:02 Y:AC P:25 SP:FB CYC: 18 SL:141 FAD4 24 01 BIT $01 = FF A:37 X:02 Y:AC P:25 SP:F9 CYC: 36 SL:141 FAD6 38 SEC A:37 X:02 Y:AC P:E5 SP:F9 CYC: 45 SL:141 FAD7 A9 F0 LDA #$F0 A:37 X:02 Y:AC P:E5 SP:F9 CYC: 51 SL:141 FAD9 60 RTS A:F0 X:02 Y:AC P:E5 SP:F9 CYC: 57 SL:141 EBD4 E3 45 *ISB ($45,X) @ 47 = 0647 = 37 A:F0 X:02 Y:AC P:E5 SP:FB CYC: 75 SL:141 EBD6 EA NOP A:B8 X:02 Y:AC P:A5 SP:FB CYC: 99 SL:141 EBD7 EA NOP A:B8 X:02 Y:AC P:A5 SP:FB CYC:105 SL:141 EBD8 EA NOP A:B8 X:02 Y:AC P:A5 SP:FB CYC:111 SL:141 EBD9 EA NOP A:B8 X:02 Y:AC P:A5 SP:FB CYC:117 SL:141 EBDA 20 DA FA JSR $FADA A:B8 X:02 Y:AC P:A5 SP:FB CYC:123 SL:141 FADA 70 0A BVS $FAE6 A:B8 X:02 Y:AC P:A5 SP:F9 CYC:141 SL:141 FADC F0 08 BEQ $FAE6 A:B8 X:02 Y:AC P:A5 SP:F9 CYC:147 SL:141 FADE 10 06 BPL $FAE6 A:B8 X:02 Y:AC P:A5 SP:F9 CYC:153 SL:141 FAE0 90 04 BCC $FAE6 A:B8 X:02 Y:AC P:A5 SP:F9 CYC:159 SL:141 FAE2 C9 B8 CMP #$B8 A:B8 X:02 Y:AC P:A5 SP:F9 CYC:165 SL:141 FAE4 F0 02 BEQ $FAE8 A:B8 X:02 Y:AC P:27 SP:F9 CYC:171 SL:141 FAE8 60 RTS A:B8 X:02 Y:AC P:27 SP:F9 CYC:180 SL:141 EBDD AD 47 06 LDA $0647 = 38 A:B8 X:02 Y:AC P:27 SP:FB CYC:198 SL:141 EBE0 C9 38 CMP #$38 A:38 X:02 Y:AC P:25 SP:FB CYC:210 SL:141 EBE2 F0 02 BEQ $EBE6 A:38 X:02 Y:AC P:27 SP:FB CYC:216 SL:141 EBE6 C8 INY A:38 X:02 Y:AC P:27 SP:FB CYC:225 SL:141 EBE7 A9 EB LDA #$EB A:38 X:02 Y:AD P:A5 SP:FB CYC:231 SL:141 EBE9 85 47 STA $47 = 47 A:EB X:02 Y:AD P:A5 SP:FB CYC:237 SL:141 EBEB 20 B1 FA JSR $FAB1 A:EB X:02 Y:AD P:A5 SP:FB CYC:246 SL:141 FAB1 24 01 BIT $01 = FF A:EB X:02 Y:AD P:A5 SP:F9 CYC:264 SL:141 FAB3 18 CLC A:EB X:02 Y:AD P:E5 SP:F9 CYC:273 SL:141 FAB4 A9 40 LDA #$40 A:EB X:02 Y:AD P:E4 SP:F9 CYC:279 SL:141 FAB6 60 RTS A:40 X:02 Y:AD P:64 SP:F9 CYC:285 SL:141 EBEE E7 47 *ISB $47 = EB A:40 X:02 Y:AD P:64 SP:FB CYC:303 SL:141 EBF0 EA NOP A:53 X:02 Y:AD P:24 SP:FB CYC:318 SL:141 EBF1 EA NOP A:53 X:02 Y:AD P:24 SP:FB CYC:324 SL:141 EBF2 EA NOP A:53 X:02 Y:AD P:24 SP:FB CYC:330 SL:141 EBF3 EA NOP A:53 X:02 Y:AD P:24 SP:FB CYC:336 SL:141 EBF4 20 B7 FA JSR $FAB7 A:53 X:02 Y:AD P:24 SP:FB CYC: 1 SL:142 FAB7 70 2D BVS $FAE6 A:53 X:02 Y:AD P:24 SP:F9 CYC: 19 SL:142 FAB9 B0 2B BCS $FAE6 A:53 X:02 Y:AD P:24 SP:F9 CYC: 25 SL:142 FABB 30 29 BMI $FAE6 A:53 X:02 Y:AD P:24 SP:F9 CYC: 31 SL:142 FABD C9 53 CMP #$53 A:53 X:02 Y:AD P:24 SP:F9 CYC: 37 SL:142 FABF D0 25 BNE $FAE6 A:53 X:02 Y:AD P:27 SP:F9 CYC: 43 SL:142 FAC1 60 RTS A:53 X:02 Y:AD P:27 SP:F9 CYC: 49 SL:142 EBF7 A5 47 LDA $47 = EC A:53 X:02 Y:AD P:27 SP:FB CYC: 67 SL:142 EBF9 C9 EC CMP #$EC A:EC X:02 Y:AD P:A5 SP:FB CYC: 76 SL:142 EBFB F0 02 BEQ $EBFF A:EC X:02 Y:AD P:27 SP:FB CYC: 82 SL:142 EBFF C8 INY A:EC X:02 Y:AD P:27 SP:FB CYC: 91 SL:142 EC00 A9 FF LDA #$FF A:EC X:02 Y:AE P:A5 SP:FB CYC: 97 SL:142 EC02 85 47 STA $47 = EC A:FF X:02 Y:AE P:A5 SP:FB CYC:103 SL:142 EC04 20 C2 FA JSR $FAC2 A:FF X:02 Y:AE P:A5 SP:FB CYC:112 SL:142 FAC2 B8 CLV A:FF X:02 Y:AE P:A5 SP:F9 CYC:130 SL:142 FAC3 38 SEC A:FF X:02 Y:AE P:A5 SP:F9 CYC:136 SL:142 FAC4 A9 FF LDA #$FF A:FF X:02 Y:AE P:A5 SP:F9 CYC:142 SL:142 FAC6 60 RTS A:FF X:02 Y:AE P:A5 SP:F9 CYC:148 SL:142 EC07 E7 47 *ISB $47 = FF A:FF X:02 Y:AE P:A5 SP:FB CYC:166 SL:142 EC09 EA NOP A:FF X:02 Y:AE P:A5 SP:FB CYC:181 SL:142 EC0A EA NOP A:FF X:02 Y:AE P:A5 SP:FB CYC:187 SL:142 EC0B EA NOP A:FF X:02 Y:AE P:A5 SP:FB CYC:193 SL:142 EC0C EA NOP A:FF X:02 Y:AE P:A5 SP:FB CYC:199 SL:142 EC0D 20 C7 FA JSR $FAC7 A:FF X:02 Y:AE P:A5 SP:FB CYC:205 SL:142 FAC7 70 1D BVS $FAE6 A:FF X:02 Y:AE P:A5 SP:F9 CYC:223 SL:142 FAC9 F0 1B BEQ $FAE6 A:FF X:02 Y:AE P:A5 SP:F9 CYC:229 SL:142 FACB 10 19 BPL $FAE6 A:FF X:02 Y:AE P:A5 SP:F9 CYC:235 SL:142 FACD 90 17 BCC $FAE6 A:FF X:02 Y:AE P:A5 SP:F9 CYC:241 SL:142 FACF C9 FF CMP #$FF A:FF X:02 Y:AE P:A5 SP:F9 CYC:247 SL:142 FAD1 D0 13 BNE $FAE6 A:FF X:02 Y:AE P:27 SP:F9 CYC:253 SL:142 FAD3 60 RTS A:FF X:02 Y:AE P:27 SP:F9 CYC:259 SL:142 EC10 A5 47 LDA $47 = 00 A:FF X:02 Y:AE P:27 SP:FB CYC:277 SL:142 EC12 C9 00 CMP #$00 A:00 X:02 Y:AE P:27 SP:FB CYC:286 SL:142 EC14 F0 02 BEQ $EC18 A:00 X:02 Y:AE P:27 SP:FB CYC:292 SL:142 EC18 C8 INY A:00 X:02 Y:AE P:27 SP:FB CYC:301 SL:142 EC19 A9 37 LDA #$37 A:00 X:02 Y:AF P:A5 SP:FB CYC:307 SL:142 EC1B 85 47 STA $47 = 00 A:37 X:02 Y:AF P:25 SP:FB CYC:313 SL:142 EC1D 20 D4 FA JSR $FAD4 A:37 X:02 Y:AF P:25 SP:FB CYC:322 SL:142 FAD4 24 01 BIT $01 = FF A:37 X:02 Y:AF P:25 SP:F9 CYC:340 SL:142 FAD6 38 SEC A:37 X:02 Y:AF P:E5 SP:F9 CYC: 8 SL:143 FAD7 A9 F0 LDA #$F0 A:37 X:02 Y:AF P:E5 SP:F9 CYC: 14 SL:143 FAD9 60 RTS A:F0 X:02 Y:AF P:E5 SP:F9 CYC: 20 SL:143 EC20 E7 47 *ISB $47 = 37 A:F0 X:02 Y:AF P:E5 SP:FB CYC: 38 SL:143 EC22 EA NOP A:B8 X:02 Y:AF P:A5 SP:FB CYC: 53 SL:143 EC23 EA NOP A:B8 X:02 Y:AF P:A5 SP:FB CYC: 59 SL:143 EC24 EA NOP A:B8 X:02 Y:AF P:A5 SP:FB CYC: 65 SL:143 EC25 EA NOP A:B8 X:02 Y:AF P:A5 SP:FB CYC: 71 SL:143 EC26 20 DA FA JSR $FADA A:B8 X:02 Y:AF P:A5 SP:FB CYC: 77 SL:143 FADA 70 0A BVS $FAE6 A:B8 X:02 Y:AF P:A5 SP:F9 CYC: 95 SL:143 FADC F0 08 BEQ $FAE6 A:B8 X:02 Y:AF P:A5 SP:F9 CYC:101 SL:143 FADE 10 06 BPL $FAE6 A:B8 X:02 Y:AF P:A5 SP:F9 CYC:107 SL:143 FAE0 90 04 BCC $FAE6 A:B8 X:02 Y:AF P:A5 SP:F9 CYC:113 SL:143 FAE2 C9 B8 CMP #$B8 A:B8 X:02 Y:AF P:A5 SP:F9 CYC:119 SL:143 FAE4 F0 02 BEQ $FAE8 A:B8 X:02 Y:AF P:27 SP:F9 CYC:125 SL:143 FAE8 60 RTS A:B8 X:02 Y:AF P:27 SP:F9 CYC:134 SL:143 EC29 A5 47 LDA $47 = 38 A:B8 X:02 Y:AF P:27 SP:FB CYC:152 SL:143 EC2B C9 38 CMP #$38 A:38 X:02 Y:AF P:25 SP:FB CYC:161 SL:143 EC2D F0 02 BEQ $EC31 A:38 X:02 Y:AF P:27 SP:FB CYC:167 SL:143 EC31 C8 INY A:38 X:02 Y:AF P:27 SP:FB CYC:176 SL:143 EC32 A9 EB LDA #$EB A:38 X:02 Y:B0 P:A5 SP:FB CYC:182 SL:143 EC34 8D 47 06 STA $0647 = 38 A:EB X:02 Y:B0 P:A5 SP:FB CYC:188 SL:143 EC37 20 B1 FA JSR $FAB1 A:EB X:02 Y:B0 P:A5 SP:FB CYC:200 SL:143 FAB1 24 01 BIT $01 = FF A:EB X:02 Y:B0 P:A5 SP:F9 CYC:218 SL:143 FAB3 18 CLC A:EB X:02 Y:B0 P:E5 SP:F9 CYC:227 SL:143 FAB4 A9 40 LDA #$40 A:EB X:02 Y:B0 P:E4 SP:F9 CYC:233 SL:143 FAB6 60 RTS A:40 X:02 Y:B0 P:64 SP:F9 CYC:239 SL:143 EC3A EF 47 06 *ISB $0647 = EB A:40 X:02 Y:B0 P:64 SP:FB CYC:257 SL:143 EC3D EA NOP A:53 X:02 Y:B0 P:24 SP:FB CYC:275 SL:143 EC3E EA NOP A:53 X:02 Y:B0 P:24 SP:FB CYC:281 SL:143 EC3F EA NOP A:53 X:02 Y:B0 P:24 SP:FB CYC:287 SL:143 EC40 EA NOP A:53 X:02 Y:B0 P:24 SP:FB CYC:293 SL:143 EC41 20 B7 FA JSR $FAB7 A:53 X:02 Y:B0 P:24 SP:FB CYC:299 SL:143 FAB7 70 2D BVS $FAE6 A:53 X:02 Y:B0 P:24 SP:F9 CYC:317 SL:143 FAB9 B0 2B BCS $FAE6 A:53 X:02 Y:B0 P:24 SP:F9 CYC:323 SL:143 FABB 30 29 BMI $FAE6 A:53 X:02 Y:B0 P:24 SP:F9 CYC:329 SL:143 FABD C9 53 CMP #$53 A:53 X:02 Y:B0 P:24 SP:F9 CYC:335 SL:143 FABF D0 25 BNE $FAE6 A:53 X:02 Y:B0 P:27 SP:F9 CYC: 0 SL:144 FAC1 60 RTS A:53 X:02 Y:B0 P:27 SP:F9 CYC: 6 SL:144 EC44 AD 47 06 LDA $0647 = EC A:53 X:02 Y:B0 P:27 SP:FB CYC: 24 SL:144 EC47 C9 EC CMP #$EC A:EC X:02 Y:B0 P:A5 SP:FB CYC: 36 SL:144 EC49 F0 02 BEQ $EC4D A:EC X:02 Y:B0 P:27 SP:FB CYC: 42 SL:144 EC4D C8 INY A:EC X:02 Y:B0 P:27 SP:FB CYC: 51 SL:144 EC4E A9 FF LDA #$FF A:EC X:02 Y:B1 P:A5 SP:FB CYC: 57 SL:144 EC50 8D 47 06 STA $0647 = EC A:FF X:02 Y:B1 P:A5 SP:FB CYC: 63 SL:144 EC53 20 C2 FA JSR $FAC2 A:FF X:02 Y:B1 P:A5 SP:FB CYC: 75 SL:144 FAC2 B8 CLV A:FF X:02 Y:B1 P:A5 SP:F9 CYC: 93 SL:144 FAC3 38 SEC A:FF X:02 Y:B1 P:A5 SP:F9 CYC: 99 SL:144 FAC4 A9 FF LDA #$FF A:FF X:02 Y:B1 P:A5 SP:F9 CYC:105 SL:144 FAC6 60 RTS A:FF X:02 Y:B1 P:A5 SP:F9 CYC:111 SL:144 EC56 EF 47 06 *ISB $0647 = FF A:FF X:02 Y:B1 P:A5 SP:FB CYC:129 SL:144 EC59 EA NOP A:FF X:02 Y:B1 P:A5 SP:FB CYC:147 SL:144 EC5A EA NOP A:FF X:02 Y:B1 P:A5 SP:FB CYC:153 SL:144 EC5B EA NOP A:FF X:02 Y:B1 P:A5 SP:FB CYC:159 SL:144 EC5C EA NOP A:FF X:02 Y:B1 P:A5 SP:FB CYC:165 SL:144 EC5D 20 C7 FA JSR $FAC7 A:FF X:02 Y:B1 P:A5 SP:FB CYC:171 SL:144 FAC7 70 1D BVS $FAE6 A:FF X:02 Y:B1 P:A5 SP:F9 CYC:189 SL:144 FAC9 F0 1B BEQ $FAE6 A:FF X:02 Y:B1 P:A5 SP:F9 CYC:195 SL:144 FACB 10 19 BPL $FAE6 A:FF X:02 Y:B1 P:A5 SP:F9 CYC:201 SL:144 FACD 90 17 BCC $FAE6 A:FF X:02 Y:B1 P:A5 SP:F9 CYC:207 SL:144 FACF C9 FF CMP #$FF A:FF X:02 Y:B1 P:A5 SP:F9 CYC:213 SL:144 FAD1 D0 13 BNE $FAE6 A:FF X:02 Y:B1 P:27 SP:F9 CYC:219 SL:144 FAD3 60 RTS A:FF X:02 Y:B1 P:27 SP:F9 CYC:225 SL:144 EC60 AD 47 06 LDA $0647 = 00 A:FF X:02 Y:B1 P:27 SP:FB CYC:243 SL:144 EC63 C9 00 CMP #$00 A:00 X:02 Y:B1 P:27 SP:FB CYC:255 SL:144 EC65 F0 02 BEQ $EC69 A:00 X:02 Y:B1 P:27 SP:FB CYC:261 SL:144 EC69 C8 INY A:00 X:02 Y:B1 P:27 SP:FB CYC:270 SL:144 EC6A A9 37 LDA #$37 A:00 X:02 Y:B2 P:A5 SP:FB CYC:276 SL:144 EC6C 8D 47 06 STA $0647 = 00 A:37 X:02 Y:B2 P:25 SP:FB CYC:282 SL:144 EC6F 20 D4 FA JSR $FAD4 A:37 X:02 Y:B2 P:25 SP:FB CYC:294 SL:144 FAD4 24 01 BIT $01 = FF A:37 X:02 Y:B2 P:25 SP:F9 CYC:312 SL:144 FAD6 38 SEC A:37 X:02 Y:B2 P:E5 SP:F9 CYC:321 SL:144 FAD7 A9 F0 LDA #$F0 A:37 X:02 Y:B2 P:E5 SP:F9 CYC:327 SL:144 FAD9 60 RTS A:F0 X:02 Y:B2 P:E5 SP:F9 CYC:333 SL:144 EC72 EF 47 06 *ISB $0647 = 37 A:F0 X:02 Y:B2 P:E5 SP:FB CYC: 10 SL:145 EC75 EA NOP A:B8 X:02 Y:B2 P:A5 SP:FB CYC: 28 SL:145 EC76 EA NOP A:B8 X:02 Y:B2 P:A5 SP:FB CYC: 34 SL:145 EC77 EA NOP A:B8 X:02 Y:B2 P:A5 SP:FB CYC: 40 SL:145 EC78 EA NOP A:B8 X:02 Y:B2 P:A5 SP:FB CYC: 46 SL:145 EC79 20 DA FA JSR $FADA A:B8 X:02 Y:B2 P:A5 SP:FB CYC: 52 SL:145 FADA 70 0A BVS $FAE6 A:B8 X:02 Y:B2 P:A5 SP:F9 CYC: 70 SL:145 FADC F0 08 BEQ $FAE6 A:B8 X:02 Y:B2 P:A5 SP:F9 CYC: 76 SL:145 FADE 10 06 BPL $FAE6 A:B8 X:02 Y:B2 P:A5 SP:F9 CYC: 82 SL:145 FAE0 90 04 BCC $FAE6 A:B8 X:02 Y:B2 P:A5 SP:F9 CYC: 88 SL:145 FAE2 C9 B8 CMP #$B8 A:B8 X:02 Y:B2 P:A5 SP:F9 CYC: 94 SL:145 FAE4 F0 02 BEQ $FAE8 A:B8 X:02 Y:B2 P:27 SP:F9 CYC:100 SL:145 FAE8 60 RTS A:B8 X:02 Y:B2 P:27 SP:F9 CYC:109 SL:145 EC7C AD 47 06 LDA $0647 = 38 A:B8 X:02 Y:B2 P:27 SP:FB CYC:127 SL:145 EC7F C9 38 CMP #$38 A:38 X:02 Y:B2 P:25 SP:FB CYC:139 SL:145 EC81 F0 02 BEQ $EC85 A:38 X:02 Y:B2 P:27 SP:FB CYC:145 SL:145 EC85 A9 EB LDA #$EB A:38 X:02 Y:B2 P:27 SP:FB CYC:154 SL:145 EC87 8D 47 06 STA $0647 = 38 A:EB X:02 Y:B2 P:A5 SP:FB CYC:160 SL:145 EC8A A9 48 LDA #$48 A:EB X:02 Y:B2 P:A5 SP:FB CYC:172 SL:145 EC8C 85 45 STA $45 = 48 A:48 X:02 Y:B2 P:25 SP:FB CYC:178 SL:145 EC8E A9 05 LDA #$05 A:48 X:02 Y:B2 P:25 SP:FB CYC:187 SL:145 EC90 85 46 STA $46 = 05 A:05 X:02 Y:B2 P:25 SP:FB CYC:193 SL:145 EC92 A0 FF LDY #$FF A:05 X:02 Y:B2 P:25 SP:FB CYC:202 SL:145 EC94 20 B1 FA JSR $FAB1 A:05 X:02 Y:FF P:A5 SP:FB CYC:208 SL:145 FAB1 24 01 BIT $01 = FF A:05 X:02 Y:FF P:A5 SP:F9 CYC:226 SL:145 FAB3 18 CLC A:05 X:02 Y:FF P:E5 SP:F9 CYC:235 SL:145 FAB4 A9 40 LDA #$40 A:05 X:02 Y:FF P:E4 SP:F9 CYC:241 SL:145 FAB6 60 RTS A:40 X:02 Y:FF P:64 SP:F9 CYC:247 SL:145 EC97 F3 45 *ISB ($45),Y = 0548 @ 0647 = EB A:40 X:02 Y:FF P:64 SP:FB CYC:265 SL:145 EC99 EA NOP A:53 X:02 Y:FF P:24 SP:FB CYC:289 SL:145 EC9A EA NOP A:53 X:02 Y:FF P:24 SP:FB CYC:295 SL:145 EC9B 08 PHP A:53 X:02 Y:FF P:24 SP:FB CYC:301 SL:145 EC9C 48 PHA A:53 X:02 Y:FF P:24 SP:FA CYC:310 SL:145 EC9D A0 B3 LDY #$B3 A:53 X:02 Y:FF P:24 SP:F9 CYC:319 SL:145 EC9F 68 PLA A:53 X:02 Y:B3 P:A4 SP:F9 CYC:325 SL:145 ECA0 28 PLP A:53 X:02 Y:B3 P:24 SP:FA CYC:337 SL:145 ECA1 20 B7 FA JSR $FAB7 A:53 X:02 Y:B3 P:24 SP:FB CYC: 8 SL:146 FAB7 70 2D BVS $FAE6 A:53 X:02 Y:B3 P:24 SP:F9 CYC: 26 SL:146 FAB9 B0 2B BCS $FAE6 A:53 X:02 Y:B3 P:24 SP:F9 CYC: 32 SL:146 FABB 30 29 BMI $FAE6 A:53 X:02 Y:B3 P:24 SP:F9 CYC: 38 SL:146 FABD C9 53 CMP #$53 A:53 X:02 Y:B3 P:24 SP:F9 CYC: 44 SL:146 FABF D0 25 BNE $FAE6 A:53 X:02 Y:B3 P:27 SP:F9 CYC: 50 SL:146 FAC1 60 RTS A:53 X:02 Y:B3 P:27 SP:F9 CYC: 56 SL:146 ECA4 AD 47 06 LDA $0647 = EC A:53 X:02 Y:B3 P:27 SP:FB CYC: 74 SL:146 ECA7 C9 EC CMP #$EC A:EC X:02 Y:B3 P:A5 SP:FB CYC: 86 SL:146 ECA9 F0 02 BEQ $ECAD A:EC X:02 Y:B3 P:27 SP:FB CYC: 92 SL:146 ECAD A0 FF LDY #$FF A:EC X:02 Y:B3 P:27 SP:FB CYC:101 SL:146 ECAF A9 FF LDA #$FF A:EC X:02 Y:FF P:A5 SP:FB CYC:107 SL:146 ECB1 8D 47 06 STA $0647 = EC A:FF X:02 Y:FF P:A5 SP:FB CYC:113 SL:146 ECB4 20 C2 FA JSR $FAC2 A:FF X:02 Y:FF P:A5 SP:FB CYC:125 SL:146 FAC2 B8 CLV A:FF X:02 Y:FF P:A5 SP:F9 CYC:143 SL:146 FAC3 38 SEC A:FF X:02 Y:FF P:A5 SP:F9 CYC:149 SL:146 FAC4 A9 FF LDA #$FF A:FF X:02 Y:FF P:A5 SP:F9 CYC:155 SL:146 FAC6 60 RTS A:FF X:02 Y:FF P:A5 SP:F9 CYC:161 SL:146 ECB7 F3 45 *ISB ($45),Y = 0548 @ 0647 = FF A:FF X:02 Y:FF P:A5 SP:FB CYC:179 SL:146 ECB9 EA NOP A:FF X:02 Y:FF P:A5 SP:FB CYC:203 SL:146 ECBA EA NOP A:FF X:02 Y:FF P:A5 SP:FB CYC:209 SL:146 ECBB 08 PHP A:FF X:02 Y:FF P:A5 SP:FB CYC:215 SL:146 ECBC 48 PHA A:FF X:02 Y:FF P:A5 SP:FA CYC:224 SL:146 ECBD A0 B4 LDY #$B4 A:FF X:02 Y:FF P:A5 SP:F9 CYC:233 SL:146 ECBF 68 PLA A:FF X:02 Y:B4 P:A5 SP:F9 CYC:239 SL:146 ECC0 28 PLP A:FF X:02 Y:B4 P:A5 SP:FA CYC:251 SL:146 ECC1 20 C7 FA JSR $FAC7 A:FF X:02 Y:B4 P:A5 SP:FB CYC:263 SL:146 FAC7 70 1D BVS $FAE6 A:FF X:02 Y:B4 P:A5 SP:F9 CYC:281 SL:146 FAC9 F0 1B BEQ $FAE6 A:FF X:02 Y:B4 P:A5 SP:F9 CYC:287 SL:146 FACB 10 19 BPL $FAE6 A:FF X:02 Y:B4 P:A5 SP:F9 CYC:293 SL:146 FACD 90 17 BCC $FAE6 A:FF X:02 Y:B4 P:A5 SP:F9 CYC:299 SL:146 FACF C9 FF CMP #$FF A:FF X:02 Y:B4 P:A5 SP:F9 CYC:305 SL:146 FAD1 D0 13 BNE $FAE6 A:FF X:02 Y:B4 P:27 SP:F9 CYC:311 SL:146 FAD3 60 RTS A:FF X:02 Y:B4 P:27 SP:F9 CYC:317 SL:146 ECC4 AD 47 06 LDA $0647 = 00 A:FF X:02 Y:B4 P:27 SP:FB CYC:335 SL:146 ECC7 C9 00 CMP #$00 A:00 X:02 Y:B4 P:27 SP:FB CYC: 6 SL:147 ECC9 F0 02 BEQ $ECCD A:00 X:02 Y:B4 P:27 SP:FB CYC: 12 SL:147 ECCD A0 FF LDY #$FF A:00 X:02 Y:B4 P:27 SP:FB CYC: 21 SL:147 ECCF A9 37 LDA #$37 A:00 X:02 Y:FF P:A5 SP:FB CYC: 27 SL:147 ECD1 8D 47 06 STA $0647 = 00 A:37 X:02 Y:FF P:25 SP:FB CYC: 33 SL:147 ECD4 20 D4 FA JSR $FAD4 A:37 X:02 Y:FF P:25 SP:FB CYC: 45 SL:147 FAD4 24 01 BIT $01 = FF A:37 X:02 Y:FF P:25 SP:F9 CYC: 63 SL:147 FAD6 38 SEC A:37 X:02 Y:FF P:E5 SP:F9 CYC: 72 SL:147 FAD7 A9 F0 LDA #$F0 A:37 X:02 Y:FF P:E5 SP:F9 CYC: 78 SL:147 FAD9 60 RTS A:F0 X:02 Y:FF P:E5 SP:F9 CYC: 84 SL:147 ECD7 F3 45 *ISB ($45),Y = 0548 @ 0647 = 37 A:F0 X:02 Y:FF P:E5 SP:FB CYC:102 SL:147 ECD9 EA NOP A:B8 X:02 Y:FF P:A5 SP:FB CYC:126 SL:147 ECDA EA NOP A:B8 X:02 Y:FF P:A5 SP:FB CYC:132 SL:147 ECDB 08 PHP A:B8 X:02 Y:FF P:A5 SP:FB CYC:138 SL:147 ECDC 48 PHA A:B8 X:02 Y:FF P:A5 SP:FA CYC:147 SL:147 ECDD A0 B5 LDY #$B5 A:B8 X:02 Y:FF P:A5 SP:F9 CYC:156 SL:147 ECDF 68 PLA A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:162 SL:147 ECE0 28 PLP A:B8 X:02 Y:B5 P:A5 SP:FA CYC:174 SL:147 ECE1 20 DA FA JSR $FADA A:B8 X:02 Y:B5 P:A5 SP:FB CYC:186 SL:147 FADA 70 0A BVS $FAE6 A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:204 SL:147 FADC F0 08 BEQ $FAE6 A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:210 SL:147 FADE 10 06 BPL $FAE6 A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:216 SL:147 FAE0 90 04 BCC $FAE6 A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:222 SL:147 FAE2 C9 B8 CMP #$B8 A:B8 X:02 Y:B5 P:A5 SP:F9 CYC:228 SL:147 FAE4 F0 02 BEQ $FAE8 A:B8 X:02 Y:B5 P:27 SP:F9 CYC:234 SL:147 FAE8 60 RTS A:B8 X:02 Y:B5 P:27 SP:F9 CYC:243 SL:147 ECE4 AD 47 06 LDA $0647 = 38 A:B8 X:02 Y:B5 P:27 SP:FB CYC:261 SL:147 ECE7 C9 38 CMP #$38 A:38 X:02 Y:B5 P:25 SP:FB CYC:273 SL:147 ECE9 F0 02 BEQ $ECED A:38 X:02 Y:B5 P:27 SP:FB CYC:279 SL:147 ECED A0 B6 LDY #$B6 A:38 X:02 Y:B5 P:27 SP:FB CYC:288 SL:147 ECEF A2 FF LDX #$FF A:38 X:02 Y:B6 P:A5 SP:FB CYC:294 SL:147 ECF1 A9 EB LDA #$EB A:38 X:FF Y:B6 P:A5 SP:FB CYC:300 SL:147 ECF3 85 47 STA $47 = 38 A:EB X:FF Y:B6 P:A5 SP:FB CYC:306 SL:147 ECF5 20 B1 FA JSR $FAB1 A:EB X:FF Y:B6 P:A5 SP:FB CYC:315 SL:147 FAB1 24 01 BIT $01 = FF A:EB X:FF Y:B6 P:A5 SP:F9 CYC:333 SL:147 FAB3 18 CLC A:EB X:FF Y:B6 P:E5 SP:F9 CYC: 1 SL:148 FAB4 A9 40 LDA #$40 A:EB X:FF Y:B6 P:E4 SP:F9 CYC: 7 SL:148 FAB6 60 RTS A:40 X:FF Y:B6 P:64 SP:F9 CYC: 13 SL:148 ECF8 F7 48 *ISB $48,X @ 47 = EB A:40 X:FF Y:B6 P:64 SP:FB CYC: 31 SL:148 ECFA EA NOP A:53 X:FF Y:B6 P:24 SP:FB CYC: 49 SL:148 ECFB EA NOP A:53 X:FF Y:B6 P:24 SP:FB CYC: 55 SL:148 ECFC EA NOP A:53 X:FF Y:B6 P:24 SP:FB CYC: 61 SL:148 ECFD EA NOP A:53 X:FF Y:B6 P:24 SP:FB CYC: 67 SL:148 ECFE 20 B7 FA JSR $FAB7 A:53 X:FF Y:B6 P:24 SP:FB CYC: 73 SL:148 FAB7 70 2D BVS $FAE6 A:53 X:FF Y:B6 P:24 SP:F9 CYC: 91 SL:148 FAB9 B0 2B BCS $FAE6 A:53 X:FF Y:B6 P:24 SP:F9 CYC: 97 SL:148 FABB 30 29 BMI $FAE6 A:53 X:FF Y:B6 P:24 SP:F9 CYC:103 SL:148 FABD C9 53 CMP #$53 A:53 X:FF Y:B6 P:24 SP:F9 CYC:109 SL:148 FABF D0 25 BNE $FAE6 A:53 X:FF Y:B6 P:27 SP:F9 CYC:115 SL:148 FAC1 60 RTS A:53 X:FF Y:B6 P:27 SP:F9 CYC:121 SL:148 ED01 A5 47 LDA $47 = EC A:53 X:FF Y:B6 P:27 SP:FB CYC:139 SL:148 ED03 C9 EC CMP #$EC A:EC X:FF Y:B6 P:A5 SP:FB CYC:148 SL:148 ED05 F0 02 BEQ $ED09 A:EC X:FF Y:B6 P:27 SP:FB CYC:154 SL:148 ED09 C8 INY A:EC X:FF Y:B6 P:27 SP:FB CYC:163 SL:148 ED0A A9 FF LDA #$FF A:EC X:FF Y:B7 P:A5 SP:FB CYC:169 SL:148 ED0C 85 47 STA $47 = EC A:FF X:FF Y:B7 P:A5 SP:FB CYC:175 SL:148 ED0E 20 C2 FA JSR $FAC2 A:FF X:FF Y:B7 P:A5 SP:FB CYC:184 SL:148 FAC2 B8 CLV A:FF X:FF Y:B7 P:A5 SP:F9 CYC:202 SL:148 FAC3 38 SEC A:FF X:FF Y:B7 P:A5 SP:F9 CYC:208 SL:148 FAC4 A9 FF LDA #$FF A:FF X:FF Y:B7 P:A5 SP:F9 CYC:214 SL:148 FAC6 60 RTS A:FF X:FF Y:B7 P:A5 SP:F9 CYC:220 SL:148 ED11 F7 48 *ISB $48,X @ 47 = FF A:FF X:FF Y:B7 P:A5 SP:FB CYC:238 SL:148 ED13 EA NOP A:FF X:FF Y:B7 P:A5 SP:FB CYC:256 SL:148 ED14 EA NOP A:FF X:FF Y:B7 P:A5 SP:FB CYC:262 SL:148 ED15 EA NOP A:FF X:FF Y:B7 P:A5 SP:FB CYC:268 SL:148 ED16 EA NOP A:FF X:FF Y:B7 P:A5 SP:FB CYC:274 SL:148 ED17 20 C7 FA JSR $FAC7 A:FF X:FF Y:B7 P:A5 SP:FB CYC:280 SL:148 FAC7 70 1D BVS $FAE6 A:FF X:FF Y:B7 P:A5 SP:F9 CYC:298 SL:148 FAC9 F0 1B BEQ $FAE6 A:FF X:FF Y:B7 P:A5 SP:F9 CYC:304 SL:148 FACB 10 19 BPL $FAE6 A:FF X:FF Y:B7 P:A5 SP:F9 CYC:310 SL:148 FACD 90 17 BCC $FAE6 A:FF X:FF Y:B7 P:A5 SP:F9 CYC:316 SL:148 FACF C9 FF CMP #$FF A:FF X:FF Y:B7 P:A5 SP:F9 CYC:322 SL:148 FAD1 D0 13 BNE $FAE6 A:FF X:FF Y:B7 P:27 SP:F9 CYC:328 SL:148 FAD3 60 RTS A:FF X:FF Y:B7 P:27 SP:F9 CYC:334 SL:148 ED1A A5 47 LDA $47 = 00 A:FF X:FF Y:B7 P:27 SP:FB CYC: 11 SL:149 ED1C C9 00 CMP #$00 A:00 X:FF Y:B7 P:27 SP:FB CYC: 20 SL:149 ED1E F0 02 BEQ $ED22 A:00 X:FF Y:B7 P:27 SP:FB CYC: 26 SL:149 ED22 C8 INY A:00 X:FF Y:B7 P:27 SP:FB CYC: 35 SL:149 ED23 A9 37 LDA #$37 A:00 X:FF Y:B8 P:A5 SP:FB CYC: 41 SL:149 ED25 85 47 STA $47 = 00 A:37 X:FF Y:B8 P:25 SP:FB CYC: 47 SL:149 ED27 20 D4 FA JSR $FAD4 A:37 X:FF Y:B8 P:25 SP:FB CYC: 56 SL:149 FAD4 24 01 BIT $01 = FF A:37 X:FF Y:B8 P:25 SP:F9 CYC: 74 SL:149 FAD6 38 SEC A:37 X:FF Y:B8 P:E5 SP:F9 CYC: 83 SL:149 FAD7 A9 F0 LDA #$F0 A:37 X:FF Y:B8 P:E5 SP:F9 CYC: 89 SL:149 FAD9 60 RTS A:F0 X:FF Y:B8 P:E5 SP:F9 CYC: 95 SL:149 ED2A F7 48 *ISB $48,X @ 47 = 37 A:F0 X:FF Y:B8 P:E5 SP:FB CYC:113 SL:149 ED2C EA NOP A:B8 X:FF Y:B8 P:A5 SP:FB CYC:131 SL:149 ED2D EA NOP A:B8 X:FF Y:B8 P:A5 SP:FB CYC:137 SL:149 ED2E EA NOP A:B8 X:FF Y:B8 P:A5 SP:FB CYC:143 SL:149 ED2F EA NOP A:B8 X:FF Y:B8 P:A5 SP:FB CYC:149 SL:149 ED30 20 DA FA JSR $FADA A:B8 X:FF Y:B8 P:A5 SP:FB CYC:155 SL:149 FADA 70 0A BVS $FAE6 A:B8 X:FF Y:B8 P:A5 SP:F9 CYC:173 SL:149 FADC F0 08 BEQ $FAE6 A:B8 X:FF Y:B8 P:A5 SP:F9 CYC:179 SL:149 FADE 10 06 BPL $FAE6 A:B8 X:FF Y:B8 P:A5 SP:F9 CYC:185 SL:149 FAE0 90 04 BCC $FAE6 A:B8 X:FF Y:B8 P:A5 SP:F9 CYC:191 SL:149 FAE2 C9 B8 CMP #$B8 A:B8 X:FF Y:B8 P:A5 SP:F9 CYC:197 SL:149 FAE4 F0 02 BEQ $FAE8 A:B8 X:FF Y:B8 P:27 SP:F9 CYC:203 SL:149 FAE8 60 RTS A:B8 X:FF Y:B8 P:27 SP:F9 CYC:212 SL:149 ED33 A5 47 LDA $47 = 38 A:B8 X:FF Y:B8 P:27 SP:FB CYC:230 SL:149 ED35 C9 38 CMP #$38 A:38 X:FF Y:B8 P:25 SP:FB CYC:239 SL:149 ED37 F0 02 BEQ $ED3B A:38 X:FF Y:B8 P:27 SP:FB CYC:245 SL:149 ED3B A9 EB LDA #$EB A:38 X:FF Y:B8 P:27 SP:FB CYC:254 SL:149 ED3D 8D 47 06 STA $0647 = 38 A:EB X:FF Y:B8 P:A5 SP:FB CYC:260 SL:149 ED40 A0 FF LDY #$FF A:EB X:FF Y:B8 P:A5 SP:FB CYC:272 SL:149 ED42 20 B1 FA JSR $FAB1 A:EB X:FF Y:FF P:A5 SP:FB CYC:278 SL:149 FAB1 24 01 BIT $01 = FF A:EB X:FF Y:FF P:A5 SP:F9 CYC:296 SL:149 FAB3 18 CLC A:EB X:FF Y:FF P:E5 SP:F9 CYC:305 SL:149 FAB4 A9 40 LDA #$40 A:EB X:FF Y:FF P:E4 SP:F9 CYC:311 SL:149 FAB6 60 RTS A:40 X:FF Y:FF P:64 SP:F9 CYC:317 SL:149 ED45 FB 48 05 *ISB $0548,Y @ 0647 = EB A:40 X:FF Y:FF P:64 SP:FB CYC:335 SL:149 ED48 EA NOP A:53 X:FF Y:FF P:24 SP:FB CYC: 15 SL:150 ED49 EA NOP A:53 X:FF Y:FF P:24 SP:FB CYC: 21 SL:150 ED4A 08 PHP A:53 X:FF Y:FF P:24 SP:FB CYC: 27 SL:150 ED4B 48 PHA A:53 X:FF Y:FF P:24 SP:FA CYC: 36 SL:150 ED4C A0 B9 LDY #$B9 A:53 X:FF Y:FF P:24 SP:F9 CYC: 45 SL:150 ED4E 68 PLA A:53 X:FF Y:B9 P:A4 SP:F9 CYC: 51 SL:150 ED4F 28 PLP A:53 X:FF Y:B9 P:24 SP:FA CYC: 63 SL:150 ED50 20 B7 FA JSR $FAB7 A:53 X:FF Y:B9 P:24 SP:FB CYC: 75 SL:150 FAB7 70 2D BVS $FAE6 A:53 X:FF Y:B9 P:24 SP:F9 CYC: 93 SL:150 FAB9 B0 2B BCS $FAE6 A:53 X:FF Y:B9 P:24 SP:F9 CYC: 99 SL:150 FABB 30 29 BMI $FAE6 A:53 X:FF Y:B9 P:24 SP:F9 CYC:105 SL:150 FABD C9 53 CMP #$53 A:53 X:FF Y:B9 P:24 SP:F9 CYC:111 SL:150 FABF D0 25 BNE $FAE6 A:53 X:FF Y:B9 P:27 SP:F9 CYC:117 SL:150 FAC1 60 RTS A:53 X:FF Y:B9 P:27 SP:F9 CYC:123 SL:150 ED53 AD 47 06 LDA $0647 = EC A:53 X:FF Y:B9 P:27 SP:FB CYC:141 SL:150 ED56 C9 EC CMP #$EC A:EC X:FF Y:B9 P:A5 SP:FB CYC:153 SL:150 ED58 F0 02 BEQ $ED5C A:EC X:FF Y:B9 P:27 SP:FB CYC:159 SL:150 ED5C A0 FF LDY #$FF A:EC X:FF Y:B9 P:27 SP:FB CYC:168 SL:150 ED5E A9 FF LDA #$FF A:EC X:FF Y:FF P:A5 SP:FB CYC:174 SL:150 ED60 8D 47 06 STA $0647 = EC A:FF X:FF Y:FF P:A5 SP:FB CYC:180 SL:150 ED63 20 C2 FA JSR $FAC2 A:FF X:FF Y:FF P:A5 SP:FB CYC:192 SL:150 FAC2 B8 CLV A:FF X:FF Y:FF P:A5 SP:F9 CYC:210 SL:150 FAC3 38 SEC A:FF X:FF Y:FF P:A5 SP:F9 CYC:216 SL:150 FAC4 A9 FF LDA #$FF A:FF X:FF Y:FF P:A5 SP:F9 CYC:222 SL:150 FAC6 60 RTS A:FF X:FF Y:FF P:A5 SP:F9 CYC:228 SL:150 ED66 FB 48 05 *ISB $0548,Y @ 0647 = FF A:FF X:FF Y:FF P:A5 SP:FB CYC:246 SL:150 ED69 EA NOP A:FF X:FF Y:FF P:A5 SP:FB CYC:267 SL:150 ED6A EA NOP A:FF X:FF Y:FF P:A5 SP:FB CYC:273 SL:150 ED6B 08 PHP A:FF X:FF Y:FF P:A5 SP:FB CYC:279 SL:150 ED6C 48 PHA A:FF X:FF Y:FF P:A5 SP:FA CYC:288 SL:150 ED6D A0 BA LDY #$BA A:FF X:FF Y:FF P:A5 SP:F9 CYC:297 SL:150 ED6F 68 PLA A:FF X:FF Y:BA P:A5 SP:F9 CYC:303 SL:150 ED70 28 PLP A:FF X:FF Y:BA P:A5 SP:FA CYC:315 SL:150 ED71 20 C7 FA JSR $FAC7 A:FF X:FF Y:BA P:A5 SP:FB CYC:327 SL:150 FAC7 70 1D BVS $FAE6 A:FF X:FF Y:BA P:A5 SP:F9 CYC: 4 SL:151 FAC9 F0 1B BEQ $FAE6 A:FF X:FF Y:BA P:A5 SP:F9 CYC: 10 SL:151 FACB 10 19 BPL $FAE6 A:FF X:FF Y:BA P:A5 SP:F9 CYC: 16 SL:151 FACD 90 17 BCC $FAE6 A:FF X:FF Y:BA P:A5 SP:F9 CYC: 22 SL:151 FACF C9 FF CMP #$FF A:FF X:FF Y:BA P:A5 SP:F9 CYC: 28 SL:151 FAD1 D0 13 BNE $FAE6 A:FF X:FF Y:BA P:27 SP:F9 CYC: 34 SL:151 FAD3 60 RTS A:FF X:FF Y:BA P:27 SP:F9 CYC: 40 SL:151 ED74 AD 47 06 LDA $0647 = 00 A:FF X:FF Y:BA P:27 SP:FB CYC: 58 SL:151 ED77 C9 00 CMP #$00 A:00 X:FF Y:BA P:27 SP:FB CYC: 70 SL:151 ED79 F0 02 BEQ $ED7D A:00 X:FF Y:BA P:27 SP:FB CYC: 76 SL:151 ED7D A0 FF LDY #$FF A:00 X:FF Y:BA P:27 SP:FB CYC: 85 SL:151 ED7F A9 37 LDA #$37 A:00 X:FF Y:FF P:A5 SP:FB CYC: 91 SL:151 ED81 8D 47 06 STA $0647 = 00 A:37 X:FF Y:FF P:25 SP:FB CYC: 97 SL:151 ED84 20 D4 FA JSR $FAD4 A:37 X:FF Y:FF P:25 SP:FB CYC:109 SL:151 FAD4 24 01 BIT $01 = FF A:37 X:FF Y:FF P:25 SP:F9 CYC:127 SL:151 FAD6 38 SEC A:37 X:FF Y:FF P:E5 SP:F9 CYC:136 SL:151 FAD7 A9 F0 LDA #$F0 A:37 X:FF Y:FF P:E5 SP:F9 CYC:142 SL:151 FAD9 60 RTS A:F0 X:FF Y:FF P:E5 SP:F9 CYC:148 SL:151 ED87 FB 48 05 *ISB $0548,Y @ 0647 = 37 A:F0 X:FF Y:FF P:E5 SP:FB CYC:166 SL:151 ED8A EA NOP A:B8 X:FF Y:FF P:A5 SP:FB CYC:187 SL:151 ED8B EA NOP A:B8 X:FF Y:FF P:A5 SP:FB CYC:193 SL:151 ED8C 08 PHP A:B8 X:FF Y:FF P:A5 SP:FB CYC:199 SL:151 ED8D 48 PHA A:B8 X:FF Y:FF P:A5 SP:FA CYC:208 SL:151 ED8E A0 BB LDY #$BB A:B8 X:FF Y:FF P:A5 SP:F9 CYC:217 SL:151 ED90 68 PLA A:B8 X:FF Y:BB P:A5 SP:F9 CYC:223 SL:151 ED91 28 PLP A:B8 X:FF Y:BB P:A5 SP:FA CYC:235 SL:151 ED92 20 DA FA JSR $FADA A:B8 X:FF Y:BB P:A5 SP:FB CYC:247 SL:151 FADA 70 0A BVS $FAE6 A:B8 X:FF Y:BB P:A5 SP:F9 CYC:265 SL:151 FADC F0 08 BEQ $FAE6 A:B8 X:FF Y:BB P:A5 SP:F9 CYC:271 SL:151 FADE 10 06 BPL $FAE6 A:B8 X:FF Y:BB P:A5 SP:F9 CYC:277 SL:151 FAE0 90 04 BCC $FAE6 A:B8 X:FF Y:BB P:A5 SP:F9 CYC:283 SL:151 FAE2 C9 B8 CMP #$B8 A:B8 X:FF Y:BB P:A5 SP:F9 CYC:289 SL:151 FAE4 F0 02 BEQ $FAE8 A:B8 X:FF Y:BB P:27 SP:F9 CYC:295 SL:151 FAE8 60 RTS A:B8 X:FF Y:BB P:27 SP:F9 CYC:304 SL:151 ED95 AD 47 06 LDA $0647 = 38 A:B8 X:FF Y:BB P:27 SP:FB CYC:322 SL:151 ED98 C9 38 CMP #$38 A:38 X:FF Y:BB P:25 SP:FB CYC:334 SL:151 ED9A F0 02 BEQ $ED9E A:38 X:FF Y:BB P:27 SP:FB CYC:340 SL:151 ED9E A0 BC LDY #$BC A:38 X:FF Y:BB P:27 SP:FB CYC: 8 SL:152 EDA0 A2 FF LDX #$FF A:38 X:FF Y:BC P:A5 SP:FB CYC: 14 SL:152 EDA2 A9 EB LDA #$EB A:38 X:FF Y:BC P:A5 SP:FB CYC: 20 SL:152 EDA4 8D 47 06 STA $0647 = 38 A:EB X:FF Y:BC P:A5 SP:FB CYC: 26 SL:152 EDA7 20 B1 FA JSR $FAB1 A:EB X:FF Y:BC P:A5 SP:FB CYC: 38 SL:152 FAB1 24 01 BIT $01 = FF A:EB X:FF Y:BC P:A5 SP:F9 CYC: 56 SL:152 FAB3 18 CLC A:EB X:FF Y:BC P:E5 SP:F9 CYC: 65 SL:152 FAB4 A9 40 LDA #$40 A:EB X:FF Y:BC P:E4 SP:F9 CYC: 71 SL:152 FAB6 60 RTS A:40 X:FF Y:BC P:64 SP:F9 CYC: 77 SL:152 EDAA FF 48 05 *ISB $0548,X @ 0647 = EB A:40 X:FF Y:BC P:64 SP:FB CYC: 95 SL:152 EDAD EA NOP A:53 X:FF Y:BC P:24 SP:FB CYC:116 SL:152 EDAE EA NOP A:53 X:FF Y:BC P:24 SP:FB CYC:122 SL:152 EDAF EA NOP A:53 X:FF Y:BC P:24 SP:FB CYC:128 SL:152 EDB0 EA NOP A:53 X:FF Y:BC P:24 SP:FB CYC:134 SL:152 EDB1 20 B7 FA JSR $FAB7 A:53 X:FF Y:BC P:24 SP:FB CYC:140 SL:152 FAB7 70 2D BVS $FAE6 A:53 X:FF Y:BC P:24 SP:F9 CYC:158 SL:152 FAB9 B0 2B BCS $FAE6 A:53 X:FF Y:BC P:24 SP:F9 CYC:164 SL:152 FABB 30 29 BMI $FAE6 A:53 X:FF Y:BC P:24 SP:F9 CYC:170 SL:152 FABD C9 53 CMP #$53 A:53 X:FF Y:BC P:24 SP:F9 CYC:176 SL:152 FABF D0 25 BNE $FAE6 A:53 X:FF Y:BC P:27 SP:F9 CYC:182 SL:152 FAC1 60 RTS A:53 X:FF Y:BC P:27 SP:F9 CYC:188 SL:152 EDB4 AD 47 06 LDA $0647 = EC A:53 X:FF Y:BC P:27 SP:FB CYC:206 SL:152 EDB7 C9 EC CMP #$EC A:EC X:FF Y:BC P:A5 SP:FB CYC:218 SL:152 EDB9 F0 02 BEQ $EDBD A:EC X:FF Y:BC P:27 SP:FB CYC:224 SL:152 EDBD C8 INY A:EC X:FF Y:BC P:27 SP:FB CYC:233 SL:152 EDBE A9 FF LDA #$FF A:EC X:FF Y:BD P:A5 SP:FB CYC:239 SL:152 EDC0 8D 47 06 STA $0647 = EC A:FF X:FF Y:BD P:A5 SP:FB CYC:245 SL:152 EDC3 20 C2 FA JSR $FAC2 A:FF X:FF Y:BD P:A5 SP:FB CYC:257 SL:152 FAC2 B8 CLV A:FF X:FF Y:BD P:A5 SP:F9 CYC:275 SL:152 FAC3 38 SEC A:FF X:FF Y:BD P:A5 SP:F9 CYC:281 SL:152 FAC4 A9 FF LDA #$FF A:FF X:FF Y:BD P:A5 SP:F9 CYC:287 SL:152 FAC6 60 RTS A:FF X:FF Y:BD P:A5 SP:F9 CYC:293 SL:152 EDC6 FF 48 05 *ISB $0548,X @ 0647 = FF A:FF X:FF Y:BD P:A5 SP:FB CYC:311 SL:152 EDC9 EA NOP A:FF X:FF Y:BD P:A5 SP:FB CYC:332 SL:152 EDCA EA NOP A:FF X:FF Y:BD P:A5 SP:FB CYC:338 SL:152 EDCB EA NOP A:FF X:FF Y:BD P:A5 SP:FB CYC: 3 SL:153 EDCC EA NOP A:FF X:FF Y:BD P:A5 SP:FB CYC: 9 SL:153 EDCD 20 C7 FA JSR $FAC7 A:FF X:FF Y:BD P:A5 SP:FB CYC: 15 SL:153 FAC7 70 1D BVS $FAE6 A:FF X:FF Y:BD P:A5 SP:F9 CYC: 33 SL:153 FAC9 F0 1B BEQ $FAE6 A:FF X:FF Y:BD P:A5 SP:F9 CYC: 39 SL:153 FACB 10 19 BPL $FAE6 A:FF X:FF Y:BD P:A5 SP:F9 CYC: 45 SL:153 FACD 90 17 BCC $FAE6 A:FF X:FF Y:BD P:A5 SP:F9 CYC: 51 SL:153 FACF C9 FF CMP #$FF A:FF X:FF Y:BD P:A5 SP:F9 CYC: 57 SL:153 FAD1 D0 13 BNE $FAE6 A:FF X:FF Y:BD P:27 SP:F9 CYC: 63 SL:153 FAD3 60 RTS A:FF X:FF Y:BD P:27 SP:F9 CYC: 69 SL:153 EDD0 AD 47 06 LDA $0647 = 00 A:FF X:FF Y:BD P:27 SP:FB CYC: 87 SL:153 EDD3 C9 00 CMP #$00 A:00 X:FF Y:BD P:27 SP:FB CYC: 99 SL:153 EDD5 F0 02 BEQ $EDD9 A:00 X:FF Y:BD P:27 SP:FB CYC:105 SL:153 EDD9 C8 INY A:00 X:FF Y:BD P:27 SP:FB CYC:114 SL:153 EDDA A9 37 LDA #$37 A:00 X:FF Y:BE P:A5 SP:FB CYC:120 SL:153 EDDC 8D 47 06 STA $0647 = 00 A:37 X:FF Y:BE P:25 SP:FB CYC:126 SL:153 EDDF 20 D4 FA JSR $FAD4 A:37 X:FF Y:BE P:25 SP:FB CYC:138 SL:153 FAD4 24 01 BIT $01 = FF A:37 X:FF Y:BE P:25 SP:F9 CYC:156 SL:153 FAD6 38 SEC A:37 X:FF Y:BE P:E5 SP:F9 CYC:165 SL:153 FAD7 A9 F0 LDA #$F0 A:37 X:FF Y:BE P:E5 SP:F9 CYC:171 SL:153 FAD9 60 RTS A:F0 X:FF Y:BE P:E5 SP:F9 CYC:177 SL:153 EDE2 FF 48 05 *ISB $0548,X @ 0647 = 37 A:F0 X:FF Y:BE P:E5 SP:FB CYC:195 SL:153 EDE5 EA NOP A:B8 X:FF Y:BE P:A5 SP:FB CYC:216 SL:153 EDE6 EA NOP A:B8 X:FF Y:BE P:A5 SP:FB CYC:222 SL:153 EDE7 EA NOP A:B8 X:FF Y:BE P:A5 SP:FB CYC:228 SL:153 EDE8 EA NOP A:B8 X:FF Y:BE P:A5 SP:FB CYC:234 SL:153 EDE9 20 DA FA JSR $FADA A:B8 X:FF Y:BE P:A5 SP:FB CYC:240 SL:153 FADA 70 0A BVS $FAE6 A:B8 X:FF Y:BE P:A5 SP:F9 CYC:258 SL:153 FADC F0 08 BEQ $FAE6 A:B8 X:FF Y:BE P:A5 SP:F9 CYC:264 SL:153 FADE 10 06 BPL $FAE6 A:B8 X:FF Y:BE P:A5 SP:F9 CYC:270 SL:153 FAE0 90 04 BCC $FAE6 A:B8 X:FF Y:BE P:A5 SP:F9 CYC:276 SL:153 FAE2 C9 B8 CMP #$B8 A:B8 X:FF Y:BE P:A5 SP:F9 CYC:282 SL:153 FAE4 F0 02 BEQ $FAE8 A:B8 X:FF Y:BE P:27 SP:F9 CYC:288 SL:153 FAE8 60 RTS A:B8 X:FF Y:BE P:27 SP:F9 CYC:297 SL:153 EDEC AD 47 06 LDA $0647 = 38 A:B8 X:FF Y:BE P:27 SP:FB CYC:315 SL:153 EDEF C9 38 CMP #$38 A:38 X:FF Y:BE P:25 SP:FB CYC:327 SL:153 EDF1 F0 02 BEQ $EDF5 A:38 X:FF Y:BE P:27 SP:FB CYC:333 SL:153 EDF5 60 RTS A:38 X:FF Y:BE P:27 SP:FB CYC: 1 SL:154 C641 20 F6 ED JSR $EDF6 A:38 X:FF Y:BE P:27 SP:FD CYC: 19 SL:154 EDF6 A9 FF LDA #$FF A:38 X:FF Y:BE P:27 SP:FB CYC: 37 SL:154 EDF8 85 01 STA $01 = FF A:FF X:FF Y:BE P:A5 SP:FB CYC: 43 SL:154 EDFA A0 BF LDY #$BF A:FF X:FF Y:BE P:A5 SP:FB CYC: 52 SL:154 EDFC A2 02 LDX #$02 A:FF X:FF Y:BF P:A5 SP:FB CYC: 58 SL:154 EDFE A9 47 LDA #$47 A:FF X:02 Y:BF P:25 SP:FB CYC: 64 SL:154 EE00 85 47 STA $47 = 38 A:47 X:02 Y:BF P:25 SP:FB CYC: 70 SL:154 EE02 A9 06 LDA #$06 A:47 X:02 Y:BF P:25 SP:FB CYC: 79 SL:154 EE04 85 48 STA $48 = 06 A:06 X:02 Y:BF P:25 SP:FB CYC: 85 SL:154 EE06 A9 A5 LDA #$A5 A:06 X:02 Y:BF P:25 SP:FB CYC: 94 SL:154 EE08 8D 47 06 STA $0647 = 38 A:A5 X:02 Y:BF P:A5 SP:FB CYC:100 SL:154 EE0B 20 7B FA JSR $FA7B A:A5 X:02 Y:BF P:A5 SP:FB CYC:112 SL:154 FA7B 24 01 BIT $01 = FF A:A5 X:02 Y:BF P:A5 SP:F9 CYC:130 SL:154 FA7D 18 CLC A:A5 X:02 Y:BF P:E5 SP:F9 CYC:139 SL:154 FA7E A9 B3 LDA #$B3 A:A5 X:02 Y:BF P:E4 SP:F9 CYC:145 SL:154 FA80 60 RTS A:B3 X:02 Y:BF P:E4 SP:F9 CYC:151 SL:154 EE0E 03 45 *SLO ($45,X) @ 47 = 0647 = A5 A:B3 X:02 Y:BF P:E4 SP:FB CYC:169 SL:154 EE10 EA NOP A:FB X:02 Y:BF P:E5 SP:FB CYC:193 SL:154 EE11 EA NOP A:FB X:02 Y:BF P:E5 SP:FB CYC:199 SL:154 EE12 EA NOP A:FB X:02 Y:BF P:E5 SP:FB CYC:205 SL:154 EE13 EA NOP A:FB X:02 Y:BF P:E5 SP:FB CYC:211 SL:154 EE14 20 81 FA JSR $FA81 A:FB X:02 Y:BF P:E5 SP:FB CYC:217 SL:154 FA81 50 63 BVC $FAE6 A:FB X:02 Y:BF P:E5 SP:F9 CYC:235 SL:154 FA83 90 61 BCC $FAE6 A:FB X:02 Y:BF P:E5 SP:F9 CYC:241 SL:154 FA85 10 5F BPL $FAE6 A:FB X:02 Y:BF P:E5 SP:F9 CYC:247 SL:154 FA87 C9 FB CMP #$FB A:FB X:02 Y:BF P:E5 SP:F9 CYC:253 SL:154 FA89 D0 5B BNE $FAE6 A:FB X:02 Y:BF P:67 SP:F9 CYC:259 SL:154 FA8B 60 RTS A:FB X:02 Y:BF P:67 SP:F9 CYC:265 SL:154 EE17 AD 47 06 LDA $0647 = 4A A:FB X:02 Y:BF P:67 SP:FB CYC:283 SL:154 EE1A C9 4A CMP #$4A A:4A X:02 Y:BF P:65 SP:FB CYC:295 SL:154 EE1C F0 02 BEQ $EE20 A:4A X:02 Y:BF P:67 SP:FB CYC:301 SL:154 EE20 C8 INY A:4A X:02 Y:BF P:67 SP:FB CYC:310 SL:154 EE21 A9 29 LDA #$29 A:4A X:02 Y:C0 P:E5 SP:FB CYC:316 SL:154 EE23 8D 47 06 STA $0647 = 4A A:29 X:02 Y:C0 P:65 SP:FB CYC:322 SL:154 EE26 20 8C FA JSR $FA8C A:29 X:02 Y:C0 P:65 SP:FB CYC:334 SL:154 FA8C B8 CLV A:29 X:02 Y:C0 P:65 SP:F9 CYC: 11 SL:155 FA8D 18 CLC A:29 X:02 Y:C0 P:25 SP:F9 CYC: 17 SL:155 FA8E A9 C3 LDA #$C3 A:29 X:02 Y:C0 P:24 SP:F9 CYC: 23 SL:155 FA90 60 RTS A:C3 X:02 Y:C0 P:A4 SP:F9 CYC: 29 SL:155 EE29 03 45 *SLO ($45,X) @ 47 = 0647 = 29 A:C3 X:02 Y:C0 P:A4 SP:FB CYC: 47 SL:155 EE2B EA NOP A:D3 X:02 Y:C0 P:A4 SP:FB CYC: 71 SL:155 EE2C EA NOP A:D3 X:02 Y:C0 P:A4 SP:FB CYC: 77 SL:155 EE2D EA NOP A:D3 X:02 Y:C0 P:A4 SP:FB CYC: 83 SL:155 EE2E EA NOP A:D3 X:02 Y:C0 P:A4 SP:FB CYC: 89 SL:155 EE2F 20 91 FA JSR $FA91 A:D3 X:02 Y:C0 P:A4 SP:FB CYC: 95 SL:155 FA91 70 53 BVS $FAE6 A:D3 X:02 Y:C0 P:A4 SP:F9 CYC:113 SL:155 FA93 F0 51 BEQ $FAE6 A:D3 X:02 Y:C0 P:A4 SP:F9 CYC:119 SL:155 FA95 10 4F BPL $FAE6 A:D3 X:02 Y:C0 P:A4 SP:F9 CYC:125 SL:155 FA97 B0 4D BCS $FAE6 A:D3 X:02 Y:C0 P:A4 SP:F9 CYC:131 SL:155 FA99 C9 D3 CMP #$D3 A:D3 X:02 Y:C0 P:A4 SP:F9 CYC:137 SL:155 FA9B D0 49 BNE $FAE6 A:D3 X:02 Y:C0 P:27 SP:F9 CYC:143 SL:155 FA9D 60 RTS A:D3 X:02 Y:C0 P:27 SP:F9 CYC:149 SL:155 EE32 AD 47 06 LDA $0647 = 52 A:D3 X:02 Y:C0 P:27 SP:FB CYC:167 SL:155 EE35 C9 52 CMP #$52 A:52 X:02 Y:C0 P:25 SP:FB CYC:179 SL:155 EE37 F0 02 BEQ $EE3B A:52 X:02 Y:C0 P:27 SP:FB CYC:185 SL:155 EE3B C8 INY A:52 X:02 Y:C0 P:27 SP:FB CYC:194 SL:155 EE3C A9 37 LDA #$37 A:52 X:02 Y:C1 P:A5 SP:FB CYC:200 SL:155 EE3E 8D 47 06 STA $0647 = 52 A:37 X:02 Y:C1 P:25 SP:FB CYC:206 SL:155 EE41 20 9E FA JSR $FA9E A:37 X:02 Y:C1 P:25 SP:FB CYC:218 SL:155 FA9E 24 01 BIT $01 = FF A:37 X:02 Y:C1 P:25 SP:F9 CYC:236 SL:155 FAA0 38 SEC A:37 X:02 Y:C1 P:E5 SP:F9 CYC:245 SL:155 FAA1 A9 10 LDA #$10 A:37 X:02 Y:C1 P:E5 SP:F9 CYC:251 SL:155 FAA3 60 RTS A:10 X:02 Y:C1 P:65 SP:F9 CYC:257 SL:155 EE44 03 45 *SLO ($45,X) @ 47 = 0647 = 37 A:10 X:02 Y:C1 P:65 SP:FB CYC:275 SL:155 EE46 EA NOP A:7E X:02 Y:C1 P:64 SP:FB CYC:299 SL:155 EE47 EA NOP A:7E X:02 Y:C1 P:64 SP:FB CYC:305 SL:155 EE48 EA NOP A:7E X:02 Y:C1 P:64 SP:FB CYC:311 SL:155 EE49 EA NOP A:7E X:02 Y:C1 P:64 SP:FB CYC:317 SL:155 EE4A 20 A4 FA JSR $FAA4 A:7E X:02 Y:C1 P:64 SP:FB CYC:323 SL:155 FAA4 50 40 BVC $FAE6 A:7E X:02 Y:C1 P:64 SP:F9 CYC: 0 SL:156 FAA6 F0 3E BEQ $FAE6 A:7E X:02 Y:C1 P:64 SP:F9 CYC: 6 SL:156 FAA8 30 3C BMI $FAE6 A:7E X:02 Y:C1 P:64 SP:F9 CYC: 12 SL:156 FAAA B0 3A BCS $FAE6 A:7E X:02 Y:C1 P:64 SP:F9 CYC: 18 SL:156 FAAC C9 7E CMP #$7E A:7E X:02 Y:C1 P:64 SP:F9 CYC: 24 SL:156 FAAE D0 36 BNE $FAE6 A:7E X:02 Y:C1 P:67 SP:F9 CYC: 30 SL:156 FAB0 60 RTS A:7E X:02 Y:C1 P:67 SP:F9 CYC: 36 SL:156 EE4D AD 47 06 LDA $0647 = 6E A:7E X:02 Y:C1 P:67 SP:FB CYC: 54 SL:156 EE50 C9 6E CMP #$6E A:6E X:02 Y:C1 P:65 SP:FB CYC: 66 SL:156 EE52 F0 02 BEQ $EE56 A:6E X:02 Y:C1 P:67 SP:FB CYC: 72 SL:156 EE56 C8 INY A:6E X:02 Y:C1 P:67 SP:FB CYC: 81 SL:156 EE57 A9 A5 LDA #$A5 A:6E X:02 Y:C2 P:E5 SP:FB CYC: 87 SL:156 EE59 85 47 STA $47 = 47 A:A5 X:02 Y:C2 P:E5 SP:FB CYC: 93 SL:156 EE5B 20 7B FA JSR $FA7B A:A5 X:02 Y:C2 P:E5 SP:FB CYC:102 SL:156 FA7B 24 01 BIT $01 = FF A:A5 X:02 Y:C2 P:E5 SP:F9 CYC:120 SL:156 FA7D 18 CLC A:A5 X:02 Y:C2 P:E5 SP:F9 CYC:129 SL:156 FA7E A9 B3 LDA #$B3 A:A5 X:02 Y:C2 P:E4 SP:F9 CYC:135 SL:156 FA80 60 RTS A:B3 X:02 Y:C2 P:E4 SP:F9 CYC:141 SL:156 EE5E 07 47 *SLO $47 = A5 A:B3 X:02 Y:C2 P:E4 SP:FB CYC:159 SL:156 EE60 EA NOP A:FB X:02 Y:C2 P:E5 SP:FB CYC:174 SL:156 EE61 EA NOP A:FB X:02 Y:C2 P:E5 SP:FB CYC:180 SL:156 EE62 EA NOP A:FB X:02 Y:C2 P:E5 SP:FB CYC:186 SL:156 EE63 EA NOP A:FB X:02 Y:C2 P:E5 SP:FB CYC:192 SL:156 EE64 20 81 FA JSR $FA81 A:FB X:02 Y:C2 P:E5 SP:FB CYC:198 SL:156 FA81 50 63 BVC $FAE6 A:FB X:02 Y:C2 P:E5 SP:F9 CYC:216 SL:156 FA83 90 61 BCC $FAE6 A:FB X:02 Y:C2 P:E5 SP:F9 CYC:222 SL:156 FA85 10 5F BPL $FAE6 A:FB X:02 Y:C2 P:E5 SP:F9 CYC:228 SL:156 FA87 C9 FB CMP #$FB A:FB X:02 Y:C2 P:E5 SP:F9 CYC:234 SL:156 FA89 D0 5B BNE $FAE6 A:FB X:02 Y:C2 P:67 SP:F9 CYC:240 SL:156 FA8B 60 RTS A:FB X:02 Y:C2 P:67 SP:F9 CYC:246 SL:156 EE67 A5 47 LDA $47 = 4A A:FB X:02 Y:C2 P:67 SP:FB CYC:264 SL:156 EE69 C9 4A CMP #$4A A:4A X:02 Y:C2 P:65 SP:FB CYC:273 SL:156 EE6B F0 02 BEQ $EE6F A:4A X:02 Y:C2 P:67 SP:FB CYC:279 SL:156 EE6F C8 INY A:4A X:02 Y:C2 P:67 SP:FB CYC:288 SL:156 EE70 A9 29 LDA #$29 A:4A X:02 Y:C3 P:E5 SP:FB CYC:294 SL:156 EE72 85 47 STA $47 = 4A A:29 X:02 Y:C3 P:65 SP:FB CYC:300 SL:156 EE74 20 8C FA JSR $FA8C A:29 X:02 Y:C3 P:65 SP:FB CYC:309 SL:156 FA8C B8 CLV A:29 X:02 Y:C3 P:65 SP:F9 CYC:327 SL:156 FA8D 18 CLC A:29 X:02 Y:C3 P:25 SP:F9 CYC:333 SL:156 FA8E A9 C3 LDA #$C3 A:29 X:02 Y:C3 P:24 SP:F9 CYC:339 SL:156 FA90 60 RTS A:C3 X:02 Y:C3 P:A4 SP:F9 CYC: 4 SL:157 EE77 07 47 *SLO $47 = 29 A:C3 X:02 Y:C3 P:A4 SP:FB CYC: 22 SL:157 EE79 EA NOP A:D3 X:02 Y:C3 P:A4 SP:FB CYC: 37 SL:157 EE7A EA NOP A:D3 X:02 Y:C3 P:A4 SP:FB CYC: 43 SL:157 EE7B EA NOP A:D3 X:02 Y:C3 P:A4 SP:FB CYC: 49 SL:157 EE7C EA NOP A:D3 X:02 Y:C3 P:A4 SP:FB CYC: 55 SL:157 EE7D 20 91 FA JSR $FA91 A:D3 X:02 Y:C3 P:A4 SP:FB CYC: 61 SL:157 FA91 70 53 BVS $FAE6 A:D3 X:02 Y:C3 P:A4 SP:F9 CYC: 79 SL:157 FA93 F0 51 BEQ $FAE6 A:D3 X:02 Y:C3 P:A4 SP:F9 CYC: 85 SL:157 FA95 10 4F BPL $FAE6 A:D3 X:02 Y:C3 P:A4 SP:F9 CYC: 91 SL:157 FA97 B0 4D BCS $FAE6 A:D3 X:02 Y:C3 P:A4 SP:F9 CYC: 97 SL:157 FA99 C9 D3 CMP #$D3 A:D3 X:02 Y:C3 P:A4 SP:F9 CYC:103 SL:157 FA9B D0 49 BNE $FAE6 A:D3 X:02 Y:C3 P:27 SP:F9 CYC:109 SL:157 FA9D 60 RTS A:D3 X:02 Y:C3 P:27 SP:F9 CYC:115 SL:157 EE80 A5 47 LDA $47 = 52 A:D3 X:02 Y:C3 P:27 SP:FB CYC:133 SL:157 EE82 C9 52 CMP #$52 A:52 X:02 Y:C3 P:25 SP:FB CYC:142 SL:157 EE84 F0 02 BEQ $EE88 A:52 X:02 Y:C3 P:27 SP:FB CYC:148 SL:157 EE88 C8 INY A:52 X:02 Y:C3 P:27 SP:FB CYC:157 SL:157 EE89 A9 37 LDA #$37 A:52 X:02 Y:C4 P:A5 SP:FB CYC:163 SL:157 EE8B 85 47 STA $47 = 52 A:37 X:02 Y:C4 P:25 SP:FB CYC:169 SL:157 EE8D 20 9E FA JSR $FA9E A:37 X:02 Y:C4 P:25 SP:FB CYC:178 SL:157 FA9E 24 01 BIT $01 = FF A:37 X:02 Y:C4 P:25 SP:F9 CYC:196 SL:157 FAA0 38 SEC A:37 X:02 Y:C4 P:E5 SP:F9 CYC:205 SL:157 FAA1 A9 10 LDA #$10 A:37 X:02 Y:C4 P:E5 SP:F9 CYC:211 SL:157 FAA3 60 RTS A:10 X:02 Y:C4 P:65 SP:F9 CYC:217 SL:157 EE90 07 47 *SLO $47 = 37 A:10 X:02 Y:C4 P:65 SP:FB CYC:235 SL:157 EE92 EA NOP A:7E X:02 Y:C4 P:64 SP:FB CYC:250 SL:157 EE93 EA NOP A:7E X:02 Y:C4 P:64 SP:FB CYC:256 SL:157 EE94 EA NOP A:7E X:02 Y:C4 P:64 SP:FB CYC:262 SL:157 EE95 EA NOP A:7E X:02 Y:C4 P:64 SP:FB CYC:268 SL:157 EE96 20 A4 FA JSR $FAA4 A:7E X:02 Y:C4 P:64 SP:FB CYC:274 SL:157 FAA4 50 40 BVC $FAE6 A:7E X:02 Y:C4 P:64 SP:F9 CYC:292 SL:157 FAA6 F0 3E BEQ $FAE6 A:7E X:02 Y:C4 P:64 SP:F9 CYC:298 SL:157 FAA8 30 3C BMI $FAE6 A:7E X:02 Y:C4 P:64 SP:F9 CYC:304 SL:157 FAAA B0 3A BCS $FAE6 A:7E X:02 Y:C4 P:64 SP:F9 CYC:310 SL:157 FAAC C9 7E CMP #$7E A:7E X:02 Y:C4 P:64 SP:F9 CYC:316 SL:157 FAAE D0 36 BNE $FAE6 A:7E X:02 Y:C4 P:67 SP:F9 CYC:322 SL:157 FAB0 60 RTS A:7E X:02 Y:C4 P:67 SP:F9 CYC:328 SL:157 EE99 A5 47 LDA $47 = 6E A:7E X:02 Y:C4 P:67 SP:FB CYC: 5 SL:158 EE9B C9 6E CMP #$6E A:6E X:02 Y:C4 P:65 SP:FB CYC: 14 SL:158 EE9D F0 02 BEQ $EEA1 A:6E X:02 Y:C4 P:67 SP:FB CYC: 20 SL:158 EEA1 C8 INY A:6E X:02 Y:C4 P:67 SP:FB CYC: 29 SL:158 EEA2 A9 A5 LDA #$A5 A:6E X:02 Y:C5 P:E5 SP:FB CYC: 35 SL:158 EEA4 8D 47 06 STA $0647 = 6E A:A5 X:02 Y:C5 P:E5 SP:FB CYC: 41 SL:158 EEA7 20 7B FA JSR $FA7B A:A5 X:02 Y:C5 P:E5 SP:FB CYC: 53 SL:158 FA7B 24 01 BIT $01 = FF A:A5 X:02 Y:C5 P:E5 SP:F9 CYC: 71 SL:158 FA7D 18 CLC A:A5 X:02 Y:C5 P:E5 SP:F9 CYC: 80 SL:158 FA7E A9 B3 LDA #$B3 A:A5 X:02 Y:C5 P:E4 SP:F9 CYC: 86 SL:158 FA80 60 RTS A:B3 X:02 Y:C5 P:E4 SP:F9 CYC: 92 SL:158 EEAA 0F 47 06 *SLO $0647 = A5 A:B3 X:02 Y:C5 P:E4 SP:FB CYC:110 SL:158 EEAD EA NOP A:FB X:02 Y:C5 P:E5 SP:FB CYC:128 SL:158 EEAE EA NOP A:FB X:02 Y:C5 P:E5 SP:FB CYC:134 SL:158 EEAF EA NOP A:FB X:02 Y:C5 P:E5 SP:FB CYC:140 SL:158 EEB0 EA NOP A:FB X:02 Y:C5 P:E5 SP:FB CYC:146 SL:158 EEB1 20 81 FA JSR $FA81 A:FB X:02 Y:C5 P:E5 SP:FB CYC:152 SL:158 FA81 50 63 BVC $FAE6 A:FB X:02 Y:C5 P:E5 SP:F9 CYC:170 SL:158 FA83 90 61 BCC $FAE6 A:FB X:02 Y:C5 P:E5 SP:F9 CYC:176 SL:158 FA85 10 5F BPL $FAE6 A:FB X:02 Y:C5 P:E5 SP:F9 CYC:182 SL:158 FA87 C9 FB CMP #$FB A:FB X:02 Y:C5 P:E5 SP:F9 CYC:188 SL:158 FA89 D0 5B BNE $FAE6 A:FB X:02 Y:C5 P:67 SP:F9 CYC:194 SL:158 FA8B 60 RTS A:FB X:02 Y:C5 P:67 SP:F9 CYC:200 SL:158 EEB4 AD 47 06 LDA $0647 = 4A A:FB X:02 Y:C5 P:67 SP:FB CYC:218 SL:158 EEB7 C9 4A CMP #$4A A:4A X:02 Y:C5 P:65 SP:FB CYC:230 SL:158 EEB9 F0 02 BEQ $EEBD A:4A X:02 Y:C5 P:67 SP:FB CYC:236 SL:158 EEBD C8 INY A:4A X:02 Y:C5 P:67 SP:FB CYC:245 SL:158 EEBE A9 29 LDA #$29 A:4A X:02 Y:C6 P:E5 SP:FB CYC:251 SL:158 EEC0 8D 47 06 STA $0647 = 4A A:29 X:02 Y:C6 P:65 SP:FB CYC:257 SL:158 EEC3 20 8C FA JSR $FA8C A:29 X:02 Y:C6 P:65 SP:FB CYC:269 SL:158 FA8C B8 CLV A:29 X:02 Y:C6 P:65 SP:F9 CYC:287 SL:158 FA8D 18 CLC A:29 X:02 Y:C6 P:25 SP:F9 CYC:293 SL:158 FA8E A9 C3 LDA #$C3 A:29 X:02 Y:C6 P:24 SP:F9 CYC:299 SL:158 FA90 60 RTS A:C3 X:02 Y:C6 P:A4 SP:F9 CYC:305 SL:158 EEC6 0F 47 06 *SLO $0647 = 29 A:C3 X:02 Y:C6 P:A4 SP:FB CYC:323 SL:158 EEC9 EA NOP A:D3 X:02 Y:C6 P:A4 SP:FB CYC: 0 SL:159 EECA EA NOP A:D3 X:02 Y:C6 P:A4 SP:FB CYC: 6 SL:159 EECB EA NOP A:D3 X:02 Y:C6 P:A4 SP:FB CYC: 12 SL:159 EECC EA NOP A:D3 X:02 Y:C6 P:A4 SP:FB CYC: 18 SL:159 EECD 20 91 FA JSR $FA91 A:D3 X:02 Y:C6 P:A4 SP:FB CYC: 24 SL:159 FA91 70 53 BVS $FAE6 A:D3 X:02 Y:C6 P:A4 SP:F9 CYC: 42 SL:159 FA93 F0 51 BEQ $FAE6 A:D3 X:02 Y:C6 P:A4 SP:F9 CYC: 48 SL:159 FA95 10 4F BPL $FAE6 A:D3 X:02 Y:C6 P:A4 SP:F9 CYC: 54 SL:159 FA97 B0 4D BCS $FAE6 A:D3 X:02 Y:C6 P:A4 SP:F9 CYC: 60 SL:159 FA99 C9 D3 CMP #$D3 A:D3 X:02 Y:C6 P:A4 SP:F9 CYC: 66 SL:159 FA9B D0 49 BNE $FAE6 A:D3 X:02 Y:C6 P:27 SP:F9 CYC: 72 SL:159 FA9D 60 RTS A:D3 X:02 Y:C6 P:27 SP:F9 CYC: 78 SL:159 EED0 AD 47 06 LDA $0647 = 52 A:D3 X:02 Y:C6 P:27 SP:FB CYC: 96 SL:159 EED3 C9 52 CMP #$52 A:52 X:02 Y:C6 P:25 SP:FB CYC:108 SL:159 EED5 F0 02 BEQ $EED9 A:52 X:02 Y:C6 P:27 SP:FB CYC:114 SL:159 EED9 C8 INY A:52 X:02 Y:C6 P:27 SP:FB CYC:123 SL:159 EEDA A9 37 LDA #$37 A:52 X:02 Y:C7 P:A5 SP:FB CYC:129 SL:159 EEDC 8D 47 06 STA $0647 = 52 A:37 X:02 Y:C7 P:25 SP:FB CYC:135 SL:159 EEDF 20 9E FA JSR $FA9E A:37 X:02 Y:C7 P:25 SP:FB CYC:147 SL:159 FA9E 24 01 BIT $01 = FF A:37 X:02 Y:C7 P:25 SP:F9 CYC:165 SL:159 FAA0 38 SEC A:37 X:02 Y:C7 P:E5 SP:F9 CYC:174 SL:159 FAA1 A9 10 LDA #$10 A:37 X:02 Y:C7 P:E5 SP:F9 CYC:180 SL:159 FAA3 60 RTS A:10 X:02 Y:C7 P:65 SP:F9 CYC:186 SL:159 EEE2 0F 47 06 *SLO $0647 = 37 A:10 X:02 Y:C7 P:65 SP:FB CYC:204 SL:159 EEE5 EA NOP A:7E X:02 Y:C7 P:64 SP:FB CYC:222 SL:159 EEE6 EA NOP A:7E X:02 Y:C7 P:64 SP:FB CYC:228 SL:159 EEE7 EA NOP A:7E X:02 Y:C7 P:64 SP:FB CYC:234 SL:159 EEE8 EA NOP A:7E X:02 Y:C7 P:64 SP:FB CYC:240 SL:159 EEE9 20 A4 FA JSR $FAA4 A:7E X:02 Y:C7 P:64 SP:FB CYC:246 SL:159 FAA4 50 40 BVC $FAE6 A:7E X:02 Y:C7 P:64 SP:F9 CYC:264 SL:159 FAA6 F0 3E BEQ $FAE6 A:7E X:02 Y:C7 P:64 SP:F9 CYC:270 SL:159 FAA8 30 3C BMI $FAE6 A:7E X:02 Y:C7 P:64 SP:F9 CYC:276 SL:159 FAAA B0 3A BCS $FAE6 A:7E X:02 Y:C7 P:64 SP:F9 CYC:282 SL:159 FAAC C9 7E CMP #$7E A:7E X:02 Y:C7 P:64 SP:F9 CYC:288 SL:159 FAAE D0 36 BNE $FAE6 A:7E X:02 Y:C7 P:67 SP:F9 CYC:294 SL:159 FAB0 60 RTS A:7E X:02 Y:C7 P:67 SP:F9 CYC:300 SL:159 EEEC AD 47 06 LDA $0647 = 6E A:7E X:02 Y:C7 P:67 SP:FB CYC:318 SL:159 EEEF C9 6E CMP #$6E A:6E X:02 Y:C7 P:65 SP:FB CYC:330 SL:159 EEF1 F0 02 BEQ $EEF5 A:6E X:02 Y:C7 P:67 SP:FB CYC:336 SL:159 EEF5 A9 A5 LDA #$A5 A:6E X:02 Y:C7 P:67 SP:FB CYC: 4 SL:160 EEF7 8D 47 06 STA $0647 = 6E A:A5 X:02 Y:C7 P:E5 SP:FB CYC: 10 SL:160 EEFA A9 48 LDA #$48 A:A5 X:02 Y:C7 P:E5 SP:FB CYC: 22 SL:160 EEFC 85 45 STA $45 = 48 A:48 X:02 Y:C7 P:65 SP:FB CYC: 28 SL:160 EEFE A9 05 LDA #$05 A:48 X:02 Y:C7 P:65 SP:FB CYC: 37 SL:160 EF00 85 46 STA $46 = 05 A:05 X:02 Y:C7 P:65 SP:FB CYC: 43 SL:160 EF02 A0 FF LDY #$FF A:05 X:02 Y:C7 P:65 SP:FB CYC: 52 SL:160 EF04 20 7B FA JSR $FA7B A:05 X:02 Y:FF P:E5 SP:FB CYC: 58 SL:160 FA7B 24 01 BIT $01 = FF A:05 X:02 Y:FF P:E5 SP:F9 CYC: 76 SL:160 FA7D 18 CLC A:05 X:02 Y:FF P:E5 SP:F9 CYC: 85 SL:160 FA7E A9 B3 LDA #$B3 A:05 X:02 Y:FF P:E4 SP:F9 CYC: 91 SL:160 FA80 60 RTS A:B3 X:02 Y:FF P:E4 SP:F9 CYC: 97 SL:160 EF07 13 45 *SLO ($45),Y = 0548 @ 0647 = A5 A:B3 X:02 Y:FF P:E4 SP:FB CYC:115 SL:160 EF09 EA NOP A:FB X:02 Y:FF P:E5 SP:FB CYC:139 SL:160 EF0A EA NOP A:FB X:02 Y:FF P:E5 SP:FB CYC:145 SL:160 EF0B 08 PHP A:FB X:02 Y:FF P:E5 SP:FB CYC:151 SL:160 EF0C 48 PHA A:FB X:02 Y:FF P:E5 SP:FA CYC:160 SL:160 EF0D A0 C8 LDY #$C8 A:FB X:02 Y:FF P:E5 SP:F9 CYC:169 SL:160 EF0F 68 PLA A:FB X:02 Y:C8 P:E5 SP:F9 CYC:175 SL:160 EF10 28 PLP A:FB X:02 Y:C8 P:E5 SP:FA CYC:187 SL:160 EF11 20 81 FA JSR $FA81 A:FB X:02 Y:C8 P:E5 SP:FB CYC:199 SL:160 FA81 50 63 BVC $FAE6 A:FB X:02 Y:C8 P:E5 SP:F9 CYC:217 SL:160 FA83 90 61 BCC $FAE6 A:FB X:02 Y:C8 P:E5 SP:F9 CYC:223 SL:160 FA85 10 5F BPL $FAE6 A:FB X:02 Y:C8 P:E5 SP:F9 CYC:229 SL:160 FA87 C9 FB CMP #$FB A:FB X:02 Y:C8 P:E5 SP:F9 CYC:235 SL:160 FA89 D0 5B BNE $FAE6 A:FB X:02 Y:C8 P:67 SP:F9 CYC:241 SL:160 FA8B 60 RTS A:FB X:02 Y:C8 P:67 SP:F9 CYC:247 SL:160 EF14 AD 47 06 LDA $0647 = 4A A:FB X:02 Y:C8 P:67 SP:FB CYC:265 SL:160 EF17 C9 4A CMP #$4A A:4A X:02 Y:C8 P:65 SP:FB CYC:277 SL:160 EF19 F0 02 BEQ $EF1D A:4A X:02 Y:C8 P:67 SP:FB CYC:283 SL:160 EF1D A0 FF LDY #$FF A:4A X:02 Y:C8 P:67 SP:FB CYC:292 SL:160 EF1F A9 29 LDA #$29 A:4A X:02 Y:FF P:E5 SP:FB CYC:298 SL:160 EF21 8D 47 06 STA $0647 = 4A A:29 X:02 Y:FF P:65 SP:FB CYC:304 SL:160 EF24 20 8C FA JSR $FA8C A:29 X:02 Y:FF P:65 SP:FB CYC:316 SL:160 FA8C B8 CLV A:29 X:02 Y:FF P:65 SP:F9 CYC:334 SL:160 FA8D 18 CLC A:29 X:02 Y:FF P:25 SP:F9 CYC:340 SL:160 FA8E A9 C3 LDA #$C3 A:29 X:02 Y:FF P:24 SP:F9 CYC: 5 SL:161 FA90 60 RTS A:C3 X:02 Y:FF P:A4 SP:F9 CYC: 11 SL:161 EF27 13 45 *SLO ($45),Y = 0548 @ 0647 = 29 A:C3 X:02 Y:FF P:A4 SP:FB CYC: 29 SL:161 EF29 EA NOP A:D3 X:02 Y:FF P:A4 SP:FB CYC: 53 SL:161 EF2A EA NOP A:D3 X:02 Y:FF P:A4 SP:FB CYC: 59 SL:161 EF2B 08 PHP A:D3 X:02 Y:FF P:A4 SP:FB CYC: 65 SL:161 EF2C 48 PHA A:D3 X:02 Y:FF P:A4 SP:FA CYC: 74 SL:161 EF2D A0 C9 LDY #$C9 A:D3 X:02 Y:FF P:A4 SP:F9 CYC: 83 SL:161 EF2F 68 PLA A:D3 X:02 Y:C9 P:A4 SP:F9 CYC: 89 SL:161 EF30 28 PLP A:D3 X:02 Y:C9 P:A4 SP:FA CYC:101 SL:161 EF31 20 91 FA JSR $FA91 A:D3 X:02 Y:C9 P:A4 SP:FB CYC:113 SL:161 FA91 70 53 BVS $FAE6 A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:131 SL:161 FA93 F0 51 BEQ $FAE6 A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:137 SL:161 FA95 10 4F BPL $FAE6 A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:143 SL:161 FA97 B0 4D BCS $FAE6 A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:149 SL:161 FA99 C9 D3 CMP #$D3 A:D3 X:02 Y:C9 P:A4 SP:F9 CYC:155 SL:161 FA9B D0 49 BNE $FAE6 A:D3 X:02 Y:C9 P:27 SP:F9 CYC:161 SL:161 FA9D 60 RTS A:D3 X:02 Y:C9 P:27 SP:F9 CYC:167 SL:161 EF34 AD 47 06 LDA $0647 = 52 A:D3 X:02 Y:C9 P:27 SP:FB CYC:185 SL:161 EF37 C9 52 CMP #$52 A:52 X:02 Y:C9 P:25 SP:FB CYC:197 SL:161 EF39 F0 02 BEQ $EF3D A:52 X:02 Y:C9 P:27 SP:FB CYC:203 SL:161 EF3D A0 FF LDY #$FF A:52 X:02 Y:C9 P:27 SP:FB CYC:212 SL:161 EF3F A9 37 LDA #$37 A:52 X:02 Y:FF P:A5 SP:FB CYC:218 SL:161 EF41 8D 47 06 STA $0647 = 52 A:37 X:02 Y:FF P:25 SP:FB CYC:224 SL:161 EF44 20 9E FA JSR $FA9E A:37 X:02 Y:FF P:25 SP:FB CYC:236 SL:161 FA9E 24 01 BIT $01 = FF A:37 X:02 Y:FF P:25 SP:F9 CYC:254 SL:161 FAA0 38 SEC A:37 X:02 Y:FF P:E5 SP:F9 CYC:263 SL:161 FAA1 A9 10 LDA #$10 A:37 X:02 Y:FF P:E5 SP:F9 CYC:269 SL:161 FAA3 60 RTS A:10 X:02 Y:FF P:65 SP:F9 CYC:275 SL:161 EF47 13 45 *SLO ($45),Y = 0548 @ 0647 = 37 A:10 X:02 Y:FF P:65 SP:FB CYC:293 SL:161 EF49 EA NOP A:7E X:02 Y:FF P:64 SP:FB CYC:317 SL:161 EF4A EA NOP A:7E X:02 Y:FF P:64 SP:FB CYC:323 SL:161 EF4B 08 PHP A:7E X:02 Y:FF P:64 SP:FB CYC:329 SL:161 EF4C 48 PHA A:7E X:02 Y:FF P:64 SP:FA CYC:338 SL:161 EF4D A0 CA LDY #$CA A:7E X:02 Y:FF P:64 SP:F9 CYC: 6 SL:162 EF4F 68 PLA A:7E X:02 Y:CA P:E4 SP:F9 CYC: 12 SL:162 EF50 28 PLP A:7E X:02 Y:CA P:64 SP:FA CYC: 24 SL:162 EF51 20 A4 FA JSR $FAA4 A:7E X:02 Y:CA P:64 SP:FB CYC: 36 SL:162 FAA4 50 40 BVC $FAE6 A:7E X:02 Y:CA P:64 SP:F9 CYC: 54 SL:162 FAA6 F0 3E BEQ $FAE6 A:7E X:02 Y:CA P:64 SP:F9 CYC: 60 SL:162 FAA8 30 3C BMI $FAE6 A:7E X:02 Y:CA P:64 SP:F9 CYC: 66 SL:162 FAAA B0 3A BCS $FAE6 A:7E X:02 Y:CA P:64 SP:F9 CYC: 72 SL:162 FAAC C9 7E CMP #$7E A:7E X:02 Y:CA P:64 SP:F9 CYC: 78 SL:162 FAAE D0 36 BNE $FAE6 A:7E X:02 Y:CA P:67 SP:F9 CYC: 84 SL:162 FAB0 60 RTS A:7E X:02 Y:CA P:67 SP:F9 CYC: 90 SL:162 EF54 AD 47 06 LDA $0647 = 6E A:7E X:02 Y:CA P:67 SP:FB CYC:108 SL:162 EF57 C9 6E CMP #$6E A:6E X:02 Y:CA P:65 SP:FB CYC:120 SL:162 EF59 F0 02 BEQ $EF5D A:6E X:02 Y:CA P:67 SP:FB CYC:126 SL:162 EF5D A0 CB LDY #$CB A:6E X:02 Y:CA P:67 SP:FB CYC:135 SL:162 EF5F A2 FF LDX #$FF A:6E X:02 Y:CB P:E5 SP:FB CYC:141 SL:162 EF61 A9 A5 LDA #$A5 A:6E X:FF Y:CB P:E5 SP:FB CYC:147 SL:162 EF63 85 47 STA $47 = 6E A:A5 X:FF Y:CB P:E5 SP:FB CYC:153 SL:162 EF65 20 7B FA JSR $FA7B A:A5 X:FF Y:CB P:E5 SP:FB CYC:162 SL:162 FA7B 24 01 BIT $01 = FF A:A5 X:FF Y:CB P:E5 SP:F9 CYC:180 SL:162 FA7D 18 CLC A:A5 X:FF Y:CB P:E5 SP:F9 CYC:189 SL:162 FA7E A9 B3 LDA #$B3 A:A5 X:FF Y:CB P:E4 SP:F9 CYC:195 SL:162 FA80 60 RTS A:B3 X:FF Y:CB P:E4 SP:F9 CYC:201 SL:162 EF68 17 48 *SLO $48,X @ 47 = A5 A:B3 X:FF Y:CB P:E4 SP:FB CYC:219 SL:162 EF6A EA NOP A:FB X:FF Y:CB P:E5 SP:FB CYC:237 SL:162 EF6B EA NOP A:FB X:FF Y:CB P:E5 SP:FB CYC:243 SL:162 EF6C EA NOP A:FB X:FF Y:CB P:E5 SP:FB CYC:249 SL:162 EF6D EA NOP A:FB X:FF Y:CB P:E5 SP:FB CYC:255 SL:162 EF6E 20 81 FA JSR $FA81 A:FB X:FF Y:CB P:E5 SP:FB CYC:261 SL:162 FA81 50 63 BVC $FAE6 A:FB X:FF Y:CB P:E5 SP:F9 CYC:279 SL:162 FA83 90 61 BCC $FAE6 A:FB X:FF Y:CB P:E5 SP:F9 CYC:285 SL:162 FA85 10 5F BPL $FAE6 A:FB X:FF Y:CB P:E5 SP:F9 CYC:291 SL:162 FA87 C9 FB CMP #$FB A:FB X:FF Y:CB P:E5 SP:F9 CYC:297 SL:162 FA89 D0 5B BNE $FAE6 A:FB X:FF Y:CB P:67 SP:F9 CYC:303 SL:162 FA8B 60 RTS A:FB X:FF Y:CB P:67 SP:F9 CYC:309 SL:162 EF71 A5 47 LDA $47 = 4A A:FB X:FF Y:CB P:67 SP:FB CYC:327 SL:162 EF73 C9 4A CMP #$4A A:4A X:FF Y:CB P:65 SP:FB CYC:336 SL:162 EF75 F0 02 BEQ $EF79 A:4A X:FF Y:CB P:67 SP:FB CYC: 1 SL:163 EF79 C8 INY A:4A X:FF Y:CB P:67 SP:FB CYC: 10 SL:163 EF7A A9 29 LDA #$29 A:4A X:FF Y:CC P:E5 SP:FB CYC: 16 SL:163 EF7C 85 47 STA $47 = 4A A:29 X:FF Y:CC P:65 SP:FB CYC: 22 SL:163 EF7E 20 8C FA JSR $FA8C A:29 X:FF Y:CC P:65 SP:FB CYC: 31 SL:163 FA8C B8 CLV A:29 X:FF Y:CC P:65 SP:F9 CYC: 49 SL:163 FA8D 18 CLC A:29 X:FF Y:CC P:25 SP:F9 CYC: 55 SL:163 FA8E A9 C3 LDA #$C3 A:29 X:FF Y:CC P:24 SP:F9 CYC: 61 SL:163 FA90 60 RTS A:C3 X:FF Y:CC P:A4 SP:F9 CYC: 67 SL:163 EF81 17 48 *SLO $48,X @ 47 = 29 A:C3 X:FF Y:CC P:A4 SP:FB CYC: 85 SL:163 EF83 EA NOP A:D3 X:FF Y:CC P:A4 SP:FB CYC:103 SL:163 EF84 EA NOP A:D3 X:FF Y:CC P:A4 SP:FB CYC:109 SL:163 EF85 EA NOP A:D3 X:FF Y:CC P:A4 SP:FB CYC:115 SL:163 EF86 EA NOP A:D3 X:FF Y:CC P:A4 SP:FB CYC:121 SL:163 EF87 20 91 FA JSR $FA91 A:D3 X:FF Y:CC P:A4 SP:FB CYC:127 SL:163 FA91 70 53 BVS $FAE6 A:D3 X:FF Y:CC P:A4 SP:F9 CYC:145 SL:163 FA93 F0 51 BEQ $FAE6 A:D3 X:FF Y:CC P:A4 SP:F9 CYC:151 SL:163 FA95 10 4F BPL $FAE6 A:D3 X:FF Y:CC P:A4 SP:F9 CYC:157 SL:163 FA97 B0 4D BCS $FAE6 A:D3 X:FF Y:CC P:A4 SP:F9 CYC:163 SL:163 FA99 C9 D3 CMP #$D3 A:D3 X:FF Y:CC P:A4 SP:F9 CYC:169 SL:163 FA9B D0 49 BNE $FAE6 A:D3 X:FF Y:CC P:27 SP:F9 CYC:175 SL:163 FA9D 60 RTS A:D3 X:FF Y:CC P:27 SP:F9 CYC:181 SL:163 EF8A A5 47 LDA $47 = 52 A:D3 X:FF Y:CC P:27 SP:FB CYC:199 SL:163 EF8C C9 52 CMP #$52 A:52 X:FF Y:CC P:25 SP:FB CYC:208 SL:163 EF8E F0 02 BEQ $EF92 A:52 X:FF Y:CC P:27 SP:FB CYC:214 SL:163 EF92 C8 INY A:52 X:FF Y:CC P:27 SP:FB CYC:223 SL:163 EF93 A9 37 LDA #$37 A:52 X:FF Y:CD P:A5 SP:FB CYC:229 SL:163 EF95 85 47 STA $47 = 52 A:37 X:FF Y:CD P:25 SP:FB CYC:235 SL:163 EF97 20 9E FA JSR $FA9E A:37 X:FF Y:CD P:25 SP:FB CYC:244 SL:163 FA9E 24 01 BIT $01 = FF A:37 X:FF Y:CD P:25 SP:F9 CYC:262 SL:163 FAA0 38 SEC A:37 X:FF Y:CD P:E5 SP:F9 CYC:271 SL:163 FAA1 A9 10 LDA #$10 A:37 X:FF Y:CD P:E5 SP:F9 CYC:277 SL:163 FAA3 60 RTS A:10 X:FF Y:CD P:65 SP:F9 CYC:283 SL:163 EF9A 17 48 *SLO $48,X @ 47 = 37 A:10 X:FF Y:CD P:65 SP:FB CYC:301 SL:163 EF9C EA NOP A:7E X:FF Y:CD P:64 SP:FB CYC:319 SL:163 EF9D EA NOP A:7E X:FF Y:CD P:64 SP:FB CYC:325 SL:163 EF9E EA NOP A:7E X:FF Y:CD P:64 SP:FB CYC:331 SL:163 EF9F EA NOP A:7E X:FF Y:CD P:64 SP:FB CYC:337 SL:163 EFA0 20 A4 FA JSR $FAA4 A:7E X:FF Y:CD P:64 SP:FB CYC: 2 SL:164 FAA4 50 40 BVC $FAE6 A:7E X:FF Y:CD P:64 SP:F9 CYC: 20 SL:164 FAA6 F0 3E BEQ $FAE6 A:7E X:FF Y:CD P:64 SP:F9 CYC: 26 SL:164 FAA8 30 3C BMI $FAE6 A:7E X:FF Y:CD P:64 SP:F9 CYC: 32 SL:164 FAAA B0 3A BCS $FAE6 A:7E X:FF Y:CD P:64 SP:F9 CYC: 38 SL:164 FAAC C9 7E CMP #$7E A:7E X:FF Y:CD P:64 SP:F9 CYC: 44 SL:164 FAAE D0 36 BNE $FAE6 A:7E X:FF Y:CD P:67 SP:F9 CYC: 50 SL:164 FAB0 60 RTS A:7E X:FF Y:CD P:67 SP:F9 CYC: 56 SL:164 EFA3 A5 47 LDA $47 = 6E A:7E X:FF Y:CD P:67 SP:FB CYC: 74 SL:164 EFA5 C9 6E CMP #$6E A:6E X:FF Y:CD P:65 SP:FB CYC: 83 SL:164 EFA7 F0 02 BEQ $EFAB A:6E X:FF Y:CD P:67 SP:FB CYC: 89 SL:164 EFAB A9 A5 LDA #$A5 A:6E X:FF Y:CD P:67 SP:FB CYC: 98 SL:164 EFAD 8D 47 06 STA $0647 = 6E A:A5 X:FF Y:CD P:E5 SP:FB CYC:104 SL:164 EFB0 A0 FF LDY #$FF A:A5 X:FF Y:CD P:E5 SP:FB CYC:116 SL:164 EFB2 20 7B FA JSR $FA7B A:A5 X:FF Y:FF P:E5 SP:FB CYC:122 SL:164 FA7B 24 01 BIT $01 = FF A:A5 X:FF Y:FF P:E5 SP:F9 CYC:140 SL:164 FA7D 18 CLC A:A5 X:FF Y:FF P:E5 SP:F9 CYC:149 SL:164 FA7E A9 B3 LDA #$B3 A:A5 X:FF Y:FF P:E4 SP:F9 CYC:155 SL:164 FA80 60 RTS A:B3 X:FF Y:FF P:E4 SP:F9 CYC:161 SL:164 EFB5 1B 48 05 *SLO $0548,Y @ 0647 = A5 A:B3 X:FF Y:FF P:E4 SP:FB CYC:179 SL:164 EFB8 EA NOP A:FB X:FF Y:FF P:E5 SP:FB CYC:200 SL:164 EFB9 EA NOP A:FB X:FF Y:FF P:E5 SP:FB CYC:206 SL:164 EFBA 08 PHP A:FB X:FF Y:FF P:E5 SP:FB CYC:212 SL:164 EFBB 48 PHA A:FB X:FF Y:FF P:E5 SP:FA CYC:221 SL:164 EFBC A0 CE LDY #$CE A:FB X:FF Y:FF P:E5 SP:F9 CYC:230 SL:164 EFBE 68 PLA A:FB X:FF Y:CE P:E5 SP:F9 CYC:236 SL:164 EFBF 28 PLP A:FB X:FF Y:CE P:E5 SP:FA CYC:248 SL:164 EFC0 20 81 FA JSR $FA81 A:FB X:FF Y:CE P:E5 SP:FB CYC:260 SL:164 FA81 50 63 BVC $FAE6 A:FB X:FF Y:CE P:E5 SP:F9 CYC:278 SL:164 FA83 90 61 BCC $FAE6 A:FB X:FF Y:CE P:E5 SP:F9 CYC:284 SL:164 FA85 10 5F BPL $FAE6 A:FB X:FF Y:CE P:E5 SP:F9 CYC:290 SL:164 FA87 C9 FB CMP #$FB A:FB X:FF Y:CE P:E5 SP:F9 CYC:296 SL:164 FA89 D0 5B BNE $FAE6 A:FB X:FF Y:CE P:67 SP:F9 CYC:302 SL:164 FA8B 60 RTS A:FB X:FF Y:CE P:67 SP:F9 CYC:308 SL:164 EFC3 AD 47 06 LDA $0647 = 4A A:FB X:FF Y:CE P:67 SP:FB CYC:326 SL:164 EFC6 C9 4A CMP #$4A A:4A X:FF Y:CE P:65 SP:FB CYC:338 SL:164 EFC8 F0 02 BEQ $EFCC A:4A X:FF Y:CE P:67 SP:FB CYC: 3 SL:165 EFCC A0 FF LDY #$FF A:4A X:FF Y:CE P:67 SP:FB CYC: 12 SL:165 EFCE A9 29 LDA #$29 A:4A X:FF Y:FF P:E5 SP:FB CYC: 18 SL:165 EFD0 8D 47 06 STA $0647 = 4A A:29 X:FF Y:FF P:65 SP:FB CYC: 24 SL:165 EFD3 20 8C FA JSR $FA8C A:29 X:FF Y:FF P:65 SP:FB CYC: 36 SL:165 FA8C B8 CLV A:29 X:FF Y:FF P:65 SP:F9 CYC: 54 SL:165 FA8D 18 CLC A:29 X:FF Y:FF P:25 SP:F9 CYC: 60 SL:165 FA8E A9 C3 LDA #$C3 A:29 X:FF Y:FF P:24 SP:F9 CYC: 66 SL:165 FA90 60 RTS A:C3 X:FF Y:FF P:A4 SP:F9 CYC: 72 SL:165 EFD6 1B 48 05 *SLO $0548,Y @ 0647 = 29 A:C3 X:FF Y:FF P:A4 SP:FB CYC: 90 SL:165 EFD9 EA NOP A:D3 X:FF Y:FF P:A4 SP:FB CYC:111 SL:165 EFDA EA NOP A:D3 X:FF Y:FF P:A4 SP:FB CYC:117 SL:165 EFDB 08 PHP A:D3 X:FF Y:FF P:A4 SP:FB CYC:123 SL:165 EFDC 48 PHA A:D3 X:FF Y:FF P:A4 SP:FA CYC:132 SL:165 EFDD A0 CF LDY #$CF A:D3 X:FF Y:FF P:A4 SP:F9 CYC:141 SL:165 EFDF 68 PLA A:D3 X:FF Y:CF P:A4 SP:F9 CYC:147 SL:165 EFE0 28 PLP A:D3 X:FF Y:CF P:A4 SP:FA CYC:159 SL:165 EFE1 20 91 FA JSR $FA91 A:D3 X:FF Y:CF P:A4 SP:FB CYC:171 SL:165 FA91 70 53 BVS $FAE6 A:D3 X:FF Y:CF P:A4 SP:F9 CYC:189 SL:165 FA93 F0 51 BEQ $FAE6 A:D3 X:FF Y:CF P:A4 SP:F9 CYC:195 SL:165 FA95 10 4F BPL $FAE6 A:D3 X:FF Y:CF P:A4 SP:F9 CYC:201 SL:165 FA97 B0 4D BCS $FAE6 A:D3 X:FF Y:CF P:A4 SP:F9 CYC:207 SL:165 FA99 C9 D3 CMP #$D3 A:D3 X:FF Y:CF P:A4 SP:F9 CYC:213 SL:165 FA9B D0 49 BNE $FAE6 A:D3 X:FF Y:CF P:27 SP:F9 CYC:219 SL:165 FA9D 60 RTS A:D3 X:FF Y:CF P:27 SP:F9 CYC:225 SL:165 EFE4 AD 47 06 LDA $0647 = 52 A:D3 X:FF Y:CF P:27 SP:FB CYC:243 SL:165 EFE7 C9 52 CMP #$52 A:52 X:FF Y:CF P:25 SP:FB CYC:255 SL:165 EFE9 F0 02 BEQ $EFED A:52 X:FF Y:CF P:27 SP:FB CYC:261 SL:165 EFED A0 FF LDY #$FF A:52 X:FF Y:CF P:27 SP:FB CYC:270 SL:165 EFEF A9 37 LDA #$37 A:52 X:FF Y:FF P:A5 SP:FB CYC:276 SL:165 EFF1 8D 47 06 STA $0647 = 52 A:37 X:FF Y:FF P:25 SP:FB CYC:282 SL:165 EFF4 20 9E FA JSR $FA9E A:37 X:FF Y:FF P:25 SP:FB CYC:294 SL:165 FA9E 24 01 BIT $01 = FF A:37 X:FF Y:FF P:25 SP:F9 CYC:312 SL:165 FAA0 38 SEC A:37 X:FF Y:FF P:E5 SP:F9 CYC:321 SL:165 FAA1 A9 10 LDA #$10 A:37 X:FF Y:FF P:E5 SP:F9 CYC:327 SL:165 FAA3 60 RTS A:10 X:FF Y:FF P:65 SP:F9 CYC:333 SL:165 EFF7 1B 48 05 *SLO $0548,Y @ 0647 = 37 A:10 X:FF Y:FF P:65 SP:FB CYC: 10 SL:166 EFFA EA NOP A:7E X:FF Y:FF P:64 SP:FB CYC: 31 SL:166 EFFB EA NOP A:7E X:FF Y:FF P:64 SP:FB CYC: 37 SL:166 EFFC 08 PHP A:7E X:FF Y:FF P:64 SP:FB CYC: 43 SL:166 EFFD 48 PHA A:7E X:FF Y:FF P:64 SP:FA CYC: 52 SL:166 EFFE A0 D0 LDY #$D0 A:7E X:FF Y:FF P:64 SP:F9 CYC: 61 SL:166 F000 68 PLA A:7E X:FF Y:D0 P:E4 SP:F9 CYC: 67 SL:166 F001 28 PLP A:7E X:FF Y:D0 P:64 SP:FA CYC: 79 SL:166 F002 20 A4 FA JSR $FAA4 A:7E X:FF Y:D0 P:64 SP:FB CYC: 91 SL:166 FAA4 50 40 BVC $FAE6 A:7E X:FF Y:D0 P:64 SP:F9 CYC:109 SL:166 FAA6 F0 3E BEQ $FAE6 A:7E X:FF Y:D0 P:64 SP:F9 CYC:115 SL:166 FAA8 30 3C BMI $FAE6 A:7E X:FF Y:D0 P:64 SP:F9 CYC:121 SL:166 FAAA B0 3A BCS $FAE6 A:7E X:FF Y:D0 P:64 SP:F9 CYC:127 SL:166 FAAC C9 7E CMP #$7E A:7E X:FF Y:D0 P:64 SP:F9 CYC:133 SL:166 FAAE D0 36 BNE $FAE6 A:7E X:FF Y:D0 P:67 SP:F9 CYC:139 SL:166 FAB0 60 RTS A:7E X:FF Y:D0 P:67 SP:F9 CYC:145 SL:166 F005 AD 47 06 LDA $0647 = 6E A:7E X:FF Y:D0 P:67 SP:FB CYC:163 SL:166 F008 C9 6E CMP #$6E A:6E X:FF Y:D0 P:65 SP:FB CYC:175 SL:166 F00A F0 02 BEQ $F00E A:6E X:FF Y:D0 P:67 SP:FB CYC:181 SL:166 F00E A0 D1 LDY #$D1 A:6E X:FF Y:D0 P:67 SP:FB CYC:190 SL:166 F010 A2 FF LDX #$FF A:6E X:FF Y:D1 P:E5 SP:FB CYC:196 SL:166 F012 A9 A5 LDA #$A5 A:6E X:FF Y:D1 P:E5 SP:FB CYC:202 SL:166 F014 8D 47 06 STA $0647 = 6E A:A5 X:FF Y:D1 P:E5 SP:FB CYC:208 SL:166 F017 20 7B FA JSR $FA7B A:A5 X:FF Y:D1 P:E5 SP:FB CYC:220 SL:166 FA7B 24 01 BIT $01 = FF A:A5 X:FF Y:D1 P:E5 SP:F9 CYC:238 SL:166 FA7D 18 CLC A:A5 X:FF Y:D1 P:E5 SP:F9 CYC:247 SL:166 FA7E A9 B3 LDA #$B3 A:A5 X:FF Y:D1 P:E4 SP:F9 CYC:253 SL:166 FA80 60 RTS A:B3 X:FF Y:D1 P:E4 SP:F9 CYC:259 SL:166 F01A 1F 48 05 *SLO $0548,X @ 0647 = A5 A:B3 X:FF Y:D1 P:E4 SP:FB CYC:277 SL:166 F01D EA NOP A:FB X:FF Y:D1 P:E5 SP:FB CYC:298 SL:166 F01E EA NOP A:FB X:FF Y:D1 P:E5 SP:FB CYC:304 SL:166 F01F EA NOP A:FB X:FF Y:D1 P:E5 SP:FB CYC:310 SL:166 F020 EA NOP A:FB X:FF Y:D1 P:E5 SP:FB CYC:316 SL:166 F021 20 81 FA JSR $FA81 A:FB X:FF Y:D1 P:E5 SP:FB CYC:322 SL:166 FA81 50 63 BVC $FAE6 A:FB X:FF Y:D1 P:E5 SP:F9 CYC:340 SL:166 FA83 90 61 BCC $FAE6 A:FB X:FF Y:D1 P:E5 SP:F9 CYC: 5 SL:167 FA85 10 5F BPL $FAE6 A:FB X:FF Y:D1 P:E5 SP:F9 CYC: 11 SL:167 FA87 C9 FB CMP #$FB A:FB X:FF Y:D1 P:E5 SP:F9 CYC: 17 SL:167 FA89 D0 5B BNE $FAE6 A:FB X:FF Y:D1 P:67 SP:F9 CYC: 23 SL:167 FA8B 60 RTS A:FB X:FF Y:D1 P:67 SP:F9 CYC: 29 SL:167 F024 AD 47 06 LDA $0647 = 4A A:FB X:FF Y:D1 P:67 SP:FB CYC: 47 SL:167 F027 C9 4A CMP #$4A A:4A X:FF Y:D1 P:65 SP:FB CYC: 59 SL:167 F029 F0 02 BEQ $F02D A:4A X:FF Y:D1 P:67 SP:FB CYC: 65 SL:167 F02D C8 INY A:4A X:FF Y:D1 P:67 SP:FB CYC: 74 SL:167 F02E A9 29 LDA #$29 A:4A X:FF Y:D2 P:E5 SP:FB CYC: 80 SL:167 F030 8D 47 06 STA $0647 = 4A A:29 X:FF Y:D2 P:65 SP:FB CYC: 86 SL:167 F033 20 8C FA JSR $FA8C A:29 X:FF Y:D2 P:65 SP:FB CYC: 98 SL:167 FA8C B8 CLV A:29 X:FF Y:D2 P:65 SP:F9 CYC:116 SL:167 FA8D 18 CLC A:29 X:FF Y:D2 P:25 SP:F9 CYC:122 SL:167 FA8E A9 C3 LDA #$C3 A:29 X:FF Y:D2 P:24 SP:F9 CYC:128 SL:167 FA90 60 RTS A:C3 X:FF Y:D2 P:A4 SP:F9 CYC:134 SL:167 F036 1F 48 05 *SLO $0548,X @ 0647 = 29 A:C3 X:FF Y:D2 P:A4 SP:FB CYC:152 SL:167 F039 EA NOP A:D3 X:FF Y:D2 P:A4 SP:FB CYC:173 SL:167 F03A EA NOP A:D3 X:FF Y:D2 P:A4 SP:FB CYC:179 SL:167 F03B EA NOP A:D3 X:FF Y:D2 P:A4 SP:FB CYC:185 SL:167 F03C EA NOP A:D3 X:FF Y:D2 P:A4 SP:FB CYC:191 SL:167 F03D 20 91 FA JSR $FA91 A:D3 X:FF Y:D2 P:A4 SP:FB CYC:197 SL:167 FA91 70 53 BVS $FAE6 A:D3 X:FF Y:D2 P:A4 SP:F9 CYC:215 SL:167 FA93 F0 51 BEQ $FAE6 A:D3 X:FF Y:D2 P:A4 SP:F9 CYC:221 SL:167 FA95 10 4F BPL $FAE6 A:D3 X:FF Y:D2 P:A4 SP:F9 CYC:227 SL:167 FA97 B0 4D BCS $FAE6 A:D3 X:FF Y:D2 P:A4 SP:F9 CYC:233 SL:167 FA99 C9 D3 CMP #$D3 A:D3 X:FF Y:D2 P:A4 SP:F9 CYC:239 SL:167 FA9B D0 49 BNE $FAE6 A:D3 X:FF Y:D2 P:27 SP:F9 CYC:245 SL:167 FA9D 60 RTS A:D3 X:FF Y:D2 P:27 SP:F9 CYC:251 SL:167 F040 AD 47 06 LDA $0647 = 52 A:D3 X:FF Y:D2 P:27 SP:FB CYC:269 SL:167 F043 C9 52 CMP #$52 A:52 X:FF Y:D2 P:25 SP:FB CYC:281 SL:167 F045 F0 02 BEQ $F049 A:52 X:FF Y:D2 P:27 SP:FB CYC:287 SL:167 F049 C8 INY A:52 X:FF Y:D2 P:27 SP:FB CYC:296 SL:167 F04A A9 37 LDA #$37 A:52 X:FF Y:D3 P:A5 SP:FB CYC:302 SL:167 F04C 8D 47 06 STA $0647 = 52 A:37 X:FF Y:D3 P:25 SP:FB CYC:308 SL:167 F04F 20 9E FA JSR $FA9E A:37 X:FF Y:D3 P:25 SP:FB CYC:320 SL:167 FA9E 24 01 BIT $01 = FF A:37 X:FF Y:D3 P:25 SP:F9 CYC:338 SL:167 FAA0 38 SEC A:37 X:FF Y:D3 P:E5 SP:F9 CYC: 6 SL:168 FAA1 A9 10 LDA #$10 A:37 X:FF Y:D3 P:E5 SP:F9 CYC: 12 SL:168 FAA3 60 RTS A:10 X:FF Y:D3 P:65 SP:F9 CYC: 18 SL:168 F052 1F 48 05 *SLO $0548,X @ 0647 = 37 A:10 X:FF Y:D3 P:65 SP:FB CYC: 36 SL:168 F055 EA NOP A:7E X:FF Y:D3 P:64 SP:FB CYC: 57 SL:168 F056 EA NOP A:7E X:FF Y:D3 P:64 SP:FB CYC: 63 SL:168 F057 EA NOP A:7E X:FF Y:D3 P:64 SP:FB CYC: 69 SL:168 F058 EA NOP A:7E X:FF Y:D3 P:64 SP:FB CYC: 75 SL:168 F059 20 A4 FA JSR $FAA4 A:7E X:FF Y:D3 P:64 SP:FB CYC: 81 SL:168 FAA4 50 40 BVC $FAE6 A:7E X:FF Y:D3 P:64 SP:F9 CYC: 99 SL:168 FAA6 F0 3E BEQ $FAE6 A:7E X:FF Y:D3 P:64 SP:F9 CYC:105 SL:168 FAA8 30 3C BMI $FAE6 A:7E X:FF Y:D3 P:64 SP:F9 CYC:111 SL:168 FAAA B0 3A BCS $FAE6 A:7E X:FF Y:D3 P:64 SP:F9 CYC:117 SL:168 FAAC C9 7E CMP #$7E A:7E X:FF Y:D3 P:64 SP:F9 CYC:123 SL:168 FAAE D0 36 BNE $FAE6 A:7E X:FF Y:D3 P:67 SP:F9 CYC:129 SL:168 FAB0 60 RTS A:7E X:FF Y:D3 P:67 SP:F9 CYC:135 SL:168 F05C AD 47 06 LDA $0647 = 6E A:7E X:FF Y:D3 P:67 SP:FB CYC:153 SL:168 F05F C9 6E CMP #$6E A:6E X:FF Y:D3 P:65 SP:FB CYC:165 SL:168 F061 F0 02 BEQ $F065 A:6E X:FF Y:D3 P:67 SP:FB CYC:171 SL:168 F065 60 RTS A:6E X:FF Y:D3 P:67 SP:FB CYC:180 SL:168 C644 20 66 F0 JSR $F066 A:6E X:FF Y:D3 P:67 SP:FD CYC:198 SL:168 F066 A9 FF LDA #$FF A:6E X:FF Y:D3 P:67 SP:FB CYC:216 SL:168 F068 85 01 STA $01 = FF A:FF X:FF Y:D3 P:E5 SP:FB CYC:222 SL:168 F06A A0 D4 LDY #$D4 A:FF X:FF Y:D3 P:E5 SP:FB CYC:231 SL:168 F06C A2 02 LDX #$02 A:FF X:FF Y:D4 P:E5 SP:FB CYC:237 SL:168 F06E A9 47 LDA #$47 A:FF X:02 Y:D4 P:65 SP:FB CYC:243 SL:168 F070 85 47 STA $47 = 6E A:47 X:02 Y:D4 P:65 SP:FB CYC:249 SL:168 F072 A9 06 LDA #$06 A:47 X:02 Y:D4 P:65 SP:FB CYC:258 SL:168 F074 85 48 STA $48 = 06 A:06 X:02 Y:D4 P:65 SP:FB CYC:264 SL:168 F076 A9 A5 LDA #$A5 A:06 X:02 Y:D4 P:65 SP:FB CYC:273 SL:168 F078 8D 47 06 STA $0647 = 6E A:A5 X:02 Y:D4 P:E5 SP:FB CYC:279 SL:168 F07B 20 53 FB JSR $FB53 A:A5 X:02 Y:D4 P:E5 SP:FB CYC:291 SL:168 FB53 24 01 BIT $01 = FF A:A5 X:02 Y:D4 P:E5 SP:F9 CYC:309 SL:168 FB55 18 CLC A:A5 X:02 Y:D4 P:E5 SP:F9 CYC:318 SL:168 FB56 A9 B3 LDA #$B3 A:A5 X:02 Y:D4 P:E4 SP:F9 CYC:324 SL:168 FB58 60 RTS A:B3 X:02 Y:D4 P:E4 SP:F9 CYC:330 SL:168 F07E 23 45 *RLA ($45,X) @ 47 = 0647 = A5 A:B3 X:02 Y:D4 P:E4 SP:FB CYC: 7 SL:169 F080 EA NOP A:02 X:02 Y:D4 P:65 SP:FB CYC: 31 SL:169 F081 EA NOP A:02 X:02 Y:D4 P:65 SP:FB CYC: 37 SL:169 F082 EA NOP A:02 X:02 Y:D4 P:65 SP:FB CYC: 43 SL:169 F083 EA NOP A:02 X:02 Y:D4 P:65 SP:FB CYC: 49 SL:169 F084 20 59 FB JSR $FB59 A:02 X:02 Y:D4 P:65 SP:FB CYC: 55 SL:169 FB59 50 1A BVC $FB75 A:02 X:02 Y:D4 P:65 SP:F9 CYC: 73 SL:169 FB5B 90 18 BCC $FB75 A:02 X:02 Y:D4 P:65 SP:F9 CYC: 79 SL:169 FB5D 30 16 BMI $FB75 A:02 X:02 Y:D4 P:65 SP:F9 CYC: 85 SL:169 FB5F C9 02 CMP #$02 A:02 X:02 Y:D4 P:65 SP:F9 CYC: 91 SL:169 FB61 D0 12 BNE $FB75 A:02 X:02 Y:D4 P:67 SP:F9 CYC: 97 SL:169 FB63 60 RTS A:02 X:02 Y:D4 P:67 SP:F9 CYC:103 SL:169 F087 AD 47 06 LDA $0647 = 4A A:02 X:02 Y:D4 P:67 SP:FB CYC:121 SL:169 F08A C9 4A CMP #$4A A:4A X:02 Y:D4 P:65 SP:FB CYC:133 SL:169 F08C F0 02 BEQ $F090 A:4A X:02 Y:D4 P:67 SP:FB CYC:139 SL:169 F090 C8 INY A:4A X:02 Y:D4 P:67 SP:FB CYC:148 SL:169 F091 A9 29 LDA #$29 A:4A X:02 Y:D5 P:E5 SP:FB CYC:154 SL:169 F093 8D 47 06 STA $0647 = 4A A:29 X:02 Y:D5 P:65 SP:FB CYC:160 SL:169 F096 20 64 FB JSR $FB64 A:29 X:02 Y:D5 P:65 SP:FB CYC:172 SL:169 FB64 B8 CLV A:29 X:02 Y:D5 P:65 SP:F9 CYC:190 SL:169 FB65 18 CLC A:29 X:02 Y:D5 P:25 SP:F9 CYC:196 SL:169 FB66 A9 42 LDA #$42 A:29 X:02 Y:D5 P:24 SP:F9 CYC:202 SL:169 FB68 60 RTS A:42 X:02 Y:D5 P:24 SP:F9 CYC:208 SL:169 F099 23 45 *RLA ($45,X) @ 47 = 0647 = 29 A:42 X:02 Y:D5 P:24 SP:FB CYC:226 SL:169 F09B EA NOP A:42 X:02 Y:D5 P:24 SP:FB CYC:250 SL:169 F09C EA NOP A:42 X:02 Y:D5 P:24 SP:FB CYC:256 SL:169 F09D EA NOP A:42 X:02 Y:D5 P:24 SP:FB CYC:262 SL:169 F09E EA NOP A:42 X:02 Y:D5 P:24 SP:FB CYC:268 SL:169 F09F 20 69 FB JSR $FB69 A:42 X:02 Y:D5 P:24 SP:FB CYC:274 SL:169 FB69 70 0A BVS $FB75 A:42 X:02 Y:D5 P:24 SP:F9 CYC:292 SL:169 FB6B F0 08 BEQ $FB75 A:42 X:02 Y:D5 P:24 SP:F9 CYC:298 SL:169 FB6D 30 06 BMI $FB75 A:42 X:02 Y:D5 P:24 SP:F9 CYC:304 SL:169 FB6F B0 04 BCS $FB75 A:42 X:02 Y:D5 P:24 SP:F9 CYC:310 SL:169 FB71 C9 42 CMP #$42 A:42 X:02 Y:D5 P:24 SP:F9 CYC:316 SL:169 FB73 F0 02 BEQ $FB77 A:42 X:02 Y:D5 P:27 SP:F9 CYC:322 SL:169 FB77 60 RTS A:42 X:02 Y:D5 P:27 SP:F9 CYC:331 SL:169 F0A2 AD 47 06 LDA $0647 = 52 A:42 X:02 Y:D5 P:27 SP:FB CYC: 8 SL:170 F0A5 C9 52 CMP #$52 A:52 X:02 Y:D5 P:25 SP:FB CYC: 20 SL:170 F0A7 F0 02 BEQ $F0AB A:52 X:02 Y:D5 P:27 SP:FB CYC: 26 SL:170 F0AB C8 INY A:52 X:02 Y:D5 P:27 SP:FB CYC: 35 SL:170 F0AC A9 37 LDA #$37 A:52 X:02 Y:D6 P:A5 SP:FB CYC: 41 SL:170 F0AE 8D 47 06 STA $0647 = 52 A:37 X:02 Y:D6 P:25 SP:FB CYC: 47 SL:170 F0B1 20 68 FA JSR $FA68 A:37 X:02 Y:D6 P:25 SP:FB CYC: 59 SL:170 FA68 24 01 BIT $01 = FF A:37 X:02 Y:D6 P:25 SP:F9 CYC: 77 SL:170 FA6A 38 SEC A:37 X:02 Y:D6 P:E5 SP:F9 CYC: 86 SL:170 FA6B A9 75 LDA #$75 A:37 X:02 Y:D6 P:E5 SP:F9 CYC: 92 SL:170 FA6D 60 RTS A:75 X:02 Y:D6 P:65 SP:F9 CYC: 98 SL:170 F0B4 23 45 *RLA ($45,X) @ 47 = 0647 = 37 A:75 X:02 Y:D6 P:65 SP:FB CYC:116 SL:170 F0B6 EA NOP A:65 X:02 Y:D6 P:64 SP:FB CYC:140 SL:170 F0B7 EA NOP A:65 X:02 Y:D6 P:64 SP:FB CYC:146 SL:170 F0B8 EA NOP A:65 X:02 Y:D6 P:64 SP:FB CYC:152 SL:170 F0B9 EA NOP A:65 X:02 Y:D6 P:64 SP:FB CYC:158 SL:170 F0BA 20 6E FA JSR $FA6E A:65 X:02 Y:D6 P:64 SP:FB CYC:164 SL:170 FA6E 50 76 BVC $FAE6 A:65 X:02 Y:D6 P:64 SP:F9 CYC:182 SL:170 FA70 F0 74 BEQ $FAE6 A:65 X:02 Y:D6 P:64 SP:F9 CYC:188 SL:170 FA72 30 72 BMI $FAE6 A:65 X:02 Y:D6 P:64 SP:F9 CYC:194 SL:170 FA74 B0 70 BCS $FAE6 A:65 X:02 Y:D6 P:64 SP:F9 CYC:200 SL:170 FA76 C9 65 CMP #$65 A:65 X:02 Y:D6 P:64 SP:F9 CYC:206 SL:170 FA78 D0 6C BNE $FAE6 A:65 X:02 Y:D6 P:67 SP:F9 CYC:212 SL:170 FA7A 60 RTS A:65 X:02 Y:D6 P:67 SP:F9 CYC:218 SL:170 F0BD AD 47 06 LDA $0647 = 6F A:65 X:02 Y:D6 P:67 SP:FB CYC:236 SL:170 F0C0 C9 6F CMP #$6F A:6F X:02 Y:D6 P:65 SP:FB CYC:248 SL:170 F0C2 F0 02 BEQ $F0C6 A:6F X:02 Y:D6 P:67 SP:FB CYC:254 SL:170 F0C6 C8 INY A:6F X:02 Y:D6 P:67 SP:FB CYC:263 SL:170 F0C7 A9 A5 LDA #$A5 A:6F X:02 Y:D7 P:E5 SP:FB CYC:269 SL:170 F0C9 85 47 STA $47 = 47 A:A5 X:02 Y:D7 P:E5 SP:FB CYC:275 SL:170 F0CB 20 53 FB JSR $FB53 A:A5 X:02 Y:D7 P:E5 SP:FB CYC:284 SL:170 FB53 24 01 BIT $01 = FF A:A5 X:02 Y:D7 P:E5 SP:F9 CYC:302 SL:170 FB55 18 CLC A:A5 X:02 Y:D7 P:E5 SP:F9 CYC:311 SL:170 FB56 A9 B3 LDA #$B3 A:A5 X:02 Y:D7 P:E4 SP:F9 CYC:317 SL:170 FB58 60 RTS A:B3 X:02 Y:D7 P:E4 SP:F9 CYC:323 SL:170 F0CE 27 47 *RLA $47 = A5 A:B3 X:02 Y:D7 P:E4 SP:FB CYC: 0 SL:171 F0D0 EA NOP A:02 X:02 Y:D7 P:65 SP:FB CYC: 15 SL:171 F0D1 EA NOP A:02 X:02 Y:D7 P:65 SP:FB CYC: 21 SL:171 F0D2 EA NOP A:02 X:02 Y:D7 P:65 SP:FB CYC: 27 SL:171 F0D3 EA NOP A:02 X:02 Y:D7 P:65 SP:FB CYC: 33 SL:171 F0D4 20 59 FB JSR $FB59 A:02 X:02 Y:D7 P:65 SP:FB CYC: 39 SL:171 FB59 50 1A BVC $FB75 A:02 X:02 Y:D7 P:65 SP:F9 CYC: 57 SL:171 FB5B 90 18 BCC $FB75 A:02 X:02 Y:D7 P:65 SP:F9 CYC: 63 SL:171 FB5D 30 16 BMI $FB75 A:02 X:02 Y:D7 P:65 SP:F9 CYC: 69 SL:171 FB5F C9 02 CMP #$02 A:02 X:02 Y:D7 P:65 SP:F9 CYC: 75 SL:171 FB61 D0 12 BNE $FB75 A:02 X:02 Y:D7 P:67 SP:F9 CYC: 81 SL:171 FB63 60 RTS A:02 X:02 Y:D7 P:67 SP:F9 CYC: 87 SL:171 F0D7 A5 47 LDA $47 = 4A A:02 X:02 Y:D7 P:67 SP:FB CYC:105 SL:171 F0D9 C9 4A CMP #$4A A:4A X:02 Y:D7 P:65 SP:FB CYC:114 SL:171 F0DB F0 02 BEQ $F0DF A:4A X:02 Y:D7 P:67 SP:FB CYC:120 SL:171 F0DF C8 INY A:4A X:02 Y:D7 P:67 SP:FB CYC:129 SL:171 F0E0 A9 29 LDA #$29 A:4A X:02 Y:D8 P:E5 SP:FB CYC:135 SL:171 F0E2 85 47 STA $47 = 4A A:29 X:02 Y:D8 P:65 SP:FB CYC:141 SL:171 F0E4 20 64 FB JSR $FB64 A:29 X:02 Y:D8 P:65 SP:FB CYC:150 SL:171 FB64 B8 CLV A:29 X:02 Y:D8 P:65 SP:F9 CYC:168 SL:171 FB65 18 CLC A:29 X:02 Y:D8 P:25 SP:F9 CYC:174 SL:171 FB66 A9 42 LDA #$42 A:29 X:02 Y:D8 P:24 SP:F9 CYC:180 SL:171 FB68 60 RTS A:42 X:02 Y:D8 P:24 SP:F9 CYC:186 SL:171 F0E7 27 47 *RLA $47 = 29 A:42 X:02 Y:D8 P:24 SP:FB CYC:204 SL:171 F0E9 EA NOP A:42 X:02 Y:D8 P:24 SP:FB CYC:219 SL:171 F0EA EA NOP A:42 X:02 Y:D8 P:24 SP:FB CYC:225 SL:171 F0EB EA NOP A:42 X:02 Y:D8 P:24 SP:FB CYC:231 SL:171 F0EC EA NOP A:42 X:02 Y:D8 P:24 SP:FB CYC:237 SL:171 F0ED 20 69 FB JSR $FB69 A:42 X:02 Y:D8 P:24 SP:FB CYC:243 SL:171 FB69 70 0A BVS $FB75 A:42 X:02 Y:D8 P:24 SP:F9 CYC:261 SL:171 FB6B F0 08 BEQ $FB75 A:42 X:02 Y:D8 P:24 SP:F9 CYC:267 SL:171 FB6D 30 06 BMI $FB75 A:42 X:02 Y:D8 P:24 SP:F9 CYC:273 SL:171 FB6F B0 04 BCS $FB75 A:42 X:02 Y:D8 P:24 SP:F9 CYC:279 SL:171 FB71 C9 42 CMP #$42 A:42 X:02 Y:D8 P:24 SP:F9 CYC:285 SL:171 FB73 F0 02 BEQ $FB77 A:42 X:02 Y:D8 P:27 SP:F9 CYC:291 SL:171 FB77 60 RTS A:42 X:02 Y:D8 P:27 SP:F9 CYC:300 SL:171 F0F0 A5 47 LDA $47 = 52 A:42 X:02 Y:D8 P:27 SP:FB CYC:318 SL:171 F0F2 C9 52 CMP #$52 A:52 X:02 Y:D8 P:25 SP:FB CYC:327 SL:171 F0F4 F0 02 BEQ $F0F8 A:52 X:02 Y:D8 P:27 SP:FB CYC:333 SL:171 F0F8 C8 INY A:52 X:02 Y:D8 P:27 SP:FB CYC: 1 SL:172 F0F9 A9 37 LDA #$37 A:52 X:02 Y:D9 P:A5 SP:FB CYC: 7 SL:172 F0FB 85 47 STA $47 = 52 A:37 X:02 Y:D9 P:25 SP:FB CYC: 13 SL:172 F0FD 20 68 FA JSR $FA68 A:37 X:02 Y:D9 P:25 SP:FB CYC: 22 SL:172 FA68 24 01 BIT $01 = FF A:37 X:02 Y:D9 P:25 SP:F9 CYC: 40 SL:172 FA6A 38 SEC A:37 X:02 Y:D9 P:E5 SP:F9 CYC: 49 SL:172 FA6B A9 75 LDA #$75 A:37 X:02 Y:D9 P:E5 SP:F9 CYC: 55 SL:172 FA6D 60 RTS A:75 X:02 Y:D9 P:65 SP:F9 CYC: 61 SL:172 F100 27 47 *RLA $47 = 37 A:75 X:02 Y:D9 P:65 SP:FB CYC: 79 SL:172 F102 EA NOP A:65 X:02 Y:D9 P:64 SP:FB CYC: 94 SL:172 F103 EA NOP A:65 X:02 Y:D9 P:64 SP:FB CYC:100 SL:172 F104 EA NOP A:65 X:02 Y:D9 P:64 SP:FB CYC:106 SL:172 F105 EA NOP A:65 X:02 Y:D9 P:64 SP:FB CYC:112 SL:172 F106 20 6E FA JSR $FA6E A:65 X:02 Y:D9 P:64 SP:FB CYC:118 SL:172 FA6E 50 76 BVC $FAE6 A:65 X:02 Y:D9 P:64 SP:F9 CYC:136 SL:172 FA70 F0 74 BEQ $FAE6 A:65 X:02 Y:D9 P:64 SP:F9 CYC:142 SL:172 FA72 30 72 BMI $FAE6 A:65 X:02 Y:D9 P:64 SP:F9 CYC:148 SL:172 FA74 B0 70 BCS $FAE6 A:65 X:02 Y:D9 P:64 SP:F9 CYC:154 SL:172 FA76 C9 65 CMP #$65 A:65 X:02 Y:D9 P:64 SP:F9 CYC:160 SL:172 FA78 D0 6C BNE $FAE6 A:65 X:02 Y:D9 P:67 SP:F9 CYC:166 SL:172 FA7A 60 RTS A:65 X:02 Y:D9 P:67 SP:F9 CYC:172 SL:172 F109 A5 47 LDA $47 = 6F A:65 X:02 Y:D9 P:67 SP:FB CYC:190 SL:172 F10B C9 6F CMP #$6F A:6F X:02 Y:D9 P:65 SP:FB CYC:199 SL:172 F10D F0 02 BEQ $F111 A:6F X:02 Y:D9 P:67 SP:FB CYC:205 SL:172 F111 C8 INY A:6F X:02 Y:D9 P:67 SP:FB CYC:214 SL:172 F112 A9 A5 LDA #$A5 A:6F X:02 Y:DA P:E5 SP:FB CYC:220 SL:172 F114 8D 47 06 STA $0647 = 6F A:A5 X:02 Y:DA P:E5 SP:FB CYC:226 SL:172 F117 20 53 FB JSR $FB53 A:A5 X:02 Y:DA P:E5 SP:FB CYC:238 SL:172 FB53 24 01 BIT $01 = FF A:A5 X:02 Y:DA P:E5 SP:F9 CYC:256 SL:172 FB55 18 CLC A:A5 X:02 Y:DA P:E5 SP:F9 CYC:265 SL:172 FB56 A9 B3 LDA #$B3 A:A5 X:02 Y:DA P:E4 SP:F9 CYC:271 SL:172 FB58 60 RTS A:B3 X:02 Y:DA P:E4 SP:F9 CYC:277 SL:172 F11A 2F 47 06 *RLA $0647 = A5 A:B3 X:02 Y:DA P:E4 SP:FB CYC:295 SL:172 F11D EA NOP A:02 X:02 Y:DA P:65 SP:FB CYC:313 SL:172 F11E EA NOP A:02 X:02 Y:DA P:65 SP:FB CYC:319 SL:172 F11F EA NOP A:02 X:02 Y:DA P:65 SP:FB CYC:325 SL:172 F120 EA NOP A:02 X:02 Y:DA P:65 SP:FB CYC:331 SL:172 F121 20 59 FB JSR $FB59 A:02 X:02 Y:DA P:65 SP:FB CYC:337 SL:172 FB59 50 1A BVC $FB75 A:02 X:02 Y:DA P:65 SP:F9 CYC: 14 SL:173 FB5B 90 18 BCC $FB75 A:02 X:02 Y:DA P:65 SP:F9 CYC: 20 SL:173 FB5D 30 16 BMI $FB75 A:02 X:02 Y:DA P:65 SP:F9 CYC: 26 SL:173 FB5F C9 02 CMP #$02 A:02 X:02 Y:DA P:65 SP:F9 CYC: 32 SL:173 FB61 D0 12 BNE $FB75 A:02 X:02 Y:DA P:67 SP:F9 CYC: 38 SL:173 FB63 60 RTS A:02 X:02 Y:DA P:67 SP:F9 CYC: 44 SL:173 F124 AD 47 06 LDA $0647 = 4A A:02 X:02 Y:DA P:67 SP:FB CYC: 62 SL:173 F127 C9 4A CMP #$4A A:4A X:02 Y:DA P:65 SP:FB CYC: 74 SL:173 F129 F0 02 BEQ $F12D A:4A X:02 Y:DA P:67 SP:FB CYC: 80 SL:173 F12D C8 INY A:4A X:02 Y:DA P:67 SP:FB CYC: 89 SL:173 F12E A9 29 LDA #$29 A:4A X:02 Y:DB P:E5 SP:FB CYC: 95 SL:173 F130 8D 47 06 STA $0647 = 4A A:29 X:02 Y:DB P:65 SP:FB CYC:101 SL:173 F133 20 64 FB JSR $FB64 A:29 X:02 Y:DB P:65 SP:FB CYC:113 SL:173 FB64 B8 CLV A:29 X:02 Y:DB P:65 SP:F9 CYC:131 SL:173 FB65 18 CLC A:29 X:02 Y:DB P:25 SP:F9 CYC:137 SL:173 FB66 A9 42 LDA #$42 A:29 X:02 Y:DB P:24 SP:F9 CYC:143 SL:173 FB68 60 RTS A:42 X:02 Y:DB P:24 SP:F9 CYC:149 SL:173 F136 2F 47 06 *RLA $0647 = 29 A:42 X:02 Y:DB P:24 SP:FB CYC:167 SL:173 F139 EA NOP A:42 X:02 Y:DB P:24 SP:FB CYC:185 SL:173 F13A EA NOP A:42 X:02 Y:DB P:24 SP:FB CYC:191 SL:173 F13B EA NOP A:42 X:02 Y:DB P:24 SP:FB CYC:197 SL:173 F13C EA NOP A:42 X:02 Y:DB P:24 SP:FB CYC:203 SL:173 F13D 20 69 FB JSR $FB69 A:42 X:02 Y:DB P:24 SP:FB CYC:209 SL:173 FB69 70 0A BVS $FB75 A:42 X:02 Y:DB P:24 SP:F9 CYC:227 SL:173 FB6B F0 08 BEQ $FB75 A:42 X:02 Y:DB P:24 SP:F9 CYC:233 SL:173 FB6D 30 06 BMI $FB75 A:42 X:02 Y:DB P:24 SP:F9 CYC:239 SL:173 FB6F B0 04 BCS $FB75 A:42 X:02 Y:DB P:24 SP:F9 CYC:245 SL:173 FB71 C9 42 CMP #$42 A:42 X:02 Y:DB P:24 SP:F9 CYC:251 SL:173 FB73 F0 02 BEQ $FB77 A:42 X:02 Y:DB P:27 SP:F9 CYC:257 SL:173 FB77 60 RTS A:42 X:02 Y:DB P:27 SP:F9 CYC:266 SL:173 F140 AD 47 06 LDA $0647 = 52 A:42 X:02 Y:DB P:27 SP:FB CYC:284 SL:173 F143 C9 52 CMP #$52 A:52 X:02 Y:DB P:25 SP:FB CYC:296 SL:173 F145 F0 02 BEQ $F149 A:52 X:02 Y:DB P:27 SP:FB CYC:302 SL:173 F149 C8 INY A:52 X:02 Y:DB P:27 SP:FB CYC:311 SL:173 F14A A9 37 LDA #$37 A:52 X:02 Y:DC P:A5 SP:FB CYC:317 SL:173 F14C 8D 47 06 STA $0647 = 52 A:37 X:02 Y:DC P:25 SP:FB CYC:323 SL:173 F14F 20 68 FA JSR $FA68 A:37 X:02 Y:DC P:25 SP:FB CYC:335 SL:173 FA68 24 01 BIT $01 = FF A:37 X:02 Y:DC P:25 SP:F9 CYC: 12 SL:174 FA6A 38 SEC A:37 X:02 Y:DC P:E5 SP:F9 CYC: 21 SL:174 FA6B A9 75 LDA #$75 A:37 X:02 Y:DC P:E5 SP:F9 CYC: 27 SL:174 FA6D 60 RTS A:75 X:02 Y:DC P:65 SP:F9 CYC: 33 SL:174 F152 2F 47 06 *RLA $0647 = 37 A:75 X:02 Y:DC P:65 SP:FB CYC: 51 SL:174 F155 EA NOP A:65 X:02 Y:DC P:64 SP:FB CYC: 69 SL:174 F156 EA NOP A:65 X:02 Y:DC P:64 SP:FB CYC: 75 SL:174 F157 EA NOP A:65 X:02 Y:DC P:64 SP:FB CYC: 81 SL:174 F158 EA NOP A:65 X:02 Y:DC P:64 SP:FB CYC: 87 SL:174 F159 20 6E FA JSR $FA6E A:65 X:02 Y:DC P:64 SP:FB CYC: 93 SL:174 FA6E 50 76 BVC $FAE6 A:65 X:02 Y:DC P:64 SP:F9 CYC:111 SL:174 FA70 F0 74 BEQ $FAE6 A:65 X:02 Y:DC P:64 SP:F9 CYC:117 SL:174 FA72 30 72 BMI $FAE6 A:65 X:02 Y:DC P:64 SP:F9 CYC:123 SL:174 FA74 B0 70 BCS $FAE6 A:65 X:02 Y:DC P:64 SP:F9 CYC:129 SL:174 FA76 C9 65 CMP #$65 A:65 X:02 Y:DC P:64 SP:F9 CYC:135 SL:174 FA78 D0 6C BNE $FAE6 A:65 X:02 Y:DC P:67 SP:F9 CYC:141 SL:174 FA7A 60 RTS A:65 X:02 Y:DC P:67 SP:F9 CYC:147 SL:174 F15C AD 47 06 LDA $0647 = 6F A:65 X:02 Y:DC P:67 SP:FB CYC:165 SL:174 F15F C9 6F CMP #$6F A:6F X:02 Y:DC P:65 SP:FB CYC:177 SL:174 F161 F0 02 BEQ $F165 A:6F X:02 Y:DC P:67 SP:FB CYC:183 SL:174 F165 A9 A5 LDA #$A5 A:6F X:02 Y:DC P:67 SP:FB CYC:192 SL:174 F167 8D 47 06 STA $0647 = 6F A:A5 X:02 Y:DC P:E5 SP:FB CYC:198 SL:174 F16A A9 48 LDA #$48 A:A5 X:02 Y:DC P:E5 SP:FB CYC:210 SL:174 F16C 85 45 STA $45 = 48 A:48 X:02 Y:DC P:65 SP:FB CYC:216 SL:174 F16E A9 05 LDA #$05 A:48 X:02 Y:DC P:65 SP:FB CYC:225 SL:174 F170 85 46 STA $46 = 05 A:05 X:02 Y:DC P:65 SP:FB CYC:231 SL:174 F172 A0 FF LDY #$FF A:05 X:02 Y:DC P:65 SP:FB CYC:240 SL:174 F174 20 53 FB JSR $FB53 A:05 X:02 Y:FF P:E5 SP:FB CYC:246 SL:174 FB53 24 01 BIT $01 = FF A:05 X:02 Y:FF P:E5 SP:F9 CYC:264 SL:174 FB55 18 CLC A:05 X:02 Y:FF P:E5 SP:F9 CYC:273 SL:174 FB56 A9 B3 LDA #$B3 A:05 X:02 Y:FF P:E4 SP:F9 CYC:279 SL:174 FB58 60 RTS A:B3 X:02 Y:FF P:E4 SP:F9 CYC:285 SL:174 F177 33 45 *RLA ($45),Y = 0548 @ 0647 = A5 A:B3 X:02 Y:FF P:E4 SP:FB CYC:303 SL:174 F179 EA NOP A:02 X:02 Y:FF P:65 SP:FB CYC:327 SL:174 F17A EA NOP A:02 X:02 Y:FF P:65 SP:FB CYC:333 SL:174 F17B 08 PHP A:02 X:02 Y:FF P:65 SP:FB CYC:339 SL:174 F17C 48 PHA A:02 X:02 Y:FF P:65 SP:FA CYC: 7 SL:175 F17D A0 DD LDY #$DD A:02 X:02 Y:FF P:65 SP:F9 CYC: 16 SL:175 F17F 68 PLA A:02 X:02 Y:DD P:E5 SP:F9 CYC: 22 SL:175 F180 28 PLP A:02 X:02 Y:DD P:65 SP:FA CYC: 34 SL:175 F181 20 59 FB JSR $FB59 A:02 X:02 Y:DD P:65 SP:FB CYC: 46 SL:175 FB59 50 1A BVC $FB75 A:02 X:02 Y:DD P:65 SP:F9 CYC: 64 SL:175 FB5B 90 18 BCC $FB75 A:02 X:02 Y:DD P:65 SP:F9 CYC: 70 SL:175 FB5D 30 16 BMI $FB75 A:02 X:02 Y:DD P:65 SP:F9 CYC: 76 SL:175 FB5F C9 02 CMP #$02 A:02 X:02 Y:DD P:65 SP:F9 CYC: 82 SL:175 FB61 D0 12 BNE $FB75 A:02 X:02 Y:DD P:67 SP:F9 CYC: 88 SL:175 FB63 60 RTS A:02 X:02 Y:DD P:67 SP:F9 CYC: 94 SL:175 F184 AD 47 06 LDA $0647 = 4A A:02 X:02 Y:DD P:67 SP:FB CYC:112 SL:175 F187 C9 4A CMP #$4A A:4A X:02 Y:DD P:65 SP:FB CYC:124 SL:175 F189 F0 02 BEQ $F18D A:4A X:02 Y:DD P:67 SP:FB CYC:130 SL:175 F18D A0 FF LDY #$FF A:4A X:02 Y:DD P:67 SP:FB CYC:139 SL:175 F18F A9 29 LDA #$29 A:4A X:02 Y:FF P:E5 SP:FB CYC:145 SL:175 F191 8D 47 06 STA $0647 = 4A A:29 X:02 Y:FF P:65 SP:FB CYC:151 SL:175 F194 20 64 FB JSR $FB64 A:29 X:02 Y:FF P:65 SP:FB CYC:163 SL:175 FB64 B8 CLV A:29 X:02 Y:FF P:65 SP:F9 CYC:181 SL:175 FB65 18 CLC A:29 X:02 Y:FF P:25 SP:F9 CYC:187 SL:175 FB66 A9 42 LDA #$42 A:29 X:02 Y:FF P:24 SP:F9 CYC:193 SL:175 FB68 60 RTS A:42 X:02 Y:FF P:24 SP:F9 CYC:199 SL:175 F197 33 45 *RLA ($45),Y = 0548 @ 0647 = 29 A:42 X:02 Y:FF P:24 SP:FB CYC:217 SL:175 F199 EA NOP A:42 X:02 Y:FF P:24 SP:FB CYC:241 SL:175 F19A EA NOP A:42 X:02 Y:FF P:24 SP:FB CYC:247 SL:175 F19B 08 PHP A:42 X:02 Y:FF P:24 SP:FB CYC:253 SL:175 F19C 48 PHA A:42 X:02 Y:FF P:24 SP:FA CYC:262 SL:175 F19D A0 DE LDY #$DE A:42 X:02 Y:FF P:24 SP:F9 CYC:271 SL:175 F19F 68 PLA A:42 X:02 Y:DE P:A4 SP:F9 CYC:277 SL:175 F1A0 28 PLP A:42 X:02 Y:DE P:24 SP:FA CYC:289 SL:175 F1A1 20 69 FB JSR $FB69 A:42 X:02 Y:DE P:24 SP:FB CYC:301 SL:175 FB69 70 0A BVS $FB75 A:42 X:02 Y:DE P:24 SP:F9 CYC:319 SL:175 FB6B F0 08 BEQ $FB75 A:42 X:02 Y:DE P:24 SP:F9 CYC:325 SL:175 FB6D 30 06 BMI $FB75 A:42 X:02 Y:DE P:24 SP:F9 CYC:331 SL:175 FB6F B0 04 BCS $FB75 A:42 X:02 Y:DE P:24 SP:F9 CYC:337 SL:175 FB71 C9 42 CMP #$42 A:42 X:02 Y:DE P:24 SP:F9 CYC: 2 SL:176 FB73 F0 02 BEQ $FB77 A:42 X:02 Y:DE P:27 SP:F9 CYC: 8 SL:176 FB77 60 RTS A:42 X:02 Y:DE P:27 SP:F9 CYC: 17 SL:176 F1A4 AD 47 06 LDA $0647 = 52 A:42 X:02 Y:DE P:27 SP:FB CYC: 35 SL:176 F1A7 C9 52 CMP #$52 A:52 X:02 Y:DE P:25 SP:FB CYC: 47 SL:176 F1A9 F0 02 BEQ $F1AD A:52 X:02 Y:DE P:27 SP:FB CYC: 53 SL:176 F1AD A0 FF LDY #$FF A:52 X:02 Y:DE P:27 SP:FB CYC: 62 SL:176 F1AF A9 37 LDA #$37 A:52 X:02 Y:FF P:A5 SP:FB CYC: 68 SL:176 F1B1 8D 47 06 STA $0647 = 52 A:37 X:02 Y:FF P:25 SP:FB CYC: 74 SL:176 F1B4 20 68 FA JSR $FA68 A:37 X:02 Y:FF P:25 SP:FB CYC: 86 SL:176 FA68 24 01 BIT $01 = FF A:37 X:02 Y:FF P:25 SP:F9 CYC:104 SL:176 FA6A 38 SEC A:37 X:02 Y:FF P:E5 SP:F9 CYC:113 SL:176 FA6B A9 75 LDA #$75 A:37 X:02 Y:FF P:E5 SP:F9 CYC:119 SL:176 FA6D 60 RTS A:75 X:02 Y:FF P:65 SP:F9 CYC:125 SL:176 F1B7 33 45 *RLA ($45),Y = 0548 @ 0647 = 37 A:75 X:02 Y:FF P:65 SP:FB CYC:143 SL:176 F1B9 EA NOP A:65 X:02 Y:FF P:64 SP:FB CYC:167 SL:176 F1BA EA NOP A:65 X:02 Y:FF P:64 SP:FB CYC:173 SL:176 F1BB 08 PHP A:65 X:02 Y:FF P:64 SP:FB CYC:179 SL:176 F1BC 48 PHA A:65 X:02 Y:FF P:64 SP:FA CYC:188 SL:176 F1BD A0 DF LDY #$DF A:65 X:02 Y:FF P:64 SP:F9 CYC:197 SL:176 F1BF 68 PLA A:65 X:02 Y:DF P:E4 SP:F9 CYC:203 SL:176 F1C0 28 PLP A:65 X:02 Y:DF P:64 SP:FA CYC:215 SL:176 F1C1 20 6E FA JSR $FA6E A:65 X:02 Y:DF P:64 SP:FB CYC:227 SL:176 FA6E 50 76 BVC $FAE6 A:65 X:02 Y:DF P:64 SP:F9 CYC:245 SL:176 FA70 F0 74 BEQ $FAE6 A:65 X:02 Y:DF P:64 SP:F9 CYC:251 SL:176 FA72 30 72 BMI $FAE6 A:65 X:02 Y:DF P:64 SP:F9 CYC:257 SL:176 FA74 B0 70 BCS $FAE6 A:65 X:02 Y:DF P:64 SP:F9 CYC:263 SL:176 FA76 C9 65 CMP #$65 A:65 X:02 Y:DF P:64 SP:F9 CYC:269 SL:176 FA78 D0 6C BNE $FAE6 A:65 X:02 Y:DF P:67 SP:F9 CYC:275 SL:176 FA7A 60 RTS A:65 X:02 Y:DF P:67 SP:F9 CYC:281 SL:176 F1C4 AD 47 06 LDA $0647 = 6F A:65 X:02 Y:DF P:67 SP:FB CYC:299 SL:176 F1C7 C9 6F CMP #$6F A:6F X:02 Y:DF P:65 SP:FB CYC:311 SL:176 F1C9 F0 02 BEQ $F1CD A:6F X:02 Y:DF P:67 SP:FB CYC:317 SL:176 F1CD A0 E0 LDY #$E0 A:6F X:02 Y:DF P:67 SP:FB CYC:326 SL:176 F1CF A2 FF LDX #$FF A:6F X:02 Y:E0 P:E5 SP:FB CYC:332 SL:176 F1D1 A9 A5 LDA #$A5 A:6F X:FF Y:E0 P:E5 SP:FB CYC:338 SL:176 F1D3 85 47 STA $47 = 6F A:A5 X:FF Y:E0 P:E5 SP:FB CYC: 3 SL:177 F1D5 20 53 FB JSR $FB53 A:A5 X:FF Y:E0 P:E5 SP:FB CYC: 12 SL:177 FB53 24 01 BIT $01 = FF A:A5 X:FF Y:E0 P:E5 SP:F9 CYC: 30 SL:177 FB55 18 CLC A:A5 X:FF Y:E0 P:E5 SP:F9 CYC: 39 SL:177 FB56 A9 B3 LDA #$B3 A:A5 X:FF Y:E0 P:E4 SP:F9 CYC: 45 SL:177 FB58 60 RTS A:B3 X:FF Y:E0 P:E4 SP:F9 CYC: 51 SL:177 F1D8 37 48 *RLA $48,X @ 47 = A5 A:B3 X:FF Y:E0 P:E4 SP:FB CYC: 69 SL:177 F1DA EA NOP A:02 X:FF Y:E0 P:65 SP:FB CYC: 87 SL:177 F1DB EA NOP A:02 X:FF Y:E0 P:65 SP:FB CYC: 93 SL:177 F1DC EA NOP A:02 X:FF Y:E0 P:65 SP:FB CYC: 99 SL:177 F1DD EA NOP A:02 X:FF Y:E0 P:65 SP:FB CYC:105 SL:177 F1DE 20 59 FB JSR $FB59 A:02 X:FF Y:E0 P:65 SP:FB CYC:111 SL:177 FB59 50 1A BVC $FB75 A:02 X:FF Y:E0 P:65 SP:F9 CYC:129 SL:177 FB5B 90 18 BCC $FB75 A:02 X:FF Y:E0 P:65 SP:F9 CYC:135 SL:177 FB5D 30 16 BMI $FB75 A:02 X:FF Y:E0 P:65 SP:F9 CYC:141 SL:177 FB5F C9 02 CMP #$02 A:02 X:FF Y:E0 P:65 SP:F9 CYC:147 SL:177 FB61 D0 12 BNE $FB75 A:02 X:FF Y:E0 P:67 SP:F9 CYC:153 SL:177 FB63 60 RTS A:02 X:FF Y:E0 P:67 SP:F9 CYC:159 SL:177 F1E1 A5 47 LDA $47 = 4A A:02 X:FF Y:E0 P:67 SP:FB CYC:177 SL:177 F1E3 C9 4A CMP #$4A A:4A X:FF Y:E0 P:65 SP:FB CYC:186 SL:177 F1E5 F0 02 BEQ $F1E9 A:4A X:FF Y:E0 P:67 SP:FB CYC:192 SL:177 F1E9 C8 INY A:4A X:FF Y:E0 P:67 SP:FB CYC:201 SL:177 F1EA A9 29 LDA #$29 A:4A X:FF Y:E1 P:E5 SP:FB CYC:207 SL:177 F1EC 85 47 STA $47 = 4A A:29 X:FF Y:E1 P:65 SP:FB CYC:213 SL:177 F1EE 20 64 FB JSR $FB64 A:29 X:FF Y:E1 P:65 SP:FB CYC:222 SL:177 FB64 B8 CLV A:29 X:FF Y:E1 P:65 SP:F9 CYC:240 SL:177 FB65 18 CLC A:29 X:FF Y:E1 P:25 SP:F9 CYC:246 SL:177 FB66 A9 42 LDA #$42 A:29 X:FF Y:E1 P:24 SP:F9 CYC:252 SL:177 FB68 60 RTS A:42 X:FF Y:E1 P:24 SP:F9 CYC:258 SL:177 F1F1 37 48 *RLA $48,X @ 47 = 29 A:42 X:FF Y:E1 P:24 SP:FB CYC:276 SL:177 F1F3 EA NOP A:42 X:FF Y:E1 P:24 SP:FB CYC:294 SL:177 F1F4 EA NOP A:42 X:FF Y:E1 P:24 SP:FB CYC:300 SL:177 F1F5 EA NOP A:42 X:FF Y:E1 P:24 SP:FB CYC:306 SL:177 F1F6 EA NOP A:42 X:FF Y:E1 P:24 SP:FB CYC:312 SL:177 F1F7 20 69 FB JSR $FB69 A:42 X:FF Y:E1 P:24 SP:FB CYC:318 SL:177 FB69 70 0A BVS $FB75 A:42 X:FF Y:E1 P:24 SP:F9 CYC:336 SL:177 FB6B F0 08 BEQ $FB75 A:42 X:FF Y:E1 P:24 SP:F9 CYC: 1 SL:178 FB6D 30 06 BMI $FB75 A:42 X:FF Y:E1 P:24 SP:F9 CYC: 7 SL:178 FB6F B0 04 BCS $FB75 A:42 X:FF Y:E1 P:24 SP:F9 CYC: 13 SL:178 FB71 C9 42 CMP #$42 A:42 X:FF Y:E1 P:24 SP:F9 CYC: 19 SL:178 FB73 F0 02 BEQ $FB77 A:42 X:FF Y:E1 P:27 SP:F9 CYC: 25 SL:178 FB77 60 RTS A:42 X:FF Y:E1 P:27 SP:F9 CYC: 34 SL:178 F1FA A5 47 LDA $47 = 52 A:42 X:FF Y:E1 P:27 SP:FB CYC: 52 SL:178 F1FC C9 52 CMP #$52 A:52 X:FF Y:E1 P:25 SP:FB CYC: 61 SL:178 F1FE F0 02 BEQ $F202 A:52 X:FF Y:E1 P:27 SP:FB CYC: 67 SL:178 F202 C8 INY A:52 X:FF Y:E1 P:27 SP:FB CYC: 76 SL:178 F203 A9 37 LDA #$37 A:52 X:FF Y:E2 P:A5 SP:FB CYC: 82 SL:178 F205 85 47 STA $47 = 52 A:37 X:FF Y:E2 P:25 SP:FB CYC: 88 SL:178 F207 20 68 FA JSR $FA68 A:37 X:FF Y:E2 P:25 SP:FB CYC: 97 SL:178 FA68 24 01 BIT $01 = FF A:37 X:FF Y:E2 P:25 SP:F9 CYC:115 SL:178 FA6A 38 SEC A:37 X:FF Y:E2 P:E5 SP:F9 CYC:124 SL:178 FA6B A9 75 LDA #$75 A:37 X:FF Y:E2 P:E5 SP:F9 CYC:130 SL:178 FA6D 60 RTS A:75 X:FF Y:E2 P:65 SP:F9 CYC:136 SL:178 F20A 37 48 *RLA $48,X @ 47 = 37 A:75 X:FF Y:E2 P:65 SP:FB CYC:154 SL:178 F20C EA NOP A:65 X:FF Y:E2 P:64 SP:FB CYC:172 SL:178 F20D EA NOP A:65 X:FF Y:E2 P:64 SP:FB CYC:178 SL:178 F20E EA NOP A:65 X:FF Y:E2 P:64 SP:FB CYC:184 SL:178 F20F EA NOP A:65 X:FF Y:E2 P:64 SP:FB CYC:190 SL:178 F210 20 6E FA JSR $FA6E A:65 X:FF Y:E2 P:64 SP:FB CYC:196 SL:178 FA6E 50 76 BVC $FAE6 A:65 X:FF Y:E2 P:64 SP:F9 CYC:214 SL:178 FA70 F0 74 BEQ $FAE6 A:65 X:FF Y:E2 P:64 SP:F9 CYC:220 SL:178 FA72 30 72 BMI $FAE6 A:65 X:FF Y:E2 P:64 SP:F9 CYC:226 SL:178 FA74 B0 70 BCS $FAE6 A:65 X:FF Y:E2 P:64 SP:F9 CYC:232 SL:178 FA76 C9 65 CMP #$65 A:65 X:FF Y:E2 P:64 SP:F9 CYC:238 SL:178 FA78 D0 6C BNE $FAE6 A:65 X:FF Y:E2 P:67 SP:F9 CYC:244 SL:178 FA7A 60 RTS A:65 X:FF Y:E2 P:67 SP:F9 CYC:250 SL:178 F213 A5 47 LDA $47 = 6F A:65 X:FF Y:E2 P:67 SP:FB CYC:268 SL:178 F215 C9 6F CMP #$6F A:6F X:FF Y:E2 P:65 SP:FB CYC:277 SL:178 F217 F0 02 BEQ $F21B A:6F X:FF Y:E2 P:67 SP:FB CYC:283 SL:178 F21B A9 A5 LDA #$A5 A:6F X:FF Y:E2 P:67 SP:FB CYC:292 SL:178 F21D 8D 47 06 STA $0647 = 6F A:A5 X:FF Y:E2 P:E5 SP:FB CYC:298 SL:178 F220 A0 FF LDY #$FF A:A5 X:FF Y:E2 P:E5 SP:FB CYC:310 SL:178 F222 20 53 FB JSR $FB53 A:A5 X:FF Y:FF P:E5 SP:FB CYC:316 SL:178 FB53 24 01 BIT $01 = FF A:A5 X:FF Y:FF P:E5 SP:F9 CYC:334 SL:178 FB55 18 CLC A:A5 X:FF Y:FF P:E5 SP:F9 CYC: 2 SL:179 FB56 A9 B3 LDA #$B3 A:A5 X:FF Y:FF P:E4 SP:F9 CYC: 8 SL:179 FB58 60 RTS A:B3 X:FF Y:FF P:E4 SP:F9 CYC: 14 SL:179 F225 3B 48 05 *RLA $0548,Y @ 0647 = A5 A:B3 X:FF Y:FF P:E4 SP:FB CYC: 32 SL:179 F228 EA NOP A:02 X:FF Y:FF P:65 SP:FB CYC: 53 SL:179 F229 EA NOP A:02 X:FF Y:FF P:65 SP:FB CYC: 59 SL:179 F22A 08 PHP A:02 X:FF Y:FF P:65 SP:FB CYC: 65 SL:179 F22B 48 PHA A:02 X:FF Y:FF P:65 SP:FA CYC: 74 SL:179 F22C A0 E3 LDY #$E3 A:02 X:FF Y:FF P:65 SP:F9 CYC: 83 SL:179 F22E 68 PLA A:02 X:FF Y:E3 P:E5 SP:F9 CYC: 89 SL:179 F22F 28 PLP A:02 X:FF Y:E3 P:65 SP:FA CYC:101 SL:179 F230 20 59 FB JSR $FB59 A:02 X:FF Y:E3 P:65 SP:FB CYC:113 SL:179 FB59 50 1A BVC $FB75 A:02 X:FF Y:E3 P:65 SP:F9 CYC:131 SL:179 FB5B 90 18 BCC $FB75 A:02 X:FF Y:E3 P:65 SP:F9 CYC:137 SL:179 FB5D 30 16 BMI $FB75 A:02 X:FF Y:E3 P:65 SP:F9 CYC:143 SL:179 FB5F C9 02 CMP #$02 A:02 X:FF Y:E3 P:65 SP:F9 CYC:149 SL:179 FB61 D0 12 BNE $FB75 A:02 X:FF Y:E3 P:67 SP:F9 CYC:155 SL:179 FB63 60 RTS A:02 X:FF Y:E3 P:67 SP:F9 CYC:161 SL:179 F233 AD 47 06 LDA $0647 = 4A A:02 X:FF Y:E3 P:67 SP:FB CYC:179 SL:179 F236 C9 4A CMP #$4A A:4A X:FF Y:E3 P:65 SP:FB CYC:191 SL:179 F238 F0 02 BEQ $F23C A:4A X:FF Y:E3 P:67 SP:FB CYC:197 SL:179 F23C A0 FF LDY #$FF A:4A X:FF Y:E3 P:67 SP:FB CYC:206 SL:179 F23E A9 29 LDA #$29 A:4A X:FF Y:FF P:E5 SP:FB CYC:212 SL:179 F240 8D 47 06 STA $0647 = 4A A:29 X:FF Y:FF P:65 SP:FB CYC:218 SL:179 F243 20 64 FB JSR $FB64 A:29 X:FF Y:FF P:65 SP:FB CYC:230 SL:179 FB64 B8 CLV A:29 X:FF Y:FF P:65 SP:F9 CYC:248 SL:179 FB65 18 CLC A:29 X:FF Y:FF P:25 SP:F9 CYC:254 SL:179 FB66 A9 42 LDA #$42 A:29 X:FF Y:FF P:24 SP:F9 CYC:260 SL:179 FB68 60 RTS A:42 X:FF Y:FF P:24 SP:F9 CYC:266 SL:179 F246 3B 48 05 *RLA $0548,Y @ 0647 = 29 A:42 X:FF Y:FF P:24 SP:FB CYC:284 SL:179 F249 EA NOP A:42 X:FF Y:FF P:24 SP:FB CYC:305 SL:179 F24A EA NOP A:42 X:FF Y:FF P:24 SP:FB CYC:311 SL:179 F24B 08 PHP A:42 X:FF Y:FF P:24 SP:FB CYC:317 SL:179 F24C 48 PHA A:42 X:FF Y:FF P:24 SP:FA CYC:326 SL:179 F24D A0 E4 LDY #$E4 A:42 X:FF Y:FF P:24 SP:F9 CYC:335 SL:179 F24F 68 PLA A:42 X:FF Y:E4 P:A4 SP:F9 CYC: 0 SL:180 F250 28 PLP A:42 X:FF Y:E4 P:24 SP:FA CYC: 12 SL:180 F251 20 69 FB JSR $FB69 A:42 X:FF Y:E4 P:24 SP:FB CYC: 24 SL:180 FB69 70 0A BVS $FB75 A:42 X:FF Y:E4 P:24 SP:F9 CYC: 42 SL:180 FB6B F0 08 BEQ $FB75 A:42 X:FF Y:E4 P:24 SP:F9 CYC: 48 SL:180 FB6D 30 06 BMI $FB75 A:42 X:FF Y:E4 P:24 SP:F9 CYC: 54 SL:180 FB6F B0 04 BCS $FB75 A:42 X:FF Y:E4 P:24 SP:F9 CYC: 60 SL:180 FB71 C9 42 CMP #$42 A:42 X:FF Y:E4 P:24 SP:F9 CYC: 66 SL:180 FB73 F0 02 BEQ $FB77 A:42 X:FF Y:E4 P:27 SP:F9 CYC: 72 SL:180 FB77 60 RTS A:42 X:FF Y:E4 P:27 SP:F9 CYC: 81 SL:180 F254 AD 47 06 LDA $0647 = 52 A:42 X:FF Y:E4 P:27 SP:FB CYC: 99 SL:180 F257 C9 52 CMP #$52 A:52 X:FF Y:E4 P:25 SP:FB CYC:111 SL:180 F259 F0 02 BEQ $F25D A:52 X:FF Y:E4 P:27 SP:FB CYC:117 SL:180 F25D A0 FF LDY #$FF A:52 X:FF Y:E4 P:27 SP:FB CYC:126 SL:180 F25F A9 37 LDA #$37 A:52 X:FF Y:FF P:A5 SP:FB CYC:132 SL:180 F261 8D 47 06 STA $0647 = 52 A:37 X:FF Y:FF P:25 SP:FB CYC:138 SL:180 F264 20 68 FA JSR $FA68 A:37 X:FF Y:FF P:25 SP:FB CYC:150 SL:180 FA68 24 01 BIT $01 = FF A:37 X:FF Y:FF P:25 SP:F9 CYC:168 SL:180 FA6A 38 SEC A:37 X:FF Y:FF P:E5 SP:F9 CYC:177 SL:180 FA6B A9 75 LDA #$75 A:37 X:FF Y:FF P:E5 SP:F9 CYC:183 SL:180 FA6D 60 RTS A:75 X:FF Y:FF P:65 SP:F9 CYC:189 SL:180 F267 3B 48 05 *RLA $0548,Y @ 0647 = 37 A:75 X:FF Y:FF P:65 SP:FB CYC:207 SL:180 F26A EA NOP A:65 X:FF Y:FF P:64 SP:FB CYC:228 SL:180 F26B EA NOP A:65 X:FF Y:FF P:64 SP:FB CYC:234 SL:180 F26C 08 PHP A:65 X:FF Y:FF P:64 SP:FB CYC:240 SL:180 F26D 48 PHA A:65 X:FF Y:FF P:64 SP:FA CYC:249 SL:180 F26E A0 E5 LDY #$E5 A:65 X:FF Y:FF P:64 SP:F9 CYC:258 SL:180 F270 68 PLA A:65 X:FF Y:E5 P:E4 SP:F9 CYC:264 SL:180 F271 28 PLP A:65 X:FF Y:E5 P:64 SP:FA CYC:276 SL:180 F272 20 6E FA JSR $FA6E A:65 X:FF Y:E5 P:64 SP:FB CYC:288 SL:180 FA6E 50 76 BVC $FAE6 A:65 X:FF Y:E5 P:64 SP:F9 CYC:306 SL:180 FA70 F0 74 BEQ $FAE6 A:65 X:FF Y:E5 P:64 SP:F9 CYC:312 SL:180 FA72 30 72 BMI $FAE6 A:65 X:FF Y:E5 P:64 SP:F9 CYC:318 SL:180 FA74 B0 70 BCS $FAE6 A:65 X:FF Y:E5 P:64 SP:F9 CYC:324 SL:180 FA76 C9 65 CMP #$65 A:65 X:FF Y:E5 P:64 SP:F9 CYC:330 SL:180 FA78 D0 6C BNE $FAE6 A:65 X:FF Y:E5 P:67 SP:F9 CYC:336 SL:180 FA7A 60 RTS A:65 X:FF Y:E5 P:67 SP:F9 CYC: 1 SL:181 F275 AD 47 06 LDA $0647 = 6F A:65 X:FF Y:E5 P:67 SP:FB CYC: 19 SL:181 F278 C9 6F CMP #$6F A:6F X:FF Y:E5 P:65 SP:FB CYC: 31 SL:181 F27A F0 02 BEQ $F27E A:6F X:FF Y:E5 P:67 SP:FB CYC: 37 SL:181 F27E A0 E6 LDY #$E6 A:6F X:FF Y:E5 P:67 SP:FB CYC: 46 SL:181 F280 A2 FF LDX #$FF A:6F X:FF Y:E6 P:E5 SP:FB CYC: 52 SL:181 F282 A9 A5 LDA #$A5 A:6F X:FF Y:E6 P:E5 SP:FB CYC: 58 SL:181 F284 8D 47 06 STA $0647 = 6F A:A5 X:FF Y:E6 P:E5 SP:FB CYC: 64 SL:181 F287 20 53 FB JSR $FB53 A:A5 X:FF Y:E6 P:E5 SP:FB CYC: 76 SL:181 FB53 24 01 BIT $01 = FF A:A5 X:FF Y:E6 P:E5 SP:F9 CYC: 94 SL:181 FB55 18 CLC A:A5 X:FF Y:E6 P:E5 SP:F9 CYC:103 SL:181 FB56 A9 B3 LDA #$B3 A:A5 X:FF Y:E6 P:E4 SP:F9 CYC:109 SL:181 FB58 60 RTS A:B3 X:FF Y:E6 P:E4 SP:F9 CYC:115 SL:181 F28A 3F 48 05 *RLA $0548,X @ 0647 = A5 A:B3 X:FF Y:E6 P:E4 SP:FB CYC:133 SL:181 F28D EA NOP A:02 X:FF Y:E6 P:65 SP:FB CYC:154 SL:181 F28E EA NOP A:02 X:FF Y:E6 P:65 SP:FB CYC:160 SL:181 F28F EA NOP A:02 X:FF Y:E6 P:65 SP:FB CYC:166 SL:181 F290 EA NOP A:02 X:FF Y:E6 P:65 SP:FB CYC:172 SL:181 F291 20 59 FB JSR $FB59 A:02 X:FF Y:E6 P:65 SP:FB CYC:178 SL:181 FB59 50 1A BVC $FB75 A:02 X:FF Y:E6 P:65 SP:F9 CYC:196 SL:181 FB5B 90 18 BCC $FB75 A:02 X:FF Y:E6 P:65 SP:F9 CYC:202 SL:181 FB5D 30 16 BMI $FB75 A:02 X:FF Y:E6 P:65 SP:F9 CYC:208 SL:181 FB5F C9 02 CMP #$02 A:02 X:FF Y:E6 P:65 SP:F9 CYC:214 SL:181 FB61 D0 12 BNE $FB75 A:02 X:FF Y:E6 P:67 SP:F9 CYC:220 SL:181 FB63 60 RTS A:02 X:FF Y:E6 P:67 SP:F9 CYC:226 SL:181 F294 AD 47 06 LDA $0647 = 4A A:02 X:FF Y:E6 P:67 SP:FB CYC:244 SL:181 F297 C9 4A CMP #$4A A:4A X:FF Y:E6 P:65 SP:FB CYC:256 SL:181 F299 F0 02 BEQ $F29D A:4A X:FF Y:E6 P:67 SP:FB CYC:262 SL:181 F29D C8 INY A:4A X:FF Y:E6 P:67 SP:FB CYC:271 SL:181 F29E A9 29 LDA #$29 A:4A X:FF Y:E7 P:E5 SP:FB CYC:277 SL:181 F2A0 8D 47 06 STA $0647 = 4A A:29 X:FF Y:E7 P:65 SP:FB CYC:283 SL:181 F2A3 20 64 FB JSR $FB64 A:29 X:FF Y:E7 P:65 SP:FB CYC:295 SL:181 FB64 B8 CLV A:29 X:FF Y:E7 P:65 SP:F9 CYC:313 SL:181 FB65 18 CLC A:29 X:FF Y:E7 P:25 SP:F9 CYC:319 SL:181 FB66 A9 42 LDA #$42 A:29 X:FF Y:E7 P:24 SP:F9 CYC:325 SL:181 FB68 60 RTS A:42 X:FF Y:E7 P:24 SP:F9 CYC:331 SL:181 F2A6 3F 48 05 *RLA $0548,X @ 0647 = 29 A:42 X:FF Y:E7 P:24 SP:FB CYC: 8 SL:182 F2A9 EA NOP A:42 X:FF Y:E7 P:24 SP:FB CYC: 29 SL:182 F2AA EA NOP A:42 X:FF Y:E7 P:24 SP:FB CYC: 35 SL:182 F2AB EA NOP A:42 X:FF Y:E7 P:24 SP:FB CYC: 41 SL:182 F2AC EA NOP A:42 X:FF Y:E7 P:24 SP:FB CYC: 47 SL:182 F2AD 20 69 FB JSR $FB69 A:42 X:FF Y:E7 P:24 SP:FB CYC: 53 SL:182 FB69 70 0A BVS $FB75 A:42 X:FF Y:E7 P:24 SP:F9 CYC: 71 SL:182 FB6B F0 08 BEQ $FB75 A:42 X:FF Y:E7 P:24 SP:F9 CYC: 77 SL:182 FB6D 30 06 BMI $FB75 A:42 X:FF Y:E7 P:24 SP:F9 CYC: 83 SL:182 FB6F B0 04 BCS $FB75 A:42 X:FF Y:E7 P:24 SP:F9 CYC: 89 SL:182 FB71 C9 42 CMP #$42 A:42 X:FF Y:E7 P:24 SP:F9 CYC: 95 SL:182 FB73 F0 02 BEQ $FB77 A:42 X:FF Y:E7 P:27 SP:F9 CYC:101 SL:182 FB77 60 RTS A:42 X:FF Y:E7 P:27 SP:F9 CYC:110 SL:182 F2B0 AD 47 06 LDA $0647 = 52 A:42 X:FF Y:E7 P:27 SP:FB CYC:128 SL:182 F2B3 C9 52 CMP #$52 A:52 X:FF Y:E7 P:25 SP:FB CYC:140 SL:182 F2B5 F0 02 BEQ $F2B9 A:52 X:FF Y:E7 P:27 SP:FB CYC:146 SL:182 F2B9 C8 INY A:52 X:FF Y:E7 P:27 SP:FB CYC:155 SL:182 F2BA A9 37 LDA #$37 A:52 X:FF Y:E8 P:A5 SP:FB CYC:161 SL:182 F2BC 8D 47 06 STA $0647 = 52 A:37 X:FF Y:E8 P:25 SP:FB CYC:167 SL:182 F2BF 20 68 FA JSR $FA68 A:37 X:FF Y:E8 P:25 SP:FB CYC:179 SL:182 FA68 24 01 BIT $01 = FF A:37 X:FF Y:E8 P:25 SP:F9 CYC:197 SL:182 FA6A 38 SEC A:37 X:FF Y:E8 P:E5 SP:F9 CYC:206 SL:182 FA6B A9 75 LDA #$75 A:37 X:FF Y:E8 P:E5 SP:F9 CYC:212 SL:182 FA6D 60 RTS A:75 X:FF Y:E8 P:65 SP:F9 CYC:218 SL:182 F2C2 3F 48 05 *RLA $0548,X @ 0647 = 37 A:75 X:FF Y:E8 P:65 SP:FB CYC:236 SL:182 F2C5 EA NOP A:65 X:FF Y:E8 P:64 SP:FB CYC:257 SL:182 F2C6 EA NOP A:65 X:FF Y:E8 P:64 SP:FB CYC:263 SL:182 F2C7 EA NOP A:65 X:FF Y:E8 P:64 SP:FB CYC:269 SL:182 F2C8 EA NOP A:65 X:FF Y:E8 P:64 SP:FB CYC:275 SL:182 F2C9 20 6E FA JSR $FA6E A:65 X:FF Y:E8 P:64 SP:FB CYC:281 SL:182 FA6E 50 76 BVC $FAE6 A:65 X:FF Y:E8 P:64 SP:F9 CYC:299 SL:182 FA70 F0 74 BEQ $FAE6 A:65 X:FF Y:E8 P:64 SP:F9 CYC:305 SL:182 FA72 30 72 BMI $FAE6 A:65 X:FF Y:E8 P:64 SP:F9 CYC:311 SL:182 FA74 B0 70 BCS $FAE6 A:65 X:FF Y:E8 P:64 SP:F9 CYC:317 SL:182 FA76 C9 65 CMP #$65 A:65 X:FF Y:E8 P:64 SP:F9 CYC:323 SL:182 FA78 D0 6C BNE $FAE6 A:65 X:FF Y:E8 P:67 SP:F9 CYC:329 SL:182 FA7A 60 RTS A:65 X:FF Y:E8 P:67 SP:F9 CYC:335 SL:182 F2CC AD 47 06 LDA $0647 = 6F A:65 X:FF Y:E8 P:67 SP:FB CYC: 12 SL:183 F2CF C9 6F CMP #$6F A:6F X:FF Y:E8 P:65 SP:FB CYC: 24 SL:183 F2D1 F0 02 BEQ $F2D5 A:6F X:FF Y:E8 P:67 SP:FB CYC: 30 SL:183 F2D5 60 RTS A:6F X:FF Y:E8 P:67 SP:FB CYC: 39 SL:183 C647 20 D6 F2 JSR $F2D6 A:6F X:FF Y:E8 P:67 SP:FD CYC: 57 SL:183 F2D6 A9 FF LDA #$FF A:6F X:FF Y:E8 P:67 SP:FB CYC: 75 SL:183 F2D8 85 01 STA $01 = FF A:FF X:FF Y:E8 P:E5 SP:FB CYC: 81 SL:183 F2DA A0 E9 LDY #$E9 A:FF X:FF Y:E8 P:E5 SP:FB CYC: 90 SL:183 F2DC A2 02 LDX #$02 A:FF X:FF Y:E9 P:E5 SP:FB CYC: 96 SL:183 F2DE A9 47 LDA #$47 A:FF X:02 Y:E9 P:65 SP:FB CYC:102 SL:183 F2E0 85 47 STA $47 = 6F A:47 X:02 Y:E9 P:65 SP:FB CYC:108 SL:183 F2E2 A9 06 LDA #$06 A:47 X:02 Y:E9 P:65 SP:FB CYC:117 SL:183 F2E4 85 48 STA $48 = 06 A:06 X:02 Y:E9 P:65 SP:FB CYC:123 SL:183 F2E6 A9 A5 LDA #$A5 A:06 X:02 Y:E9 P:65 SP:FB CYC:132 SL:183 F2E8 8D 47 06 STA $0647 = 6F A:A5 X:02 Y:E9 P:E5 SP:FB CYC:138 SL:183 F2EB 20 1D FB JSR $FB1D A:A5 X:02 Y:E9 P:E5 SP:FB CYC:150 SL:183 FB1D 24 01 BIT $01 = FF A:A5 X:02 Y:E9 P:E5 SP:F9 CYC:168 SL:183 FB1F 18 CLC A:A5 X:02 Y:E9 P:E5 SP:F9 CYC:177 SL:183 FB20 A9 B3 LDA #$B3 A:A5 X:02 Y:E9 P:E4 SP:F9 CYC:183 SL:183 FB22 60 RTS A:B3 X:02 Y:E9 P:E4 SP:F9 CYC:189 SL:183 F2EE 43 45 *SRE ($45,X) @ 47 = 0647 = A5 A:B3 X:02 Y:E9 P:E4 SP:FB CYC:207 SL:183 F2F0 EA NOP A:E1 X:02 Y:E9 P:E5 SP:FB CYC:231 SL:183 F2F1 EA NOP A:E1 X:02 Y:E9 P:E5 SP:FB CYC:237 SL:183 F2F2 EA NOP A:E1 X:02 Y:E9 P:E5 SP:FB CYC:243 SL:183 F2F3 EA NOP A:E1 X:02 Y:E9 P:E5 SP:FB CYC:249 SL:183 F2F4 20 23 FB JSR $FB23 A:E1 X:02 Y:E9 P:E5 SP:FB CYC:255 SL:183 FB23 50 50 BVC $FB75 A:E1 X:02 Y:E9 P:E5 SP:F9 CYC:273 SL:183 FB25 90 4E BCC $FB75 A:E1 X:02 Y:E9 P:E5 SP:F9 CYC:279 SL:183 FB27 10 4C BPL $FB75 A:E1 X:02 Y:E9 P:E5 SP:F9 CYC:285 SL:183 FB29 C9 E1 CMP #$E1 A:E1 X:02 Y:E9 P:E5 SP:F9 CYC:291 SL:183 FB2B D0 48 BNE $FB75 A:E1 X:02 Y:E9 P:67 SP:F9 CYC:297 SL:183 FB2D 60 RTS A:E1 X:02 Y:E9 P:67 SP:F9 CYC:303 SL:183 F2F7 AD 47 06 LDA $0647 = 52 A:E1 X:02 Y:E9 P:67 SP:FB CYC:321 SL:183 F2FA C9 52 CMP #$52 A:52 X:02 Y:E9 P:65 SP:FB CYC:333 SL:183 F2FC F0 02 BEQ $F300 A:52 X:02 Y:E9 P:67 SP:FB CYC:339 SL:183 F300 C8 INY A:52 X:02 Y:E9 P:67 SP:FB CYC: 10 SL:184 F301 A9 29 LDA #$29 A:52 X:02 Y:EA P:E5 SP:FB CYC: 16 SL:184 F303 8D 47 06 STA $0647 = 52 A:29 X:02 Y:EA P:65 SP:FB CYC: 22 SL:184 F306 20 2E FB JSR $FB2E A:29 X:02 Y:EA P:65 SP:FB CYC: 34 SL:184 FB2E B8 CLV A:29 X:02 Y:EA P:65 SP:F9 CYC: 52 SL:184 FB2F 18 CLC A:29 X:02 Y:EA P:25 SP:F9 CYC: 58 SL:184 FB30 A9 42 LDA #$42 A:29 X:02 Y:EA P:24 SP:F9 CYC: 64 SL:184 FB32 60 RTS A:42 X:02 Y:EA P:24 SP:F9 CYC: 70 SL:184 F309 43 45 *SRE ($45,X) @ 47 = 0647 = 29 A:42 X:02 Y:EA P:24 SP:FB CYC: 88 SL:184 F30B EA NOP A:56 X:02 Y:EA P:25 SP:FB CYC:112 SL:184 F30C EA NOP A:56 X:02 Y:EA P:25 SP:FB CYC:118 SL:184 F30D EA NOP A:56 X:02 Y:EA P:25 SP:FB CYC:124 SL:184 F30E EA NOP A:56 X:02 Y:EA P:25 SP:FB CYC:130 SL:184 F30F 20 33 FB JSR $FB33 A:56 X:02 Y:EA P:25 SP:FB CYC:136 SL:184 FB33 70 40 BVS $FB75 A:56 X:02 Y:EA P:25 SP:F9 CYC:154 SL:184 FB35 F0 3E BEQ $FB75 A:56 X:02 Y:EA P:25 SP:F9 CYC:160 SL:184 FB37 30 3C BMI $FB75 A:56 X:02 Y:EA P:25 SP:F9 CYC:166 SL:184 FB39 90 3A BCC $FB75 A:56 X:02 Y:EA P:25 SP:F9 CYC:172 SL:184 FB3B C9 56 CMP #$56 A:56 X:02 Y:EA P:25 SP:F9 CYC:178 SL:184 FB3D D0 36 BNE $FB75 A:56 X:02 Y:EA P:27 SP:F9 CYC:184 SL:184 FB3F 60 RTS A:56 X:02 Y:EA P:27 SP:F9 CYC:190 SL:184 F312 AD 47 06 LDA $0647 = 14 A:56 X:02 Y:EA P:27 SP:FB CYC:208 SL:184 F315 C9 14 CMP #$14 A:14 X:02 Y:EA P:25 SP:FB CYC:220 SL:184 F317 F0 02 BEQ $F31B A:14 X:02 Y:EA P:27 SP:FB CYC:226 SL:184 F31B C8 INY A:14 X:02 Y:EA P:27 SP:FB CYC:235 SL:184 F31C A9 37 LDA #$37 A:14 X:02 Y:EB P:A5 SP:FB CYC:241 SL:184 F31E 8D 47 06 STA $0647 = 14 A:37 X:02 Y:EB P:25 SP:FB CYC:247 SL:184 F321 20 40 FB JSR $FB40 A:37 X:02 Y:EB P:25 SP:FB CYC:259 SL:184 FB40 24 01 BIT $01 = FF A:37 X:02 Y:EB P:25 SP:F9 CYC:277 SL:184 FB42 38 SEC A:37 X:02 Y:EB P:E5 SP:F9 CYC:286 SL:184 FB43 A9 75 LDA #$75 A:37 X:02 Y:EB P:E5 SP:F9 CYC:292 SL:184 FB45 60 RTS A:75 X:02 Y:EB P:65 SP:F9 CYC:298 SL:184 F324 43 45 *SRE ($45,X) @ 47 = 0647 = 37 A:75 X:02 Y:EB P:65 SP:FB CYC:316 SL:184 F326 EA NOP A:6E X:02 Y:EB P:65 SP:FB CYC:340 SL:184 F327 EA NOP A:6E X:02 Y:EB P:65 SP:FB CYC: 5 SL:185 F328 EA NOP A:6E X:02 Y:EB P:65 SP:FB CYC: 11 SL:185 F329 EA NOP A:6E X:02 Y:EB P:65 SP:FB CYC: 17 SL:185 F32A 20 46 FB JSR $FB46 A:6E X:02 Y:EB P:65 SP:FB CYC: 23 SL:185 FB46 50 2D BVC $FB75 A:6E X:02 Y:EB P:65 SP:F9 CYC: 41 SL:185 FB48 F0 2B BEQ $FB75 A:6E X:02 Y:EB P:65 SP:F9 CYC: 47 SL:185 FB4A 30 29 BMI $FB75 A:6E X:02 Y:EB P:65 SP:F9 CYC: 53 SL:185 FB4C 90 27 BCC $FB75 A:6E X:02 Y:EB P:65 SP:F9 CYC: 59 SL:185 FB4E C9 6E CMP #$6E A:6E X:02 Y:EB P:65 SP:F9 CYC: 65 SL:185 FB50 D0 23 BNE $FB75 A:6E X:02 Y:EB P:67 SP:F9 CYC: 71 SL:185 FB52 60 RTS A:6E X:02 Y:EB P:67 SP:F9 CYC: 77 SL:185 F32D AD 47 06 LDA $0647 = 1B A:6E X:02 Y:EB P:67 SP:FB CYC: 95 SL:185 F330 C9 1B CMP #$1B A:1B X:02 Y:EB P:65 SP:FB CYC:107 SL:185 F332 F0 02 BEQ $F336 A:1B X:02 Y:EB P:67 SP:FB CYC:113 SL:185 F336 C8 INY A:1B X:02 Y:EB P:67 SP:FB CYC:122 SL:185 F337 A9 A5 LDA #$A5 A:1B X:02 Y:EC P:E5 SP:FB CYC:128 SL:185 F339 85 47 STA $47 = 47 A:A5 X:02 Y:EC P:E5 SP:FB CYC:134 SL:185 F33B 20 1D FB JSR $FB1D A:A5 X:02 Y:EC P:E5 SP:FB CYC:143 SL:185 FB1D 24 01 BIT $01 = FF A:A5 X:02 Y:EC P:E5 SP:F9 CYC:161 SL:185 FB1F 18 CLC A:A5 X:02 Y:EC P:E5 SP:F9 CYC:170 SL:185 FB20 A9 B3 LDA #$B3 A:A5 X:02 Y:EC P:E4 SP:F9 CYC:176 SL:185 FB22 60 RTS A:B3 X:02 Y:EC P:E4 SP:F9 CYC:182 SL:185 F33E 47 47 *SRE $47 = A5 A:B3 X:02 Y:EC P:E4 SP:FB CYC:200 SL:185 F340 EA NOP A:E1 X:02 Y:EC P:E5 SP:FB CYC:215 SL:185 F341 EA NOP A:E1 X:02 Y:EC P:E5 SP:FB CYC:221 SL:185 F342 EA NOP A:E1 X:02 Y:EC P:E5 SP:FB CYC:227 SL:185 F343 EA NOP A:E1 X:02 Y:EC P:E5 SP:FB CYC:233 SL:185 F344 20 23 FB JSR $FB23 A:E1 X:02 Y:EC P:E5 SP:FB CYC:239 SL:185 FB23 50 50 BVC $FB75 A:E1 X:02 Y:EC P:E5 SP:F9 CYC:257 SL:185 FB25 90 4E BCC $FB75 A:E1 X:02 Y:EC P:E5 SP:F9 CYC:263 SL:185 FB27 10 4C BPL $FB75 A:E1 X:02 Y:EC P:E5 SP:F9 CYC:269 SL:185 FB29 C9 E1 CMP #$E1 A:E1 X:02 Y:EC P:E5 SP:F9 CYC:275 SL:185 FB2B D0 48 BNE $FB75 A:E1 X:02 Y:EC P:67 SP:F9 CYC:281 SL:185 FB2D 60 RTS A:E1 X:02 Y:EC P:67 SP:F9 CYC:287 SL:185 F347 A5 47 LDA $47 = 52 A:E1 X:02 Y:EC P:67 SP:FB CYC:305 SL:185 F349 C9 52 CMP #$52 A:52 X:02 Y:EC P:65 SP:FB CYC:314 SL:185 F34B F0 02 BEQ $F34F A:52 X:02 Y:EC P:67 SP:FB CYC:320 SL:185 F34F C8 INY A:52 X:02 Y:EC P:67 SP:FB CYC:329 SL:185 F350 A9 29 LDA #$29 A:52 X:02 Y:ED P:E5 SP:FB CYC:335 SL:185 F352 85 47 STA $47 = 52 A:29 X:02 Y:ED P:65 SP:FB CYC: 0 SL:186 F354 20 2E FB JSR $FB2E A:29 X:02 Y:ED P:65 SP:FB CYC: 9 SL:186 FB2E B8 CLV A:29 X:02 Y:ED P:65 SP:F9 CYC: 27 SL:186 FB2F 18 CLC A:29 X:02 Y:ED P:25 SP:F9 CYC: 33 SL:186 FB30 A9 42 LDA #$42 A:29 X:02 Y:ED P:24 SP:F9 CYC: 39 SL:186 FB32 60 RTS A:42 X:02 Y:ED P:24 SP:F9 CYC: 45 SL:186 F357 47 47 *SRE $47 = 29 A:42 X:02 Y:ED P:24 SP:FB CYC: 63 SL:186 F359 EA NOP A:56 X:02 Y:ED P:25 SP:FB CYC: 78 SL:186 F35A EA NOP A:56 X:02 Y:ED P:25 SP:FB CYC: 84 SL:186 F35B EA NOP A:56 X:02 Y:ED P:25 SP:FB CYC: 90 SL:186 F35C EA NOP A:56 X:02 Y:ED P:25 SP:FB CYC: 96 SL:186 F35D 20 33 FB JSR $FB33 A:56 X:02 Y:ED P:25 SP:FB CYC:102 SL:186 FB33 70 40 BVS $FB75 A:56 X:02 Y:ED P:25 SP:F9 CYC:120 SL:186 FB35 F0 3E BEQ $FB75 A:56 X:02 Y:ED P:25 SP:F9 CYC:126 SL:186 FB37 30 3C BMI $FB75 A:56 X:02 Y:ED P:25 SP:F9 CYC:132 SL:186 FB39 90 3A BCC $FB75 A:56 X:02 Y:ED P:25 SP:F9 CYC:138 SL:186 FB3B C9 56 CMP #$56 A:56 X:02 Y:ED P:25 SP:F9 CYC:144 SL:186 FB3D D0 36 BNE $FB75 A:56 X:02 Y:ED P:27 SP:F9 CYC:150 SL:186 FB3F 60 RTS A:56 X:02 Y:ED P:27 SP:F9 CYC:156 SL:186 F360 A5 47 LDA $47 = 14 A:56 X:02 Y:ED P:27 SP:FB CYC:174 SL:186 F362 C9 14 CMP #$14 A:14 X:02 Y:ED P:25 SP:FB CYC:183 SL:186 F364 F0 02 BEQ $F368 A:14 X:02 Y:ED P:27 SP:FB CYC:189 SL:186 F368 C8 INY A:14 X:02 Y:ED P:27 SP:FB CYC:198 SL:186 F369 A9 37 LDA #$37 A:14 X:02 Y:EE P:A5 SP:FB CYC:204 SL:186 F36B 85 47 STA $47 = 14 A:37 X:02 Y:EE P:25 SP:FB CYC:210 SL:186 F36D 20 40 FB JSR $FB40 A:37 X:02 Y:EE P:25 SP:FB CYC:219 SL:186 FB40 24 01 BIT $01 = FF A:37 X:02 Y:EE P:25 SP:F9 CYC:237 SL:186 FB42 38 SEC A:37 X:02 Y:EE P:E5 SP:F9 CYC:246 SL:186 FB43 A9 75 LDA #$75 A:37 X:02 Y:EE P:E5 SP:F9 CYC:252 SL:186 FB45 60 RTS A:75 X:02 Y:EE P:65 SP:F9 CYC:258 SL:186 F370 47 47 *SRE $47 = 37 A:75 X:02 Y:EE P:65 SP:FB CYC:276 SL:186 F372 EA NOP A:6E X:02 Y:EE P:65 SP:FB CYC:291 SL:186 F373 EA NOP A:6E X:02 Y:EE P:65 SP:FB CYC:297 SL:186 F374 EA NOP A:6E X:02 Y:EE P:65 SP:FB CYC:303 SL:186 F375 EA NOP A:6E X:02 Y:EE P:65 SP:FB CYC:309 SL:186 F376 20 46 FB JSR $FB46 A:6E X:02 Y:EE P:65 SP:FB CYC:315 SL:186 FB46 50 2D BVC $FB75 A:6E X:02 Y:EE P:65 SP:F9 CYC:333 SL:186 FB48 F0 2B BEQ $FB75 A:6E X:02 Y:EE P:65 SP:F9 CYC:339 SL:186 FB4A 30 29 BMI $FB75 A:6E X:02 Y:EE P:65 SP:F9 CYC: 4 SL:187 FB4C 90 27 BCC $FB75 A:6E X:02 Y:EE P:65 SP:F9 CYC: 10 SL:187 FB4E C9 6E CMP #$6E A:6E X:02 Y:EE P:65 SP:F9 CYC: 16 SL:187 FB50 D0 23 BNE $FB75 A:6E X:02 Y:EE P:67 SP:F9 CYC: 22 SL:187 FB52 60 RTS A:6E X:02 Y:EE P:67 SP:F9 CYC: 28 SL:187 F379 A5 47 LDA $47 = 1B A:6E X:02 Y:EE P:67 SP:FB CYC: 46 SL:187 F37B C9 1B CMP #$1B A:1B X:02 Y:EE P:65 SP:FB CYC: 55 SL:187 F37D F0 02 BEQ $F381 A:1B X:02 Y:EE P:67 SP:FB CYC: 61 SL:187 F381 C8 INY A:1B X:02 Y:EE P:67 SP:FB CYC: 70 SL:187 F382 A9 A5 LDA #$A5 A:1B X:02 Y:EF P:E5 SP:FB CYC: 76 SL:187 F384 8D 47 06 STA $0647 = 1B A:A5 X:02 Y:EF P:E5 SP:FB CYC: 82 SL:187 F387 20 1D FB JSR $FB1D A:A5 X:02 Y:EF P:E5 SP:FB CYC: 94 SL:187 FB1D 24 01 BIT $01 = FF A:A5 X:02 Y:EF P:E5 SP:F9 CYC:112 SL:187 FB1F 18 CLC A:A5 X:02 Y:EF P:E5 SP:F9 CYC:121 SL:187 FB20 A9 B3 LDA #$B3 A:A5 X:02 Y:EF P:E4 SP:F9 CYC:127 SL:187 FB22 60 RTS A:B3 X:02 Y:EF P:E4 SP:F9 CYC:133 SL:187 F38A 4F 47 06 *SRE $0647 = A5 A:B3 X:02 Y:EF P:E4 SP:FB CYC:151 SL:187 F38D EA NOP A:E1 X:02 Y:EF P:E5 SP:FB CYC:169 SL:187 F38E EA NOP A:E1 X:02 Y:EF P:E5 SP:FB CYC:175 SL:187 F38F EA NOP A:E1 X:02 Y:EF P:E5 SP:FB CYC:181 SL:187 F390 EA NOP A:E1 X:02 Y:EF P:E5 SP:FB CYC:187 SL:187 F391 20 23 FB JSR $FB23 A:E1 X:02 Y:EF P:E5 SP:FB CYC:193 SL:187 FB23 50 50 BVC $FB75 A:E1 X:02 Y:EF P:E5 SP:F9 CYC:211 SL:187 FB25 90 4E BCC $FB75 A:E1 X:02 Y:EF P:E5 SP:F9 CYC:217 SL:187 FB27 10 4C BPL $FB75 A:E1 X:02 Y:EF P:E5 SP:F9 CYC:223 SL:187 FB29 C9 E1 CMP #$E1 A:E1 X:02 Y:EF P:E5 SP:F9 CYC:229 SL:187 FB2B D0 48 BNE $FB75 A:E1 X:02 Y:EF P:67 SP:F9 CYC:235 SL:187 FB2D 60 RTS A:E1 X:02 Y:EF P:67 SP:F9 CYC:241 SL:187 F394 AD 47 06 LDA $0647 = 52 A:E1 X:02 Y:EF P:67 SP:FB CYC:259 SL:187 F397 C9 52 CMP #$52 A:52 X:02 Y:EF P:65 SP:FB CYC:271 SL:187 F399 F0 02 BEQ $F39D A:52 X:02 Y:EF P:67 SP:FB CYC:277 SL:187 F39D C8 INY A:52 X:02 Y:EF P:67 SP:FB CYC:286 SL:187 F39E A9 29 LDA #$29 A:52 X:02 Y:F0 P:E5 SP:FB CYC:292 SL:187 F3A0 8D 47 06 STA $0647 = 52 A:29 X:02 Y:F0 P:65 SP:FB CYC:298 SL:187 F3A3 20 2E FB JSR $FB2E A:29 X:02 Y:F0 P:65 SP:FB CYC:310 SL:187 FB2E B8 CLV A:29 X:02 Y:F0 P:65 SP:F9 CYC:328 SL:187 FB2F 18 CLC A:29 X:02 Y:F0 P:25 SP:F9 CYC:334 SL:187 FB30 A9 42 LDA #$42 A:29 X:02 Y:F0 P:24 SP:F9 CYC:340 SL:187 FB32 60 RTS A:42 X:02 Y:F0 P:24 SP:F9 CYC: 5 SL:188 F3A6 4F 47 06 *SRE $0647 = 29 A:42 X:02 Y:F0 P:24 SP:FB CYC: 23 SL:188 F3A9 EA NOP A:56 X:02 Y:F0 P:25 SP:FB CYC: 41 SL:188 F3AA EA NOP A:56 X:02 Y:F0 P:25 SP:FB CYC: 47 SL:188 F3AB EA NOP A:56 X:02 Y:F0 P:25 SP:FB CYC: 53 SL:188 F3AC EA NOP A:56 X:02 Y:F0 P:25 SP:FB CYC: 59 SL:188 F3AD 20 33 FB JSR $FB33 A:56 X:02 Y:F0 P:25 SP:FB CYC: 65 SL:188 FB33 70 40 BVS $FB75 A:56 X:02 Y:F0 P:25 SP:F9 CYC: 83 SL:188 FB35 F0 3E BEQ $FB75 A:56 X:02 Y:F0 P:25 SP:F9 CYC: 89 SL:188 FB37 30 3C BMI $FB75 A:56 X:02 Y:F0 P:25 SP:F9 CYC: 95 SL:188 FB39 90 3A BCC $FB75 A:56 X:02 Y:F0 P:25 SP:F9 CYC:101 SL:188 FB3B C9 56 CMP #$56 A:56 X:02 Y:F0 P:25 SP:F9 CYC:107 SL:188 FB3D D0 36 BNE $FB75 A:56 X:02 Y:F0 P:27 SP:F9 CYC:113 SL:188 FB3F 60 RTS A:56 X:02 Y:F0 P:27 SP:F9 CYC:119 SL:188 F3B0 AD 47 06 LDA $0647 = 14 A:56 X:02 Y:F0 P:27 SP:FB CYC:137 SL:188 F3B3 C9 14 CMP #$14 A:14 X:02 Y:F0 P:25 SP:FB CYC:149 SL:188 F3B5 F0 02 BEQ $F3B9 A:14 X:02 Y:F0 P:27 SP:FB CYC:155 SL:188 F3B9 C8 INY A:14 X:02 Y:F0 P:27 SP:FB CYC:164 SL:188 F3BA A9 37 LDA #$37 A:14 X:02 Y:F1 P:A5 SP:FB CYC:170 SL:188 F3BC 8D 47 06 STA $0647 = 14 A:37 X:02 Y:F1 P:25 SP:FB CYC:176 SL:188 F3BF 20 40 FB JSR $FB40 A:37 X:02 Y:F1 P:25 SP:FB CYC:188 SL:188 FB40 24 01 BIT $01 = FF A:37 X:02 Y:F1 P:25 SP:F9 CYC:206 SL:188 FB42 38 SEC A:37 X:02 Y:F1 P:E5 SP:F9 CYC:215 SL:188 FB43 A9 75 LDA #$75 A:37 X:02 Y:F1 P:E5 SP:F9 CYC:221 SL:188 FB45 60 RTS A:75 X:02 Y:F1 P:65 SP:F9 CYC:227 SL:188 F3C2 4F 47 06 *SRE $0647 = 37 A:75 X:02 Y:F1 P:65 SP:FB CYC:245 SL:188 F3C5 EA NOP A:6E X:02 Y:F1 P:65 SP:FB CYC:263 SL:188 F3C6 EA NOP A:6E X:02 Y:F1 P:65 SP:FB CYC:269 SL:188 F3C7 EA NOP A:6E X:02 Y:F1 P:65 SP:FB CYC:275 SL:188 F3C8 EA NOP A:6E X:02 Y:F1 P:65 SP:FB CYC:281 SL:188 F3C9 20 46 FB JSR $FB46 A:6E X:02 Y:F1 P:65 SP:FB CYC:287 SL:188 FB46 50 2D BVC $FB75 A:6E X:02 Y:F1 P:65 SP:F9 CYC:305 SL:188 FB48 F0 2B BEQ $FB75 A:6E X:02 Y:F1 P:65 SP:F9 CYC:311 SL:188 FB4A 30 29 BMI $FB75 A:6E X:02 Y:F1 P:65 SP:F9 CYC:317 SL:188 FB4C 90 27 BCC $FB75 A:6E X:02 Y:F1 P:65 SP:F9 CYC:323 SL:188 FB4E C9 6E CMP #$6E A:6E X:02 Y:F1 P:65 SP:F9 CYC:329 SL:188 FB50 D0 23 BNE $FB75 A:6E X:02 Y:F1 P:67 SP:F9 CYC:335 SL:188 FB52 60 RTS A:6E X:02 Y:F1 P:67 SP:F9 CYC: 0 SL:189 F3CC AD 47 06 LDA $0647 = 1B A:6E X:02 Y:F1 P:67 SP:FB CYC: 18 SL:189 F3CF C9 1B CMP #$1B A:1B X:02 Y:F1 P:65 SP:FB CYC: 30 SL:189 F3D1 F0 02 BEQ $F3D5 A:1B X:02 Y:F1 P:67 SP:FB CYC: 36 SL:189 F3D5 A9 A5 LDA #$A5 A:1B X:02 Y:F1 P:67 SP:FB CYC: 45 SL:189 F3D7 8D 47 06 STA $0647 = 1B A:A5 X:02 Y:F1 P:E5 SP:FB CYC: 51 SL:189 F3DA A9 48 LDA #$48 A:A5 X:02 Y:F1 P:E5 SP:FB CYC: 63 SL:189 F3DC 85 45 STA $45 = 48 A:48 X:02 Y:F1 P:65 SP:FB CYC: 69 SL:189 F3DE A9 05 LDA #$05 A:48 X:02 Y:F1 P:65 SP:FB CYC: 78 SL:189 F3E0 85 46 STA $46 = 05 A:05 X:02 Y:F1 P:65 SP:FB CYC: 84 SL:189 F3E2 A0 FF LDY #$FF A:05 X:02 Y:F1 P:65 SP:FB CYC: 93 SL:189 F3E4 20 1D FB JSR $FB1D A:05 X:02 Y:FF P:E5 SP:FB CYC: 99 SL:189 FB1D 24 01 BIT $01 = FF A:05 X:02 Y:FF P:E5 SP:F9 CYC:117 SL:189 FB1F 18 CLC A:05 X:02 Y:FF P:E5 SP:F9 CYC:126 SL:189 FB20 A9 B3 LDA #$B3 A:05 X:02 Y:FF P:E4 SP:F9 CYC:132 SL:189 FB22 60 RTS A:B3 X:02 Y:FF P:E4 SP:F9 CYC:138 SL:189 F3E7 53 45 *SRE ($45),Y = 0548 @ 0647 = A5 A:B3 X:02 Y:FF P:E4 SP:FB CYC:156 SL:189 F3E9 EA NOP A:E1 X:02 Y:FF P:E5 SP:FB CYC:180 SL:189 F3EA EA NOP A:E1 X:02 Y:FF P:E5 SP:FB CYC:186 SL:189 F3EB 08 PHP A:E1 X:02 Y:FF P:E5 SP:FB CYC:192 SL:189 F3EC 48 PHA A:E1 X:02 Y:FF P:E5 SP:FA CYC:201 SL:189 F3ED A0 F2 LDY #$F2 A:E1 X:02 Y:FF P:E5 SP:F9 CYC:210 SL:189 F3EF 68 PLA A:E1 X:02 Y:F2 P:E5 SP:F9 CYC:216 SL:189 F3F0 28 PLP A:E1 X:02 Y:F2 P:E5 SP:FA CYC:228 SL:189 F3F1 20 23 FB JSR $FB23 A:E1 X:02 Y:F2 P:E5 SP:FB CYC:240 SL:189 FB23 50 50 BVC $FB75 A:E1 X:02 Y:F2 P:E5 SP:F9 CYC:258 SL:189 FB25 90 4E BCC $FB75 A:E1 X:02 Y:F2 P:E5 SP:F9 CYC:264 SL:189 FB27 10 4C BPL $FB75 A:E1 X:02 Y:F2 P:E5 SP:F9 CYC:270 SL:189 FB29 C9 E1 CMP #$E1 A:E1 X:02 Y:F2 P:E5 SP:F9 CYC:276 SL:189 FB2B D0 48 BNE $FB75 A:E1 X:02 Y:F2 P:67 SP:F9 CYC:282 SL:189 FB2D 60 RTS A:E1 X:02 Y:F2 P:67 SP:F9 CYC:288 SL:189 F3F4 AD 47 06 LDA $0647 = 52 A:E1 X:02 Y:F2 P:67 SP:FB CYC:306 SL:189 F3F7 C9 52 CMP #$52 A:52 X:02 Y:F2 P:65 SP:FB CYC:318 SL:189 F3F9 F0 02 BEQ $F3FD A:52 X:02 Y:F2 P:67 SP:FB CYC:324 SL:189 F3FD A0 FF LDY #$FF A:52 X:02 Y:F2 P:67 SP:FB CYC:333 SL:189 F3FF A9 29 LDA #$29 A:52 X:02 Y:FF P:E5 SP:FB CYC:339 SL:189 F401 8D 47 06 STA $0647 = 52 A:29 X:02 Y:FF P:65 SP:FB CYC: 4 SL:190 F404 20 2E FB JSR $FB2E A:29 X:02 Y:FF P:65 SP:FB CYC: 16 SL:190 FB2E B8 CLV A:29 X:02 Y:FF P:65 SP:F9 CYC: 34 SL:190 FB2F 18 CLC A:29 X:02 Y:FF P:25 SP:F9 CYC: 40 SL:190 FB30 A9 42 LDA #$42 A:29 X:02 Y:FF P:24 SP:F9 CYC: 46 SL:190 FB32 60 RTS A:42 X:02 Y:FF P:24 SP:F9 CYC: 52 SL:190 F407 53 45 *SRE ($45),Y = 0548 @ 0647 = 29 A:42 X:02 Y:FF P:24 SP:FB CYC: 70 SL:190 F409 EA NOP A:56 X:02 Y:FF P:25 SP:FB CYC: 94 SL:190 F40A EA NOP A:56 X:02 Y:FF P:25 SP:FB CYC:100 SL:190 F40B 08 PHP A:56 X:02 Y:FF P:25 SP:FB CYC:106 SL:190 F40C 48 PHA A:56 X:02 Y:FF P:25 SP:FA CYC:115 SL:190 F40D A0 F3 LDY #$F3 A:56 X:02 Y:FF P:25 SP:F9 CYC:124 SL:190 F40F 68 PLA A:56 X:02 Y:F3 P:A5 SP:F9 CYC:130 SL:190 F410 28 PLP A:56 X:02 Y:F3 P:25 SP:FA CYC:142 SL:190 F411 20 33 FB JSR $FB33 A:56 X:02 Y:F3 P:25 SP:FB CYC:154 SL:190 FB33 70 40 BVS $FB75 A:56 X:02 Y:F3 P:25 SP:F9 CYC:172 SL:190 FB35 F0 3E BEQ $FB75 A:56 X:02 Y:F3 P:25 SP:F9 CYC:178 SL:190 FB37 30 3C BMI $FB75 A:56 X:02 Y:F3 P:25 SP:F9 CYC:184 SL:190 FB39 90 3A BCC $FB75 A:56 X:02 Y:F3 P:25 SP:F9 CYC:190 SL:190 FB3B C9 56 CMP #$56 A:56 X:02 Y:F3 P:25 SP:F9 CYC:196 SL:190 FB3D D0 36 BNE $FB75 A:56 X:02 Y:F3 P:27 SP:F9 CYC:202 SL:190 FB3F 60 RTS A:56 X:02 Y:F3 P:27 SP:F9 CYC:208 SL:190 F414 AD 47 06 LDA $0647 = 14 A:56 X:02 Y:F3 P:27 SP:FB CYC:226 SL:190 F417 C9 14 CMP #$14 A:14 X:02 Y:F3 P:25 SP:FB CYC:238 SL:190 F419 F0 02 BEQ $F41D A:14 X:02 Y:F3 P:27 SP:FB CYC:244 SL:190 F41D A0 FF LDY #$FF A:14 X:02 Y:F3 P:27 SP:FB CYC:253 SL:190 F41F A9 37 LDA #$37 A:14 X:02 Y:FF P:A5 SP:FB CYC:259 SL:190 F421 8D 47 06 STA $0647 = 14 A:37 X:02 Y:FF P:25 SP:FB CYC:265 SL:190 F424 20 40 FB JSR $FB40 A:37 X:02 Y:FF P:25 SP:FB CYC:277 SL:190 FB40 24 01 BIT $01 = FF A:37 X:02 Y:FF P:25 SP:F9 CYC:295 SL:190 FB42 38 SEC A:37 X:02 Y:FF P:E5 SP:F9 CYC:304 SL:190 FB43 A9 75 LDA #$75 A:37 X:02 Y:FF P:E5 SP:F9 CYC:310 SL:190 FB45 60 RTS A:75 X:02 Y:FF P:65 SP:F9 CYC:316 SL:190 F427 53 45 *SRE ($45),Y = 0548 @ 0647 = 37 A:75 X:02 Y:FF P:65 SP:FB CYC:334 SL:190 F429 EA NOP A:6E X:02 Y:FF P:65 SP:FB CYC: 17 SL:191 F42A EA NOP A:6E X:02 Y:FF P:65 SP:FB CYC: 23 SL:191 F42B 08 PHP A:6E X:02 Y:FF P:65 SP:FB CYC: 29 SL:191 F42C 48 PHA A:6E X:02 Y:FF P:65 SP:FA CYC: 38 SL:191 F42D A0 F4 LDY #$F4 A:6E X:02 Y:FF P:65 SP:F9 CYC: 47 SL:191 F42F 68 PLA A:6E X:02 Y:F4 P:E5 SP:F9 CYC: 53 SL:191 F430 28 PLP A:6E X:02 Y:F4 P:65 SP:FA CYC: 65 SL:191 F431 20 46 FB JSR $FB46 A:6E X:02 Y:F4 P:65 SP:FB CYC: 77 SL:191 FB46 50 2D BVC $FB75 A:6E X:02 Y:F4 P:65 SP:F9 CYC: 95 SL:191 FB48 F0 2B BEQ $FB75 A:6E X:02 Y:F4 P:65 SP:F9 CYC:101 SL:191 FB4A 30 29 BMI $FB75 A:6E X:02 Y:F4 P:65 SP:F9 CYC:107 SL:191 FB4C 90 27 BCC $FB75 A:6E X:02 Y:F4 P:65 SP:F9 CYC:113 SL:191 FB4E C9 6E CMP #$6E A:6E X:02 Y:F4 P:65 SP:F9 CYC:119 SL:191 FB50 D0 23 BNE $FB75 A:6E X:02 Y:F4 P:67 SP:F9 CYC:125 SL:191 FB52 60 RTS A:6E X:02 Y:F4 P:67 SP:F9 CYC:131 SL:191 F434 AD 47 06 LDA $0647 = 1B A:6E X:02 Y:F4 P:67 SP:FB CYC:149 SL:191 F437 C9 1B CMP #$1B A:1B X:02 Y:F4 P:65 SP:FB CYC:161 SL:191 F439 F0 02 BEQ $F43D A:1B X:02 Y:F4 P:67 SP:FB CYC:167 SL:191 F43D A0 F5 LDY #$F5 A:1B X:02 Y:F4 P:67 SP:FB CYC:176 SL:191 F43F A2 FF LDX #$FF A:1B X:02 Y:F5 P:E5 SP:FB CYC:182 SL:191 F441 A9 A5 LDA #$A5 A:1B X:FF Y:F5 P:E5 SP:FB CYC:188 SL:191 F443 85 47 STA $47 = 1B A:A5 X:FF Y:F5 P:E5 SP:FB CYC:194 SL:191 F445 20 1D FB JSR $FB1D A:A5 X:FF Y:F5 P:E5 SP:FB CYC:203 SL:191 FB1D 24 01 BIT $01 = FF A:A5 X:FF Y:F5 P:E5 SP:F9 CYC:221 SL:191 FB1F 18 CLC A:A5 X:FF Y:F5 P:E5 SP:F9 CYC:230 SL:191 FB20 A9 B3 LDA #$B3 A:A5 X:FF Y:F5 P:E4 SP:F9 CYC:236 SL:191 FB22 60 RTS A:B3 X:FF Y:F5 P:E4 SP:F9 CYC:242 SL:191 F448 57 48 *SRE $48,X @ 47 = A5 A:B3 X:FF Y:F5 P:E4 SP:FB CYC:260 SL:191 F44A EA NOP A:E1 X:FF Y:F5 P:E5 SP:FB CYC:278 SL:191 F44B EA NOP A:E1 X:FF Y:F5 P:E5 SP:FB CYC:284 SL:191 F44C EA NOP A:E1 X:FF Y:F5 P:E5 SP:FB CYC:290 SL:191 F44D EA NOP A:E1 X:FF Y:F5 P:E5 SP:FB CYC:296 SL:191 F44E 20 23 FB JSR $FB23 A:E1 X:FF Y:F5 P:E5 SP:FB CYC:302 SL:191 FB23 50 50 BVC $FB75 A:E1 X:FF Y:F5 P:E5 SP:F9 CYC:320 SL:191 FB25 90 4E BCC $FB75 A:E1 X:FF Y:F5 P:E5 SP:F9 CYC:326 SL:191 FB27 10 4C BPL $FB75 A:E1 X:FF Y:F5 P:E5 SP:F9 CYC:332 SL:191 FB29 C9 E1 CMP #$E1 A:E1 X:FF Y:F5 P:E5 SP:F9 CYC:338 SL:191 FB2B D0 48 BNE $FB75 A:E1 X:FF Y:F5 P:67 SP:F9 CYC: 3 SL:192 FB2D 60 RTS A:E1 X:FF Y:F5 P:67 SP:F9 CYC: 9 SL:192 F451 A5 47 LDA $47 = 52 A:E1 X:FF Y:F5 P:67 SP:FB CYC: 27 SL:192 F453 C9 52 CMP #$52 A:52 X:FF Y:F5 P:65 SP:FB CYC: 36 SL:192 F455 F0 02 BEQ $F459 A:52 X:FF Y:F5 P:67 SP:FB CYC: 42 SL:192 F459 C8 INY A:52 X:FF Y:F5 P:67 SP:FB CYC: 51 SL:192 F45A A9 29 LDA #$29 A:52 X:FF Y:F6 P:E5 SP:FB CYC: 57 SL:192 F45C 85 47 STA $47 = 52 A:29 X:FF Y:F6 P:65 SP:FB CYC: 63 SL:192 F45E 20 2E FB JSR $FB2E A:29 X:FF Y:F6 P:65 SP:FB CYC: 72 SL:192 FB2E B8 CLV A:29 X:FF Y:F6 P:65 SP:F9 CYC: 90 SL:192 FB2F 18 CLC A:29 X:FF Y:F6 P:25 SP:F9 CYC: 96 SL:192 FB30 A9 42 LDA #$42 A:29 X:FF Y:F6 P:24 SP:F9 CYC:102 SL:192 FB32 60 RTS A:42 X:FF Y:F6 P:24 SP:F9 CYC:108 SL:192 F461 57 48 *SRE $48,X @ 47 = 29 A:42 X:FF Y:F6 P:24 SP:FB CYC:126 SL:192 F463 EA NOP A:56 X:FF Y:F6 P:25 SP:FB CYC:144 SL:192 F464 EA NOP A:56 X:FF Y:F6 P:25 SP:FB CYC:150 SL:192 F465 EA NOP A:56 X:FF Y:F6 P:25 SP:FB CYC:156 SL:192 F466 EA NOP A:56 X:FF Y:F6 P:25 SP:FB CYC:162 SL:192 F467 20 33 FB JSR $FB33 A:56 X:FF Y:F6 P:25 SP:FB CYC:168 SL:192 FB33 70 40 BVS $FB75 A:56 X:FF Y:F6 P:25 SP:F9 CYC:186 SL:192 FB35 F0 3E BEQ $FB75 A:56 X:FF Y:F6 P:25 SP:F9 CYC:192 SL:192 FB37 30 3C BMI $FB75 A:56 X:FF Y:F6 P:25 SP:F9 CYC:198 SL:192 FB39 90 3A BCC $FB75 A:56 X:FF Y:F6 P:25 SP:F9 CYC:204 SL:192 FB3B C9 56 CMP #$56 A:56 X:FF Y:F6 P:25 SP:F9 CYC:210 SL:192 FB3D D0 36 BNE $FB75 A:56 X:FF Y:F6 P:27 SP:F9 CYC:216 SL:192 FB3F 60 RTS A:56 X:FF Y:F6 P:27 SP:F9 CYC:222 SL:192 F46A A5 47 LDA $47 = 14 A:56 X:FF Y:F6 P:27 SP:FB CYC:240 SL:192 F46C C9 14 CMP #$14 A:14 X:FF Y:F6 P:25 SP:FB CYC:249 SL:192 F46E F0 02 BEQ $F472 A:14 X:FF Y:F6 P:27 SP:FB CYC:255 SL:192 F472 C8 INY A:14 X:FF Y:F6 P:27 SP:FB CYC:264 SL:192 F473 A9 37 LDA #$37 A:14 X:FF Y:F7 P:A5 SP:FB CYC:270 SL:192 F475 85 47 STA $47 = 14 A:37 X:FF Y:F7 P:25 SP:FB CYC:276 SL:192 F477 20 40 FB JSR $FB40 A:37 X:FF Y:F7 P:25 SP:FB CYC:285 SL:192 FB40 24 01 BIT $01 = FF A:37 X:FF Y:F7 P:25 SP:F9 CYC:303 SL:192 FB42 38 SEC A:37 X:FF Y:F7 P:E5 SP:F9 CYC:312 SL:192 FB43 A9 75 LDA #$75 A:37 X:FF Y:F7 P:E5 SP:F9 CYC:318 SL:192 FB45 60 RTS A:75 X:FF Y:F7 P:65 SP:F9 CYC:324 SL:192 F47A 57 48 *SRE $48,X @ 47 = 37 A:75 X:FF Y:F7 P:65 SP:FB CYC: 1 SL:193 F47C EA NOP A:6E X:FF Y:F7 P:65 SP:FB CYC: 19 SL:193 F47D EA NOP A:6E X:FF Y:F7 P:65 SP:FB CYC: 25 SL:193 F47E EA NOP A:6E X:FF Y:F7 P:65 SP:FB CYC: 31 SL:193 F47F EA NOP A:6E X:FF Y:F7 P:65 SP:FB CYC: 37 SL:193 F480 20 46 FB JSR $FB46 A:6E X:FF Y:F7 P:65 SP:FB CYC: 43 SL:193 FB46 50 2D BVC $FB75 A:6E X:FF Y:F7 P:65 SP:F9 CYC: 61 SL:193 FB48 F0 2B BEQ $FB75 A:6E X:FF Y:F7 P:65 SP:F9 CYC: 67 SL:193 FB4A 30 29 BMI $FB75 A:6E X:FF Y:F7 P:65 SP:F9 CYC: 73 SL:193 FB4C 90 27 BCC $FB75 A:6E X:FF Y:F7 P:65 SP:F9 CYC: 79 SL:193 FB4E C9 6E CMP #$6E A:6E X:FF Y:F7 P:65 SP:F9 CYC: 85 SL:193 FB50 D0 23 BNE $FB75 A:6E X:FF Y:F7 P:67 SP:F9 CYC: 91 SL:193 FB52 60 RTS A:6E X:FF Y:F7 P:67 SP:F9 CYC: 97 SL:193 F483 A5 47 LDA $47 = 1B A:6E X:FF Y:F7 P:67 SP:FB CYC:115 SL:193 F485 C9 1B CMP #$1B A:1B X:FF Y:F7 P:65 SP:FB CYC:124 SL:193 F487 F0 02 BEQ $F48B A:1B X:FF Y:F7 P:67 SP:FB CYC:130 SL:193 F48B A9 A5 LDA #$A5 A:1B X:FF Y:F7 P:67 SP:FB CYC:139 SL:193 F48D 8D 47 06 STA $0647 = 1B A:A5 X:FF Y:F7 P:E5 SP:FB CYC:145 SL:193 F490 A0 FF LDY #$FF A:A5 X:FF Y:F7 P:E5 SP:FB CYC:157 SL:193 F492 20 1D FB JSR $FB1D A:A5 X:FF Y:FF P:E5 SP:FB CYC:163 SL:193 FB1D 24 01 BIT $01 = FF A:A5 X:FF Y:FF P:E5 SP:F9 CYC:181 SL:193 FB1F 18 CLC A:A5 X:FF Y:FF P:E5 SP:F9 CYC:190 SL:193 FB20 A9 B3 LDA #$B3 A:A5 X:FF Y:FF P:E4 SP:F9 CYC:196 SL:193 FB22 60 RTS A:B3 X:FF Y:FF P:E4 SP:F9 CYC:202 SL:193 F495 5B 48 05 *SRE $0548,Y @ 0647 = A5 A:B3 X:FF Y:FF P:E4 SP:FB CYC:220 SL:193 F498 EA NOP A:E1 X:FF Y:FF P:E5 SP:FB CYC:241 SL:193 F499 EA NOP A:E1 X:FF Y:FF P:E5 SP:FB CYC:247 SL:193 F49A 08 PHP A:E1 X:FF Y:FF P:E5 SP:FB CYC:253 SL:193 F49B 48 PHA A:E1 X:FF Y:FF P:E5 SP:FA CYC:262 SL:193 F49C A0 F8 LDY #$F8 A:E1 X:FF Y:FF P:E5 SP:F9 CYC:271 SL:193 F49E 68 PLA A:E1 X:FF Y:F8 P:E5 SP:F9 CYC:277 SL:193 F49F 28 PLP A:E1 X:FF Y:F8 P:E5 SP:FA CYC:289 SL:193 F4A0 20 23 FB JSR $FB23 A:E1 X:FF Y:F8 P:E5 SP:FB CYC:301 SL:193 FB23 50 50 BVC $FB75 A:E1 X:FF Y:F8 P:E5 SP:F9 CYC:319 SL:193 FB25 90 4E BCC $FB75 A:E1 X:FF Y:F8 P:E5 SP:F9 CYC:325 SL:193 FB27 10 4C BPL $FB75 A:E1 X:FF Y:F8 P:E5 SP:F9 CYC:331 SL:193 FB29 C9 E1 CMP #$E1 A:E1 X:FF Y:F8 P:E5 SP:F9 CYC:337 SL:193 FB2B D0 48 BNE $FB75 A:E1 X:FF Y:F8 P:67 SP:F9 CYC: 2 SL:194 FB2D 60 RTS A:E1 X:FF Y:F8 P:67 SP:F9 CYC: 8 SL:194 F4A3 AD 47 06 LDA $0647 = 52 A:E1 X:FF Y:F8 P:67 SP:FB CYC: 26 SL:194 F4A6 C9 52 CMP #$52 A:52 X:FF Y:F8 P:65 SP:FB CYC: 38 SL:194 F4A8 F0 02 BEQ $F4AC A:52 X:FF Y:F8 P:67 SP:FB CYC: 44 SL:194 F4AC A0 FF LDY #$FF A:52 X:FF Y:F8 P:67 SP:FB CYC: 53 SL:194 F4AE A9 29 LDA #$29 A:52 X:FF Y:FF P:E5 SP:FB CYC: 59 SL:194 F4B0 8D 47 06 STA $0647 = 52 A:29 X:FF Y:FF P:65 SP:FB CYC: 65 SL:194 F4B3 20 2E FB JSR $FB2E A:29 X:FF Y:FF P:65 SP:FB CYC: 77 SL:194 FB2E B8 CLV A:29 X:FF Y:FF P:65 SP:F9 CYC: 95 SL:194 FB2F 18 CLC A:29 X:FF Y:FF P:25 SP:F9 CYC:101 SL:194 FB30 A9 42 LDA #$42 A:29 X:FF Y:FF P:24 SP:F9 CYC:107 SL:194 FB32 60 RTS A:42 X:FF Y:FF P:24 SP:F9 CYC:113 SL:194 F4B6 5B 48 05 *SRE $0548,Y @ 0647 = 29 A:42 X:FF Y:FF P:24 SP:FB CYC:131 SL:194 F4B9 EA NOP A:56 X:FF Y:FF P:25 SP:FB CYC:152 SL:194 F4BA EA NOP A:56 X:FF Y:FF P:25 SP:FB CYC:158 SL:194 F4BB 08 PHP A:56 X:FF Y:FF P:25 SP:FB CYC:164 SL:194 F4BC 48 PHA A:56 X:FF Y:FF P:25 SP:FA CYC:173 SL:194 F4BD A0 F9 LDY #$F9 A:56 X:FF Y:FF P:25 SP:F9 CYC:182 SL:194 F4BF 68 PLA A:56 X:FF Y:F9 P:A5 SP:F9 CYC:188 SL:194 F4C0 28 PLP A:56 X:FF Y:F9 P:25 SP:FA CYC:200 SL:194 F4C1 20 33 FB JSR $FB33 A:56 X:FF Y:F9 P:25 SP:FB CYC:212 SL:194 FB33 70 40 BVS $FB75 A:56 X:FF Y:F9 P:25 SP:F9 CYC:230 SL:194 FB35 F0 3E BEQ $FB75 A:56 X:FF Y:F9 P:25 SP:F9 CYC:236 SL:194 FB37 30 3C BMI $FB75 A:56 X:FF Y:F9 P:25 SP:F9 CYC:242 SL:194 FB39 90 3A BCC $FB75 A:56 X:FF Y:F9 P:25 SP:F9 CYC:248 SL:194 FB3B C9 56 CMP #$56 A:56 X:FF Y:F9 P:25 SP:F9 CYC:254 SL:194 FB3D D0 36 BNE $FB75 A:56 X:FF Y:F9 P:27 SP:F9 CYC:260 SL:194 FB3F 60 RTS A:56 X:FF Y:F9 P:27 SP:F9 CYC:266 SL:194 F4C4 AD 47 06 LDA $0647 = 14 A:56 X:FF Y:F9 P:27 SP:FB CYC:284 SL:194 F4C7 C9 14 CMP #$14 A:14 X:FF Y:F9 P:25 SP:FB CYC:296 SL:194 F4C9 F0 02 BEQ $F4CD A:14 X:FF Y:F9 P:27 SP:FB CYC:302 SL:194 F4CD A0 FF LDY #$FF A:14 X:FF Y:F9 P:27 SP:FB CYC:311 SL:194 F4CF A9 37 LDA #$37 A:14 X:FF Y:FF P:A5 SP:FB CYC:317 SL:194 F4D1 8D 47 06 STA $0647 = 14 A:37 X:FF Y:FF P:25 SP:FB CYC:323 SL:194 F4D4 20 40 FB JSR $FB40 A:37 X:FF Y:FF P:25 SP:FB CYC:335 SL:194 FB40 24 01 BIT $01 = FF A:37 X:FF Y:FF P:25 SP:F9 CYC: 12 SL:195 FB42 38 SEC A:37 X:FF Y:FF P:E5 SP:F9 CYC: 21 SL:195 FB43 A9 75 LDA #$75 A:37 X:FF Y:FF P:E5 SP:F9 CYC: 27 SL:195 FB45 60 RTS A:75 X:FF Y:FF P:65 SP:F9 CYC: 33 SL:195 F4D7 5B 48 05 *SRE $0548,Y @ 0647 = 37 A:75 X:FF Y:FF P:65 SP:FB CYC: 51 SL:195 F4DA EA NOP A:6E X:FF Y:FF P:65 SP:FB CYC: 72 SL:195 F4DB EA NOP A:6E X:FF Y:FF P:65 SP:FB CYC: 78 SL:195 F4DC 08 PHP A:6E X:FF Y:FF P:65 SP:FB CYC: 84 SL:195 F4DD 48 PHA A:6E X:FF Y:FF P:65 SP:FA CYC: 93 SL:195 F4DE A0 FA LDY #$FA A:6E X:FF Y:FF P:65 SP:F9 CYC:102 SL:195 F4E0 68 PLA A:6E X:FF Y:FA P:E5 SP:F9 CYC:108 SL:195 F4E1 28 PLP A:6E X:FF Y:FA P:65 SP:FA CYC:120 SL:195 F4E2 20 46 FB JSR $FB46 A:6E X:FF Y:FA P:65 SP:FB CYC:132 SL:195 FB46 50 2D BVC $FB75 A:6E X:FF Y:FA P:65 SP:F9 CYC:150 SL:195 FB48 F0 2B BEQ $FB75 A:6E X:FF Y:FA P:65 SP:F9 CYC:156 SL:195 FB4A 30 29 BMI $FB75 A:6E X:FF Y:FA P:65 SP:F9 CYC:162 SL:195 FB4C 90 27 BCC $FB75 A:6E X:FF Y:FA P:65 SP:F9 CYC:168 SL:195 FB4E C9 6E CMP #$6E A:6E X:FF Y:FA P:65 SP:F9 CYC:174 SL:195 FB50 D0 23 BNE $FB75 A:6E X:FF Y:FA P:67 SP:F9 CYC:180 SL:195 FB52 60 RTS A:6E X:FF Y:FA P:67 SP:F9 CYC:186 SL:195 F4E5 AD 47 06 LDA $0647 = 1B A:6E X:FF Y:FA P:67 SP:FB CYC:204 SL:195 F4E8 C9 1B CMP #$1B A:1B X:FF Y:FA P:65 SP:FB CYC:216 SL:195 F4EA F0 02 BEQ $F4EE A:1B X:FF Y:FA P:67 SP:FB CYC:222 SL:195 F4EE A0 FB LDY #$FB A:1B X:FF Y:FA P:67 SP:FB CYC:231 SL:195 F4F0 A2 FF LDX #$FF A:1B X:FF Y:FB P:E5 SP:FB CYC:237 SL:195 F4F2 A9 A5 LDA #$A5 A:1B X:FF Y:FB P:E5 SP:FB CYC:243 SL:195 F4F4 8D 47 06 STA $0647 = 1B A:A5 X:FF Y:FB P:E5 SP:FB CYC:249 SL:195 F4F7 20 1D FB JSR $FB1D A:A5 X:FF Y:FB P:E5 SP:FB CYC:261 SL:195 FB1D 24 01 BIT $01 = FF A:A5 X:FF Y:FB P:E5 SP:F9 CYC:279 SL:195 FB1F 18 CLC A:A5 X:FF Y:FB P:E5 SP:F9 CYC:288 SL:195 FB20 A9 B3 LDA #$B3 A:A5 X:FF Y:FB P:E4 SP:F9 CYC:294 SL:195 FB22 60 RTS A:B3 X:FF Y:FB P:E4 SP:F9 CYC:300 SL:195 F4FA 5F 48 05 *SRE $0548,X @ 0647 = A5 A:B3 X:FF Y:FB P:E4 SP:FB CYC:318 SL:195 F4FD EA NOP A:E1 X:FF Y:FB P:E5 SP:FB CYC:339 SL:195 F4FE EA NOP A:E1 X:FF Y:FB P:E5 SP:FB CYC: 4 SL:196 F4FF EA NOP A:E1 X:FF Y:FB P:E5 SP:FB CYC: 10 SL:196 F500 EA NOP A:E1 X:FF Y:FB P:E5 SP:FB CYC: 16 SL:196 F501 20 23 FB JSR $FB23 A:E1 X:FF Y:FB P:E5 SP:FB CYC: 22 SL:196 FB23 50 50 BVC $FB75 A:E1 X:FF Y:FB P:E5 SP:F9 CYC: 40 SL:196 FB25 90 4E BCC $FB75 A:E1 X:FF Y:FB P:E5 SP:F9 CYC: 46 SL:196 FB27 10 4C BPL $FB75 A:E1 X:FF Y:FB P:E5 SP:F9 CYC: 52 SL:196 FB29 C9 E1 CMP #$E1 A:E1 X:FF Y:FB P:E5 SP:F9 CYC: 58 SL:196 FB2B D0 48 BNE $FB75 A:E1 X:FF Y:FB P:67 SP:F9 CYC: 64 SL:196 FB2D 60 RTS A:E1 X:FF Y:FB P:67 SP:F9 CYC: 70 SL:196 F504 AD 47 06 LDA $0647 = 52 A:E1 X:FF Y:FB P:67 SP:FB CYC: 88 SL:196 F507 C9 52 CMP #$52 A:52 X:FF Y:FB P:65 SP:FB CYC:100 SL:196 F509 F0 02 BEQ $F50D A:52 X:FF Y:FB P:67 SP:FB CYC:106 SL:196 F50D C8 INY A:52 X:FF Y:FB P:67 SP:FB CYC:115 SL:196 F50E A9 29 LDA #$29 A:52 X:FF Y:FC P:E5 SP:FB CYC:121 SL:196 F510 8D 47 06 STA $0647 = 52 A:29 X:FF Y:FC P:65 SP:FB CYC:127 SL:196 F513 20 2E FB JSR $FB2E A:29 X:FF Y:FC P:65 SP:FB CYC:139 SL:196 FB2E B8 CLV A:29 X:FF Y:FC P:65 SP:F9 CYC:157 SL:196 FB2F 18 CLC A:29 X:FF Y:FC P:25 SP:F9 CYC:163 SL:196 FB30 A9 42 LDA #$42 A:29 X:FF Y:FC P:24 SP:F9 CYC:169 SL:196 FB32 60 RTS A:42 X:FF Y:FC P:24 SP:F9 CYC:175 SL:196 F516 5F 48 05 *SRE $0548,X @ 0647 = 29 A:42 X:FF Y:FC P:24 SP:FB CYC:193 SL:196 F519 EA NOP A:56 X:FF Y:FC P:25 SP:FB CYC:214 SL:196 F51A EA NOP A:56 X:FF Y:FC P:25 SP:FB CYC:220 SL:196 F51B EA NOP A:56 X:FF Y:FC P:25 SP:FB CYC:226 SL:196 F51C EA NOP A:56 X:FF Y:FC P:25 SP:FB CYC:232 SL:196 F51D 20 33 FB JSR $FB33 A:56 X:FF Y:FC P:25 SP:FB CYC:238 SL:196 FB33 70 40 BVS $FB75 A:56 X:FF Y:FC P:25 SP:F9 CYC:256 SL:196 FB35 F0 3E BEQ $FB75 A:56 X:FF Y:FC P:25 SP:F9 CYC:262 SL:196 FB37 30 3C BMI $FB75 A:56 X:FF Y:FC P:25 SP:F9 CYC:268 SL:196 FB39 90 3A BCC $FB75 A:56 X:FF Y:FC P:25 SP:F9 CYC:274 SL:196 FB3B C9 56 CMP #$56 A:56 X:FF Y:FC P:25 SP:F9 CYC:280 SL:196 FB3D D0 36 BNE $FB75 A:56 X:FF Y:FC P:27 SP:F9 CYC:286 SL:196 FB3F 60 RTS A:56 X:FF Y:FC P:27 SP:F9 CYC:292 SL:196 F520 AD 47 06 LDA $0647 = 14 A:56 X:FF Y:FC P:27 SP:FB CYC:310 SL:196 F523 C9 14 CMP #$14 A:14 X:FF Y:FC P:25 SP:FB CYC:322 SL:196 F525 F0 02 BEQ $F529 A:14 X:FF Y:FC P:27 SP:FB CYC:328 SL:196 F529 C8 INY A:14 X:FF Y:FC P:27 SP:FB CYC:337 SL:196 F52A A9 37 LDA #$37 A:14 X:FF Y:FD P:A5 SP:FB CYC: 2 SL:197 F52C 8D 47 06 STA $0647 = 14 A:37 X:FF Y:FD P:25 SP:FB CYC: 8 SL:197 F52F 20 40 FB JSR $FB40 A:37 X:FF Y:FD P:25 SP:FB CYC: 20 SL:197 FB40 24 01 BIT $01 = FF A:37 X:FF Y:FD P:25 SP:F9 CYC: 38 SL:197 FB42 38 SEC A:37 X:FF Y:FD P:E5 SP:F9 CYC: 47 SL:197 FB43 A9 75 LDA #$75 A:37 X:FF Y:FD P:E5 SP:F9 CYC: 53 SL:197 FB45 60 RTS A:75 X:FF Y:FD P:65 SP:F9 CYC: 59 SL:197 F532 5F 48 05 *SRE $0548,X @ 0647 = 37 A:75 X:FF Y:FD P:65 SP:FB CYC: 77 SL:197 F535 EA NOP A:6E X:FF Y:FD P:65 SP:FB CYC: 98 SL:197 F536 EA NOP A:6E X:FF Y:FD P:65 SP:FB CYC:104 SL:197 F537 EA NOP A:6E X:FF Y:FD P:65 SP:FB CYC:110 SL:197 F538 EA NOP A:6E X:FF Y:FD P:65 SP:FB CYC:116 SL:197 F539 20 46 FB JSR $FB46 A:6E X:FF Y:FD P:65 SP:FB CYC:122 SL:197 FB46 50 2D BVC $FB75 A:6E X:FF Y:FD P:65 SP:F9 CYC:140 SL:197 FB48 F0 2B BEQ $FB75 A:6E X:FF Y:FD P:65 SP:F9 CYC:146 SL:197 FB4A 30 29 BMI $FB75 A:6E X:FF Y:FD P:65 SP:F9 CYC:152 SL:197 FB4C 90 27 BCC $FB75 A:6E X:FF Y:FD P:65 SP:F9 CYC:158 SL:197 FB4E C9 6E CMP #$6E A:6E X:FF Y:FD P:65 SP:F9 CYC:164 SL:197 FB50 D0 23 BNE $FB75 A:6E X:FF Y:FD P:67 SP:F9 CYC:170 SL:197 FB52 60 RTS A:6E X:FF Y:FD P:67 SP:F9 CYC:176 SL:197 F53C AD 47 06 LDA $0647 = 1B A:6E X:FF Y:FD P:67 SP:FB CYC:194 SL:197 F53F C9 1B CMP #$1B A:1B X:FF Y:FD P:65 SP:FB CYC:206 SL:197 F541 F0 02 BEQ $F545 A:1B X:FF Y:FD P:67 SP:FB CYC:212 SL:197 F545 60 RTS A:1B X:FF Y:FD P:67 SP:FB CYC:221 SL:197 C64A A5 00 LDA $00 = 00 A:1B X:FF Y:FD P:67 SP:FD CYC:239 SL:197 C64C 85 11 STA $11 = 00 A:00 X:FF Y:FD P:67 SP:FD CYC:248 SL:197 C64E A9 00 LDA #$00 A:00 X:FF Y:FD P:67 SP:FD CYC:257 SL:197 C650 85 00 STA $00 = 00 A:00 X:FF Y:FD P:67 SP:FD CYC:263 SL:197 C652 20 46 F5 JSR $F546 A:00 X:FF Y:FD P:67 SP:FD CYC:272 SL:197 F546 A9 FF LDA #$FF A:00 X:FF Y:FD P:67 SP:FB CYC:290 SL:197 F548 85 01 STA $01 = FF A:FF X:FF Y:FD P:E5 SP:FB CYC:296 SL:197 F54A A0 01 LDY #$01 A:FF X:FF Y:FD P:E5 SP:FB CYC:305 SL:197 F54C A2 02 LDX #$02 A:FF X:FF Y:01 P:65 SP:FB CYC:311 SL:197 F54E A9 47 LDA #$47 A:FF X:02 Y:01 P:65 SP:FB CYC:317 SL:197 F550 85 47 STA $47 = 1B A:47 X:02 Y:01 P:65 SP:FB CYC:323 SL:197 F552 A9 06 LDA #$06 A:47 X:02 Y:01 P:65 SP:FB CYC:332 SL:197 F554 85 48 STA $48 = 06 A:06 X:02 Y:01 P:65 SP:FB CYC:338 SL:197 F556 A9 A5 LDA #$A5 A:06 X:02 Y:01 P:65 SP:FB CYC: 6 SL:198 F558 8D 47 06 STA $0647 = 1B A:A5 X:02 Y:01 P:E5 SP:FB CYC: 12 SL:198 F55B 20 E9 FA JSR $FAE9 A:A5 X:02 Y:01 P:E5 SP:FB CYC: 24 SL:198 FAE9 24 01 BIT $01 = FF A:A5 X:02 Y:01 P:E5 SP:F9 CYC: 42 SL:198 FAEB 18 CLC A:A5 X:02 Y:01 P:E5 SP:F9 CYC: 51 SL:198 FAEC A9 B2 LDA #$B2 A:A5 X:02 Y:01 P:E4 SP:F9 CYC: 57 SL:198 FAEE 60 RTS A:B2 X:02 Y:01 P:E4 SP:F9 CYC: 63 SL:198 F55E 63 45 *RRA ($45,X) @ 47 = 0647 = A5 A:B2 X:02 Y:01 P:E4 SP:FB CYC: 81 SL:198 F560 EA NOP A:05 X:02 Y:01 P:25 SP:FB CYC:105 SL:198 F561 EA NOP A:05 X:02 Y:01 P:25 SP:FB CYC:111 SL:198 F562 EA NOP A:05 X:02 Y:01 P:25 SP:FB CYC:117 SL:198 F563 EA NOP A:05 X:02 Y:01 P:25 SP:FB CYC:123 SL:198 F564 20 EF FA JSR $FAEF A:05 X:02 Y:01 P:25 SP:FB CYC:129 SL:198 FAEF 70 2A BVS $FB1B A:05 X:02 Y:01 P:25 SP:F9 CYC:147 SL:198 FAF1 90 28 BCC $FB1B A:05 X:02 Y:01 P:25 SP:F9 CYC:153 SL:198 FAF3 30 26 BMI $FB1B A:05 X:02 Y:01 P:25 SP:F9 CYC:159 SL:198 FAF5 C9 05 CMP #$05 A:05 X:02 Y:01 P:25 SP:F9 CYC:165 SL:198 FAF7 D0 22 BNE $FB1B A:05 X:02 Y:01 P:27 SP:F9 CYC:171 SL:198 FAF9 60 RTS A:05 X:02 Y:01 P:27 SP:F9 CYC:177 SL:198 F567 AD 47 06 LDA $0647 = 52 A:05 X:02 Y:01 P:27 SP:FB CYC:195 SL:198 F56A C9 52 CMP #$52 A:52 X:02 Y:01 P:25 SP:FB CYC:207 SL:198 F56C F0 02 BEQ $F570 A:52 X:02 Y:01 P:27 SP:FB CYC:213 SL:198 F570 C8 INY A:52 X:02 Y:01 P:27 SP:FB CYC:222 SL:198 F571 A9 29 LDA #$29 A:52 X:02 Y:02 P:25 SP:FB CYC:228 SL:198 F573 8D 47 06 STA $0647 = 52 A:29 X:02 Y:02 P:25 SP:FB CYC:234 SL:198 F576 20 FA FA JSR $FAFA A:29 X:02 Y:02 P:25 SP:FB CYC:246 SL:198 FAFA B8 CLV A:29 X:02 Y:02 P:25 SP:F9 CYC:264 SL:198 FAFB 18 CLC A:29 X:02 Y:02 P:25 SP:F9 CYC:270 SL:198 FAFC A9 42 LDA #$42 A:29 X:02 Y:02 P:24 SP:F9 CYC:276 SL:198 FAFE 60 RTS A:42 X:02 Y:02 P:24 SP:F9 CYC:282 SL:198 F579 63 45 *RRA ($45,X) @ 47 = 0647 = 29 A:42 X:02 Y:02 P:24 SP:FB CYC:300 SL:198 F57B EA NOP A:57 X:02 Y:02 P:24 SP:FB CYC:324 SL:198 F57C EA NOP A:57 X:02 Y:02 P:24 SP:FB CYC:330 SL:198 F57D EA NOP A:57 X:02 Y:02 P:24 SP:FB CYC:336 SL:198 F57E EA NOP A:57 X:02 Y:02 P:24 SP:FB CYC: 1 SL:199 F57F 20 FF FA JSR $FAFF A:57 X:02 Y:02 P:24 SP:FB CYC: 7 SL:199 FAFF 70 1A BVS $FB1B A:57 X:02 Y:02 P:24 SP:F9 CYC: 25 SL:199 FB01 30 18 BMI $FB1B A:57 X:02 Y:02 P:24 SP:F9 CYC: 31 SL:199 FB03 B0 16 BCS $FB1B A:57 X:02 Y:02 P:24 SP:F9 CYC: 37 SL:199 FB05 C9 57 CMP #$57 A:57 X:02 Y:02 P:24 SP:F9 CYC: 43 SL:199 FB07 D0 12 BNE $FB1B A:57 X:02 Y:02 P:27 SP:F9 CYC: 49 SL:199 FB09 60 RTS A:57 X:02 Y:02 P:27 SP:F9 CYC: 55 SL:199 F582 AD 47 06 LDA $0647 = 14 A:57 X:02 Y:02 P:27 SP:FB CYC: 73 SL:199 F585 C9 14 CMP #$14 A:14 X:02 Y:02 P:25 SP:FB CYC: 85 SL:199 F587 F0 02 BEQ $F58B A:14 X:02 Y:02 P:27 SP:FB CYC: 91 SL:199 F58B C8 INY A:14 X:02 Y:02 P:27 SP:FB CYC:100 SL:199 F58C A9 37 LDA #$37 A:14 X:02 Y:03 P:25 SP:FB CYC:106 SL:199 F58E 8D 47 06 STA $0647 = 14 A:37 X:02 Y:03 P:25 SP:FB CYC:112 SL:199 F591 20 0A FB JSR $FB0A A:37 X:02 Y:03 P:25 SP:FB CYC:124 SL:199 FB0A 24 01 BIT $01 = FF A:37 X:02 Y:03 P:25 SP:F9 CYC:142 SL:199 FB0C 38 SEC A:37 X:02 Y:03 P:E5 SP:F9 CYC:151 SL:199 FB0D A9 75 LDA #$75 A:37 X:02 Y:03 P:E5 SP:F9 CYC:157 SL:199 FB0F 60 RTS A:75 X:02 Y:03 P:65 SP:F9 CYC:163 SL:199 F594 63 45 *RRA ($45,X) @ 47 = 0647 = 37 A:75 X:02 Y:03 P:65 SP:FB CYC:181 SL:199 F596 EA NOP A:11 X:02 Y:03 P:25 SP:FB CYC:205 SL:199 F597 EA NOP A:11 X:02 Y:03 P:25 SP:FB CYC:211 SL:199 F598 EA NOP A:11 X:02 Y:03 P:25 SP:FB CYC:217 SL:199 F599 EA NOP A:11 X:02 Y:03 P:25 SP:FB CYC:223 SL:199 F59A 20 10 FB JSR $FB10 A:11 X:02 Y:03 P:25 SP:FB CYC:229 SL:199 FB10 70 09 BVS $FB1B A:11 X:02 Y:03 P:25 SP:F9 CYC:247 SL:199 FB12 30 07 BMI $FB1B A:11 X:02 Y:03 P:25 SP:F9 CYC:253 SL:199 FB14 90 05 BCC $FB1B A:11 X:02 Y:03 P:25 SP:F9 CYC:259 SL:199 FB16 C9 11 CMP #$11 A:11 X:02 Y:03 P:25 SP:F9 CYC:265 SL:199 FB18 D0 01 BNE $FB1B A:11 X:02 Y:03 P:27 SP:F9 CYC:271 SL:199 FB1A 60 RTS A:11 X:02 Y:03 P:27 SP:F9 CYC:277 SL:199 F59D AD 47 06 LDA $0647 = 9B A:11 X:02 Y:03 P:27 SP:FB CYC:295 SL:199 F5A0 C9 9B CMP #$9B A:9B X:02 Y:03 P:A5 SP:FB CYC:307 SL:199 F5A2 F0 02 BEQ $F5A6 A:9B X:02 Y:03 P:27 SP:FB CYC:313 SL:199 F5A6 C8 INY A:9B X:02 Y:03 P:27 SP:FB CYC:322 SL:199 F5A7 A9 A5 LDA #$A5 A:9B X:02 Y:04 P:25 SP:FB CYC:328 SL:199 F5A9 85 47 STA $47 = 47 A:A5 X:02 Y:04 P:A5 SP:FB CYC:334 SL:199 F5AB 20 E9 FA JSR $FAE9 A:A5 X:02 Y:04 P:A5 SP:FB CYC: 2 SL:200 FAE9 24 01 BIT $01 = FF A:A5 X:02 Y:04 P:A5 SP:F9 CYC: 20 SL:200 FAEB 18 CLC A:A5 X:02 Y:04 P:E5 SP:F9 CYC: 29 SL:200 FAEC A9 B2 LDA #$B2 A:A5 X:02 Y:04 P:E4 SP:F9 CYC: 35 SL:200 FAEE 60 RTS A:B2 X:02 Y:04 P:E4 SP:F9 CYC: 41 SL:200 F5AE 67 47 *RRA $47 = A5 A:B2 X:02 Y:04 P:E4 SP:FB CYC: 59 SL:200 F5B0 EA NOP A:05 X:02 Y:04 P:25 SP:FB CYC: 74 SL:200 F5B1 EA NOP A:05 X:02 Y:04 P:25 SP:FB CYC: 80 SL:200 F5B2 EA NOP A:05 X:02 Y:04 P:25 SP:FB CYC: 86 SL:200 F5B3 EA NOP A:05 X:02 Y:04 P:25 SP:FB CYC: 92 SL:200 F5B4 20 EF FA JSR $FAEF A:05 X:02 Y:04 P:25 SP:FB CYC: 98 SL:200 FAEF 70 2A BVS $FB1B A:05 X:02 Y:04 P:25 SP:F9 CYC:116 SL:200 FAF1 90 28 BCC $FB1B A:05 X:02 Y:04 P:25 SP:F9 CYC:122 SL:200 FAF3 30 26 BMI $FB1B A:05 X:02 Y:04 P:25 SP:F9 CYC:128 SL:200 FAF5 C9 05 CMP #$05 A:05 X:02 Y:04 P:25 SP:F9 CYC:134 SL:200 FAF7 D0 22 BNE $FB1B A:05 X:02 Y:04 P:27 SP:F9 CYC:140 SL:200 FAF9 60 RTS A:05 X:02 Y:04 P:27 SP:F9 CYC:146 SL:200 F5B7 A5 47 LDA $47 = 52 A:05 X:02 Y:04 P:27 SP:FB CYC:164 SL:200 F5B9 C9 52 CMP #$52 A:52 X:02 Y:04 P:25 SP:FB CYC:173 SL:200 F5BB F0 02 BEQ $F5BF A:52 X:02 Y:04 P:27 SP:FB CYC:179 SL:200 F5BF C8 INY A:52 X:02 Y:04 P:27 SP:FB CYC:188 SL:200 F5C0 A9 29 LDA #$29 A:52 X:02 Y:05 P:25 SP:FB CYC:194 SL:200 F5C2 85 47 STA $47 = 52 A:29 X:02 Y:05 P:25 SP:FB CYC:200 SL:200 F5C4 20 FA FA JSR $FAFA A:29 X:02 Y:05 P:25 SP:FB CYC:209 SL:200 FAFA B8 CLV A:29 X:02 Y:05 P:25 SP:F9 CYC:227 SL:200 FAFB 18 CLC A:29 X:02 Y:05 P:25 SP:F9 CYC:233 SL:200 FAFC A9 42 LDA #$42 A:29 X:02 Y:05 P:24 SP:F9 CYC:239 SL:200 FAFE 60 RTS A:42 X:02 Y:05 P:24 SP:F9 CYC:245 SL:200 F5C7 67 47 *RRA $47 = 29 A:42 X:02 Y:05 P:24 SP:FB CYC:263 SL:200 F5C9 EA NOP A:57 X:02 Y:05 P:24 SP:FB CYC:278 SL:200 F5CA EA NOP A:57 X:02 Y:05 P:24 SP:FB CYC:284 SL:200 F5CB EA NOP A:57 X:02 Y:05 P:24 SP:FB CYC:290 SL:200 F5CC EA NOP A:57 X:02 Y:05 P:24 SP:FB CYC:296 SL:200 F5CD 20 FF FA JSR $FAFF A:57 X:02 Y:05 P:24 SP:FB CYC:302 SL:200 FAFF 70 1A BVS $FB1B A:57 X:02 Y:05 P:24 SP:F9 CYC:320 SL:200 FB01 30 18 BMI $FB1B A:57 X:02 Y:05 P:24 SP:F9 CYC:326 SL:200 FB03 B0 16 BCS $FB1B A:57 X:02 Y:05 P:24 SP:F9 CYC:332 SL:200 FB05 C9 57 CMP #$57 A:57 X:02 Y:05 P:24 SP:F9 CYC:338 SL:200 FB07 D0 12 BNE $FB1B A:57 X:02 Y:05 P:27 SP:F9 CYC: 3 SL:201 FB09 60 RTS A:57 X:02 Y:05 P:27 SP:F9 CYC: 9 SL:201 F5D0 A5 47 LDA $47 = 14 A:57 X:02 Y:05 P:27 SP:FB CYC: 27 SL:201 F5D2 C9 14 CMP #$14 A:14 X:02 Y:05 P:25 SP:FB CYC: 36 SL:201 F5D4 F0 02 BEQ $F5D8 A:14 X:02 Y:05 P:27 SP:FB CYC: 42 SL:201 F5D8 C8 INY A:14 X:02 Y:05 P:27 SP:FB CYC: 51 SL:201 F5D9 A9 37 LDA #$37 A:14 X:02 Y:06 P:25 SP:FB CYC: 57 SL:201 F5DB 85 47 STA $47 = 14 A:37 X:02 Y:06 P:25 SP:FB CYC: 63 SL:201 F5DD 20 0A FB JSR $FB0A A:37 X:02 Y:06 P:25 SP:FB CYC: 72 SL:201 FB0A 24 01 BIT $01 = FF A:37 X:02 Y:06 P:25 SP:F9 CYC: 90 SL:201 FB0C 38 SEC A:37 X:02 Y:06 P:E5 SP:F9 CYC: 99 SL:201 FB0D A9 75 LDA #$75 A:37 X:02 Y:06 P:E5 SP:F9 CYC:105 SL:201 FB0F 60 RTS A:75 X:02 Y:06 P:65 SP:F9 CYC:111 SL:201 F5E0 67 47 *RRA $47 = 37 A:75 X:02 Y:06 P:65 SP:FB CYC:129 SL:201 F5E2 EA NOP A:11 X:02 Y:06 P:25 SP:FB CYC:144 SL:201 F5E3 EA NOP A:11 X:02 Y:06 P:25 SP:FB CYC:150 SL:201 F5E4 EA NOP A:11 X:02 Y:06 P:25 SP:FB CYC:156 SL:201 F5E5 EA NOP A:11 X:02 Y:06 P:25 SP:FB CYC:162 SL:201 F5E6 20 10 FB JSR $FB10 A:11 X:02 Y:06 P:25 SP:FB CYC:168 SL:201 FB10 70 09 BVS $FB1B A:11 X:02 Y:06 P:25 SP:F9 CYC:186 SL:201 FB12 30 07 BMI $FB1B A:11 X:02 Y:06 P:25 SP:F9 CYC:192 SL:201 FB14 90 05 BCC $FB1B A:11 X:02 Y:06 P:25 SP:F9 CYC:198 SL:201 FB16 C9 11 CMP #$11 A:11 X:02 Y:06 P:25 SP:F9 CYC:204 SL:201 FB18 D0 01 BNE $FB1B A:11 X:02 Y:06 P:27 SP:F9 CYC:210 SL:201 FB1A 60 RTS A:11 X:02 Y:06 P:27 SP:F9 CYC:216 SL:201 F5E9 A5 47 LDA $47 = 9B A:11 X:02 Y:06 P:27 SP:FB CYC:234 SL:201 F5EB C9 9B CMP #$9B A:9B X:02 Y:06 P:A5 SP:FB CYC:243 SL:201 F5ED F0 02 BEQ $F5F1 A:9B X:02 Y:06 P:27 SP:FB CYC:249 SL:201 F5F1 C8 INY A:9B X:02 Y:06 P:27 SP:FB CYC:258 SL:201 F5F2 A9 A5 LDA #$A5 A:9B X:02 Y:07 P:25 SP:FB CYC:264 SL:201 F5F4 8D 47 06 STA $0647 = 9B A:A5 X:02 Y:07 P:A5 SP:FB CYC:270 SL:201 F5F7 20 E9 FA JSR $FAE9 A:A5 X:02 Y:07 P:A5 SP:FB CYC:282 SL:201 FAE9 24 01 BIT $01 = FF A:A5 X:02 Y:07 P:A5 SP:F9 CYC:300 SL:201 FAEB 18 CLC A:A5 X:02 Y:07 P:E5 SP:F9 CYC:309 SL:201 FAEC A9 B2 LDA #$B2 A:A5 X:02 Y:07 P:E4 SP:F9 CYC:315 SL:201 FAEE 60 RTS A:B2 X:02 Y:07 P:E4 SP:F9 CYC:321 SL:201 F5FA 6F 47 06 *RRA $0647 = A5 A:B2 X:02 Y:07 P:E4 SP:FB CYC:339 SL:201 F5FD EA NOP A:05 X:02 Y:07 P:25 SP:FB CYC: 16 SL:202 F5FE EA NOP A:05 X:02 Y:07 P:25 SP:FB CYC: 22 SL:202 F5FF EA NOP A:05 X:02 Y:07 P:25 SP:FB CYC: 28 SL:202 F600 EA NOP A:05 X:02 Y:07 P:25 SP:FB CYC: 34 SL:202 F601 20 EF FA JSR $FAEF A:05 X:02 Y:07 P:25 SP:FB CYC: 40 SL:202 FAEF 70 2A BVS $FB1B A:05 X:02 Y:07 P:25 SP:F9 CYC: 58 SL:202 FAF1 90 28 BCC $FB1B A:05 X:02 Y:07 P:25 SP:F9 CYC: 64 SL:202 FAF3 30 26 BMI $FB1B A:05 X:02 Y:07 P:25 SP:F9 CYC: 70 SL:202 FAF5 C9 05 CMP #$05 A:05 X:02 Y:07 P:25 SP:F9 CYC: 76 SL:202 FAF7 D0 22 BNE $FB1B A:05 X:02 Y:07 P:27 SP:F9 CYC: 82 SL:202 FAF9 60 RTS A:05 X:02 Y:07 P:27 SP:F9 CYC: 88 SL:202 F604 AD 47 06 LDA $0647 = 52 A:05 X:02 Y:07 P:27 SP:FB CYC:106 SL:202 F607 C9 52 CMP #$52 A:52 X:02 Y:07 P:25 SP:FB CYC:118 SL:202 F609 F0 02 BEQ $F60D A:52 X:02 Y:07 P:27 SP:FB CYC:124 SL:202 F60D C8 INY A:52 X:02 Y:07 P:27 SP:FB CYC:133 SL:202 F60E A9 29 LDA #$29 A:52 X:02 Y:08 P:25 SP:FB CYC:139 SL:202 F610 8D 47 06 STA $0647 = 52 A:29 X:02 Y:08 P:25 SP:FB CYC:145 SL:202 F613 20 FA FA JSR $FAFA A:29 X:02 Y:08 P:25 SP:FB CYC:157 SL:202 FAFA B8 CLV A:29 X:02 Y:08 P:25 SP:F9 CYC:175 SL:202 FAFB 18 CLC A:29 X:02 Y:08 P:25 SP:F9 CYC:181 SL:202 FAFC A9 42 LDA #$42 A:29 X:02 Y:08 P:24 SP:F9 CYC:187 SL:202 FAFE 60 RTS A:42 X:02 Y:08 P:24 SP:F9 CYC:193 SL:202 F616 6F 47 06 *RRA $0647 = 29 A:42 X:02 Y:08 P:24 SP:FB CYC:211 SL:202 F619 EA NOP A:57 X:02 Y:08 P:24 SP:FB CYC:229 SL:202 F61A EA NOP A:57 X:02 Y:08 P:24 SP:FB CYC:235 SL:202 F61B EA NOP A:57 X:02 Y:08 P:24 SP:FB CYC:241 SL:202 F61C EA NOP A:57 X:02 Y:08 P:24 SP:FB CYC:247 SL:202 F61D 20 FF FA JSR $FAFF A:57 X:02 Y:08 P:24 SP:FB CYC:253 SL:202 FAFF 70 1A BVS $FB1B A:57 X:02 Y:08 P:24 SP:F9 CYC:271 SL:202 FB01 30 18 BMI $FB1B A:57 X:02 Y:08 P:24 SP:F9 CYC:277 SL:202 FB03 B0 16 BCS $FB1B A:57 X:02 Y:08 P:24 SP:F9 CYC:283 SL:202 FB05 C9 57 CMP #$57 A:57 X:02 Y:08 P:24 SP:F9 CYC:289 SL:202 FB07 D0 12 BNE $FB1B A:57 X:02 Y:08 P:27 SP:F9 CYC:295 SL:202 FB09 60 RTS A:57 X:02 Y:08 P:27 SP:F9 CYC:301 SL:202 F620 AD 47 06 LDA $0647 = 14 A:57 X:02 Y:08 P:27 SP:FB CYC:319 SL:202 F623 C9 14 CMP #$14 A:14 X:02 Y:08 P:25 SP:FB CYC:331 SL:202 F625 F0 02 BEQ $F629 A:14 X:02 Y:08 P:27 SP:FB CYC:337 SL:202 F629 C8 INY A:14 X:02 Y:08 P:27 SP:FB CYC: 5 SL:203 F62A A9 37 LDA #$37 A:14 X:02 Y:09 P:25 SP:FB CYC: 11 SL:203 F62C 8D 47 06 STA $0647 = 14 A:37 X:02 Y:09 P:25 SP:FB CYC: 17 SL:203 F62F 20 0A FB JSR $FB0A A:37 X:02 Y:09 P:25 SP:FB CYC: 29 SL:203 FB0A 24 01 BIT $01 = FF A:37 X:02 Y:09 P:25 SP:F9 CYC: 47 SL:203 FB0C 38 SEC A:37 X:02 Y:09 P:E5 SP:F9 CYC: 56 SL:203 FB0D A9 75 LDA #$75 A:37 X:02 Y:09 P:E5 SP:F9 CYC: 62 SL:203 FB0F 60 RTS A:75 X:02 Y:09 P:65 SP:F9 CYC: 68 SL:203 F632 6F 47 06 *RRA $0647 = 37 A:75 X:02 Y:09 P:65 SP:FB CYC: 86 SL:203 F635 EA NOP A:11 X:02 Y:09 P:25 SP:FB CYC:104 SL:203 F636 EA NOP A:11 X:02 Y:09 P:25 SP:FB CYC:110 SL:203 F637 EA NOP A:11 X:02 Y:09 P:25 SP:FB CYC:116 SL:203 F638 EA NOP A:11 X:02 Y:09 P:25 SP:FB CYC:122 SL:203 F639 20 10 FB JSR $FB10 A:11 X:02 Y:09 P:25 SP:FB CYC:128 SL:203 FB10 70 09 BVS $FB1B A:11 X:02 Y:09 P:25 SP:F9 CYC:146 SL:203 FB12 30 07 BMI $FB1B A:11 X:02 Y:09 P:25 SP:F9 CYC:152 SL:203 FB14 90 05 BCC $FB1B A:11 X:02 Y:09 P:25 SP:F9 CYC:158 SL:203 FB16 C9 11 CMP #$11 A:11 X:02 Y:09 P:25 SP:F9 CYC:164 SL:203 FB18 D0 01 BNE $FB1B A:11 X:02 Y:09 P:27 SP:F9 CYC:170 SL:203 FB1A 60 RTS A:11 X:02 Y:09 P:27 SP:F9 CYC:176 SL:203 F63C AD 47 06 LDA $0647 = 9B A:11 X:02 Y:09 P:27 SP:FB CYC:194 SL:203 F63F C9 9B CMP #$9B A:9B X:02 Y:09 P:A5 SP:FB CYC:206 SL:203 F641 F0 02 BEQ $F645 A:9B X:02 Y:09 P:27 SP:FB CYC:212 SL:203 F645 A9 A5 LDA #$A5 A:9B X:02 Y:09 P:27 SP:FB CYC:221 SL:203 F647 8D 47 06 STA $0647 = 9B A:A5 X:02 Y:09 P:A5 SP:FB CYC:227 SL:203 F64A A9 48 LDA #$48 A:A5 X:02 Y:09 P:A5 SP:FB CYC:239 SL:203 F64C 85 45 STA $45 = 48 A:48 X:02 Y:09 P:25 SP:FB CYC:245 SL:203 F64E A9 05 LDA #$05 A:48 X:02 Y:09 P:25 SP:FB CYC:254 SL:203 F650 85 46 STA $46 = 05 A:05 X:02 Y:09 P:25 SP:FB CYC:260 SL:203 F652 A0 FF LDY #$FF A:05 X:02 Y:09 P:25 SP:FB CYC:269 SL:203 F654 20 E9 FA JSR $FAE9 A:05 X:02 Y:FF P:A5 SP:FB CYC:275 SL:203 FAE9 24 01 BIT $01 = FF A:05 X:02 Y:FF P:A5 SP:F9 CYC:293 SL:203 FAEB 18 CLC A:05 X:02 Y:FF P:E5 SP:F9 CYC:302 SL:203 FAEC A9 B2 LDA #$B2 A:05 X:02 Y:FF P:E4 SP:F9 CYC:308 SL:203 FAEE 60 RTS A:B2 X:02 Y:FF P:E4 SP:F9 CYC:314 SL:203 F657 73 45 *RRA ($45),Y = 0548 @ 0647 = A5 A:B2 X:02 Y:FF P:E4 SP:FB CYC:332 SL:203 F659 EA NOP A:05 X:02 Y:FF P:25 SP:FB CYC: 15 SL:204 F65A EA NOP A:05 X:02 Y:FF P:25 SP:FB CYC: 21 SL:204 F65B 08 PHP A:05 X:02 Y:FF P:25 SP:FB CYC: 27 SL:204 F65C 48 PHA A:05 X:02 Y:FF P:25 SP:FA CYC: 36 SL:204 F65D A0 0A LDY #$0A A:05 X:02 Y:FF P:25 SP:F9 CYC: 45 SL:204 F65F 68 PLA A:05 X:02 Y:0A P:25 SP:F9 CYC: 51 SL:204 F660 28 PLP A:05 X:02 Y:0A P:25 SP:FA CYC: 63 SL:204 F661 20 EF FA JSR $FAEF A:05 X:02 Y:0A P:25 SP:FB CYC: 75 SL:204 FAEF 70 2A BVS $FB1B A:05 X:02 Y:0A P:25 SP:F9 CYC: 93 SL:204 FAF1 90 28 BCC $FB1B A:05 X:02 Y:0A P:25 SP:F9 CYC: 99 SL:204 FAF3 30 26 BMI $FB1B A:05 X:02 Y:0A P:25 SP:F9 CYC:105 SL:204 FAF5 C9 05 CMP #$05 A:05 X:02 Y:0A P:25 SP:F9 CYC:111 SL:204 FAF7 D0 22 BNE $FB1B A:05 X:02 Y:0A P:27 SP:F9 CYC:117 SL:204 FAF9 60 RTS A:05 X:02 Y:0A P:27 SP:F9 CYC:123 SL:204 F664 AD 47 06 LDA $0647 = 52 A:05 X:02 Y:0A P:27 SP:FB CYC:141 SL:204 F667 C9 52 CMP #$52 A:52 X:02 Y:0A P:25 SP:FB CYC:153 SL:204 F669 F0 02 BEQ $F66D A:52 X:02 Y:0A P:27 SP:FB CYC:159 SL:204 F66D A0 FF LDY #$FF A:52 X:02 Y:0A P:27 SP:FB CYC:168 SL:204 F66F A9 29 LDA #$29 A:52 X:02 Y:FF P:A5 SP:FB CYC:174 SL:204 F671 8D 47 06 STA $0647 = 52 A:29 X:02 Y:FF P:25 SP:FB CYC:180 SL:204 F674 20 FA FA JSR $FAFA A:29 X:02 Y:FF P:25 SP:FB CYC:192 SL:204 FAFA B8 CLV A:29 X:02 Y:FF P:25 SP:F9 CYC:210 SL:204 FAFB 18 CLC A:29 X:02 Y:FF P:25 SP:F9 CYC:216 SL:204 FAFC A9 42 LDA #$42 A:29 X:02 Y:FF P:24 SP:F9 CYC:222 SL:204 FAFE 60 RTS A:42 X:02 Y:FF P:24 SP:F9 CYC:228 SL:204 F677 73 45 *RRA ($45),Y = 0548 @ 0647 = 29 A:42 X:02 Y:FF P:24 SP:FB CYC:246 SL:204 F679 EA NOP A:57 X:02 Y:FF P:24 SP:FB CYC:270 SL:204 F67A EA NOP A:57 X:02 Y:FF P:24 SP:FB CYC:276 SL:204 F67B 08 PHP A:57 X:02 Y:FF P:24 SP:FB CYC:282 SL:204 F67C 48 PHA A:57 X:02 Y:FF P:24 SP:FA CYC:291 SL:204 F67D A0 0B LDY #$0B A:57 X:02 Y:FF P:24 SP:F9 CYC:300 SL:204 F67F 68 PLA A:57 X:02 Y:0B P:24 SP:F9 CYC:306 SL:204 F680 28 PLP A:57 X:02 Y:0B P:24 SP:FA CYC:318 SL:204 F681 20 FF FA JSR $FAFF A:57 X:02 Y:0B P:24 SP:FB CYC:330 SL:204 FAFF 70 1A BVS $FB1B A:57 X:02 Y:0B P:24 SP:F9 CYC: 7 SL:205 FB01 30 18 BMI $FB1B A:57 X:02 Y:0B P:24 SP:F9 CYC: 13 SL:205 FB03 B0 16 BCS $FB1B A:57 X:02 Y:0B P:24 SP:F9 CYC: 19 SL:205 FB05 C9 57 CMP #$57 A:57 X:02 Y:0B P:24 SP:F9 CYC: 25 SL:205 FB07 D0 12 BNE $FB1B A:57 X:02 Y:0B P:27 SP:F9 CYC: 31 SL:205 FB09 60 RTS A:57 X:02 Y:0B P:27 SP:F9 CYC: 37 SL:205 F684 AD 47 06 LDA $0647 = 14 A:57 X:02 Y:0B P:27 SP:FB CYC: 55 SL:205 F687 C9 14 CMP #$14 A:14 X:02 Y:0B P:25 SP:FB CYC: 67 SL:205 F689 F0 02 BEQ $F68D A:14 X:02 Y:0B P:27 SP:FB CYC: 73 SL:205 F68D A0 FF LDY #$FF A:14 X:02 Y:0B P:27 SP:FB CYC: 82 SL:205 F68F A9 37 LDA #$37 A:14 X:02 Y:FF P:A5 SP:FB CYC: 88 SL:205 F691 8D 47 06 STA $0647 = 14 A:37 X:02 Y:FF P:25 SP:FB CYC: 94 SL:205 F694 20 0A FB JSR $FB0A A:37 X:02 Y:FF P:25 SP:FB CYC:106 SL:205 FB0A 24 01 BIT $01 = FF A:37 X:02 Y:FF P:25 SP:F9 CYC:124 SL:205 FB0C 38 SEC A:37 X:02 Y:FF P:E5 SP:F9 CYC:133 SL:205 FB0D A9 75 LDA #$75 A:37 X:02 Y:FF P:E5 SP:F9 CYC:139 SL:205 FB0F 60 RTS A:75 X:02 Y:FF P:65 SP:F9 CYC:145 SL:205 F697 73 45 *RRA ($45),Y = 0548 @ 0647 = 37 A:75 X:02 Y:FF P:65 SP:FB CYC:163 SL:205 F699 EA NOP A:11 X:02 Y:FF P:25 SP:FB CYC:187 SL:205 F69A EA NOP A:11 X:02 Y:FF P:25 SP:FB CYC:193 SL:205 F69B 08 PHP A:11 X:02 Y:FF P:25 SP:FB CYC:199 SL:205 F69C 48 PHA A:11 X:02 Y:FF P:25 SP:FA CYC:208 SL:205 F69D A0 0C LDY #$0C A:11 X:02 Y:FF P:25 SP:F9 CYC:217 SL:205 F69F 68 PLA A:11 X:02 Y:0C P:25 SP:F9 CYC:223 SL:205 F6A0 28 PLP A:11 X:02 Y:0C P:25 SP:FA CYC:235 SL:205 F6A1 20 10 FB JSR $FB10 A:11 X:02 Y:0C P:25 SP:FB CYC:247 SL:205 FB10 70 09 BVS $FB1B A:11 X:02 Y:0C P:25 SP:F9 CYC:265 SL:205 FB12 30 07 BMI $FB1B A:11 X:02 Y:0C P:25 SP:F9 CYC:271 SL:205 FB14 90 05 BCC $FB1B A:11 X:02 Y:0C P:25 SP:F9 CYC:277 SL:205 FB16 C9 11 CMP #$11 A:11 X:02 Y:0C P:25 SP:F9 CYC:283 SL:205 FB18 D0 01 BNE $FB1B A:11 X:02 Y:0C P:27 SP:F9 CYC:289 SL:205 FB1A 60 RTS A:11 X:02 Y:0C P:27 SP:F9 CYC:295 SL:205 F6A4 AD 47 06 LDA $0647 = 9B A:11 X:02 Y:0C P:27 SP:FB CYC:313 SL:205 F6A7 C9 9B CMP #$9B A:9B X:02 Y:0C P:A5 SP:FB CYC:325 SL:205 F6A9 F0 02 BEQ $F6AD A:9B X:02 Y:0C P:27 SP:FB CYC:331 SL:205 F6AD A0 0D LDY #$0D A:9B X:02 Y:0C P:27 SP:FB CYC:340 SL:205 F6AF A2 FF LDX #$FF A:9B X:02 Y:0D P:25 SP:FB CYC: 5 SL:206 F6B1 A9 A5 LDA #$A5 A:9B X:FF Y:0D P:A5 SP:FB CYC: 11 SL:206 F6B3 85 47 STA $47 = 9B A:A5 X:FF Y:0D P:A5 SP:FB CYC: 17 SL:206 F6B5 20 E9 FA JSR $FAE9 A:A5 X:FF Y:0D P:A5 SP:FB CYC: 26 SL:206 FAE9 24 01 BIT $01 = FF A:A5 X:FF Y:0D P:A5 SP:F9 CYC: 44 SL:206 FAEB 18 CLC A:A5 X:FF Y:0D P:E5 SP:F9 CYC: 53 SL:206 FAEC A9 B2 LDA #$B2 A:A5 X:FF Y:0D P:E4 SP:F9 CYC: 59 SL:206 FAEE 60 RTS A:B2 X:FF Y:0D P:E4 SP:F9 CYC: 65 SL:206 F6B8 77 48 *RRA $48,X @ 47 = A5 A:B2 X:FF Y:0D P:E4 SP:FB CYC: 83 SL:206 F6BA EA NOP A:05 X:FF Y:0D P:25 SP:FB CYC:101 SL:206 F6BB EA NOP A:05 X:FF Y:0D P:25 SP:FB CYC:107 SL:206 F6BC EA NOP A:05 X:FF Y:0D P:25 SP:FB CYC:113 SL:206 F6BD EA NOP A:05 X:FF Y:0D P:25 SP:FB CYC:119 SL:206 F6BE 20 EF FA JSR $FAEF A:05 X:FF Y:0D P:25 SP:FB CYC:125 SL:206 FAEF 70 2A BVS $FB1B A:05 X:FF Y:0D P:25 SP:F9 CYC:143 SL:206 FAF1 90 28 BCC $FB1B A:05 X:FF Y:0D P:25 SP:F9 CYC:149 SL:206 FAF3 30 26 BMI $FB1B A:05 X:FF Y:0D P:25 SP:F9 CYC:155 SL:206 FAF5 C9 05 CMP #$05 A:05 X:FF Y:0D P:25 SP:F9 CYC:161 SL:206 FAF7 D0 22 BNE $FB1B A:05 X:FF Y:0D P:27 SP:F9 CYC:167 SL:206 FAF9 60 RTS A:05 X:FF Y:0D P:27 SP:F9 CYC:173 SL:206 F6C1 A5 47 LDA $47 = 52 A:05 X:FF Y:0D P:27 SP:FB CYC:191 SL:206 F6C3 C9 52 CMP #$52 A:52 X:FF Y:0D P:25 SP:FB CYC:200 SL:206 F6C5 F0 02 BEQ $F6C9 A:52 X:FF Y:0D P:27 SP:FB CYC:206 SL:206 F6C9 C8 INY A:52 X:FF Y:0D P:27 SP:FB CYC:215 SL:206 F6CA A9 29 LDA #$29 A:52 X:FF Y:0E P:25 SP:FB CYC:221 SL:206 F6CC 85 47 STA $47 = 52 A:29 X:FF Y:0E P:25 SP:FB CYC:227 SL:206 F6CE 20 FA FA JSR $FAFA A:29 X:FF Y:0E P:25 SP:FB CYC:236 SL:206 FAFA B8 CLV A:29 X:FF Y:0E P:25 SP:F9 CYC:254 SL:206 FAFB 18 CLC A:29 X:FF Y:0E P:25 SP:F9 CYC:260 SL:206 FAFC A9 42 LDA #$42 A:29 X:FF Y:0E P:24 SP:F9 CYC:266 SL:206 FAFE 60 RTS A:42 X:FF Y:0E P:24 SP:F9 CYC:272 SL:206 F6D1 77 48 *RRA $48,X @ 47 = 29 A:42 X:FF Y:0E P:24 SP:FB CYC:290 SL:206 F6D3 EA NOP A:57 X:FF Y:0E P:24 SP:FB CYC:308 SL:206 F6D4 EA NOP A:57 X:FF Y:0E P:24 SP:FB CYC:314 SL:206 F6D5 EA NOP A:57 X:FF Y:0E P:24 SP:FB CYC:320 SL:206 F6D6 EA NOP A:57 X:FF Y:0E P:24 SP:FB CYC:326 SL:206 F6D7 20 FF FA JSR $FAFF A:57 X:FF Y:0E P:24 SP:FB CYC:332 SL:206 FAFF 70 1A BVS $FB1B A:57 X:FF Y:0E P:24 SP:F9 CYC: 9 SL:207 FB01 30 18 BMI $FB1B A:57 X:FF Y:0E P:24 SP:F9 CYC: 15 SL:207 FB03 B0 16 BCS $FB1B A:57 X:FF Y:0E P:24 SP:F9 CYC: 21 SL:207 FB05 C9 57 CMP #$57 A:57 X:FF Y:0E P:24 SP:F9 CYC: 27 SL:207 FB07 D0 12 BNE $FB1B A:57 X:FF Y:0E P:27 SP:F9 CYC: 33 SL:207 FB09 60 RTS A:57 X:FF Y:0E P:27 SP:F9 CYC: 39 SL:207 F6DA A5 47 LDA $47 = 14 A:57 X:FF Y:0E P:27 SP:FB CYC: 57 SL:207 F6DC C9 14 CMP #$14 A:14 X:FF Y:0E P:25 SP:FB CYC: 66 SL:207 F6DE F0 02 BEQ $F6E2 A:14 X:FF Y:0E P:27 SP:FB CYC: 72 SL:207 F6E2 C8 INY A:14 X:FF Y:0E P:27 SP:FB CYC: 81 SL:207 F6E3 A9 37 LDA #$37 A:14 X:FF Y:0F P:25 SP:FB CYC: 87 SL:207 F6E5 85 47 STA $47 = 14 A:37 X:FF Y:0F P:25 SP:FB CYC: 93 SL:207 F6E7 20 0A FB JSR $FB0A A:37 X:FF Y:0F P:25 SP:FB CYC:102 SL:207 FB0A 24 01 BIT $01 = FF A:37 X:FF Y:0F P:25 SP:F9 CYC:120 SL:207 FB0C 38 SEC A:37 X:FF Y:0F P:E5 SP:F9 CYC:129 SL:207 FB0D A9 75 LDA #$75 A:37 X:FF Y:0F P:E5 SP:F9 CYC:135 SL:207 FB0F 60 RTS A:75 X:FF Y:0F P:65 SP:F9 CYC:141 SL:207 F6EA 77 48 *RRA $48,X @ 47 = 37 A:75 X:FF Y:0F P:65 SP:FB CYC:159 SL:207 F6EC EA NOP A:11 X:FF Y:0F P:25 SP:FB CYC:177 SL:207 F6ED EA NOP A:11 X:FF Y:0F P:25 SP:FB CYC:183 SL:207 F6EE EA NOP A:11 X:FF Y:0F P:25 SP:FB CYC:189 SL:207 F6EF EA NOP A:11 X:FF Y:0F P:25 SP:FB CYC:195 SL:207 F6F0 20 10 FB JSR $FB10 A:11 X:FF Y:0F P:25 SP:FB CYC:201 SL:207 FB10 70 09 BVS $FB1B A:11 X:FF Y:0F P:25 SP:F9 CYC:219 SL:207 FB12 30 07 BMI $FB1B A:11 X:FF Y:0F P:25 SP:F9 CYC:225 SL:207 FB14 90 05 BCC $FB1B A:11 X:FF Y:0F P:25 SP:F9 CYC:231 SL:207 FB16 C9 11 CMP #$11 A:11 X:FF Y:0F P:25 SP:F9 CYC:237 SL:207 FB18 D0 01 BNE $FB1B A:11 X:FF Y:0F P:27 SP:F9 CYC:243 SL:207 FB1A 60 RTS A:11 X:FF Y:0F P:27 SP:F9 CYC:249 SL:207 F6F3 A5 47 LDA $47 = 9B A:11 X:FF Y:0F P:27 SP:FB CYC:267 SL:207 F6F5 C9 9B CMP #$9B A:9B X:FF Y:0F P:A5 SP:FB CYC:276 SL:207 F6F7 F0 02 BEQ $F6FB A:9B X:FF Y:0F P:27 SP:FB CYC:282 SL:207 F6FB A9 A5 LDA #$A5 A:9B X:FF Y:0F P:27 SP:FB CYC:291 SL:207 F6FD 8D 47 06 STA $0647 = 9B A:A5 X:FF Y:0F P:A5 SP:FB CYC:297 SL:207 F700 A0 FF LDY #$FF A:A5 X:FF Y:0F P:A5 SP:FB CYC:309 SL:207 F702 20 E9 FA JSR $FAE9 A:A5 X:FF Y:FF P:A5 SP:FB CYC:315 SL:207 FAE9 24 01 BIT $01 = FF A:A5 X:FF Y:FF P:A5 SP:F9 CYC:333 SL:207 FAEB 18 CLC A:A5 X:FF Y:FF P:E5 SP:F9 CYC: 1 SL:208 FAEC A9 B2 LDA #$B2 A:A5 X:FF Y:FF P:E4 SP:F9 CYC: 7 SL:208 FAEE 60 RTS A:B2 X:FF Y:FF P:E4 SP:F9 CYC: 13 SL:208 F705 7B 48 05 *RRA $0548,Y @ 0647 = A5 A:B2 X:FF Y:FF P:E4 SP:FB CYC: 31 SL:208 F708 EA NOP A:05 X:FF Y:FF P:25 SP:FB CYC: 52 SL:208 F709 EA NOP A:05 X:FF Y:FF P:25 SP:FB CYC: 58 SL:208 F70A 08 PHP A:05 X:FF Y:FF P:25 SP:FB CYC: 64 SL:208 F70B 48 PHA A:05 X:FF Y:FF P:25 SP:FA CYC: 73 SL:208 F70C A0 10 LDY #$10 A:05 X:FF Y:FF P:25 SP:F9 CYC: 82 SL:208 F70E 68 PLA A:05 X:FF Y:10 P:25 SP:F9 CYC: 88 SL:208 F70F 28 PLP A:05 X:FF Y:10 P:25 SP:FA CYC:100 SL:208 F710 20 EF FA JSR $FAEF A:05 X:FF Y:10 P:25 SP:FB CYC:112 SL:208 FAEF 70 2A BVS $FB1B A:05 X:FF Y:10 P:25 SP:F9 CYC:130 SL:208 FAF1 90 28 BCC $FB1B A:05 X:FF Y:10 P:25 SP:F9 CYC:136 SL:208 FAF3 30 26 BMI $FB1B A:05 X:FF Y:10 P:25 SP:F9 CYC:142 SL:208 FAF5 C9 05 CMP #$05 A:05 X:FF Y:10 P:25 SP:F9 CYC:148 SL:208 FAF7 D0 22 BNE $FB1B A:05 X:FF Y:10 P:27 SP:F9 CYC:154 SL:208 FAF9 60 RTS A:05 X:FF Y:10 P:27 SP:F9 CYC:160 SL:208 F713 AD 47 06 LDA $0647 = 52 A:05 X:FF Y:10 P:27 SP:FB CYC:178 SL:208 F716 C9 52 CMP #$52 A:52 X:FF Y:10 P:25 SP:FB CYC:190 SL:208 F718 F0 02 BEQ $F71C A:52 X:FF Y:10 P:27 SP:FB CYC:196 SL:208 F71C A0 FF LDY #$FF A:52 X:FF Y:10 P:27 SP:FB CYC:205 SL:208 F71E A9 29 LDA #$29 A:52 X:FF Y:FF P:A5 SP:FB CYC:211 SL:208 F720 8D 47 06 STA $0647 = 52 A:29 X:FF Y:FF P:25 SP:FB CYC:217 SL:208 F723 20 FA FA JSR $FAFA A:29 X:FF Y:FF P:25 SP:FB CYC:229 SL:208 FAFA B8 CLV A:29 X:FF Y:FF P:25 SP:F9 CYC:247 SL:208 FAFB 18 CLC A:29 X:FF Y:FF P:25 SP:F9 CYC:253 SL:208 FAFC A9 42 LDA #$42 A:29 X:FF Y:FF P:24 SP:F9 CYC:259 SL:208 FAFE 60 RTS A:42 X:FF Y:FF P:24 SP:F9 CYC:265 SL:208 F726 7B 48 05 *RRA $0548,Y @ 0647 = 29 A:42 X:FF Y:FF P:24 SP:FB CYC:283 SL:208 F729 EA NOP A:57 X:FF Y:FF P:24 SP:FB CYC:304 SL:208 F72A EA NOP A:57 X:FF Y:FF P:24 SP:FB CYC:310 SL:208 F72B 08 PHP A:57 X:FF Y:FF P:24 SP:FB CYC:316 SL:208 F72C 48 PHA A:57 X:FF Y:FF P:24 SP:FA CYC:325 SL:208 F72D A0 11 LDY #$11 A:57 X:FF Y:FF P:24 SP:F9 CYC:334 SL:208 F72F 68 PLA A:57 X:FF Y:11 P:24 SP:F9 CYC:340 SL:208 F730 28 PLP A:57 X:FF Y:11 P:24 SP:FA CYC: 11 SL:209 F731 20 FF FA JSR $FAFF A:57 X:FF Y:11 P:24 SP:FB CYC: 23 SL:209 FAFF 70 1A BVS $FB1B A:57 X:FF Y:11 P:24 SP:F9 CYC: 41 SL:209 FB01 30 18 BMI $FB1B A:57 X:FF Y:11 P:24 SP:F9 CYC: 47 SL:209 FB03 B0 16 BCS $FB1B A:57 X:FF Y:11 P:24 SP:F9 CYC: 53 SL:209 FB05 C9 57 CMP #$57 A:57 X:FF Y:11 P:24 SP:F9 CYC: 59 SL:209 FB07 D0 12 BNE $FB1B A:57 X:FF Y:11 P:27 SP:F9 CYC: 65 SL:209 FB09 60 RTS A:57 X:FF Y:11 P:27 SP:F9 CYC: 71 SL:209 F734 AD 47 06 LDA $0647 = 14 A:57 X:FF Y:11 P:27 SP:FB CYC: 89 SL:209 F737 C9 14 CMP #$14 A:14 X:FF Y:11 P:25 SP:FB CYC:101 SL:209 F739 F0 02 BEQ $F73D A:14 X:FF Y:11 P:27 SP:FB CYC:107 SL:209 F73D A0 FF LDY #$FF A:14 X:FF Y:11 P:27 SP:FB CYC:116 SL:209 F73F A9 37 LDA #$37 A:14 X:FF Y:FF P:A5 SP:FB CYC:122 SL:209 F741 8D 47 06 STA $0647 = 14 A:37 X:FF Y:FF P:25 SP:FB CYC:128 SL:209 F744 20 0A FB JSR $FB0A A:37 X:FF Y:FF P:25 SP:FB CYC:140 SL:209 FB0A 24 01 BIT $01 = FF A:37 X:FF Y:FF P:25 SP:F9 CYC:158 SL:209 FB0C 38 SEC A:37 X:FF Y:FF P:E5 SP:F9 CYC:167 SL:209 FB0D A9 75 LDA #$75 A:37 X:FF Y:FF P:E5 SP:F9 CYC:173 SL:209 FB0F 60 RTS A:75 X:FF Y:FF P:65 SP:F9 CYC:179 SL:209 F747 7B 48 05 *RRA $0548,Y @ 0647 = 37 A:75 X:FF Y:FF P:65 SP:FB CYC:197 SL:209 F74A EA NOP A:11 X:FF Y:FF P:25 SP:FB CYC:218 SL:209 F74B EA NOP A:11 X:FF Y:FF P:25 SP:FB CYC:224 SL:209 F74C 08 PHP A:11 X:FF Y:FF P:25 SP:FB CYC:230 SL:209 F74D 48 PHA A:11 X:FF Y:FF P:25 SP:FA CYC:239 SL:209 F74E A0 12 LDY #$12 A:11 X:FF Y:FF P:25 SP:F9 CYC:248 SL:209 F750 68 PLA A:11 X:FF Y:12 P:25 SP:F9 CYC:254 SL:209 F751 28 PLP A:11 X:FF Y:12 P:25 SP:FA CYC:266 SL:209 F752 20 10 FB JSR $FB10 A:11 X:FF Y:12 P:25 SP:FB CYC:278 SL:209 FB10 70 09 BVS $FB1B A:11 X:FF Y:12 P:25 SP:F9 CYC:296 SL:209 FB12 30 07 BMI $FB1B A:11 X:FF Y:12 P:25 SP:F9 CYC:302 SL:209 FB14 90 05 BCC $FB1B A:11 X:FF Y:12 P:25 SP:F9 CYC:308 SL:209 FB16 C9 11 CMP #$11 A:11 X:FF Y:12 P:25 SP:F9 CYC:314 SL:209 FB18 D0 01 BNE $FB1B A:11 X:FF Y:12 P:27 SP:F9 CYC:320 SL:209 FB1A 60 RTS A:11 X:FF Y:12 P:27 SP:F9 CYC:326 SL:209 F755 AD 47 06 LDA $0647 = 9B A:11 X:FF Y:12 P:27 SP:FB CYC: 3 SL:210 F758 C9 9B CMP #$9B A:9B X:FF Y:12 P:A5 SP:FB CYC: 15 SL:210 F75A F0 02 BEQ $F75E A:9B X:FF Y:12 P:27 SP:FB CYC: 21 SL:210 F75E A0 13 LDY #$13 A:9B X:FF Y:12 P:27 SP:FB CYC: 30 SL:210 F760 A2 FF LDX #$FF A:9B X:FF Y:13 P:25 SP:FB CYC: 36 SL:210 F762 A9 A5 LDA #$A5 A:9B X:FF Y:13 P:A5 SP:FB CYC: 42 SL:210 F764 8D 47 06 STA $0647 = 9B A:A5 X:FF Y:13 P:A5 SP:FB CYC: 48 SL:210 F767 20 E9 FA JSR $FAE9 A:A5 X:FF Y:13 P:A5 SP:FB CYC: 60 SL:210 FAE9 24 01 BIT $01 = FF A:A5 X:FF Y:13 P:A5 SP:F9 CYC: 78 SL:210 FAEB 18 CLC A:A5 X:FF Y:13 P:E5 SP:F9 CYC: 87 SL:210 FAEC A9 B2 LDA #$B2 A:A5 X:FF Y:13 P:E4 SP:F9 CYC: 93 SL:210 FAEE 60 RTS A:B2 X:FF Y:13 P:E4 SP:F9 CYC: 99 SL:210 F76A 7F 48 05 *RRA $0548,X @ 0647 = A5 A:B2 X:FF Y:13 P:E4 SP:FB CYC:117 SL:210 F76D EA NOP A:05 X:FF Y:13 P:25 SP:FB CYC:138 SL:210 F76E EA NOP A:05 X:FF Y:13 P:25 SP:FB CYC:144 SL:210 F76F EA NOP A:05 X:FF Y:13 P:25 SP:FB CYC:150 SL:210 F770 EA NOP A:05 X:FF Y:13 P:25 SP:FB CYC:156 SL:210 F771 20 EF FA JSR $FAEF A:05 X:FF Y:13 P:25 SP:FB CYC:162 SL:210 FAEF 70 2A BVS $FB1B A:05 X:FF Y:13 P:25 SP:F9 CYC:180 SL:210 FAF1 90 28 BCC $FB1B A:05 X:FF Y:13 P:25 SP:F9 CYC:186 SL:210 FAF3 30 26 BMI $FB1B A:05 X:FF Y:13 P:25 SP:F9 CYC:192 SL:210 FAF5 C9 05 CMP #$05 A:05 X:FF Y:13 P:25 SP:F9 CYC:198 SL:210 FAF7 D0 22 BNE $FB1B A:05 X:FF Y:13 P:27 SP:F9 CYC:204 SL:210 FAF9 60 RTS A:05 X:FF Y:13 P:27 SP:F9 CYC:210 SL:210 F774 AD 47 06 LDA $0647 = 52 A:05 X:FF Y:13 P:27 SP:FB CYC:228 SL:210 F777 C9 52 CMP #$52 A:52 X:FF Y:13 P:25 SP:FB CYC:240 SL:210 F779 F0 02 BEQ $F77D A:52 X:FF Y:13 P:27 SP:FB CYC:246 SL:210 F77D C8 INY A:52 X:FF Y:13 P:27 SP:FB CYC:255 SL:210 F77E A9 29 LDA #$29 A:52 X:FF Y:14 P:25 SP:FB CYC:261 SL:210 F780 8D 47 06 STA $0647 = 52 A:29 X:FF Y:14 P:25 SP:FB CYC:267 SL:210 F783 20 FA FA JSR $FAFA A:29 X:FF Y:14 P:25 SP:FB CYC:279 SL:210 FAFA B8 CLV A:29 X:FF Y:14 P:25 SP:F9 CYC:297 SL:210 FAFB 18 CLC A:29 X:FF Y:14 P:25 SP:F9 CYC:303 SL:210 FAFC A9 42 LDA #$42 A:29 X:FF Y:14 P:24 SP:F9 CYC:309 SL:210 FAFE 60 RTS A:42 X:FF Y:14 P:24 SP:F9 CYC:315 SL:210 F786 7F 48 05 *RRA $0548,X @ 0647 = 29 A:42 X:FF Y:14 P:24 SP:FB CYC:333 SL:210 F789 EA NOP A:57 X:FF Y:14 P:24 SP:FB CYC: 13 SL:211 F78A EA NOP A:57 X:FF Y:14 P:24 SP:FB CYC: 19 SL:211 F78B EA NOP A:57 X:FF Y:14 P:24 SP:FB CYC: 25 SL:211 F78C EA NOP A:57 X:FF Y:14 P:24 SP:FB CYC: 31 SL:211 F78D 20 FF FA JSR $FAFF A:57 X:FF Y:14 P:24 SP:FB CYC: 37 SL:211 FAFF 70 1A BVS $FB1B A:57 X:FF Y:14 P:24 SP:F9 CYC: 55 SL:211 FB01 30 18 BMI $FB1B A:57 X:FF Y:14 P:24 SP:F9 CYC: 61 SL:211 FB03 B0 16 BCS $FB1B A:57 X:FF Y:14 P:24 SP:F9 CYC: 67 SL:211 FB05 C9 57 CMP #$57 A:57 X:FF Y:14 P:24 SP:F9 CYC: 73 SL:211 FB07 D0 12 BNE $FB1B A:57 X:FF Y:14 P:27 SP:F9 CYC: 79 SL:211 FB09 60 RTS A:57 X:FF Y:14 P:27 SP:F9 CYC: 85 SL:211 F790 AD 47 06 LDA $0647 = 14 A:57 X:FF Y:14 P:27 SP:FB CYC:103 SL:211 F793 C9 14 CMP #$14 A:14 X:FF Y:14 P:25 SP:FB CYC:115 SL:211 F795 F0 02 BEQ $F799 A:14 X:FF Y:14 P:27 SP:FB CYC:121 SL:211 F799 C8 INY A:14 X:FF Y:14 P:27 SP:FB CYC:130 SL:211 F79A A9 37 LDA #$37 A:14 X:FF Y:15 P:25 SP:FB CYC:136 SL:211 F79C 8D 47 06 STA $0647 = 14 A:37 X:FF Y:15 P:25 SP:FB CYC:142 SL:211 F79F 20 0A FB JSR $FB0A A:37 X:FF Y:15 P:25 SP:FB CYC:154 SL:211 FB0A 24 01 BIT $01 = FF A:37 X:FF Y:15 P:25 SP:F9 CYC:172 SL:211 FB0C 38 SEC A:37 X:FF Y:15 P:E5 SP:F9 CYC:181 SL:211 FB0D A9 75 LDA #$75 A:37 X:FF Y:15 P:E5 SP:F9 CYC:187 SL:211 FB0F 60 RTS A:75 X:FF Y:15 P:65 SP:F9 CYC:193 SL:211 F7A2 7F 48 05 *RRA $0548,X @ 0647 = 37 A:75 X:FF Y:15 P:65 SP:FB CYC:211 SL:211 F7A5 EA NOP A:11 X:FF Y:15 P:25 SP:FB CYC:232 SL:211 F7A6 EA NOP A:11 X:FF Y:15 P:25 SP:FB CYC:238 SL:211 F7A7 EA NOP A:11 X:FF Y:15 P:25 SP:FB CYC:244 SL:211 F7A8 EA NOP A:11 X:FF Y:15 P:25 SP:FB CYC:250 SL:211 F7A9 20 10 FB JSR $FB10 A:11 X:FF Y:15 P:25 SP:FB CYC:256 SL:211 FB10 70 09 BVS $FB1B A:11 X:FF Y:15 P:25 SP:F9 CYC:274 SL:211 FB12 30 07 BMI $FB1B A:11 X:FF Y:15 P:25 SP:F9 CYC:280 SL:211 FB14 90 05 BCC $FB1B A:11 X:FF Y:15 P:25 SP:F9 CYC:286 SL:211 FB16 C9 11 CMP #$11 A:11 X:FF Y:15 P:25 SP:F9 CYC:292 SL:211 FB18 D0 01 BNE $FB1B A:11 X:FF Y:15 P:27 SP:F9 CYC:298 SL:211 FB1A 60 RTS A:11 X:FF Y:15 P:27 SP:F9 CYC:304 SL:211 F7AC AD 47 06 LDA $0647 = 9B A:11 X:FF Y:15 P:27 SP:FB CYC:322 SL:211 F7AF C9 9B CMP #$9B A:9B X:FF Y:15 P:A5 SP:FB CYC:334 SL:211 F7B1 F0 02 BEQ $F7B5 A:9B X:FF Y:15 P:27 SP:FB CYC:340 SL:211 F7B5 60 RTS A:9B X:FF Y:15 P:27 SP:FB CYC: 8 SL:212 C655 A5 00 LDA $00 = 00 A:9B X:FF Y:15 P:27 SP:FD CYC: 26 SL:212 C657 05 10 ORA $10 = 00 A:00 X:FF Y:15 P:27 SP:FD CYC: 35 SL:212 C659 05 11 ORA $11 = 00 A:00 X:FF Y:15 P:27 SP:FD CYC: 44 SL:212 C65B F0 0E BEQ $C66B A:00 X:FF Y:15 P:27 SP:FD CYC: 53 SL:212 C66B 20 89 C6 JSR $C689 A:00 X:FF Y:15 P:27 SP:FD CYC: 62 SL:212 C689 A9 02 LDA #$02 A:00 X:FF Y:15 P:27 SP:FB CYC: 80 SL:212 C68B 8D 15 40 STA $4015 = FF A:02 X:FF Y:15 P:25 SP:FB CYC: 86 SL:212 C68E A9 3F LDA #$3F A:02 X:FF Y:15 P:25 SP:FB CYC: 98 SL:212 C690 8D 04 40 STA $4004 = FF A:3F X:FF Y:15 P:25 SP:FB CYC:104 SL:212 C693 A9 9A LDA #$9A A:3F X:FF Y:15 P:25 SP:FB CYC:116 SL:212 C695 8D 05 40 STA $4005 = FF A:9A X:FF Y:15 P:A5 SP:FB CYC:122 SL:212 C698 A9 FF LDA #$FF A:9A X:FF Y:15 P:A5 SP:FB CYC:134 SL:212 C69A 8D 06 40 STA $4006 = FF A:FF X:FF Y:15 P:A5 SP:FB CYC:140 SL:212 C69D A9 00 LDA #$00 A:FF X:FF Y:15 P:A5 SP:FB CYC:152 SL:212 C69F 8D 07 40 STA $4007 = FF A:00 X:FF Y:15 P:27 SP:FB CYC:158 SL:212 C6A2 60 RTS A:00 X:FF Y:15 P:27 SP:FB CYC:170 SL:212 C66E 60 RTS A:00 X:FF Y:15 P:27 SP:FD CYC:188 SL:212