Req : "Audio Sculpture" (STX,...) even not running...

All about the serious stuff.

Moderators: Mug UK, Zorro 2, Moderator Team

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1952
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby Steven Seagal » Sun Oct 22, 2017 3:56 pm

ijor wrote:Not sure what is your point. There are several reasons why it could be different. I would actually be surprised if they would be the same.


Is it because sync is lost inside the sector?

User avatar
dlfrsilver
Atari God
Atari God
Posts: 1415
Joined: Mon Jan 31, 2005 1:41 am
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby dlfrsilver » Sun Oct 22, 2017 9:09 pm

ijor wrote:
dlfrsilver wrote:The only way to get beyond this problem is to prepare again with the tools we have a new master, that will be replicated with the boards like KF or SCP ... The only way is to devised how things must be, and make a new master.


A new master??? Do you mean copy protected with a "normal" protection? To do that you first need to crack the software, then re apply a different protection. Why would you want to do such a thing? If you already have a crack you trust, then just use the plain unprotected crack that could be written without specialized hardware. Writing back copy protected software makes sense for the original, unaltered version.

So please Brume, make a Pasti dump of the disk.

Brume did already.


There is a Pasti dump in this thread that was taken from a different version. I don't see any Pasti dump from Brume's disk. And note that for this purpose it should be done directly on the ST, not converted from other formats.


what i mean Ijor, is defining the format in order to make a new master, which could be written back on disk at any time.

The protection as described has been done by hand. Defining the format, the track data offset and so on would make the soft work.

Right now, since everything has been done by hand, it's not possible.
Now SPS France representative since the 19th of June 2014. Proud to be an SPS member !

ijor
Hardware Guru
Hardware Guru
Posts: 3098
Joined: Sat May 29, 2004 7:52 pm
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby ijor » Mon Oct 23, 2017 1:56 am

dlfrsilver wrote:what i mean Ijor, is defining the format in order to make a new master, which could be written back on disk at any time.
The protection as described has been done by hand. Defining the format, the track data offset and so on would make the soft work.
Right now, since everything has been done by hand, it's not possible.


But you can't do that without cracking the software. Or to be more precise, you do can define the format and track data for emulation purposes, but you won't be able to write it back (reliably) to a physical disk. That's the whole point of this protection.

The only way to write back a disk with this type of protection, (unless they made a mistake with the protection check software), is to crack it.

User avatar
dlfrsilver
Atari God
Atari God
Posts: 1415
Joined: Mon Jan 31, 2005 1:41 am
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby dlfrsilver » Mon Oct 23, 2017 12:35 pm

Frédéric was modifying the disk check routine each time he made a new disk.
Now SPS France representative since the 19th of June 2014. Proud to be an SPS member !

User avatar
npomarede
Atari God
Atari God
Posts: 1166
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby npomarede » Mon Oct 23, 2017 12:39 pm

dlfrsilver wrote:Frédéric was modifying the disk check routine each time he made a new disk.

This is what Ijor is saying : you need to know how the protection works to make a new disk ; and to know how the protection works, you must crack it first.

User avatar
Brume
Red eyes
Red eyes
Posts: 4095
Joined: Mon Apr 22, 2002 10:16 am
Location: France
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby Brume » Mon Oct 23, 2017 12:53 pm

dlfrsilver: is the only software that can't be dumped/duplicated with Kryoflux or is there other games/tools like this one?

ijor
Hardware Guru
Hardware Guru
Posts: 3098
Joined: Sat May 29, 2004 7:52 pm
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby ijor » Mon Oct 23, 2017 1:33 pm

dlfrsilver wrote:Frédéric was modifying the disk check routine each time he made a new disk.


He probably didn't modify the routine, but just the value (or key, or table). That's again the whole point, he couldn't copy the disk the same way we can't. Each time he tries, the disk comes out slightly different. So he has to read back the new written copy to see which results he get, and then modify the checksum/key values on the same disk (which must be on a different track) to match the result obtained on the copy protected track.

The only way to make a new working disk is to crack it, or do the same procedure as he did (write/read/modify) which needs some cracking anyway.

I will try to make the procedure more clear. He reads the specially copy protected track and compute a checksum (or hash, or whatever), he reads the sectors on the track, or at least the sector that spawns over the write splice. Again he computes some kind of checksum.

Each time you write this track the results would be different. This is again because the drive mechanism is not precise enough. There will always be same slight variation around the write splice area.

After reading back the values he saves them to some other track on the disk. Then at runtime, the protecion reads the track and the sectors(s) again and see if they match the stored valued.

npomarede wrote:This is what Ijor is saying : you need to know how the protection works to make a new disk ; and to know how the protection works, you must crack it first.


Not only just knowing, that won't help too much unless you want to perform the same write/read and modify procedure. To be able to write back this disk "normally", you have to crack it. Knowing the protection, even having the source, is not enough.

User avatar
dlfrsilver
Atari God
Atari God
Posts: 1415
Joined: Mon Jan 31, 2005 1:41 am
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby dlfrsilver » Mon Oct 23, 2017 3:46 pm

npomarede wrote:
dlfrsilver wrote:Frédéric was modifying the disk check routine each time he made a new disk.

This is what Ijor is saying : you need to know how the protection works to make a new disk ; and to know how the protection works, you must crack it first.


You need the source :)
Now SPS France representative since the 19th of June 2014. Proud to be an SPS member !

User avatar
dlfrsilver
Atari God
Atari God
Posts: 1415
Joined: Mon Jan 31, 2005 1:41 am
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby dlfrsilver » Mon Oct 23, 2017 3:48 pm

Brume wrote:dlfrsilver: is the only software that can't be dumped/duplicated with Kryoflux or is there other games/tools like this one?


It seems to be the first of its kind i know of. But, i know also that if the disk protection was exactly described in the IPF generator, a working original could possibly be made.

I'll get in touch with my colleagues about this protection.
Now SPS France representative since the 19th of June 2014. Proud to be an SPS member !

ijor
Hardware Guru
Hardware Guru
Posts: 3098
Joined: Sat May 29, 2004 7:52 pm
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby ijor » Mon Oct 23, 2017 5:35 pm

dlfrsilver wrote:But, i know also that if the disk protection was exactly described in the IPF generator, a working original could possibly be made.


Not necessarily. In theory you could describe many things that you won't be able to write back because of hardware limitations. e.g., you can describe a laser hole protection (may be currently is not supported, but there is no reason why you couldn't) and you could make it work under emulation, but you can't create a laser hole with a standard disk drive.

In theory, conceivable, it might be possible to write this protection with a very specialized software using lots of retries on a drive with a very stable rotation. You would need custom software that would try writing the track, read back and analyze, make minutes adjustments and try again ... Again, just conceivable, this procedure might work after many retries on a very stable drive.

User avatar
troed
Atari God
Atari God
Posts: 1197
Joined: Mon Apr 30, 2012 6:20 pm
Location: Sweden

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby troed » Wed Oct 25, 2017 11:01 am

edit: See later comments. There is code that crashes on track 2 but it's seemingly not a problem with what's located directly at $78000. No displacement needed.

Something's strange with track 2 as well.

First it's read with read track and loads the 0xDEADFACE magic found there into register D6. That's then used together with another magic calculated earlier (yes, I've traced every single instruction from boot sector up until this point) which is in register D4 (0xDC5EB064) to decode the contents of a sector read done of the whole track (5x1024 + 1x512) which has been read to $78000.

The code then jumps to $78000 and crashes (this is what Nicolas saw) since that code is not correct.

I spent quite some time looking into whether DEADFACE was the right key for D6 (it is) and even more whether DC5EB064 was the right key in D4 (it is) - and was even inclined to start bruteforcing possible keys when I realized that even if the code at $78000 is not correct there's a lot of correct code when looking at the rest of the block. Due to the nature of the decoding it's impossible for more than a single instruction or two to become correct by chance if the decryption keys aren't correct, so I'm 100% positive (really) that they are.

So, something's wrong with the content sector-loaded to $78000.

You'll get very far if you displace the code so that what starts at $780d2 is instead placed at $78000, i.e, you displace all the loaded code with the offset -$d2. This code will execute for a long while, and also verify the end track by looking for CD and pick up two bytes before and two bytes after the 0xDEADC0DE magic found there. This means I'm 100% positive (really) that the code that's executed here is valid. Before that it has also verified that our stack pointer is correct by hunting for the exact address used for calculating the precious D4 magic DC5EB064 as well.

But after a while this code will also crash, and I currently don't have a good theory as to why. It might be the code put into the address error vector that should've been decoded by a previous step, but I've found no other entry point that would've done that.

1) Either the sector read is in error due to some track protection I don't understand and the displacement I do with -$d2 is correct and something else I haven't found also need patching.

or

2) The sector read is correct and it's a few bytes in the beginning of the read sector to $78000 that are corrupted and _that_ code will fix both the later error I get as well as bra/jmp (not bsr, stack pointer cannot change due to later validation) to $780d2.

The above holds true for both the claimed "v1.5" image as well as Brume's 1.3 dumps. Track 2 is different between these dumps _after_ the first 8 bytes - and that's interesting since those are the bytes that cause the initial crash when jumping to $78000. Also, I've verified that there's no difference between the .STX and .CTR dumps by Brume when it comes to this code.

If you want to quickly get to the same point I'm at, put a breakpoint at $60db6 with Hatari and then boot the AS image. Once that breakpoint hits, displace the code at $78000 with -$d2. Then execute the jmp to $78000 and continue tracing. (You can of course also jump to $780d2 directly, I've seen no difference in what happens between those two methods I think).

/Troed of SYNC (or maybe this activity would go under my ICS affiliation instead .. heh)

note: I've not tried writing an image to disk and boot on real hw.

edit: Content added for the interested readers, all from the "v1.5" image:

Track 2 as seen by READ TRACK:

Code: Select all

09C9C9C9 C9C9C9C9 C9C9C9C9 C9C9C9C9 C9C9C9C9 C9C9C9C9 C9C9C514 0BCDB4F7 00DEADFA CE000000 00000000 0014A1A1 FE020001 0337264E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E000000 00000000 00000000 000114A1 A1FB02F1 14000700 481C09C8 1067C040 0C3E460E 20640098 3F800000 30410400 841C020E 00038802 47808006 003278C7 CC000CC8 402601C2 10007004 0006C270 0201CF01 03301200 01008E01 FFC24008 403C7800 018300E6 C2000C42 41006008 3063F064 02084100 E0180003 00804840 01FE7C00 7061C001 E3E01338 2004F000 21C66001 3908C009 1C0404C1 00078018 01000023 C4E07218 109FE004 00C00110 80060080 219E0006 04900200 10100047 E008009E 0F191384 F3CF8021 8C090309 80127300 110C0019 02000F01 00001090 20000330 FCC04900 82100001 80100244 C01C4C84 F024001E 04086001 261C0004 03001200 084C8818 1CF3FF06 673C7C10 00002433 0047E198 1003F04E 01F20380 0103CF80 F0000030 C20024E0 10020001 81024002 0F804070 C3000004 CFC0CC00 00082040 00008208 F0204E64 00093981 C90CE001 F0202302 40021000 00080060 41F18302 1F2003E0 00202010 02204003 27004F20 200080C0 24000C03 C8989002 00210C13 00218201 30000FE0 80007F00 483F8640 20006000 01818107 8439C040 7E100180 0FF99C00 08020082 02010010 410E0419 FF9C0270 C04007F8 C2061F00 3E000000 60011C7F 01807220 2400038C C2007018 18902600 0000F00C 1E483E1F 8000C881 86020101 C0E00849 9C0040C4 03138020 3300004F 00080300 18C2030F 927C0800 00702493 C2602078 70864400 44013201 F0082664 04000400 4640007C C4430400 E10383F0 90C24040 01203001 0E383F0C 8800F840 2000E000 0000CC66 40000042 002403E0 24E0471F 0E3C6024 10C0E083 FE187064 1000101E 00310481 3E008043 06100700 30C20000 4003C006 02030E42 0000E422 24012406 18000004 440601E7 89C000FE 00782244 00901207 80C401C0 71912010 C8018072 1E000020 000E0222 3004C000 020C1001 27002000 130E3E1C 623E4319 8100F001 0C001230 0FE00840 00080400 80021E01 801C00C1 F10381C0 00800000 E7808303 20000060 02038088 00101FF0 8040101C E4010000 030004C0 8493C003 0200C038 980880C0 40003980 089C007F 071C9E07 87001240 C3E3E640 00027E02 02004000 001804C6 09E0070F C230CFE6 007F000C 6088000F 0018813F C403E001 9027F001 0F0040C2 10108210 00060023 020E6079 03C20018 1984C0E1 30010000 1CC9227E 31079807 1E09C091 988000E2 0380020C 08401073 001C03C2 7C301800 64001C08 F8021202 0400201F 10064030 60800800 13C0C260 1E460002 10240647 010020CE 00702600 C00FC264 CC1C0081 80080131 CE026003 30C24080 78040719 F0440878 009FCCC2 70C27240 01000020 01000001 80027FCC 000FCC02 4F83C301 F004F380 03903C3F 8000027C 02641C08 73900E78 03030404 8208000C 00464043 908C9047 1F100447 18C03E00 7F0F800C 08060000 7800204C 0003CC26 40C09204 0F3C0012 12121212 12121212 12121212 12121212 12121212 12121212 1FFFFFFF FFFFFFFF E1A1A1FE 02000203 62754E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 00000000 00000000 00000000 0114A1A1 FBDB6FA3 F6CFD6C4 AB55D6BA 3BF8D988 08CAE125 94AAE596 4F7B3BF1 B343CC8B 686E7D6F 6AD3ACD9 E89E583F 9DB8C2ED 65BA71A4 7E7C141C 1C0303E2 020009CF 867800F8 2004C032 00038060 42002000 400CC31C 11080090 08C81800 01C9FF89 81F063E0 1C902000 60001302 3E4024C8 4E006400 81920400 08020208 000803E2 0C000000 78660800 0F1FE001 0424F008 080C1C00 000E0187 E4000C06 10040044 C0886263 80200800 04018E00 04402084 80C08210 720C0238 104E63C0 1C004010 18000406 40003800 42120202 1E00320F 00060080 00604041 C0820440 80098002 0180C110 81200E00 06020180 88006618 24C42440 0720CC22 00898721 064E0008 64C01882 0044C4C2 00FC2042 60FF0800 F0240021 F0000198 63000022 00898E00 31180090 91060042 0086009F 38C21092 0030E601 99F80000 E4E00980 0E000CCE 09FF8120 0F200C06 0F30707C C4000800 C01C70E0 04600103 018887C9 20CC0000 032383C0 87E0C001 90201100 20209200 30C8F019 860E24C0 08306000 0180C01C C1000044 00400101 C2000100 FF8C8100 4003C800 0CC82486 002700C0 4F20000E 01E080C1 003E6030 02480200 3CE00230 6002783C 01933860 79100001 80C87132 20008006 000000E6 20003980 0003F0C2 181F0380 081F8000 03C81E04 C9E00180 CCC41004 00006001 C0800000 2070020C 40600E62 02000044 0F980900 F9C60381 21062100 01C0011F C2620199 0C030C80 08C86018 9F000181 00270400 1030000C 20061CE0 70070030 8663C006 43F08C1F 00880409 0093C004 E0100481 0080C800 23CF8006 00139E04 33006000 0000E600 3C780020 08E1F1C0 E04C0403 8007F1E4 060064C3 01039004 01080C20 60E010C0 31040032 30E04304 02000480 0E617090 00218088 22008010 100F8108 0278621C 088010C6 06200000 00000C38 C1080600 084C0013 1F2000E1 8C30C221 F20867E0 62000E39 01010430 7008C203 08000081 240138C0 2710C820 80003240 C06490C8 01800081 9E70078C 10100022 27070004 06009980 00006010 20008082 00C10000 00700000 0000009E 0800E7C1 86600218 00108C01 00090071 91031004 0020004C 19CC0422 00008010 00000608 93800033 10302261 833C1008 00718070 01004818 2027F846 41E20002 40062600 00060F32 60018398 80010480 00664C06 01122438 00FE0210 409E0800 19004301 0C4060E0 F0030C90 2010018F F8000180 080783F3 E3C018C4 39213844 08819399 80100248 C0004E44 E4462040 02098840 6202411C 1C081020 E0240800 03810C41 E6010801 88010010 08110670 03901389 00181030 00198000 8C19E003 83100006 30393004 00081310 02040E43 F2018800 02081260 181809C0 43271C06 00600006 08400030 3201C649 0221C049 06310389 3801C10E 4600600C 00382007 00082000 00900C10 00003800 84001393 93939393 93939393 93939393 93939393 93939393 93939380 00000000 00000014 A1A1FE02 00030351 444E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E03 FFFFFFFF FFFFFFFF FFFFFFFC C2A1A1FB C0E780B8 C2AF6014 3E7C1000 1818701F 02018E08 46198CC7 C0013002 44020200 3E380204 00200C00 0E000007 0904009C 18004600 24000730 00818131 0081F810 1F001F24 00180042 18000073 003F8303 07020808 03882084 06030F80 90060000 901F8080 E0464C00 4898F012 02120018 0021C00E 24384400 07120702 0080F8C2 644FC200 02000301 000803CC 04420000 07FCE0F1 C01C01C0 78010040 791C0200 09E01060 F2004303 0427C202 0102263F 000F8001 E0903003 0020E010 FC1F8040 0002000C 90FC0800 0C030027 824FC180 47FC041C 81303040 08000021 07006001 00001012 0C086000 04040208 2791E00C C2400010 2103C001 CE404FCC 20C80001 80F8000E 0401C03C 33008244 3E700810 0203C200 801003C1 1000000E 2023C202 0648780F 84F80900 00644C02 6607C260 00C01890 4FC78049 FC201218 E1381C20 12102210 00080021 9E0C8187 E0001E70 03F00701 0700CC06 40840000 03E20F8C 8112781C 18708011 E3881840 C2019010 6323F080 4130183C 9CC20042 004C00FC 0000FF81 9F820000 00318230 0400043C 09C09C07 C0700906 027F8801 C0020C1F 9E0880C3 90203200 03083200 0C3C70F0 30000040 3C423C7F 201EC200 01206000 80100020 3041C4E0 0270F084 808000E7 8860023C E00E0608 3CF8C20C 9040C1C3 24400043 0240F003 C0403808 11C8F867 86248710 01CC0001 81C90824 03006000 01000020 21066011 0E640226 00020000 0800440E 07C00678 00800118 E0102087 980C0002 223C0930 780C0600 4830320C 7E002000 02007841 03003303 83C83200 003C3001 E1011800 008C0607 E4200098 04018032 0F1C0800 01040010 40001C18 04181040 0E400CE0 02078004 CF240630 60324CC1 803F0000 22042003 93E460C0 44011998 20201000 18000061 103C0271 80041000 0101004C 2046C201 E4820318 0040C081 84080010 03004000 0E40C24F 86C21060 F0C900E0 03009800 181E4901 E00C0030 08008006 00218040 48000820 000C0023 0007C207 80000000 E7800010 47C24008 C6207F23 83109110 600F3000 60279078 001183F0 32032101 90004086 02130387 80020040 0020E00F C0798040 38410071 C3CF0644 443CC00C 0F9E1027 9C060860 081F0E03 C401FE00 08060000 00006020 4E180C31 00000020 87C3C080 021E300C 84E10803 80100064 00000404 004E3103 98C20304 20F0E038 1C830418 19247E00 0F2601C8 00020800 F00900C3 E001CC08 840E2400 CC03C204 87C20481 00044300 70000100 30101E24 C0F0003F 2702121C C01840C7 E0380000 484780F8 84071C0C 0203263C 3E0C3100 12006024 0F10C001 88003040 07818006 046491E1 E4338010 1804E702 60091E10 41130484 00E00030 18041C90 00000472 3C840E10 E00421C0 78401008 00881E78 C20F0007 C0000018 60E0E10C CE010018 03C01204 4021809C 10E24401 93939393 93939393 93939393 93939393 93939393 93939393 93800000 00000000 0014A1A1 FE020004 03C8D34E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E000000 00000000 00000000 000114A1 A1FB5B5D 188141F8 7A343D3C F09278FB A254E4E8 C90BEA83 A7BA2B17 E40E0EC7 41F439DA F7B3DDE7 310F8588 5D131746 99ABD1D5 D8C3C92F DAC7CA89 A2E0E0C2 FAB726E9 F1A9FA37 C44D9C5A 8C2C92E5 E893EDB0 16478394 0EF924D6 0A140000 01810203 00000062 39080991 1F186006 640C0001 92000004 041FC0C9 040C0213 8000E008 79000430 00231080 00480C06 30713300 980C1000 23FC381F 8F10F001 380C081E 046000C4 07FF0440 20009100 3C900708 00000040 190E4000 0C1C8F03 0033C08F 818C0C00 01803F0C 0210C027 C2640C40 32100008 08108260 4219C630 021C9C10 38F86008 4C0C8007 21824800 007C0060 40000E7C 8040038C C24000C9 2678001E 00001838 1860467F 23C38000 220E4021 C0881841 E0060244 1C0380C0 7E009190 108783C0 430204F0 1F260004 203103F0 200CF93F 83C4F800 938080F8 04C42020 38006080 81208440 10FC2078 86000401 800F80E0 4C060208 44024018 10806178 C2419860 080C060C 80009300 40460803 093800C0 47C80730 7209CFF9 00187802 00021C90 30619E66 10067218 67303000 0109C07E 120080E0 00000001 2398080F 3FF0C207 248C0001 C2001C01 800908C8 1310C8E0 1C0C0801 1C0C000C 81080190 E421110F 2420E61C 1C700300 00000802 0020007E 300C0000 00600020 0F800804 01386100 61041006 11008007 00123031 C0000380 9CC2013F F0980001 CC0C7C0F 00FC3222 1FE003E2 00030338 20601320 84024003 92084900 00418810 600008CF 80800020 71C03000 60908F00 0E080983 07000000 40000C00 0C004011 C0240807 CC1F0200 10008640 C700C11E 302403C2 06060000 00801240 00084901 938E0000 92080438 1C499C00 30802001 0303C380 0040093C 1209C071 19001804 793C100C C207C303 000C0400 12478640 2060C411 9800301F C2070000 2031C0F8 00080E07 99F1E3C0 00190803 990604C0 104060F0 006049C0 04332000 410301E0 C21C0600 313009FE 00327219 8800110E 00309890 1F030C81 8E010327 260C0630 F0124400 00790E1C 01C109C7 C0000484 39800000 1E600040 3C8007F8 248013FF FFFFCE78 C7FFFF98 248403F8 1C3FFC81 F39FF038 067E2038 041E2038 040E2120 8398007E 21C633C3 04C0E47E 0C1E1C00 FC070430 878F0830 FC010600 42020F30 10038E10 F0124400 90104408 00408401 3318019F C3F0FFF8 C3300738 03302730 033003FF C3F9FFFF C12004E0 01220E3E 033020F0 03060620 00F80800 012000E6 13FFE79E 11E7F126 30623E07 FFFFC218 73E73207 0FC00E01 0FE1F33F E7E739C0 67E70038 783FCFFF FFFFE7F8 0783830C C27184F3 84C3C1F1 84E038FF 80787010 E61184F3 8443C1F1 84601C78 0079FF31 FE09FC80 3099FCCF FCE08F3F F063F13F FFE00600 00103073 E6C2649E 0FE42606 23F80CE0 30800006 64842600 26380483 211E0000 FFFC0040 009C9C9C 9C9C9C9C 9C9C9C9C 9C9C9C9C 9C9C9C9C 9C9C9C9C 9C9C0000 00000000 000114A1 A1FE0200 0503FBE2 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E0000 00000000 00000000 00000114 A1A1FB4A D6B00B2A 00A1BB2E 08B9C25A 08B1070A C8B1070A C8A00262 D0300300 0A303A71 04083500 04303A27 52B95651 6F8B5605 FA202400 E8120000 E0DE2C00 0023E800 E817C0FB B551FC2E DC21FE00 E0018001 E221FC22 A815FC72 CA12FED4 A37035FF 1A03B472 CAF230B6 4F13982F B54000D1 22147180 601001C2 7E080081 3E110C61 3FF9E17F 10021800 27926184 00000000 60118200 41826180 00000332 7FF26480 43F26100 439327F8 0001E00F 0E0C6033 C408FE0F 801F2067 F0070CC2 7C607330 7CE67FFF C004FFFF C13C0240 FFF3C200 701F0C93 20408000 22000200 7020E1FF F0004104 E100E780 F9E044C0 7130204C 19006004 33066004 01F004C0 F0204307 01C7FFFF FFFFE19C 80103FC0 000C3061 C2020303 86062390 93F3F3C4 FF90F3C6 72703F90 F3C4F270 3F9073F3 E010F240 3F9073F3 E0207240 3F9073F3 E0003241 3F9073F3 E0FC7240 3F9073F3 E0023240 3F9073F3 FF007206 3F9073F3 FF303204 3F9073F3 FE463204 3F9073F3 FE403201 3F9073F3 F0433207 3F90F24C 32403F90 F2703241 399073C4 F24861F0 F24E7990 73C7124F FF9073C7 F0C8327E 3990403F 1E7C3380 7E793FFF FFC3F0C6 3E673FFF FFFFF039 3E4C2306 7E733FFF FFFFF824 3E047FFF FFFFF820 7E01E7C0 790063FE 1FC3F0E0 7390F260 73F86000 01C00100 70487380 72013F01 12607398 7F106310 610020F0 6100600E 3FC330C2 41FF0200 387F0C80 38FF0CC2 01FF0218 00840080 387F0CF0 0049807E 4000E3C9 8C4FE180 0099007E 7FFF0CCE 01CFE180 061C03FE 7FFF0CCE 01E701CE 3C10024E 01F00418 01CFE180 00000206 01C70304 1F24907F C1C00780 3980FC4F 1861F843 9E04FCFF FE00FC4F 18E1E044 4184F04F 1F80CC7F C1C01809 3C04004E 3E489FFF C1C01807 2007804F 0180804F 018191FE 41840C49 0184C07E 41840C49 0184C004 018FFCCF 018FFF8C 89CE104F 07CE13CF 13C0927C 39FFF0F9 044E00CF E1F924CF 01C7C000 9F00604E 12000040 90001878 0923084F 010F0004 9C001879 C4004007 01CE1E79 C4FFFFF9 008C03CF 01CE1FFF E788C0F3 0383C0F8 408CC0F0 018FC3FF F3E601FF C07E7206 1300C1CE 104E01CE 104E0187 F88CC3FF 89FC41FF 0FC10386 1300C3CE 01CE4FF1 80CE07CE 01CE4FF1 99CE03CE 104EC279 C039C9FE 0199C039 C039C9FE 0439C079 C039C9F0 4219C079 C23903F9 C039C9FE 04790339 C2390273 C0790E19 C2790418 F839C303 C2387F30 06186004 421E0408 70044018 6430003C F23E7C1C C004603F FFFE010F F03FE03F F0F20CC2 6661E7C7 30F2703E 0E73C640 47C1C092 0E73C000 4041C002 723FE600 7FF20F07 FF03F0C0 01386080 7873E180 7FF89012 6720803F 200080E3 E479F0CC 8E7801E0 787C81E1 871E3983 871E7C80 FFFFE087 C0027800 F064930C 0E0F8004 9F01F800 8E47FC81 8701F8E0 08049980 FFFFFC03 C8018000 00272727 27272727 27272727 27272727 27272727 27272727 27270000 00000000 000014A1 A1FE0200 0602BE90 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E0000 00000000 00000000 00000114 A1A1FB25 1A110167 1A64D827 E661E000 10612066 1A601646 FD617C01 1A2F7A06 1888B44E 7B080A08 1466201E 08441CFC 02301839 E0181CC3 F9001FC0 2067F866 0061C7F0 E1C20033 003E00C8 70020070 1FC9C821 8200C042 1078F849 08200000 10700780 00302180 183C807F FFF00380 01801023 80311901 00389180 84311922 71389180 84311982 701F1024 18100263 9010381F FFF11900 FFF11901 38187243 FF3910FE 1F802000 030107FF FFC20607 0FC2010C F9200079 11200039 08800007 FF8FC206 399C0103 C1FFFF90 44204006 60013E40 001C9CC0 00304220 04000019 9E1F3210 00810E40 041F320E 0207F3FF 921E00FF 1F0E0423 1C411E70 00833000 00202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 20202020 00380121 C20BCDB4 F7DEADC0 DEDEAF4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E 4E4E4E4E


Track 2 as seen by READ SECTORS:

Code: Select all

02F14AFA 85F9361F 213A7881 796F1C09 8D0CE897 F22C03D5 DF6C7966 9752961F CB0D6DC3 3EC983B2 FD8EF448 31811BAF 1129748E A29CEED0 EB2EB714 86F4FE10 6A544764 AFDE6F30 DE005275 4E6B060D DD78F154 229BD633 934EF1F6 78D180B1 3A9E72CE E1EC75ED 8EA6B253 5D40103E B0F1C3AB 4181D488 69B720BE B94311DD 484A62FE 4C2F3B23 CD6B077C 7ACEABF9 8321B094 7CA401BF 35A35FCC A77D1DE5 A944175D 1B24ED9E D4B4DBD3 017E7564 160C4C87 208207D9 462E4B8E 477C908A B4CA3F7C 4A975E0D 4BBEFCA4 A95FAD88 E023B24D E594EBFF 45ACF593 237C3225 20B9376C 1F3A71B7 C91C3F6D 3D8DFC9E BA722674 5C20800D 11083034 EEBDA928 8AF30144 54FF80B2 1F409B85 56CE8205 E0ABDFE8 A7AA4877 35A7F6F1 72A4EDE5 81ACDC38 A2BEAB48 80A88EBD F79A5CFA EBB9A798 3E6C844F DA921170 938856D0 2A7E62E4 DFE53BDF 5796FC7C B031E365 025DE06A D65E6B3D E66CFAE2 435C8256 6ED968F6 4FF68AA0 99193F65 F6528D23 DA71A5B2 35EE8059 ABD403FC 960144BE 57BC6AB5 51517341 CA10DCEC 0735B1DA 80110FEE 95A569E5 6553B72C F286CF10 010F6428 ACB6C014 B8E07FC0 B6B7AB8D BA61806E 3E84CAC9 F5BC314A B8763632 548B6EBF D06D1E09 340E037F B133E38E CBE76170 BD292217 B9B196C6 436CEC45 6EE9075D 2EC6AA29 D8A04903 A6AAED0A 9248A47E 7C1439C4 CBFCCBB2 27F03D9E 444B4ABA CFD4C4F7 D408CCA2 CAE852F0 B01C9C52 6A5AB935 1AA9C30B 01C4CDB4 0E55376C 2EF577FC 46225F7B F652ED25 F02D243A 61814306 3725946C 3CF0028A 1E269BAA 9E83BB19 E4B9037C BA71E39E A1DF1C52 AFFE5FF0 5F63F2F1 4272AD6C 273326F9 26A28BF5 FEE667A2 B820C85D F402EA0F 3265D49E 9360AC67 D87E1899 2A9C4AA8 B61382F5 55356EC3 B3331D64 5ADED2C7 9DB92155 3DB69143 02863302 5188D96C 1AE9C55F 931AC03D CE6EEDCF 66ECF5B2 83E8BE85 B4681970 D877ACED 5B7420AC B1513B6B 7A3EB2F0 D4CAEB9E 801CB66A 95842759 7BDAF1F7 647CE490 6FD1D3D4 6B0C8ACC FC6E7ADF 08DACC87 BA01E184 83A0A1EB 925C5030 227557F2 02F373EA 6B557E8B E462C83F E140A628 8047DC02 D78C6997 7783B719 5200CDE0 6ED12E40 2EF38374 D8E53F29 E72EED47 BA63E584 7C12A0A5 DD1D11C8 D87236F2 FDFF0892 640633C1 1B430690 B93119DD A86761FA A58B9CD7 3423B70B 629038BC 6FD1376C 2E607794 96953D69 F40CEF13 B8F1A6EE 7EB482A3 91AC131E DA94A935 130F4AA9 621F70B9 1B62D605 22445877 CE8DDCAA 91842F23 AF114953 F83A9F86 20599B28 2ED20114 871C849D F676AFCD BE57EAEE 3AAC8011 AF5011EC 9034147A 06D9043A DC27C140 2ABAFC81 FC89A152 8427D082 B45C69A9 34B3FEF1 BE989F9C 27312698 6066A998 631FC0AE 80503EF1 53E8F5B5 83EECE91 BB5411C8 9D1524D9 DB6FA3F6 CFD6C4AB 55D6BA3B F8D98808 CAE12594 AAE5964F 7B3BF1B3 43CC8B68 6E7D6F6A D3ACD9E8 9E583F9D B8C2ED65 BA71A47E 7C14A1E1 B46C0CDC FF521038 82F702CF B91AC4B7 743B8A9C DFCDAB9F D11C61E6 52B725D3 12A3FF6E 1200322A 078C0B61 27CBFD8B FFE47CC0 96C91290 DB89F536 24A9B7F2 F4ACF3FE B2FC0CD1 55F77582 88F37570 600DBA69 C905D3D3 F161AFBE F0D63809 ED51E8E7 A97E991F 328C8C3D 4BD3D5F9 7630EB79 9ACF293F 1F2CE584 B15CC3E7 908C1B61 FB9EE762 FD597896 AFC36A94 E4BCECA0 B7C4B06A B8ED3D7E 8D969615 34E9973B 723DF4BE 2B16672A 4FF0AB68 DCDA3F33 B788A2C9 19499B68 4B11CCFF 32284E78 90FAD389 1DA32CAF 99191CDF 01CB9C8D 0073AD05 C9EFCA05 D7DE238C 55AB4CBD 3230DEC6 63AD2726 78BE94D5 38D72042 9CA496E8 A11D4440 56BEA121 BA475E1D EA221640 07496A09 AE3D1A08 D0D0232E FA5BE3AC 30E1DB31 ED4E8B46 650249A2 3DAAAE89 87836701 A2AD44E9 FCCFD9B9 649EE8E2 60DC471A 1922F668 F15BB747 63D4234B EBD336F3 D74FC395 754BE006 27CDD2FA 82577622 69251DE9 0AE35209 6AB61FC1 A5A2CBD8 11D8BD92 7797B821 AE98D15B 90582AC4 8871B04C DEEF45E2 70C8996E E57B1AFD 7FA119ED A846DEEF 80A71D02 A1BA9F01 BAFD609B 06C8905B 51F888CB 2D4F75EC 7ED0E96D 5BF6742F E68CEC77 8465A56D 54CE811E 937810C7 E1B272C6 73FBB0BD 5302919B C44E3A8A 25566251 74640FAE C54DF90B 3DBCF8F5 F6397D1C 21B0DF0A A8E51182 D51380E6 3C0BA66B 2A4AA482 FF2174BB 25CDE562 57B98205 B71EBC84 1F288D51 ADDBBEA1 16D8305B E9DA61C0 C361D22D 3A856B00 C12B1DD1 228ACE84 DD354A7E 3951E1F4 A2A8CD3F F898A173 8B3D9D6B 27EA1148 727FB4A3 F33CCEB2 AA7A7D03 E53DC828 CE1732DE 718D8CDA BBEEDAFB 1C31672E 8EBF391B D64604EB B0A31453 38134A20 2E32DFC3 09597965 1A1D4C72 B1CDD5AC A927A90C 6B21944F 3CF5EB12 74562494 4FE8F55C B8821DA0 C59797B5 3321E17D E5A36C88 D776BA2B 973DBCFC F35479EA AF6A15F6 BF57F7B4 83CBB420 68A22F53 8FB594C7 F9DBC9EA 1899719F 66ED3AD6 478846E7 32BBD4DA 9D5D55E2 CC90DBEF 11951F32 28D10797 CFDE18D6 1AA95E4D 8F2D200E 6278336A D25B6323 DFDBE2C1 123BB8F0 8CAAA964 BDB62246 A3699327 0EFC03D2 9A74834D 7F89FA51 E9467A3C 3C1AF1C4 9B3A95A8 C00DEBE8 FFCBA0B0 10305F8C 6509390E 654CD890 88AB9D72 4C5B7A42 6426633A 7F72C8CE 7E33B279 85854E9D 3C3F25CF 5D50B946 7822A94E A8CB79AF 97CB99A2 1AB09790 C9578D95 1FAF88F5 54C68837 B0D195AF 631D091A A7DDCB91 9B72A7C2 5012B8CD 7DD34E92 368E8AC8 5A712186 A37A356B A2CE77AF 1B13B862 49B3387A 49631950 C90DE859 C263EA2B 46BD0B2F E17B4F35 ED749747 9EB6FB0F C0E780B8 C2AF60A6 040B377F 1D143F03 A5D1879C C51188C0 AB723B64 CF65A57E 061EA74D 7E768BFA 85BDEAC3 93CAB90F 1FACC57E 4D6AC237 69715232 E9B0172F 02FF024A AF1774A5 1B76FC23 AE01E3A3 C3E79E9A E19669CF 45A28169 3AC575D9 3F01D968 54C48BD4 99183D25 E726AF1A BA70EB86 4E1CCEDF C3274367 E9B818A4 4C814DDD CED7C7E5 5537411E 994EEBAE 8010D061 EA1D61E8 35A6F978 261BCDDB 20BA68D0 4BA9C5C7 9C814D4E E7CC8C06 D5035BE0 B26C7FC7 6CD0EE70 1602A96D FD4BB512 50153B5D 1B46FC83 C901E3F9 801D9E12 A46C69BF 35ABF4E5 87F8FDE5 6F566A4F 1F38BDAB 96954D34 8260ED14 9BBBA54A 5C1D7A10 9B9011CD 13BD5E2F 02F6B0B9 BE16C144 553499C0 8773E6AC DC52DCB5 9B50699F 7BEAC32F 314ECD89 28350390 2D27FBD8 991AC88D 8522ED46 F8C9A406 0F648073 D938C390 B872A939 5339B574 DFF3883C 4A8E037F A821AB01 BE1D9E1A C46A27CE 7BDAD703 3C0C4F99 20B868E1 CD69830C D8E5C52A 89E9A313 01CEA591 78D04852 DA72BA45 EC05ED7C 00D880D3 55DFB518 D31BE7BF E7054874 85A06E15 4963D200 CFE87DB2 C68082CC F4509D2F 12F751CD 136DC506 1C171757 6E7D0673 06012B82 96D7C9B1 56A7FCDD B958B3C3 21ED90E0 E525E5BF A10651FD 9821B615 16682062 9E24B2A2 C28933BA F38E92A0 AA83F3F8 6E7CC260 71051927 0CEF423B FB45424A 793A8D71 55BF4DFA F9B94F11 B4CA1137 9915B79B 55B657D3 2A1702AB 105EE5BD CC61D4A9 E704562B EE99983A 48D06A3D 1B7278E8 9A301F69 EDFD95D0 72CB8AF8 8B858258 9BBFD838 D5414D66 2FEF5317 8A809CB5 B23E95E3 544D0615 2DF7A596 D669ADBE 16379A2E 69F5097D 10DDCB83 57910496 8C58B449 11A2BC07 B7B4CE9C AB424098 D1599BA6 223CB4BA 776E37B5 E8A53A0D A431B74D 3FEEB2B3 AC8E74C5 2E824F3D 18FFE6C7 4D8E6CB5 E9AF1F65 EBB427C5 240A29CD 1E0E24AA 1DB8FA45 DAC7C124 B41D63BD 8D65DE55 B1FB945B 3B27BDE7 95EB63BB 98BBB053 60B7DD6D 7C20AFFB 9A60A4DF 98C67402 61A33933 347F823A D47E413C 1BAB31E0 2A27A273 513FECF9 46E722A1 C1ADA7FC DD56687A 80BC11EC D61CF2DC 30A082C4 CCCE08EE 8A81072A 410B4594 579F0386 E0CAB007 5E97C7D5 5D7D747E 54871E8A 337FF5B6 69C0A0D9 EFE50637 89487396 E1ED2BFC 4EFBD7CB 4BD48632 A114F469 CF070FC3 A13479A3 A24980FE B048F613 EBDCB36B 05F27B1C 0BAA1153 29F0C97B 116C52A4 E0A549D2 BD4CA35C 2B5FB2FE 37350648 A83FF602 43652508 AB1CB8C0 6A1DEAFC 94C1A819 4B430B8E A6E2460A 058E32ED 25AC6E4E 8338BD71 977A2CAA C1B1FBC7 4C493070 4E21EB3D 1B4843E4 7B930734 D323C9CE A877DE37 15CB093B BF5F4C26 09CA8738 5F4E50FC 1CAF2D9F 69950414 F05FF815 7F5BA28F 0B0A5888 572B71FA 0ED27CCD A71E90B3 5B5D1881 41F87A34 3D3CF092 78FBA254 E4E8C90B EA83A7BA 2B17E40E 0EC741F4 39DAF7B3 DDE7310F 85885D13 174699AB D1D5D8C3 C92FDAC7 CA89A2E0 E0C2FAB7 26E9F1A9 FA37C44D 9C5A8C2C 92E5E893 EDB01647 83940EF9 24D60A29 6ABBD47C E9E8F5AF D71984E5 E44CC0C5 17D11363 6FAC495F 56D2D2C0 2A24F2E3 B9C855DE 1AA704D7 D38DBD98 CE6FDB26 A2D18D0C 88AA4763 CAD59802 874060CA 0FAC87E3 6541F315 5A335000 B33F9DEE 4CF7824D B0E5D5FA BF35C4A1 2D6F62C2 60D8FD88 3A607C62 E3EBFC76 80A3F94E 2E905227 C6751396 DBCD4D94 B22A7388 631F5384 869D0C0A 35CE4544 D76138D2 4AB77606 EE2A776D 4204DE75 B0C526AB C49220DF D835BFE8 F0F8E366 2013070E ADF33427 D385CCA8 E582B62B 26686B0A C5A03D49 89E9CE0F 07E7153A 41B8123A EA52F197 01D2D440 900F0640 DEC90F4F 40AE4673 F2D0AAE2 CBCB934E 66B9C072 E0CA3B5A 7D8DDC0F C3A45E35 3CA67D25 A8F9CBE2 9052688A 3BCB45E3 44D5D491 F66E63CD 71C90DBC 6A604DA1 1E134840 09D68E0B B2FB5284 9D163882 239F6213 8A211B16 BD79485A 03935CEC 3D5FEB6D B9308ECB 410014F8 49315BB6 1CADE17A 2FB25313 A467130B 61F1D2FA 6151BBD1 36535A25 09CE6650 49CD08A1 E185F456 BF75D3F4 F74B6A80 C571AFDF EE8ADD4A F02DD2D9 BA438A6F 473CB2AC 732E9B5C 377262A3 0DAB7A1E 90A7F200 3916DB50 8E8C0A83 E80A2667 0075E065 AFE2E21A 54772279 4D64FBE1 269493AF FCD19D34 7D6E9881 D9BF767C 30BE2AB4 7939836A 859A9163 C2EEAABC B5DF8FF5 8EECD530 F64F96C0 8B02A6B5 2FF9C4F8 C378B306 364BE295 1F175FFE A6B493EE B6724F44 8616DB64 9E573854 32442EB8 E569BBCA 8D8386AD B3AE483C 9A43D0CC 4BEC5F30 483CEA23 9F038E8B D63F376C 930513F9 D1632CC4 5EE8DC05 3A16AAB3 B18540AE F4AC3E08 818307FD F89CBB08 9A3A4569 A6E341F7 A2A4875E 5112DBE7 9F1A82C7 285E2B51 91AC803F B121388C FFB99C36 F1C8C978 1D144D8C 3F9B1212 34563141 59265F75 A0942875 86948606 B7FA4E70 8ABFFAA8 235F66F0 4DFA00F2 4EF90000 000420C6 000008F2 4E7B00F8 70004E81 0801F0DA 2032F0DA 6832F0DA 6C32934B 08DB6032 8631071E 45C26034 68386B40 6E1A71CA 0C1CB140 559E3567 3F341179 5D0C3941 59265749 79667CBB A6CE7F91 18DE8807 01C000C7 117E10BB 1172117B 117B0005 00800006 937643FF 933C303B 117341FD 1A3E32DF 40B4FFFD 93FD4239 00020839 82019231 63303600 000A51C2 04227C38 0ED87B38 05022004 04210DC4 042EA1C1 60080000 000401FC 161E38A4 31C821C8 A0B031C8 761801FC 142D3847 31C821CC A0B031CC 770C1DFC 10023006 90096E39 10088008 6982003C 60320000 77C6FB57 2E3C2045 22483402 722A3300 D44351CB FFFA224A 722AF230 B64F1398 2FB54000 4AD6B00B 2A00A1BB 2E08B9C2 5A08B107 0AC8B107 0AC8A002 62D03003 000A303A 71040835 0004303A 2752B956 516F8B56 05FA2024 00E81200 00E0DE2C 000023E8 00E817C0 FBB551FC 2EDC21FE 00E00180 01E221FC 22A815FC 72CA12FE D4A37035 FF1A03B4 72CAF230 B64F1398 2FB54000 D12290C7 B1FCF7C5 2034BBCF 90399463 90008290 0CEF946F B90491C7 3FF5BFBB B1FCC69F F3C591C7 BBEEBD88 90009127 B38091CF F3848900 5AEB41FA 0A1A31D8 8336601A 05EC09D1 00BB0A29 031F088D 02110000 3BD20000 2C82B93A 0008A76C 37038922 6CE9AB5E 66FAE6FC 2A687000 3AD4D2C8 72A84178 107CC8FC 323E7C8F 13F45D4E 23C45D4F B03D48F8 366CA2C3 50C00000 00007109 DF3600BA DD8A2C50 A7A563E1 47C66139 202020C8 012820C4 243A0128 20C8243E 013C2020 753824AA 013C2020 7A7424B6 013C2020 76BA24B2 013C2020 780C24BE 013C2020 7D6624BA 013C2020 035425C6 013C2020 022E25CA 013C2020 04C625CE 013C2020 04DE25D2 013C2020 34A225C2 0138248E 24F60138 243A24F2 113C20C8 24947038 2484113C 20C32480 013C20C0 389A2406 113CDE03 040E21FC 04120000 00E028C6 04420000 00002A12 048E6344 04220000 00001A4A 054C0000 00001654 055040FC 12F46005 00E0287C 2128245C 201C7EBF 50B553FC 349C21EC 26B203B3 245C211C 0334633C 72EA683C 72F46F86 00E2293C 00E96F87 00E26F86 00E2297C 00E946FA 72FE6F87 00E20FB5 246B013D 56182463 201C7EAA 44AF0100 00E221FC 201C7EB1 43A80100 00E221FC 10DC2183 4AD921FC 0AF347EC 201C7EAF 57A951FC 30D8B2C0 924B003C 2D506E84 7A0320C7 14072841 72020001 7A0320C6 1417333C 720B20C0 6A23003C 2D456483 52FF2181 2640003C 2D457095 507B20EC 567B20F4 544C013C 72E324AC 722F013C 72E324AC 7237D2FC 600220FC 60006264 21CB20D0 21C820C8 2E490284 000A04B3 21FE201C 049220F4 303AFA40 F71521C9 FFF52E4A B54505A4 98E720FC A0BB5242 DFC50432 DF3DD0BC 21C10432 000004FA 635820FC 21C00010 663A08B8 683A072A 623A0D54 60380008 11FC003D 010951C8 DE3C21CB 21D421CB 21BC7006 62380064 033C00E0 2CB851C8 DE3821FC 21200C5A 21B021FC 21200C44 21A821CB 214821FC 21200DA2 217421FC 21200D9C 217821FC 2120794A 21E821CC 25C021FC 21200D98 25C421CC 25C841F8 250E21C8 2596303C 21C74298 7008FF1C 51DD329C 153A70FF 32FC5128 EFD82098 102C22AF 31D80000 154E00E8 01D800A0 9E29111C 10308E09 0F816108 312D3034 2A496108 3EFD2F34 2EA90980 11750009 60F000E8 0A3D5C87 1E750708 1C750006 4F49109E 7F809EFA 76181304 0E226107 FC1B0702 741C70C1 847870C1 02560000 16502FB9 06FA0B12 48A361E0 6F7240FC 06FA6130 027450FC 061B6552 445A0000 03F827FC 251A1101 671A64D8 27E661E0 00106120 661A6016 46FD617C 011A2F7A 061888B4 4E7B080A 08A4467D 069CCF08 0F662F1E 107F1D08 E013BF00 D67C4014 47FC70C0 28714AD4 47FC0EB1 28754AD8 56012134 E34FB179 CA683039 2734F57A BA687582 D77C74A2 FA3C1358 00007542 D762D65C C3BC6627 A5743262 F3946624 C8643262 F3946622 C86A067C 963E57C8 C27E6C36 00006627 70006627 A4362849 C0042650 0A02B4AF FF46E580 00029B17 0A029BCE 2049F7F0 4CC9D5A8 4E65D5D7 00060A6C 6110FF3A 0D000013 4CE74EAC 46FB204B 6EB0908F D5A34E65 B4AFDD51 10702253 7E97284B 7CF02258 7E5C0200 12706E80 30286CA6 30CF3043 7E9622BE BAA5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5 E5E5E5E5
Last edited by troed on Wed Oct 25, 2017 1:01 pm, edited 1 time in total.

User avatar
troed
Atari God
Atari God
Posts: 1197
Joined: Mon Apr 30, 2012 6:20 pm
Location: Sweden

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby troed » Wed Oct 25, 2017 11:42 am

(Separate post due to post size restrictions)

Track 2 sector read decoded and disassembled. LAB_0005 is the entry point at $780d2. Note that it will decode its own running code as well so tracing it will get you further than you do by just looking at this disassembly.

Code: Select all

; IRA V2.08 (Oct 25 2017) (c)1993-95 Tim Ruehsen, (c)2009-2014 Frank Wille

BUS_ERROR   EQU   $8
ADR_ERROR   EQU   $C
ILLEG_OPC   EQU   $10
TRACE      EQU   $24
EXT_0004   EQU   $27
EXT_0005   EQU   $30
AUTO_INT4   EQU   $70
AUTO_INT6   EQU   $78
NMI      EQU   $7C
TRAP_15      EQU   $B8
EXT_000a   EQU   $134
EXT_000b   EQU   $200
EXT_000c   EQU   $3C0
EXT_000d   EQU   $41A
EXT_000e   EQU   $5F9
EXT_000f   EQU   $8C0
EXT_0010   EQU   $20AA
EXT_0011   EQU   $21EE
EXT_0012   EQU   $248E
EXT_0013   EQU   $256E
EXT_0014   EQU   $3178
EXT_0015   EQU   $31D8
EXT_0016   EQU   $31E8
EXT_0017   EQU   $31EC
EXT_0018   EQU   $31F8
EXT_0019   EQU   $3588
EXT_001a   EQU   $35E8
EXT_001b   EQU   $3B3E
EXT_001c   EQU   $3FF6
EXT_001d   EQU   $538E
EXT_001e   EQU   $6746
EXT_001f   EQU   $4031C8
EXT_0020   EQU   $8D57674
EXT_0021   EQU   $A818A64
EXT_0022   EQU   $2854E3F8
EXT_0023   EQU   $2A298EBA
EXT_0024   EQU   $65F382F8
EXT_0025   EQU   $6AC7076C
EXT_0026   EQU   $75D6E540
EXT_0027   EQU   $9647DFFE
EXT_0028   EQU   $AC5EA1DA
EXT_0029   EQU   $B4328C02
EXT_002a   EQU   $BBFF8C7E
EXT_002b   EQU   $BCA9458B
EXT_002c   EQU   $BF1DAA0A
EXT_002d   EQU   $C4AE8E5E
EXT_002e   EQU   $CC30FC31
EXT_002f   EQU   $DC01B714
EXT_0030   EQU   $FA684E93
EXT_0031   EQU   $FC2077CA
EXT_0032   EQU   $FFFF820A
EXT_0033   EQU   $FFFF8240
EXT_0034   EQU   $FFFF8260
EXT_0035   EQU   $FFFF8800
EXT_0036   EQU   $FFFF9D70
EXT_0037   EQU   $FFFFA186
EXT_0038   EQU   $FFFFAE7A
EXT_0039   EQU   $FFFFB388
EXT_003a   EQU   $FFFFB4A4
EXT_003b   EQU   $FFFFCBCF
EXT_003c   EQU   $FFFFCBD1
EXT_003d   EQU   $FFFFCDC8
EXT_003e   EQU   $FFFFDF33
EXT_003f   EQU   $FFFFF846
EXT_0040   EQU   $FFFFFA03
EXT_0041   EQU   $FFFFFA07
EXT_0042   EQU   $FFFFFA0F
EXT_0043   EQU   $FFFFFA13
EXT_0044   EQU   $FFFFFA17
EXT_0045   EQU   $FFFFFA19
EXT_0046   EQU   $FFFFFA1F
EXT_0047   EQU   $FFFFFA3A
EXT_0048   EQU   $FFFFFC48





   ORG   $78000

SECSTRT_0:
   ORI.B   #$50,D2
   MOVE.L   3394(A6),D5
   MOVEA.W   #$8402,A5
   CMP.W   -16(A6),D0
   BTST   D6,(A1)
   MOVEQ   #-123,D3
   ADDQ.W   #3,D0
   BPL.S   LAB_0000+2
   DC.W   $eac7
   AND.W   -6682(A5),D7
   SMI   D6
   DC.W   $a5c4
   DC.W   $4b53
   MOVE.L   6(A7,D0.L),EXT_0013.W
   AND.W   D5,-2533(A5)
   DC.W   $f6cd
   DC.W   $ab58
   DC.W   $d0f0
   ASL.W   #7,D0
   DC.W   $6edf
   MOVEQ   #70,D4
   DC.W   $a6dc
   BLE.S   LAB_0001
   DC.W   $a8c7
   DC.W   $68a7
   MOVEP.L   D6,9(A6)
   ADDQ.W   #2,-15034(A5)
   DC.W   $aef6
   OR.W   D3,-6668(A2)
   SUBQ.W   #6,-(A5)
   BLE.S   LAB_0002
   DC.W   $86f7
   CMPM.L   (A4)+,(A7)+
   DC.W   $a6e5
   DC.W   $46fd
   EORI.W   #$4d68,-(A5)
   ADDQ.W   #2,(A7)
   ADDQ.W   #2,(A6)+
   DC.W   $fed2
   DC.W   $fe59
   ADDQ.W   #3,D6
   DC.W   $8d76
   SUBA.W   (A2)+,A5
   DC.W   $fd5c
   EORI.L   #$67d50c5d,D0
   ADDQ.L   #2,D7
   DC.W   $fadf
   MOVE.W   -7(A6,D5.W),18186(A0)
LAB_0000:
   TST.L   EXT_0022
   DC.W   $007e
   ADD.B   -1025(A5),D3
LAB_0001:
   CMPA.L   A7,A1
   NBCD   D0
   DC.W   $033c
   MOVE.L   D6,(A7)
   ADDA.W   A0,A4
   BVC.W   LAB_0003
LAB_0002:
   DC.W   $e8c7
   ADDA.L   A1,A2
   DC.W   $d03c
LAB_0003:
   EXG   D3,A5
   MOVE.W   A5,EXT_000d.W
   BNE.S   LAB_0005
   CMPI.W   #$e4f6,(A4)
   MULU   -(A4),D3
   SUB.B   D6,D4
   DC.W   $ac7d
   DC.W   $e8f9
   BLT.S   LAB_0009+2
   DIVS   (A6),D3
   ADDX.W   D6,D2
   ADDQ.W   #5,D6
   DC.W   $aec6
   AND.W   (A5)+,D3
   CMP.B   EXT_0026,D3
   BCS.S   LAB_000B+2
LAB_0004:
   ST   EXT_0004.W
   BRA.S   LAB_000C
   NOP
   BRA.S   LAB_0008
LAB_0005:
   MOVEA.L   (A7)+,A6
   LEA   EXT_0033.W,A0
   MOVEQ   #7,D0
LAB_0006:
   CLR.L   (A0)+
   DBF   D0,LAB_0006
   RESET
   MOVE.B   #$04,EXT_0040.W
   MOVE.B   #$48,EXT_0044.W
   MOVE.B   #$03,EXT_0032.W
   MOVE.B   #$02,EXT_0034.W
   MOVE.L   #$0707ffff,EXT_0035.W
   LEA   -1240(A6),A5
   CMPA.L   1030(A7),A5
   BEQ.S   LAB_0009
LAB_0007:
   SUBA.L   A7,A7
   BSR.S   LAB_0007
LAB_0008:
   BRA.S   LAB_0004
LAB_0009:
   LEA   LAB_0020(PC),A0
LAB_000B:
   MOVE.L   A0,ADR_ERROR.W
   LEA   LAB_000C(PC),A0
   MOVE.L   #$ef65faa8,D0
   EOR.L   D6,D0
   MOVE.L   #$5848b198,(A0)+
LAB_000C:
   MOVE.W   D0,D0
   EOR.L   D0,(A0)+
   DBF   D0,LAB_0021+2
LAB_000D:
   DC.W   $73b0
   SUBI.W   #$49fa,D0
   DC.W   $00b8
   MOVEQ   #50,D5
   DC.W   $0007
   MOVE.L   A5,(A4)
   MOVEA.L   A6,A4
   MOVEQ   #50,D0
   ORI.L   #$4cd000ff,D2
   DC.W   $7930
   ORI.L   #$82407e78,(A4)+
   MOVEQ   #50,D1
   ANDI.L   #$d3c74de9,D2
   MOVE.W   20367(A0),ILLEG_OPC.W
   MOVE.L   A6,USP
   DBT   D0,LAB_0013
LAB_000E:
   LEA   EXT_001f,A0
   DC.W   $6041
   BRA.W   LAB_0018
   MOVEQ   #50,D4
   ORI.W   #$38bc,(A6)
   DC.W   $1234
   DC.W   $7fbb
   DC.W   $1269
   SUBQ.W   #2,A7
   MOVE.L   (A7)+,D0
   DC.W   $fe86
   NBCD   (A4)+
   ADD.W   D0,(A6)
   MOVEA.L   -12748(A7),A0
LAB_000F:
   ADDQ.B   #1,-(A3)
   DC.W   $000c
   SUBA.L   #$31c9005a,A0
   ST   EXT_0004.W
   DC.W   $8032
   DC.W   $02c9
   BLE.S   LAB_000E
   CLR.L   EXT_0039.W
   CHK.W   -(A0),D5
   DC.W   $6000
   MOVE   SR,-(A5)
   DC.W   $712d
   MOVE   16(A7),SR
   MOVE.L   (A0),D2
   DC.W   $7358
   TAS   D6
   BNE.S   LAB_000F
   MOVE.L   D2,(A0)
   DC.W   $51cc
   DC.W   $60e5
   DC.W   $5678
   MOVE.L   (A5),D2
   DC.W   $7fba
   MOVE.L   (A4),12104(A2)
   DC.W   $fffc
   MOVEQ   #50,D4
   DC.W   $0077
   LEA   LAB_000D(PC),A5
   MOVE.B   D5,19368(A4)
   OR.B   (A2)+,D6
   MOVE.L   A5,EXT_0015.W
   MOVE.L   (A4)+,32(A0,D0.W)
   MOVE.L   A5,EXT_0018.W
   MOVE.L   (A5)+,64(A0,D0.W)
   MOVEQ   #38,D3
   BSR.S   LAB_0011
LAB_0010:
   ORI.W   #$2839,0(A0)
   DC.W   $31c8
   CMPA.L   A3,A4
   ADDQ.L   #4,(A4)
   DC.W   $da7a
   DC.W   $ce4a
   DC.W   $6b49
   NOT.L   ILLEG_OPC.W
   DC.W   $6003
   DC.W   $ffaa
   EXG   A7,A6
   MOVE.W   -(A1),D0
   BSET   D1,-20215(A1)
   MOVE.W   D1,D0
   ANDI.W   #$ce36,D0
   ADD.L   A2,D0
   MOVE.L   D2,-(A7)
   MOVEQ   #0,D2
   DC.W   $7370
LAB_0011:
   ORI.W   #$609c,4604(A5)
   MOVE.W   A3,EXT_0048.W
   SUBA.W   D2,A7
   BRA.S   LAB_0014
   DC.W   $31c8
   ORI.W   #$4a5c,D7
   OR.W   D4,D0
   MOVEA.L   (A5)+,A6
   ABCD   -(A1),-(A1)
   DC.W   $a44d
   OR.L   D2,-(A4)
   ADDX.W   -(A2),-(A2)
   ADDQ.W   #2,(A5)+
   MOVE.B   (A5),(A6)+
   ADDX.B   D0,D0
   MOVE.W   (A4),-32700(A0)
   DC.W   $ffff
   DC.W   $ffff
   DC.W   $7370
   ORI.W   #$21c2,-(A7)
   OR.W   D0,D1
   BCLR   D5,(A2)
   MOVEA.W   A7,A3
   BPL.S   LAB_0011+4
   DC.W   $45fa
   MOVE.W   D6,(A0)+
   DC.W   $60b5
   LEA   LAB_0015+1(PC),A4
   MOVE.W   (A4)+,65(A4,D0.W)
   MOVE.L   D6,D3
   ADDQ.L   #4,D7
   DC.W   $7fba
   DC.W   $253f
   RTE
   NOP
   DC.W   $7fb9
   ADDQ.L   #2,(A1)
   DC.W   $0008
LAB_0013:
   EOR.L   D6,12740(A7)
   TRAP   #14
   MOVEA.L   2(A7),A4
   DC.W   $19c4
   EOR.L   D4,20083(A0)
LAB_0014:
   SUB.W   D0,D1
   MOVEQ   #50,D5
   DC.W   $fe9d
   ADDA.W   D3,A5
   MOVEM.L   (A5),D0/D2/D4/D6-D7/A0/A3-A5
   MOVEM.L   D0/D2-D4/A3,9800(A2)
   MOVEQ   #50,D0
   DC.W   $fedb
   MOVE.W   D1,-4(A7)
   BSET   D2,(A7)
   JMP   19450(A3)
   DC.W   $ff18
   BSET   D4,-83(A4,D0.W)
   ADD.L   (A5)+,D6
   DC.W   $51cc
   DC.W   $ce34
   MOVE.W   A2,(A7)
   MOVE.L   D0,-(A3)
   DC.W   $08b8
   MOVE.W   A5,EXT_0047.W
   SUBQ.L   #4,D7
   BPL.S   LAB_0015
   MOVE.B   D6,(A7)
   DC.W   $0036
   BSR.S   LAB_0019
LAB_0015:
   RTE
   DC.W   $1dcb
   BCHG   #1,-(A7)
   MOVEA.L   EXT_0016.W,A4
   DC.W   $4ee6
   NOP
   MOVE   #$16c8,SR
   MOVE.L   A1,280(A4)
   DC.W   $f544
   MOVEQ   #50,D2
   BCHG   D0,EXT_0012.W
   DC.W   $45fa
   EXG   D7,D0
   MOVE.L   -(A5),AUTO_INT4.W
   DC.W   $45fa
   AND.W   #$21e4,D7
   DC.W   $0134
   LEA   EXT_003b.W,A0
   BTST   D0,-(A5)
   DC.W   $0000
   MOVE.W   D0,-15230(A4)
   LEA   (A6),A2
   DC.W   $ff24
   MOVE.W   #$2841,(A2)
   LEA   (A1),A2
   ORI.W   #$4210,(A2)+
   DC.W   $73e0
   DC.W   $0028
   CLR.B   18(A0)
   MOVE.L   57(A4,D0.W),(A0)
   DC.W   $0018
   DC.W   $08d0
   MOVE.W   A5,EXT_000f.W
   ORI.B   #$0c,D5
   MOVE.L   37(A4,D0.W),(A0)
   DC.W   $0012
   DC.W   $41fa
   MOVE.W   A6,EXT_0010.W
   RTS
LAB_0017:
   DC.W   $0000
   DC.W   $31c8
LAB_0018:
   DC.W   $6025
   DC.W   $ff0c
LAB_0019:
   CLR.B   EXT_003c.W
   BCLR   #5,(A4)+
   DC.W   $fa13
   MOVEQ   #48,D0
   DC.W   $fa24
   MOVEA.L   LAB_0017(PC),A4
   BSET   D0,-(A7)
   DC.W   $f568
   MOVEP   D0,0(A0)
   MOVE.B   -(A4),D0
   DC.W   $f565
   BTST   D0,(A0)+
   DC.W   $11fc
   MOVE.W   (A6)+,-992(A0)
   RTS
   DC.W   $024c
   DC.W   $3396
   DC.W   $0271
   ANDI.L   #$02903368,D0
   ANDI.L   #$02c402d6,13102(A4)
   DC.W   $ffe2
   MOVE.B   #$03,EXT_003d.W
   DC.W   $4be4
   DC.W   $0024
   MOVE.L   D6,(A5)
   ASL.W   #5,D5
   CMPM.L   (A6)+,(A5)+
   JSR   (A0)
   CLR.L   EXT_001a.W
   NOT.L   (A4)+
   SUB.L   LAB_0010+4(PC),D5
   DC.W   $8a8e
   ADDQ.W   #1,(A7)+
   JSR   (A0)
   EOR.L   D6,EXT_0017.W
   OR.L   -(A0),D5
   DC.W   $5ffc
   EOR.L   D5,EXT_0017.W
   CLR.L   1062(A7)
   JSR   (A0)
   DC.W   $7770
   DC.W   $001e
   MOVE.W   TRACE.W,D6
   DC.W   $798e
   CLR.L   1066(A5)
   JSR   (A0)
   DC.W   $73f0
   DC.W   $fa1d
   MOVE.W   #$0002,EXT_0019.W
   CLR.L   1082(A3)
   JSR   (A0)
   MOVE.B   22(A0,D0.W),D0
   BTST   D0,(A0)+
   DC.W   $49fa
   AND.B   21061(A4),D6
   LEA   BUS_ERROR.W,A4
   DC.W   $7f58
   MOVE.L   -17409(A4),D1
   DC.W   $ff8b
   DC.W   $47ca
   ADD.L   D1,(A3)
   ROL.L   #4,D1
   DC.W   $51cb
   DC.W   $ce32
   DC.W   $4e9e
   MOVE.L   #$000074af,D4
   MOVEQ   #14,D1
   ADD.L   D4,(A4)+
   ROL.W   #4,D4
   DC.W   $6001
   DC.W   $fff6
   JSR   (A0)
   NOT.L   EXT_0015.W
   DC.W   $6bf1
   ILLEGAL
LAB_001A:
   EOR.L   D5,D6
   DC.W   $0e89
   DC.W   $fff0
   JSR   (A0)
   NOT.L   EXT_0014.W
   NOT.L   -76(A1,D0.W)
   DC.W   $49fa
   AND.L   (A2),D6
   ADDQ.W   #1,(A4)+
   NOT.L   TRAP_15.W
   DC.W   $7f58
   ORI.B   #$00,D7
   DC.W   $0000
   MOVE.W   A0,EXT_0011.W
   MOVE.L   D4,-(A3)
   MOVE.B   (A4),-(A6)
LAB_001B:
   MOVE.B   18159(A0),(A3)+
   OR.B   D4,D0
   DC.W   $4865
   DC.W   $16cd
   DC.W   $ffea
   DC.W   $6f7d
   MOVEQ   #31,D3
   DC.W   $16cc
   DC.W   $4866
   SUBQ.B   #8,D1
   DC.W   $fff4
   DC.W   $f6db
   DC.W   $4c6c
   MOVE.L   A0,-(A3)
   DC.W   $4865
   BRA.S   LAB_001A
   DC.W   $fff3
   DC.W   $6945
   DC.W   $2df1
   DC.W   $38f5
   MOVEQ   #63,D3
   MOVE.L   D4,-(A3)
LAB_001C:
   DC.W   $43e5
   SUBQ.W   #8,(A3)
   DC.W   $fff2
   BSR.S   LAB_001C
   SUBQ.W   #8,A0
   DC.W   $6975
   DC.W   $37fd
   BEQ.S   LAB_001B+2
   ROXR.B   D1,D6
   SUBQ.W   #5,D6
   ADDQ.B   #5,D6
LAB_001D:
   SUBQ.B   #3,D4
   MOVE.W   10020(A0),-(A7)
   DC.W   $4e2d
   DC.W   $7b4b
   MOVE   4(A2),SR
   MOVE.W   29052(A2),D0
   DC.W   $31ac
   DC.W   $54ba
   SUBQ.L   #8,-6(A6,A5.L)
   SLE   -9270(A4)
   SCC   D6
   ADDQ.W   #6,D5
   DC.W   $aaad
LAB_001E:
   SCC   24141(A5)
   DC.W   $aed0
   ADD.W   (A4)+,D2
   SUBQ.W   #6,(A5)
   AND.W   (A5)+,D2
   DC.W   $a55d
   LEA   LAB_000D(PC),A0
   LEA   996(A0),A1
   EORI.L   #$1224b1b5,-86(A1)
LAB_001F:
   MOVE.W   #$0014,D1
   DBF   D1,LAB_001F
   MOVE.B   -(A3),D0
   MOVEQ   #-59,D7
   SUBQ.L   #1,(A3)
   DC.W   $38f0
   DC.W   $a36c
   DC.W   $29fa
   DC.W   $ffaa
   BCHG   D0,D2
LAB_0020:
   MOVE.L   -119(A0,D0.W),D0
   MOVE.W   -(A7),17887(A4)
   DC.W   $41ba
   DC.W   $50ce
   MOVE.L   (A4)+,(A0)+
   DC.W   $043a
   DC.W   $0016
   MOVEQ   #18,D0
   CHK.W   -23752(A3),D7
   MOVE.W   (A6),-(A7)
   DC.W   $06cd
   DC.W   $4cf0
   DC.W   $a140
   DC.W   $5fb0
   DC.W   $7940
   OR.W   D2,(A6)+
   MOVE.B   (A0),26117(A7)
   MOVE.W   A6,(A3)+
   DC.W   $2782
   DC.W   $1a8d
   BRA.S   LAB_0022
   DC.W   $c972
   DC.W   $4efc
   DC.W   $49f2
   ADDQ.B   #2,(A7)
   DC.W   $73b2
LAB_0021:
   TST.B   0(A3,D6.W)
LAB_0022:
   DC.W   $fbb6
   NEGX.L   D4
   MOVE.B   (A7)+,-(A1)
   BCHG   D6,-(A4)
   DC.W   $01b6
   BEQ.S   LAB_001E+2
   MOVE.B   -(A1),-8137(A7)
   MOVE.B   -(A7),23358(A7)
   DC.W   $7b8a
   MOVE.B   -8130(A4),7010(A5)
   MOVE.L   10543(A6),-(A0)
   LEA   (A5),A7
   BCLR   D1,(A0)+
LAB_0023:
   NEGX.L   (A7)
   DC.W   $05ba
   MOVE.L   -(A3),(A0)
   BSET   D0,8533(A2)
   AND.L   D5,(A6)
   ADD.L   D7,13146(A5)
   ORI.W   #$b0fc,(A5)
   DC.W   $4523
   DC.W   $4922
   DC.W   $e2f9
   ADDQ.L   #8,-343(A1)
   DC.W   $4f1e
   BLS.S   LAB_0024+2
   LSL.W   #4,D2
   CHK.W   (A1),D0
   EOR.L   D6,(A3)
   AND.W   D7,(A5)+
   MOVE.L   -6500(A7),D2
   DC.W   $a304
   BCLR   D2,D0
   ADD.L   -7324(A5),D5
   DC.W   $54fe
   MOVEQ   #103,D3
   DC.W   $6233
   DC.W   $a68f
   OR.W   30108(A6),D5
   ASL.B   D4,D0
   MOVEQ   #89,D6
   MOVEQ   #-104,D4
   DC.W   $f8c8
   DC.W   $6e0d
   MOVE.B   D5,(A6)
   DC.W   $eecc
   MOVE.W   D3,-(A0)
   DC.W   $024a
   ROXR.B   D4,D0
   EXG   A6,A1
   MOVEQ   #86,D2
   MOVE.W   A0,-6910(A7)
   MOVE.B   D2,D4
   ADD.B   (A0)+,D1
   AND.W   D5,-4792(A3)
   DC.W   $0ee6
   MOVE.W   -(A6),D3
   DC.W   $af77
   SBCD   D4,D3
   BVS.S   LAB_0024+2
LAB_0024:
   MOVE.W   EXT_0023,D6
   AND.L   D2,12355(A5)
   CHK.W   D7,D6
   ADDQ.B   #2,-26254(A2)
   DC.W   $cfb9
   LSL.L   #3,D0
   ADDQ.W   #8,(A7)
   DC.W   $d076
   DC.W   $22b0
   EOR.B   D1,D0
   MOVEA.L   18854(A4),A1
   DC.W   $fefb
   DC.W   $21a7
   BTST   D0,(A3)
LAB_0025:
   MOVE.B   (A1),(A7)
   BTST   D4,-(A4)
   MOVE.W   -(A3),10064(A1)
   MOVE.L   A4,17682(A1)
   CHK.W   D6,D1
   DC.W   $537c
   BSR.S   LAB_0025
   DC.W   $62d9
   OR.B   D1,(A6)
   DC.W   $4b0a
   MOVE.L   (A6),-(A0)
   BTST   D0,(A5)
   MOVE.W   (A4),D7
   BTST   D0,(A3)
   MOVE.B   (A2),-(A4)
   BTST   D0,(A1)
   DC.W   $0010
   MOVEP.W   2056(A7),D0
   MOVE.L   (A1),D2
   DC.W   $7108
   DC.W   $fa17
   DC.W   $fcd5
   DC.W   $aac6
   ADDX.B   -(A0),-(A7)
   DC.W   $c609
   ROXR.W   #6,D7
   OR.L   D0,-2951(A0)
   DC.W   $91bc
   DC.W   $6121
   SUB.L   23(A4,D0.L),D0
   DC.W   $4ffe
   DC.W   $848d
   CMPA.W   D5,A0
   DC.W   $4f79
   DC.W   $f99a
   CMPA.L   (A3)+,A3
   DC.W   $9a36
   DC.W   $0df3
   CMPA.L   D3,A7
   DC.W   $fb91
LAB_0026:
   DC.W   $4b09
   SUB.B   LAB_0026(PC,D0.W),D0
   DC.W   $b2fd
   DC.W   $f4b4
   CMP.L   -(A5),D3
   DC.W   $f4aa
   CMP.B   D3,D7
   ADDA.W   (A2),A2
   CMPA.L   -2514(A5),A2
   DC.W   $b0ff
   DC.W   $b60c
   CMP.L   (A5)+,D3
   CLR.B   -(A2)
   ADDA.L   (A1)+,A7
   ADD.L   D1,-(A2)
   DC.W   $69c7
   DC.W   $ffd2
   DC.W   $670d
   EOR.L   D5,(A2)
   BTST   D7,-9205(A6)
   EOR.L   D1,(A7)+
   DC.W   $d008
   DC.W   $4c43
   ROXR.B   #4,D4
   DC.W   $c20b
   DC.W   $c1ca
   ROXL.L   D0,D1
   ADDA.W   (A1),A7
   BCS.S   LAB_0028
   MOVEA.L   (A5)+,A0
   DC.W   $42e9
   MOVEP.W   -14623(A5),D2
   MOVE.B   -(A4),-19326(A6)
   ORI.L   #$9bc5e274,D0
   DC.W   $f1cf
   OR.B   (A0)+,D2
   BCLR   D2,18014(A5)
   DC.W   $fe7b
   MOVE.W   1814(A3),(A2)
   ADD.B   D0,-(A7)
   DC.W   $f190
   DC.W   $12c8
LAB_0027:
   DC.W   $1f82
   EOR.W   D1,D4
   MOVE.L   (A2)+,37(A4,A5.W)
   DC.W   $fc0b
   DC.W   $f4c2
LAB_0028:
   CMP.L   A7,D4
   DC.W   $227b
   DC.W   $af9d
   SUBA.L   -(A7),A7
   DC.W   $e0f3
   DC.W   $7505
   LSL.L   D4,D0
   MOVE.W   -(A1),(A1)
   EOR.B   D1,-8933(A0)
   SEQ   D1
   DC.W   $cc7d
   MOVE.L   -(A5),(A1)
   AND.W   -(A4),D2
   NEGX.L   (A5)+
   DC.W   $ffdb
   BVS.S   LAB_0027
   ADDA.W   -(A5),A7
   SUB.B   D1,-(A2)
   ADD.W   A7,D0
   BLE.S   LAB_0029
   ADD.B   (A7),D4
   DIVU   5797(A1),D3
   MOVE.W   (A7)+,(A4)
   DC.W   $83b2
   DC.W   $61fb
   DC.W   $fe0a
   DC.W   $068a
LAB_0029:
   DC.W   $5676
   SUB.B   D3,(A7)
LAB_002A:
   DC.W   $a151
   DC.W   $b9bf
   DC.W   $9cbb
   OR.B   D3,D4
   MOVE.W   A0,11188(A3)
   DC.W   $46cf
   BVC.S   LAB_002A
   DC.W   $f894
   BTST   D2,-(A6)
   DC.W   $53ca
   AND.B   (A7),D7
   MOVE.W   -1078(A7),D2
   MOVE.W   (A3)+,(A7)
   DC.W   $660f
   AND.B   (A0),D1
LAB_002B:
   DC.W   $fb28
   DC.W   $8340
   CMPM.W   (A6)+,(A3)+
   TAS   D2
   DC.W   $7dab
   AND.W   (A5),D3
   DC.W   $8e89
   DC.W   $a51e
   CMP.L   -(A6),D1
   DC.W   $4ac8
   DC.W   $3931
   MOVEA.W   (A5)+,A6
   DC.W   $f93b
   BGE.S   LAB_002B
   DC.W   $6321
   ADDA.W   17944(A3),A1
   MOVE.L   D7,-(A0)
   ADDA.W   -(A0),A0
   SUB.W   D1,-(A2)
   DC.W   $c249
   BSR.S   LAB_002C
   MOVEM.W   D2-D3/D5-D6/A0/A2-A3/A6-A7,9(A7,A5.L)
   SUB.B   D3,(A4)
   SUBX.L   D7,D7
   LSL.B   D1,D4
   DC.W   $4cb3
   DC.W   $f309
   DC.W   $fb81
   ASR.B   D7,D7
   OR.W   (A1)+,D7
   DC.W   $e3ce
   DC.W   $1261
   MOVE.B   (A3)+,-(A4)
   CMP.B   28580(A7),D4
   DC.W   $c7fd
   LSR.B   D0,D3
   DC.W   $1a69
   MOVE.B   (A7)+,-9243(A6)
   SUBA.L   -8979(A6),A1
   DC.W   $cd37
   JSR   15389(A6)
   DC.W   $f5f3
   EOR.B   D1,EXT_003e.W
   BRA.S   LAB_002D
   MOVE.L   -24683(A3),-(A3)
   ADD.L   D3,-19730(A2)
   ADD.W   D7,EXT_0036.W
   MOVE.L   (A0),(A4)
   ADDQ.L   #4,(A7)+
   DC.W   $1bc3
   DC.W   $8cba
   DC.W   $a5e1
   MOVE.L   (A5),(A6)
   DC.W   $66d5
   MOVE.L   (A0),-91(A4,A5.W)
   DC.W   $f393
   DC.W   $6575
   DC.W   $4efa
   DC.W   $4c84
   DC.W   $ad64
   CMP.B   -(A2),D6
   CMPA.L   (A5)+,A5
LAB_002C:
   DC.W   $f93c
   DC.W   $d0f9
   DC.W   $4d89
   DC.W   $1e45
   DC.W   $da7f
   DC.W   $b476
   DC.W   $f902
   DC.W   $bf32
   MOVEP   D2,7204(A6)
   DC.W   $11b7
   CMP.L   53(A0,A5.L),D1
   DC.W   $6597
   ROXR.L   D7,D7
   MOVEA.L   A1,A6
   DC.W   $fd0d
   MOVE.B   -(A0),117(A2,A7.W)
   MOVE.B   (A2),(A4)+
   MOVE.L   A7,USP
   SUBX.W   D6,D6
   SUBX.L   D1,D4
   LSL.W   D6,D0
LAB_002D:
   DC.W   $ffc5
   OR.L   D1,(A0)
   DC.W   $6695
   CMP.B   (A1),D1
   DC.W   $ff8f
   DC.W   $6931
   ADD.W   -16492(A4),D5
   BTST   D3,(A6)
   SGE   (A4)
   SUB.W   D3,-(A5)
   AND.L   -(A4),D0
   DC.W   $69a7
   DC.W   $75bb
   DC.W   $277a
   MOVE.B   22109(A2),(A7)+
   SUBA.W   -(A4),A1
   MOVE.B   -10372(A5),EXT_000e.W
   MOVEP.L   -820(A1),D3
   DC.W   $af51
   DC.W   $aca7
   DC.W   $cf3a
   MOVEQ   #28,D7
   DC.W   $868f
   DC.W   $770c
   DC.W   $add8
   AND.B   (A4),D1
   AND.B   (A2),D5
   BLT.S   LAB_0031
   DC.W   $5bfb
   DC.W   $1f4d
   MULS   #$d415,D5
   DC.W   $dcfa
   DC.W   $25cc
   DC.W   $198e
   DC.W   $617d
   ROL.W   D0,D7
   SUBA.W   (A1)+,A7
   OR.W   -16943(A7),D6
   DC.W   $68a7
   DC.W   $68d7
   DIVS   (A5)+,D0
   BSR.S   LAB_0030+2
   DC.W   $004e
   SUBQ.W   #6,(A5)+
   ADDA.L   -(A6),A2
   ADDQ.W   #2,(A0)
   ADDQ.W   #2,-23075(A5)
   BSR.W   LAB_0034
   CLR.B   EXT_0045.W
   LEA   LAB_002E(PC),A1
   LEA   ADR_ERROR.W,A0
   MOVEM.L   A0-A1,-(A0)
LAB_002E:
   LEA   EXT_0005.W,A7
   ORI.L   #$6700005a,-(A0)
   LEA   LAB_0033(PC),A1
   LEA   LAB_0032(PC),A2
   MOVEQ   #9,D0
LAB_002F:
   MOVEA.W   -(A2),A3
   PEA   0(A1,A3.L)
   DBF   D0,LAB_002F
   LEA   LAB_0032(PC),A5
   LEA   EXT_000b.W,A0
LAB_0030:
   MOVE.L   #$42780001,(A0)
   LEA   EXT_000c.W,A7
   JMP   (A0)
   ADDQ.W   #8,A7
   ADDQ.L   #1,2(A7)
LAB_0031:
   RTE
   STOP   #$0777
   BSR.W   LAB_0023
   NOP
   EOR.L   D6,(A5)+
   ADDQ.W   #8,A7
   DC.W   $0857
   DC.W   $000d
   RTE
   NOP
   DC.W   $0857
   DC.W   $000d
   RTE
   ADDQ.L   #2,2(A7)
   RTE
   TRAP   #0
   ADDQ.L   #2,(A7)
   RTE
   NEG.W   -(A1)
   MOVEQ   #107,D1
   MOVEA.L   (A6),A0
   BSR.S   LAB_0035
   BLE.S   LAB_0037
   DC.W   $ff9e
   DC.W   $ffb0
   DC.W   $ffc8
   DC.W   $ffb8
   DC.W   $ffb8
   DC.W   $ffb8
   DC.W   $ffba
   DC.W   $ffb8
   DC.W   $ffb8
   DC.W   $ffc2
LAB_0032:
   ORI.B   #$00,D0
   ORI.B   #$00,D0
   ORI.B   #$00,D0
   ORI.B   #$00,D0
   ORI.B   #$00,D0
LAB_0033:
   LEA   -2740(A6),A1
   MOVE.W   #$019f,D0
   MOVEM.L   (A7)+,D1-D2
   MOVE.W   (A7)+,D3
   RTS
LAB_0034:
   MOVEQ   #17,D1
   LEA   LAB_003B(PC),A2
   MOVE.L   A2,EXT_000a.W
   MOVE.B   D1,EXT_0046.W
   BSET   #5,EXT_0041.W
   BSET   #5,EXT_0043.W
   MOVE.B   D1,EXT_0045.W
   STOP   #$6543
   STOP   #$0555
   ADDQ.W   #6,A7
   CLR.L   -(A7)
LAB_0035:
   MOVE.W   #$0020,-(A7)
   TRAP   #1
   MOVEQ   #36,D2
   LEA   LAB_003C(PC),A1
LAB_0036:
   MOVE   #$2500,SR
LAB_0037:
   MOVE.W   (A1)+,D1
   MOVEQ   #108,D0
   LEA   LAB_0005(PC),A0
LAB_0038:
   CLR.L   TRACE.W
   CLR.L   AUTO_INT6.W
   CLR.L   NMI.W
   TST.W   (A0)
   ADD.W   (A0)+,D1
   DBF   D0,LAB_0038
   DBF   D2,LAB_0036
   MOVEQ   #36,D0
LAB_0039:
   EOR.W   D1,-(A1)
   DBF   D0,LAB_0039
   BSR.S   LAB_003C
   MOVEM.L   A1-A5,BUS_ERROR.W
   BRA.S   LAB_003A
   NOP
   NOP
   BRA.S   LAB_003B
LAB_003A:
   JSR   EXT_0033.W
   NOP
   NOP
LAB_003B:
   ADD.W   (A7),D1
   BCLR   #5,EXT_0042.W
   RTE
LAB_003C:
   NOP
   DC.W   $bbbf
   BSET   D0,13580(A7)
   AND.W   (A5)+,D4
   DC.W   $491a
   DC.W   $ab8d
   DC.W   $05bf
   EOR.L   D5,555(A3)
   DC.W   $ca79
   DC.W   $fa08
   OR.W   D5,D7
   AND.W   (A5)+,D4
   DC.W   $1b3c
   MOVE.L   D4,D7
   DC.W   $ab8d
   DC.W   $05bd
   DC.W   $f007
   LSL.B   #6,D7
   DC.W   $bbbf
   DC.W   $fa43
   DC.W   $cab9
   DC.W   $b434
   DC.W   $4f15
   SUB.L   (A1)+,D5
   DC.W   $bbbf
   MOVEP.L   D6,-9607(A1)
   EXG   D5,A5
   DC.W   $fa23
   ADDX.L   -(A5),-(A5)
   DC.W   $fa35
   DC.W   $d40c
   DC.W   $a20d
   DC.W   $4bdd
   DC.W   $ab8d
   DC.W   $05bf
LAB_003D:
   ADD.W   EXT_002c,D4
   EOR.L   D5,-1687(A3)
   DC.W   $8e3a
   DC.W   $abbd
   DC.W   $fe63
   DC.W   $193c
   DC.W   $6807
   CMP.B   D4,D1
   DC.W   $183c
   MOVE.L   D7,D4
   CMP.B   D4,D1
   DC.W   $49dd
   DC.W   $ab8f
   BCLR   D2,-20419(A1)
   DC.W   $fe63
   SUBX.W   D7,D6
   DC.W   $b430
   DC.W   $b5bd
   MOVEQ   #76,D4
   CMP.L   (A4)+,D3
   DC.W   $fd45
   CMP.L   (A7)+,D3
   DC.W   $f445
   CMP.L   (A6)+,D3
   ASR.W   #3,D5
   CMP.L   (A1)+,D3
   AND.W   D5,D1
   ROXR.W   #5,D2
   DC.W   $9cb9
   CMP.B   D5,D6
   MOVE.B   -1206(A5),-(A5)
   DC.W   $05bb
   MOVE.B   (A5)+,-(A5)
   MOVEA.L   -32173(A2),A5
   DC.W   $4b18
   DC.W   $9cb7
   CMP.B   -22006(A2),D2
   SUB.L   EXT_0029,D6
   DC.W   $f9ca
   BLS.S   LAB_003D+4
   DC.W   $95b0
   SUBA.L   80(A2,A0.W),A5
   CMP.L   22510(A2),D7
   LSL.L   #8,D1
   AND.L   D1,(A2)
   DC.W   $47cd
   SUBQ.L   #6,-3573(A2)
   SUBQ.L   #3,A4
   DC.W   $31ae
   MOVE.W   (A7),-(A7)
   DC.W   $0af7
   MOVE.B   -27760(A5),(A4)+
   MOVEQ   #5,D1
   DIVU   -10318(A7),D7
   MOVEP.L   D3,-32712(A4)
   BVC.S   LAB_003F
   SUBA.L   D6,A0
   BRA.S   LAB_003E
   DC.W   $7b3f
   MOVEQ   #26,D3
   ADD.W   (A0),D2
   SUB.B   D7,D4
   OR.L   D4,(A3)+
   AND.B   -7230(A1),D6
   DC.W   $1ab5
   DC.W   $6483
   DC.W   $57f7
   DC.W   $073c
   DC.W   $2fed
   BSET   D7,-(A3)
   DC.W   $4037
   DC.W   $8f71
   DC.W   $3bb3
   DC.W   $4bc2
   SUBQ.B   #4,-21549(A3)
   DC.W   $1879
   DC.W   $fa68
   JSR   (A3)
   MOVE.W   20816(A2),D4
   MOVE.W   -(A3),(A4)+
   AND.W   D6,-49(A1,D2.W)
LAB_003E:
   DC.W   $fe10
   DC.W   $d8b9
   DC.W   $0ce8
   DC.W   $f3e3
   DC.W   $c68e
   BLT.S   LAB_0041
   DC.W   $54b4
   DC.W   $bff3
LAB_003F:
   MOVE.L   -(A1),(A6)
   DC.W   $08e2
   DC.W   $1d7a
   MOVE.B   -1994(A1),-(A5)
   DC.W   $6a4b
   MOVE.L   (A6)+,-(A5)
   MOVE.L   D7,18981(A1)
   DC.W   $f691
   SUBA.W   (A1),A2
   MOVE.W   (A4),6368(A1)
   ROXL.L   #1,D0
   AND.L   -23425(A7),D2
   DIVU   (A4),D0
   ADDQ.W   #8,-(A4)
   MOVEQ   #74,D5
LAB_0040:
   CHK.W   -12052(A7),D4
   SUBQ.L   #6,-(A7)
LAB_0041:
   MOVE.W   -28778(A2),-27393(A2)
   MOVE.B   -20730(A4),D7
   MOVEA.L   -(A1),A0
   DC.W   $4164
   SGE   -32702(A2)
   MOVE.B   -(A6),(A4)
   MOVEA.L   D1,A7
   MULU   (A3)+,D2
   CMPA.W   (A2),A2
   DC.W   $498b
   MOVE.B   -44(A0,A6.L),(A4)+
   BVS.S   LAB_0042
   DC.W   $f60f
   ADDQ.L   #1,(A2)
   MOVEQ   #-99,D7
LAB_0042:
   CMP.L   D7,D1
   ROR.L   #6,D7
   EOR.B   D6,(A7)+
   MOVE.B   -(A4),EXT_0028
   SUB.L   D2,(A6)+
   DC.W   $67fb
   MOVEA.L   #$c257fd31,A1
   DC.W   $af5d
   MOVEQ   #118,D2
   AND.W   D1,(A6)+
   ROXL.W   #6,D6
   MOVEQ   #-127,D1
   SUBQ.B   #1,-(A7)
   DC.W   $9bfa
   LSL.W   D6,D7
   MOVE.B   (A5)+,-(A7)
   MOVE.B   -(A5),-(A0)
   DC.W   $b0bd
   MOVE.B   (A6),(A6)+
   BVC.S   LAB_0040
   DC.W   $6151
   EOR.B   D7,-20447(A2)
   DC.W   $33bf
   DC.W   $884d
   MOVE.W   (A6),9494(A4)
   DC.W   $fff4
   DC.W   $3bb3
   OR.W   -16(A7,A7.L),D3
   SUBA.W   -(A7),A5
   SUB.B   D4,(A4)+
   DC.W   $eef6
   DC.W   $baf4
   MOVEQ   #-93,D7
   DC.W   $75b9
   DC.W   $faa8
   EOR.B   D0,(A1)
   ADDI.W   #$50e0,(A7)+
   DC.W   $8bbb
   MOVE.W   #$4e3a,-(A4)
   MOVE.B   -(A1),(A0)
   DC.W   $55bd
   MOVE.L   A0,-32043(A5)
   DC.W   $65cb
   MOVE.L   A1,-(A0)
   DC.W   $6a7b
   DC.W   $6b6b
   BNE.S   LAB_0043+2
   SUB.L   (A7)+,D2
   AND.L   -12035(A0),D7
   DC.W   $4d27
   ADD.L   D1,D7
   ADD.L   D3,D0
   DC.W   $f4e2
   MOVE.W   (A7)+,(A4)+
   ADD.B   D6,(A2)
   NEG.B   EXT_002e
   SUBX.L   D1,D1
   DC.W   $6d05
   DC.W   $5cb0
   ADD.L   29645(A3),D1
   ADDQ.B   #4,(A2)+
   DC.W   $54f6
   DC.W   $f58b
   MOVE.L   -1964(A4),-30(A4,A1.L)
   MOVE.W   (A5),-(A6)
   EOR.W   D1,EXT_0021
   DC.W   $c6f1
   MOVE.L   D1,-(A5)
   MOVE.L   (A2),(A3)+
   DC.W   $ce71
   DC.W   $8343
   DC.W   $a16a
   MOVE.B   (A2),-(A7)
   DC.W   $39f7
   AND.W   (A7),D3
   AND.B   24730(A3),D4
   DC.W   $1ab0
   EOR.W   D4,(A1)+
   DC.W   $fd4c
   SUBQ.W   #8,17570(A3)
   ADDQ.B   #8,(A3)
   MOVE.L   A3,-(A6)
   DIVU   (A4),D4
   OR.W   31688(A5),D6
   ADD.B   D7,-(A1)
   DC.W   $21b8
   DC.W   $a79b
   CMPA.L   6587(A2),A6
   MOVEP.L   -11196(A6),D4
   MOVEA.W   -14235(A1),A6
   MOVE.W   A5,24950(A2)
   DC.W   $3dce
   SUBA.L   (A6),A2
LAB_0043:
   SUB.B   D3,6963(A1)
LAB_0044:
   DC.W   $2599
   MOVEA.W   -(A1),A6
   DC.W   $3033
   DC.W   $2dfa
   SUB.B   D6,-(A5)
   MOVEQ   #102,D1
   MOVEP.W   30379(A7),D5
   OR.L   D7,-(A0)
   DC.W   $28bf
   AND.B   D3,-63(A0,A3.L)
   LEA   -20101(A5),A7
   DC.W   $fcf6
   DC.W   $1af7
   DC.W   $f1f5
   DC.W   $9dba
   DC.W   $6d05
   DC.W   $4ea4
   AND.W   -(A4),D3
   SUBQ.L   #4,21035(A6)
   LSR.B   D7,D7
   DC.W   $4169
   DC.W   $267a
   DC.W   $0c11
   DC.W   $b1fa
   CHK.W   25845(A5),D0
   SUBQ.B   #3,(A1)+
   JMP   -12795(A7)
   DC.W   $1ebc
   SUBQ.B   #1,D5
   MOVEQ   #115,D6
   OR.B   22291(A5),D6
   ADD.B   D0,-(A3)
   MULU   (A1)+,D1
   DC.W   $babb
   SUBQ.W   #6,25142(A0)
   ADDA.W   (A4)+,A0
   MOVEQ   #-55,D2
   BMI.S   LAB_0044
   MOVEQ   #-67,D6
   DC.W   $84f3
   DC.W   $5ac8
   SVS   -(A1)
   EOR.B   D1,2424(A0)
   DC.W   $ac60
   MOVE.L   (A2)+,D2
   EOR.B   D5,D3
   SCS   -(A0)
   DC.W   $ff10
   OR.B   D3,(A4)+
   MOVEQ   #-81,D0
   SMI   -(A4)
   BCHG   D5,28077(A2)
   OR.W   (A5),D4
   DC.W   $27f8
   BEQ.S   LAB_0046
   DC.W   $117d
   EOR.B   D6,-(A2)
   DC.W   $180f
LAB_0045:
   DC.W   $19a5
   OR.B   D3,-(A1)
   DC.W   $d33f
   AND.B   -(A7),D4
   BCHG   D7,(A1)
   MOVE.W   -32(A4),(A6)
   ADD.W   A3,D0
   DC.W   $fe01
   ADDA.L   (A5)+,A2
   ASL.B   D6,D1
   DC.W   $1b0e
   DC.W   $52cf
   CMPM.W   (A4)+,(A4)+
   LSL.B   D1,D3
   DC.W   $5072
   MOVEP.W   6228(A1),D1
   DC.W   $4e7d
   MOVEQ   #90,D6
   DIVU   D5,D3
   ADD.B   D2,10149(A1)
   BMI.S   LAB_0045
   DC.W   $6ef5
   DC.W   $08b7
   DC.W   $d971
   DC.W   $6eb9
   DC.W   $f1bd
   CMPA.W   -10303(A3),A1
   DC.W   $7d18
LAB_0046:
   DC.W   $4a3a
   MOVEP   D5,-10875(A0)
   DC.W   $450d
   DC.W   $dbb4
   DC.W   $6bdf
   DC.W   $a2cb
   OR.W   D5,28463(A5)
   EORI.L   #$7184f2e9,(A4)
   NEG.L   -16889(A6)
   DC.W   $730a
   OR.W   D4,-(A2)
   DC.W   $ab5f
   MOVE.W   (A3),(A4)
   MOVE.W   A0,(A3)+
   DC.W   $4c3c
   AND.B   D3,-25627(A3)
   MOVEP.L   D2,-6255(A5)
   CMPA.L   (A6)+,A0
   NOT.W   -29308(A0)
   DC.W   $7fa1
   MOVE.L   -30847(A3),D2
   AND.L   D3,D2
   MOVE.B   -24995(A3),84(A0,A6.L)
   MOVE.L   (A2)+,(A5)
   DC.W   $2af0
   DC.W   $cef0
   BCLR   D7,D1
   DC.W   $07f7
   OR.B   D6,-25756(A5)
   ADDQ.W   #2,(A3)+
   ADD.B   D1,(A3)
   BSET   D7,(A0)+
   DC.W   $5e7a
   DC.W   $23ad
   MOVE.W   -(A3),11560(A3)
   MOVEQ   #8,D3
LAB_0047:
   ADDA.W   D6,A5
   DC.W   $f542
   SUBQ.B   #7,-10181(A7)
   MOVE.W   (A5),-1139(A5)
   BCC.S   LAB_0047
   ADDA.L   (A6)+,A3
   SUBQ.L   #1,(A0)+
   DC.W   $52ba
   LEA   -8300(A6),A0
   MOVE.B   D3,EXT_002f
LAB_0048:
   DC.W   $f090
   ASL.B   D3,D0
   ROR.L   #4,D7
   MOVE.B   (A1)+,(A4)+
   SUB.L   A6,D7
   SUB.W   D4,(A0)+
   MOVE.L   (A7)+,-(A6)
   DC.W   $2dc8
   DC.W   $1cf5
   EOR.L   D5,-(A3)
   MOVEQ   #62,D0
   ADDA.L   (A3),A6
   DC.W   $864f
   CHK.W   -(A1),D6
   MOVE.B   D7,(A7)
   DC.W   $a914
   MOVE.B   -(A4),(A0)
   DC.W   $f023
   LSR.W   #8,D0
   BCC.S   LAB_0049
   DC.W   $a813
   DC.W   $7dff
   DC.W   $3cf1
   DC.W   $29cb
   ADD.L   -(A3),D4
   DC.W   $fd90
   CLR.B   (A5)+
   BEQ.S   LAB_0048
   DC.W   $378a
   MOVEP.W   -13778(A5),D4
   ADD.W   A5,D5
   DC.W   $063b
   DC.W   $fe9b
LAB_0049:
   DC.W   $4e1a
   DC.W   $24f5
   AND.W   (A7),D7
   DC.W   $9c35
   ROXL.L   D5,D4
   DC.W   $31f4
   OR.L   -13384(A7),D7
   DC.W   $a9c2
   DC.W   $27bc
   AND.L   D6,-29317(A6)
   SUBQ.L   #4,A0
   LSR.W   D0,D4
   ADDA.W   (A4)+,A4
   DC.W   $b008
   MOVE.B   12993(A6),D4
   BSET   D1,(A7)+
   MOVE.W   (A1)+,(A4)+
   SUB.L   (A0),D7
   DC.W   $4320
   DC.W   $f8ef
   MOVE.W   -(A4),-10680(A6)
   DC.W   $a7ff
   MOVE.W   (A3),2292(A2)
   ADDQ.W   #6,-(A6)
   DC.W   $cb84
   DC.W   $4312
   DC.W   $2fc9
   MOVEA.W   22031(A0),A1
   ADD.B   D2,D0
   DC.W   $c44d
   ADD.W   (A7)+,D7
   LSR.B   D4,D0
   DC.W   $be71
   MOVE.B   (A6),D7
   DC.W   $b775
   MOVE.L   21237(A5),D6
   DC.W   $f239
   DC.W   $aa19
   ADDA.L   3314(A1),A7
   DC.W   $0b3d
   DC.W   $2cfa
   ROR.B   #3,D2
   MOVE.W   #$fac3,EXT_0020
   MOVE.W   A5,D0
   DC.W   $7756
   DC.W   $f492
   DC.W   $611d
   AND.W   -(A0),D3
   ADD.B   D5,-(A1)
   DC.W   $6a41
   OR.L   (A1)+,D1
   MOVE.B   D0,-(A7)
   ADD.L   A2,D2
   DC.W   $acff
   ADDQ.B   #4,D2
   MOVE.W   (A0)+,-(A4)
   DC.W   $abce
   DC.W   $a479
   DC.W   $f0e8
   DIVS   D1,D7
   CMPA.L   (A2)+,A3
   ADD.W   -(A0),D7
   DC.W   $dd7b
   MOVEQ   #15,D1
   DC.W   $aa7e
   AND.L   (A0)+,D5
   BEQ.S   LAB_004A
   ADDQ.W   #6,(A4)
   DC.W   $eaf9
   DC.W   $6ccd
   DC.W   $afa2
   ADD.B   D5,EXT_003a.W
   MOVE.B   (A1)+,(A7)
   DC.W   $9d76
   DC.W   $c180
   AND.W   D6,EXT_0024
   DC.W   $fa10
   DC.W   $c97a
   DC.W   $2a3f
   BSET   D7,(A2)+
   SUBQ.W   #2,(A0)+
   EOR.W   D3,-20(A6,D5.W)
   DC.W   $2f80
   DC.W   $a100
   DC.W   $a1d9
   CMP.W   A7,D6
   CLR.B   D0
   MOVEQ   #1,D6
   MOVEQ   #-97,D4
   DC.W   $0ec2
LAB_004A:
   DC.W   $f803
   DC.W   $0ffa
   DC.W   $1d84
   DC.W   $c4f8
   DC.W   $1ff5
   AND.B   (A7),D0
   DC.W   $89f1
   ROR.B   #6,D7
   OR.B   -91(A6),D0
   DC.W   $d83e
   CHK.W   D5,D7
   DC.W   $ff4a
   BCHG   D0,-24822(A4)
   MULS   728(A4),D0
   DC.W   $fa51
   DIVS   (A1)+,D1
   DC.W   $f84f
   DC.W   $f4a2
   DC.W   $16bd
   DC.W   $f09e
   MOVE.B   D4,(A7)+
   DC.W   $2d7a
   DC.W   $a50c
   DC.W   $3d89
   DIVU   18969(A7),D2
   DC.W   $6bcf
   BSET   D4,(A7)+
   ASR.W   #6,D2
   ADD.L   D3,(A7)+
   ST   D3
   ADD.L   D4,D4
   JMP   EXT_0037.W
   DC.W   $bcf4
   DC.W   $9df0
   AND.B   -(A1),D2
   DC.W   $79e8
   DC.W   $0c31
   OR.W   D3,D4
   ROL.W   D7,D2
   DC.W   $1862
   DC.W   $cf3d
   DC.W   $def5
   CLR.B   (A7)
   DC.W   $9e7a
   ABCD   -(A4),-(A1)
   OR.B   -2139(A6),D2
   OR.B   (A0)+,D3
   DC.W   $f3d1
   LSL.W   #7,D2
   MOVE.L   -6238(A5),12476(A0)
   DC.W   $42da
   MOVEQ   #76,D5
   DC.W   $6179
   DC.W   $ac95
   MOVE.B   (A5),(A4)+
   MOVE.L   -(A0),-(A1)
   DC.W   $1cce
   SMI   3186(A0)
   SUBX.B   -(A7),-(A1)
   MULS   -(A4),D0
   DC.W   $7d86
   SUB.W   D1,(A7)+
   AND.L   (A5),D5
   DC.W   $1ef6
   BSET   D1,(A1)
   DC.W   $e4ff
   DC.W   $60b5
   MOVE.W   A1,(A4)+
   MOVE.L   D1,(A5)
   SUBX.B   -(A1),-(A6)
   ADD.L   D1,(A6)+
   DC.W   $9bf7
LAB_004B:
   DC.W   $7bad
   DC.W   $01fd
   DC.W   $864a
LAB_004C:
   DC.W   $2b92
   SUB.L   -12707(A4),D1
   DC.W   $0ee5
   SUB.L   D4,3506(A2)
   BLE.S   LAB_004D
   DC.W   $7155
   DC.W   $4d25
   DC.W   $17ca
   SUB.B   D4,-15730(A6)
   DC.W   $0026
   DC.W   $80fd
   ADD.L   D6,(A1)
   DC.W   $11c8
   ROL.L   D4,D6
   MOVEQ   #17,D3
   DC.W   $02f3
   CLR.W   (A0)+
LAB_004D:
   LSL.L   D0,D4
   DC.W   $3ba5
   BMI.S   LAB_004F
   CMP.B   D2,D1
   ABCD   D0,D0
   MOVE.B   -(A3),-(A1)
   DC.W   $a02f
   BGT.S   LAB_004C
   AND.W   (A6)+,D6
   SUB.W   D4,-(A5)
   SUBQ.L   #4,(A1)+
   MOVEA.L   D0,A2
   MOVEQ   #111,D5
   DC.W   $adeb
   DC.W   $e8f8
   DC.W   $218e
   DC.W   $5afc
   ASL.L   #5,D0
   CMPA.W   (A0)+,A0
   ADDQ.W   #2,-(A5)
   DC.W   $a980
   SUB.L   -18835(A0),D6
   DC.W   $153e
   DC.W   $1842
   EOR.W   D2,-21412(A0)
   DC.W   $00b1
   DC.W   $b4b6
   BLE.S   LAB_004B
   SMI   (A5)
   DC.W   $1de3
   DC.W   $d6b1
   DC.W   $47e6
   CMPM.L   (A0)+,(A6)+
   OR.B   D1,(A2)
   ADDA.L   (A7)+,A0
LAB_004E:
   BMI.S   LAB_004E
LAB_004F:
   DIVS   (A5)+,D0
   SUBA.W   (A5),A7
   EOR.B   D2,(A2)
   DC.W   $7904
   MOVE.L   (A1)+,(A2)+
   DC.W   $a670
   DC.W   $63cf
   MULS   (A4)+,D6
   DC.W   $6e49
   MOVE.L   (A6),(A3)
   DC.W   $8c48
   DC.W   $c84b
   DC.W   $4bdc
   BTST   D7,(A6)+
   ADDA.W   -21345(A1),A3
   DC.W   $a04f
   SUB.L   -(A1),D3
   BCHG   D6,32754(A0)
   ORI.L   #$53f1e9b8,(A5)
   SGT   -32526(A6)
   ADD.L   (A3)+,D4
   MULU   -(A7),D6
   BCHG   D6,(A5)+
   DC.W   $1b4c
   DC.W   $ad41
   AND.B   D6,-(A3)
   SUBA.L   D1,A7
   DIVU   D5,D7
   LSL.B   D2,D2
   DC.W   $a16e
   DC.W   $49bb
   DC.W   $318a
   CMPA.W   A7,A5
   MOVEQ   #-102,D3
   BGE.S   LAB_0050
   DC.W   $0ec1
   MOVE.L   (A0),(A3)
   DC.W   $1f3a
   DC.W   $8a48
   DC.W   $cefe
   BCLR   D3,D1
   DC.W   $f652
   AND.L   6849(A2),D6
   DC.W   $95b6
   DC.W   $3bc4
   DC.W   $81f3
LAB_0050:
   DC.W   $8745
   MOVE.L   A7,114(A4,A5.L)
   DC.W   $771b
   DC.W   $a243
   DC.W   $7b66
   ADDA.W   (A3)+,A4
   MOVE.L   -(A1),(A3)
   BCHG   D5,D4
   AND.L   D5,D6
   DC.W   $5908
   DIVS   D0,D6
   SUB.B   (A5),D0
   MOVE.B   (A2)+,D7
   MULS   27011(A6),D6
   SUBQ.L   #2,(A1)+
   CMPM.B   (A3)+,(A3)+
   DC.W   $0572
   MOVE.W   A6,(A3)
   DC.W   $40f5
   DC.W   $06d5
   DC.W   $3d76
   DC.W   $bfb6
   DC.W   $aaca
   DC.W   $0c25
   MOVE.B   (A1)+,EXT_002b
   DC.W   $8634
   DC.W   $3ff6
   MOVEQ   #63,D1
   MOVE.L   -(A7),-(A2)
   ANDI.W   #$c60f,(A0)
   MOVE.B   (A7),(A3)+
   NBCD   -(A5)
   DC.W   $faa1
   DIVS   (A7),D2
   SUBA.W   -(A6),A5
   MOVE.W   A6,17729(A2)
   SUBX.B   -(A1),-(A1)
   DC.W   $52fe
   DIVU   (A5),D5
   MOVE.L   (A5),-(A7)
   DC.W   $aea4
   DC.W   $c9bd
   DC.W   $577b
   SBCD   -(A0),-(A3)
   MOVEQ   #-66,D1
   DC.W   $fde3
   DC.W   $1fcd
   MOVE.L   -(A5),(A7)
   DC.W   $1f3a
   CMPM.L   (A6)+,(A5)+
   DC.W   $ffb2
   DC.W   $8673
   DC.W   $96f5
   BNE.S   LAB_0052
   CMPM.L   (A3)+,(A7)+
   OR.W   (A2)+,D2
   DC.W   $4d34
   DC.W   $920f
   SUBX.L   -(A0),-(A1)
   MULS   -(A4),D7
   ROL.L   D4,D2
   DC.W   $753f
   DC.W   $021b
   SUBQ.W   #6,21602(A2)
   DC.W   $6aa1
   DC.W   $359a
   DC.W   $dd7d
   MULS   -(A1),D4
   ROR.W   D1,D1
   DC.W   $81ff
   CMPA.L   -31036(A6),A7
   MOVEQ   #67,D6
   DC.W   $4761
LAB_0051:
   DC.W   $a5f5
   DC.W   $a617
   CMPA.L   -28205(A4),A6
   MOVE.L   -(A4),-(A2)
LAB_0052:
   BLT.S   LAB_0051
   DC.W   $7984
   DC.W   $6eaf
   DC.W   $2cbd
   LSR.B   D4,D7
   DC.W   $ad62
   DC.W   $6b53
   MOVE.W   EXT_0031,(A2)
   EOR.W   D1,(A4)+
   DC.W   $aa07
LAB_0053:
   DC.W   $7983
   DC.W   $c2b4
   SUBA.W   58(A3,A4.L),A1
   DC.W   $a338
   DC.W   $af32
   DC.W   $a242
   BLT.S   LAB_0054
   DC.W   $f6f4
   ADDQ.W   #6,D2
   DC.W   $31e1
   ADDQ.L   #4,A5
   SUBQ.L   #3,-1928(A1)
   OR.W   D5,D7
   EORI.L   #$e2b45cfe,D3
   ADDX.W   -(A1),-(A6)
   EOR.W   D3,(A7)+
   ROR.L   D6,D2
   DC.W   $02b4
   DC.W   $820b
   MOVEQ   #-33,D7
   DC.W   $cd80
   DC.W   $dcba
   MOVE.W   D7,-15260(A4)
   DC.W   $4830
   DIVS   (A6)+,D4
   SUBA.L   (A3),A1
   DC.W   $1be1
   ASR.L   D5,D5
   ADDQ.W   #7,(A2)+
   DC.W   $00e2
   TST.L   -27643(A2)
   MOVE.W   (A5)+,14276(A5)
   DC.W   $45b9
   ABCD   -(A1),-(A4)
   NEG.L   (A5)
LAB_0054:
   EOR.B   D3,(A6)+
   MOVE.B   -123(A0,A4.L),-(A3)
   MULU   -(A1),D1
   SUBQ.W   #1,(A1)
   SF   -36(A7,D5.L)
   CMPA.L   (A1)+,A6
   ADDQ.B   #2,(A5)+
   DC.W   $f458
   BLT.S   LAB_0053
   DC.W   $cacc
   AND.L   (A4)+,D4
   DC.W   $f7d9
   DC.W   $f5a4
   SUBA.L   -22139(A5),A0
   DC.W   $f930
   BGT.S   LAB_0055
   ADDX.W   D0,D6
   MOVE.L   (A5),22832(A1)
   ADDA.L   (A6),A7
   DC.W   $f414
   DC.W   $5233
   TST.L   -20521(A2)
   TST.W   (A4)
   DC.W   $c470
   DC.W   $fc39
   DC.W   $148b
LAB_0055:
   AND.L   D7,10168(A1)
   DC.W   $fdf3
   LSL.L   D1,D2
   DC.W   $0886
   DC.W   $158b
   SUBA.L   D3,A3
   DC.W   $739c
   ROL.B   #6,D5
   DC.W   $4af3
   DC.W   $27b8
   DC.W   $3ff6
LAB_0056:
   DC.W   $af8a
   ADDA.L   (A4)+,A4
   MOVE.B   D5,-(A7)
   CMP.L   -(A2),D1
   DC.W   $c9c8
   CMPM.W   (A5)+,(A5)+
   OR.W   (A6)+,D2
   DC.W   $37a8
   DC.W   $a4b9
   SUB.W   (A4),D1
   DC.W   $31e8
   SUBX.B   D0,D7
   MOVEQ   #101,D1
   MOVEP.L   D1,27274(A7)
   ADDA.L   (A3)+,A3
   DC.W   $1fe3
   DC.W   $1a7a
   ADD.L   -(A3),D6
   CMP.W   -(A7),D2
   EXG   D3,D3
   OR.B   D0,-(A1)
   DC.W   $be32
   DC.W   $a738
   DC.W   $4c79
   MOVE.W   (A7),(A2)
   SUB.B   D3,28826(A3)
   ROXR.B   #4,D3
   DC.W   $6ff5
   DC.W   $06b0
   DC.W   $1bf8
   DC.W   $ae7a
   ADDA.L   (A4)+,A4
   MOVE.B   D5,-(A7)
   EXG   D1,D4
   DC.W   $c8b0
   CMPM.W   (A5)+,(A5)+
   OR.W   (A6)+,D2
   DC.W   $797e
   DC.W   $a5cd
   SUB.W   (A0),D1
   MOVE.W   D6,-12980(A2)
   SEQ   9929(A7)
   BGT.S   LAB_0058
   CMPA.W   7061(A3),A7
   DC.W   $3fd2
   DC.W   $8cbb
   ASL.L   #6,D5
   DC.W   $f2c5
   DC.W   $a0de
   CMP.L   (A2),D5
   DC.W   $a550
   DC.W   $497f
   DC.W   $0d31
LAB_0057:
   SUBX.B   -(A5),-(A1)
   BLS.S   LAB_0056
   MOVE.B   (A2)+,EXT_0025
   MOVE.B   -29772(A4),-(A5)
   ADD.B   D0,D4
   DC.W   $17e3
   MULS   (A0)+,D1
   ASL.W   D6,D2
   DC.W   $ba71
   OR.W   18770(A4),D7
   LSL.W   #1,D3
   SUBX.W   -(A2),-(A3)
   DC.W   $11c8
   ROL.L   D4,D2
   MOVEM.W   (A5)+,D0-D5/D7/A0-A2
   TST.L   -20521(A2)
   MOVE.L   A1,-(A6)
   MOVE.B   (A6),D7
   DC.W   $bc7f
   DC.W   $dbf5
   DIVS   #$80fd,D1
   CMP.W   -31420(A6),D3
   DC.W   $4de3
   DC.W   $15b7
   DC.W   $c9b4
LAB_0058:
   MOVE.L   D1,D1
   SUB.B   -(A5),D7
   ADDQ.W   #5,(A5)
   DC.W   $077c
   MOVE.W   A4,7(A4,A0.L)
   DC.W   $fcbc
   MOVE.B   EXT_002d,D7
   AND.L   (A3)+,D4
   AND.W   D2,D6
   MOVE.W   -4215(A0),-(A7)
   SUBX.L   -(A2),-(A1)
   DC.W   $38f4
   ROXL.W   #4,D3
   MOVE.W   (A0),529(A4)
   MOVE.L   -20683(A4),-(A2)
   MOVE.B   -(A1),D1
   DC.W   $1baf
   CMP.W   EXT_002a,D5
   DC.W   $80ff
   SUB.L   D0,-(A7)
   OR.B   D7,D0
   BVC.S   LAB_0057
   DC.W   $63b3
   SUB.W   D1,21160(A0)
   DC.W   $b373
   MOVEA.L   -(A6),A5
   DC.W   $2790
   DC.W   $1fdc
   DC.W   $aa48
   DC.W   $f8fc
   CHK.W   (A4),D0
   DC.W   $8432
   ASR.W   D6,D2
   CMP.L   (A3),D5
   DC.W   $8582
   SUBQ.B   #6,D0
   DC.W   $a18c
   ADD.L   D4,52(A1,D3.W)
   LSL.W   #1,D1
   DC.W   $113b
   MOVE.L   13317(A7),(A1)+
   DC.W   $f87e
   DC.W   $6aa1
   DC.W   $2b9e
   TRAP   #3
   SUBQ.W   #5,A2
   DC.W   $e3c5
   DC.W   $ad4d
   DC.W   $f096
   ADD.W   18808(A7),D7
   MOVE.L   -24758(A4),-74(A0,D0.W)
   MULS   (A0)+,D6
   DC.W   $14ca
   ADDI.W   #$0b29,(A6)
   CMP.L   A0,D4
   DC.W   $aaeb
   DC.W   $1fe5
   DC.W   $adb9
   ROL.W   #6,D6
   SUB.B   D3,-3(A4,A4.W)
   MOVE.B   -(A3),-(A7)
   DC.W   $a18e
   EOR.B   D2,4596(A0)
   DC.W   $c4ff
   MOVEA.L   D2,A3
   ADDQ.L   #1,A0
   BPL.S   LAB_0059
   DC.W   $f9ac
   DC.W   $1ba9
   DC.W   $4f0a
   DC.W   $fdbf
   CMPA.L   -(A2),A5
   AND.W   D3,(A5)
   DC.W   $f232
   SUB.B   D7,-10609(A6)
   DC.W   $4d13
   CHK.W   (A4)+,D3
   DC.W   $65f7
   DC.W   $12b6
   ASL.B   D6,D5
   DC.W   $0ec9
   DC.W   $44f4
   DC.W   $3ef5
   DC.W   $ab64
   DC.W   $f928
   DC.W   $1fed
   DC.W   $e9d3
   DC.W   $efe6
   DC.W   $ba7b
   DC.W   $a0cd
   BGE.S   LAB_005A
   DC.W   $a013
   DC.W   $97fa
   MOVE.W   #$d980,-(A0)
   DC.W   $ac97
   DC.W   $f5e6
   DC.W   $6b63
   ADDQ.B   #8,-(A2)
   MOVE.B   (A7),-(A2)
   DC.W   $ae03
LAB_0059:
   DC.W   $f927
   SF   -(A6)
   ABCD   D5,D1
   MOVE.L   -(A6),(A0)
   AND.W   (A0),D6
   DC.W   $7ba9
   DC.W   $6d8d
LAB_005A:
   ROXR.L   #5,D6
   DC.W   $67b7
   DC.W   $5375
   MULS   28361(A3),D4
   MOVEA.L   31846(A2),A1
   DC.W   $ab48
   DC.W   $f920
   DC.W   $3f35
   DC.W   $a1a0
   ROXL   (A2)+
   ADD.W   A3,D1
   DC.W   $a354
   DC.W   $2fe6
   OR.W   D6,(A3)+
   DC.W   $f350
   MOVE.B   D0,EXT_003f.W
   SNE   1018(A2)
   MOVE.B   -(A2),29163(A5)
   MOVE.B   (A6),(A5)
   MOVE.W   (A2),(A5)
   ADDX.W   -(A0),-(A6)
   ROR.L   D4,D5
   DC.W   $93ff
   ASR.B   D1,D5
   DC.W   $9e76
   DC.W   $a750
   DC.W   $695f
   MOVE.B   (A3),-(A4)
   DC.W   $e6c3
   DC.W   $ac8c
   ASR.B   D6,D5
   LEA   10954(A1),A7
   MOVE.W   A6,(A7)
   DC.W   $aa48
   DC.W   $f9c0
   MOVE.W   -(A1),-6606(A1)
   AND.L   -25799(A1),D6
LAB_005B:
   DC.W   $8582
   BGE.S   LAB_005B
   OR.L   D6,-19940(A5)
   MOVE.W   -102(A4,A4.L),D0
   SUBQ.W   #5,A3
   DC.W   $238b
   BMI.S   LAB_005C+2
   DC.W   $8ef7
   CLR.B   (A7)
   MOVE.W   -8881(A6),(A5)
   DC.W   $ecc1
   AND.B   D5,D1
   DC.W   $a13d
   SUBX.L   -(A2),-(A1)
   OR.L   D0,18547(A0)
   DC.W   $1063
   DC.W   $f6f3
   DC.W   $57ba
   ROXR.B   #6,D1
   DC.W   $4b5f
   MOVE.B   16121(A4),(A3)
   AND.B   D4,-22296(A4)
   AND.B   EXT_0027,D0
   DC.W   $af4b
   ADD.L   D1,D2
   DC.W   $7f20
   ADD.B   D0,-(A7)
   MOVEQ   #-80,D6
   MOVE.W   (A0),-1642(A0)
   MOVEQ   #120,D2
   MOVE.W   19114(A3),-(A1)
   CMP.L   (A1)+,D5
   DC.W   $3bb5
   MOVE.B   (A6)+,(A5)
   DC.W   $fc23
   SUBQ.B   #3,-3355(A0)
   SUB.B   4123(A5),D0
   DC.W   $abed
   DC.W   $08b7
LAB_005C:
   SUBI.L   #$873f58fd,D6
   DC.W   $acd1
   DC.W   $5034
   BCLR   D4,-(A4)
   DC.W   $3197
   DC.W   $8234
   AND.L   D4,(A5)
   MOVE.W   -22678(A4),-(A7)
   LSL.L   #6,D2
   CMP.W   A4,D0
   DC.W   $f8f9
   SUBQ.L   #1,-30969(A1)
   OR.B   D7,(A5)+
   DC.W   $11ce
   DC.W   $a6f3
   DC.W   $4649
   DC.W   $7d73
LAB_005D:
   ADD.W   (A0),D2
   ADDA.L   A7,A4
   MOVEA.L   (A1)+,A4
   MOVE.B   -(A4),-25212(A2)
   MOVE.W   (A2)+,-(A2)
   DC.W   $e4fb
   DC.W   $f401
   DC.W   $eed3
   MOVE.L   (A4),D0
   DC.W   $197e
   DC.W   $37fd
   CMPM.B   (A3)+,(A3)+
   BCC.S   LAB_005D
   ASR.W   D1,D0
   DC.W   $6833
   DC.W   $2d82
   SUBQ.L   #3,(A5)+
   ROXR.W   #5,D4
   EOR.L   D3,(A2)
   DC.W   $7fd9
   AND.W   D0,-(A0)
   OR.W   (A2),D6
   CMP.B   D5,D4
   DC.W   $f482
   DC.W   $4bc7
   ROL.W   #2,D5
   DC.W   $d732
   DC.W   $11c8
   ASR.W   #5,D2
   DC.W   $712b
   DC.W   $27e9
   SUBQ.L   #5,-14131(A3)
   SUBQ.L   #7,D5
   MOVE.W   -(A0),(A6)
   SUB.W   D6,-(A3)
   AND.B   D4,(A1)
   DIVU   (A1)+,D1
   ASR.B   #3,D7
   DC.W   $fe04
   ROXR.L   #1,D1
   DC.W   $08c3
   MOVE.W   113(A1,A1.L),(A2)
   MOVEQ   #-84,D2
   DC.W   $456d
   DC.W   $20b2
   MOVE.L   (A2)+,(A7)
   DC.W   $179a
   DC.W   $cdc9
   ADD.W   #$f02d,D7
   MULU   #$c27c,D4
   DC.W   $aa0e
   DC.W   $b976
   DC.W   $adcf
   MOVE.W   A7,-(A7)
   DC.W   $4514
   SF   (A4)+
   DC.W   $ae46
   MOVE.L   (A7),D3
   MOVE.L   D2,(A5)
   DC.W   $007e
   LSR.B   D4,D3
   DC.W   $35ec
   DC.W   $3333
   CMP.W   (A3)+,D3
   SUBX.B   D0,D7
   DC.W   $c2cd
   BLS.S   LAB_005F
   MOVE.L   28164(A3),22918(A7)
   MOVE.B   (A7)+,(A1)
   CLR.W   -36(A1,A4.L)
   CMP.W   (A3)+,D4
   DC.W   $b9b5
   DC.W   $5232
   ASL.B   #2,D2
   SUBA.W   -10016(A4),A4
   TST.W   -(A7)
   MOVE.B   EXT_001b.W,(A0)+
   DC.W   $79cd
   AND.W   (A1)+,D1
   LSR.L   D4,D0
   CMP.W   24828(A5),D1
   DC.W   $77ec
   DC.W   $21de
   DC.W   $64b5
   DC.W   $f167
   MOVE.L   A0,(A6)
   DC.W   $67bd
   MOVE.W   -(A1),-(A6)
   DC.W   $8d78
   DC.W   $ab4b
   DC.W   $0b7f
   DC.W   $8fcf
   OR.B   (A5)+,D0
   DC.W   $f835
   ADD.W   3992(A4),D2
   SUB.L   D0,(A5)+
   SUBX.W   D2,D7
   DC.W   $b2b0
   LSL.L   #5,D1
   DC.W   $64cb
LAB_005E:
   DC.W   $923f
LAB_005F:
   ROR.W   D0,D0
   BGT.S   LAB_0061
   ADDA.W   -(A2),A4
   DC.W   $a432
   AND.L   D6,(A0)+
   MOVEQ   #-84,D3
   SUB.B   EXT_001d.W,D5
LAB_0060:
   BTST   D0,(A5)
   SUBQ.L   #2,-(A7)
   ADDX.B   -(A5),-(A6)
   AND.B   (A7)+,D2
   ROL.L   D4,D4
   DC.W   $5cbb
   DC.W   $63e3
   EOR.L   D2,(A0)
   DC.W   $a2d7
   MOVE.W   A6,22433(A5)
   CMP.B   -28678(A7),D1
   DC.W   $c3b2
   LSR.L   D7,D5
   DC.W   $0e9d
   DC.W   $71cf
   DC.W   $27da
   SBCD   D4,D0
   BPL.S   LAB_0064
LAB_0061:
   BHI.S   LAB_005E
   LSL.L   #7,D2
   DC.W   $105e
   DC.W   $0edb
   BLS.S   LAB_0060
   DC.W   $a9ec
   DC.W   $a6bc
   MOVE.W   -(A5),-(A6)
   ADDA.L   -31774(A2),A2
   OR.W   (A1)+,D5
   MULU   (A0)+,D4
   DC.W   $7d13
   CMP.W   A4,D0
   DC.W   $edfe
   DC.W   $3376
   SUBQ.B   #1,(A7)+
   DC.W   $b332
   ROXL.B   #3,D6
   DC.W   $af4f
   DC.W   $4a32
   DC.W   $deb8
   DC.W   $fea3
LAB_0062:
   MOVE.B   -(A6),11492(A4)
   DC.W   $061c
   BCS.S   LAB_0062
   DC.W   $7bf7
   DC.W   $4189
   OR.W   (A2)+,D6
   ADD.W   A6,D0
   SHI   -26799(A6)
LAB_0063:
   MOVE.L   #$8b2cc375,D4
   DC.W   $fadb
   DC.W   $6e51
   MOVE.W   D5,-(A6)
   ADDA.W   D0,A5
   DC.W   $227f
   DC.W   $0887
   SUBQ.L   #7,(A4)
   CHK.W   (A3)+,D0
   DC.W   $a839
LAB_0064:
   BCS.S   LAB_0063+4
   MOVEQ   #-115,D3
   DC.W   $f42d
   CMPI.W   #$b332,(A7)+
   ROXL.B   #3,D6
   DC.W   $af4f
   DC.W   $4a32
   DC.W   $deb8
   DC.W   $fea3
LAB_0065:
   MOVE.B   -(A6),11492(A4)
   DC.W   $061c
   BCS.S   LAB_0065
   DC.W   $7bf7
   DC.W   $4189
   OR.W   (A2)+,D6
   ADD.W   A6,D0
   SHI   -26799(A6)
LAB_0066:
   MOVE.L   #$8b2cc375,D4
   DC.W   $fadb
   DC.W   $6e51
   MOVE.W   D5,-(A6)
   ADDA.W   D0,A5
   DC.W   $227f
   DC.W   $0887
   SUBQ.L   #7,(A4)
   CHK.W   (A3)+,D0
   DC.W   $a839
   BCS.S   LAB_0066+4
   MOVEQ   #-115,D3
   DC.W   $f42d
   CMPI.W   #$b332,(A7)+
   ROXL.B   #3,D6
   DC.W   $af4f
   DC.W   $4a32
   DC.W   $deb8
   DC.W   $fea3
LAB_0067:
   MOVE.B   -(A6),11492(A4)
   DC.W   $061c
   BCS.S   LAB_0067
   DC.W   $7bf7
   DC.W   $4189
   OR.W   (A2)+,D6
   ADD.W   A6,D0
   SHI   -26799(A6)
LAB_0068:
   MOVE.L   #$8b2cc375,D4
   DC.W   $fadb
   DC.W   $6e51
   MOVE.W   D5,-(A6)
   ADDA.W   D0,A5
   DC.W   $227f
   DC.W   $0887
   SUBQ.L   #7,(A4)
   CHK.W   (A3)+,D0
   DC.W   $a839
   BCS.S   LAB_0068+4
   MOVEQ   #-115,D3
   DC.W   $f42d
   CMPI.W   #$b332,(A7)+
   ROXL.B   #3,D6
   DC.W   $af4f
   DC.W   $4a32
   DC.W   $deb8
   DC.W   $fea3
LAB_0069:
   MOVE.B   -(A6),11492(A4)
   DC.W   $061c
   BCS.S   LAB_0069
   DC.W   $7bf7
   DC.W   $4189
   OR.W   (A2)+,D6
   ADD.W   A6,D0
   SHI   -26799(A6)
LAB_006A:
   MOVE.L   #$8b2cc375,D4
   DC.W   $fadb
   DC.W   $6e51
   MOVE.W   D5,-(A6)
   ADDA.W   D0,A5
   DC.W   $227f
   DC.W   $0887
   SUBQ.L   #7,(A4)
   CHK.W   (A3)+,D0
   DC.W   $a839
   BCS.S   LAB_006A+4
   MOVEQ   #-115,D3
   DC.W   $f42d
   CMPI.W   #$b332,(A7)+
   END

User avatar
npomarede
Atari God
Atari God
Posts: 1166
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby npomarede » Wed Oct 25, 2017 12:21 pm

Hi
I also started doing a more "step by step" disasm to see where the protection crashes (is it due to a cpu emulation bug, or the content of read track/sector not being correct, or even a combination of these 2 problems ?).
But in my case, I don't see the crash at 78000, I get a problem much later with this part of the code :

Code: Select all

$0007890c : 4e72 6543                          stop      #$6543
$00078910 : 4e72 0555                          stop      #$555
$00078914 : 5c4f                               addq.w    #6,sp
$00078916 : 42a7                               clr.l     -(sp)

Of course, this code is not the problem, but in the context it is executed at the moment, USP=0 and a bus error will happen, jumping to nowhere, hence a crash.

But the code at $78000 is valid, I think it was just written on purpose to look like "wrong" asm code, so people hacking the game would think that the code was badly decoded.

Code: Select all

$00078000 : 0002 0050                          ori.b     #$50,d2
$00078004 : 2a2e 0d42                          move.l    $d42(a6),d5
$00078008 : 3a7c 8402                          movea.w   #$8402,a5
$0007800c : b06e fff0                          cmp.w     $fff0(a6),d0
$00078010 : 0d11                               btst      d6,(a1)
$00078012 : 7685                               moveq     #$85,d3
$00078014 : 5640                               addq.w    #3,d0
$00078016 : 6a6a                               bpl.s     $78082
-> This will go to $78082
$00078082 : 2854                               movea.l   (a4),a4
$00078084 : e3f8 007e                          lsl       $007e.w
$00078088 : d62d fbff                          add.b     $fbff(a5),d3
$0007808c : b3cf                               cmpa.l    sp,a1
$0007808e : 4800                               nbcd      d0
$00078090 : 033c                               DC.W      $033c
$00078092 : 2e86                               move.l    d6,(sp)
$00078094 : d8c8                               adda.w    a0,a4
$00078096 : 6800 0008                          bvc       $780a0
$0007809a : e8c7                               DC.W      $e8c7
$0007809c : d5c9                               adda.l    a1,a2
$0007809e : d03c c78d                          add.b     #$8d,d0
$000780a2 : 31cd 041a                          move.w    a5,$041a.w
$000780a6 : 662a                               bne.s     $780d2
-> This will go to $780d2

So, jumping to $78000 doesn't look like a problem to me, it will eventually go to 780d2.
The problem to study this protection is not that it used new techniques or things like that, trace decoding is rather common and is used in many other games/demos.
It's just that the code uses tons of layers of on the fly decoding and it's really long and tedious to follow the code. But with enough time it should be possible to see what is causing the crash in the end

Note that in Hatari, when the protection crashes near $78914, I can "patch" some registers myself before the crash and go even further to reach the part when track 3 is read/tested. But then again, a crash will occur in the end and I suspect it's related to my manual patching and a different context than expected.

Also, I don't know at which point it also crashed in Steem, maybe it's a different problem.

Nicolas

User avatar
troed
Atari God
Atari God
Posts: 1197
Joined: Mon Apr 30, 2012 6:20 pm
Location: Sweden

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby troed » Wed Oct 25, 2017 12:45 pm

npomarede wrote:Hi
I also started doing a more "step by step" disasm to see where the protection crashes (is it due to a cpu emulation bug, or the content of read track/sector not being correct, or even a combination of these 2 problems ?).
But in my case, I don't see the crash at 78000, I get a problem much later with this part of the code :

Code: Select all

$0007890c : 4e72 6543                          stop      #$6543
$00078910 : 4e72 0555                          stop      #$555
$00078914 : 5c4f                               addq.w    #6,sp
$00078916 : 42a7                               clr.l     -(sp)

Of course, this code is not the problem, but in the context it is executed at the moment, USP=0 and a bus error will happen, jumping to nowhere, hence a crash.


Huh. You're right - and when I tested it just now I got the same. The problematic code above (triggers bus error) which points to code that possibly might be correct (vector address $6502) triggers illegal instruction which is not handled) is the same as I get to with the manual entry point. The address error vector has been set ($784da) and looks valid. Other code that hasn't been executed at this time would set the bus error vector.

I can only assume my misconception about the error directly at $78000 stems from earlier failed decoding. Strange, but luckily I posted here before I spent too much time thinking the solution lay there then ;)

Note that in Hatari, when the protection crashes near $78914, I can "patch" some registers myself before the crash and go even further to reach the part when track 3 is read/tested. But then again, a crash will occur in the end and I suspect it's related to my manual patching and a different context than expected.


While tracing earlier code (much earlier) there were a few points when I wasn't sure the correct decoding was done. I'll have to replicate what you did to pass the bus->illegal error and see if it can be related.

In any case the bus->illegal error itself is strange, but I can skip the nagging thoughts that there were issues with the content read to $78000. Thanks!

/Troed

User avatar
troed
Atari God
Atari God
Posts: 1197
Joined: Mon Apr 30, 2012 6:20 pm
Location: Sweden

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby troed » Wed Oct 25, 2017 6:09 pm

Alright, I have a quite clean way of passing track 2 now. As Ijor suggested the problem is surely in the emulation (of STOP edge cases). With that done I'm now able to read track 3 followed by 3x-37 where I haven't had time yet to see what causes the next fail. Could still be verification of data from track 3 happening there.

/Troed

User avatar
npomarede
Atari God
Atari God
Posts: 1166
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby npomarede » Wed Oct 25, 2017 6:27 pm

Do you mean you found the cause for the crash and what is missing in emulation ? Or that you changed some values by hand to avoid the crashing part (maybe similar to what I did to read track 3 too) ?

User avatar
troed
Atari God
Atari God
Posts: 1197
Joined: Mon Apr 30, 2012 6:20 pm
Location: Sweden

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby troed » Wed Oct 25, 2017 8:41 pm

npomarede wrote:Do you mean you found the cause for the crash and what is missing in emulation ? Or that you changed some values by hand to avoid the crashing part (maybe similar to what I did to read track 3 too) ?


The second interrupt during the STOP $555 drops to user mode after the RTE, that's why the stack pointer suddenly becomes zero (USP instead of ISP). Regardless if that should happen or not, the code that follows (a "regular" trap #1 supervisor call) cannot execute since the trap #1 vector is not set up correctly. I'm not sure what the target hw does in that case actually, I solve it for now by NOPing the move.w and trap #1.

The second spot is similar but not completely. There's a STOP $777, which must execute once but will hang if it executes a second time. So I let it run once and then NOP it before the second time around.

Since both these cases have to do with STOP, I'm assuming there's an edge case around that not handled in emulation as on real hw.

With these changes the code reads track three (and is a pain to follow due to deobfuscation/reobfuscation of single instructions at a time) and then continues to read track #31 to #37. We're well into "SYNC" code now, so if some of the parts before this were written by others I do believe the code I'm currently tracing now is Redhead's.

My main goal right now is to get far enough to see what version of AS is on this image ... ;)

/Troed

edit: Heh. This is definitely SYNC code right here ;) "TCB SUGER! Hello lamer!!! Get out of here, cartridge cracking is so horribly lame!"

User avatar
npomarede
Atari God
Atari God
Posts: 1166
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby npomarede » Wed Oct 25, 2017 9:11 pm

I don't see the same thing. The TRAP 1 should work, a vector is set at address $84 to $6047a, no need to NOP it. What value do you see at $84 ?

I agree the problem at this point is that "STOP #$555" goes to user mode and A7 becomes 0, hence the bus error after the push to -(a7) ; but in my case, I fix this by setting A7=5000 for example after the "STOP #$555", so I stay in user mode, but with a valid stack. Then the trap is executed and the code goes on, reading track 3 and then all the sectors of track 3, but I don't see a STOP #$777 later

I will try your "code path", it seems we see 2 different ones that share the track 3 loading but behave different after.

Nicolas

User avatar
troed
Atari God
Atari God
Posts: 1197
Joined: Mon Apr 30, 2012 6:20 pm
Location: Sweden

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby troed » Wed Oct 25, 2017 9:35 pm

npomarede wrote:I don't see the same thing. The TRAP 1 should work, a vector is set at address $84 to $6047a, no need to NOP it. What value do you see at $84 ?


Well, that trap vector was set much earlier during trace decoding IIRC. It will set trace active, move $e00030 to a0 and jmp(a0). From the below it sounds that yours is something completely different??

I agree the problem at this point is that "STOP #$555" goes to user mode and A7 becomes 0, hence the bus error after the push to -(a7) ; but in my case, I fix this by setting A7=5000 for example after the "STOP #$555", so I stay in user mode, but with a valid stack. Then the trap is executed and the code goes on, reading track 3 and then all the sectors of track 3, but I don't see a STOP #$777 later

I will try your "code path", it seems we see 2 different ones that share the track 3 loading but behave different after.


Do remember I'm on the "v1.5" image if you're not.

grab0001.png
You do not have the required permissions to view the files attached to this post.

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1952
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby Steven Seagal » Wed Oct 25, 2017 10:12 pm

troed wrote:Since both these cases have to do with STOP, I'm assuming there's an edge case around that not handled in emulation as on real hw.


You found a good hack to get the disk image loading (can reproduce), but maybe it goes around the protection like a crack.
Not sure the problem is in STOP as you must NOP some more instructions.
Still a breakthrough for sure. :)

User avatar
npomarede
Atari God
Atari God
Posts: 1166
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby npomarede » Wed Oct 25, 2017 10:51 pm

npomarede wrote:I will try your "code path", it seems we see 2 different ones that share the track 3 loading but behave different after


Well, it seems neither solution (yours and mine) when reaching the 2 "stop $6543" and "stop $555" were the correct explanation to go on decoding the protection, but at least I think I found the real cause in that part and now it will be correctly emulated without requiring manual changes :) (I think that when you replace the stop and the trap with NOP it was by luck that the correct code path was reached, because the "correct" fix takes a different "road")

Then I also reach the part where the "stop $777" are executing forever ; here also, there's a cpu emulation bug, but it's easier to fix as in that case the stop instruction in Hatari doesn't exactly follows motorola's doc, hence this bug (whereas for the previous problem near the 2 STOP, I think the required behaviour was really not described in Motorola's doc).

After that, I reach the part with the Expose Software intro, but after a while it seems to access drive B, then crash. Maybe I need to insert a disk in drive B, I will check that later.

I will update Hatari's sources later with the correct changes (I also need to report this to WinUAE, as it needs to be fixed too)

Nicolas

User avatar
dlfrsilver
Atari God
Atari God
Posts: 1415
Joined: Mon Jan 31, 2005 1:41 am
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby dlfrsilver » Wed Oct 25, 2017 11:56 pm

Awesome ! Thanks !
Now SPS France representative since the 19th of June 2014. Proud to be an SPS member !

User avatar
Steven Seagal
Atari God
Atari God
Posts: 1952
Joined: Sun Dec 04, 2005 9:12 am
Location: Undisclosed
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby Steven Seagal » Thu Oct 26, 2017 8:33 am

npomarede wrote:Well, it seems neither solution (yours and mine) when reaching the 2 "stop $6543" and "stop $555" were the correct explanation to go on decoding the protection, but at least I think I found the real cause in that part and now it will be correctly emulated without requiring manual changes :) (I think that when you replace the stop and the trap with NOP it was by luck that the correct code path was reached, because the "correct" fix takes a different "road")


If it is the privilege violation, it's quite frustrating as I recently "corrected" this in Steem, based on a test case run on real STE.
I'm a dodgy ST programmer unfortunately. :(
Apparently if you STOP using a non supervisor future SR like here, the CPU triggers the exception. Still seems odd.
If it's not that, then I found a third way/hack. :)

Then I also reach the part where the "stop $777" are executing forever ; here also, there's a cpu emulation bug, but it's easier to fix as in that case the stop instruction in Hatari doesn't exactly follows motorola's doc, hence this bug (whereas for the previous problem near the 2 STOP, I think the required behaviour was really not described in Motorola's doc).


Is it stacking pc +4 (on next instruction) rather than pc of STOP? I don't find this in the Motorola doc? But it does the trick.
Thx to you and troed (who showed a working path) this program will work in emulators.

About the images:
The STX one linked to at the start is v1.5! Both it and the STX of v1.3 run in Steem, but may fail to load.
The SCP of v1.3 loads almost all the time but I lose keyboard control with option C1 ("precise" keyboard...) - without option C1 it hangs on the black 'Audio Sculpture' screen.
The CTR of v1.3 hangs (I think it fails the protection on track 3).

EDIT: This software reprograms the 6301. Yeepee, another case! :)

EDIT2: There was also another WD1772 emu bug that messed up the timing of 6301 programming, without it the SCP image also runs.
But we still have a problem with the CTR image.
Last edited by Steven Seagal on Thu Oct 26, 2017 12:06 pm, edited 1 time in total.

User avatar
npomarede
Atari God
Atari God
Posts: 1166
Joined: Sat Dec 01, 2007 7:38 pm
Location: France

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby npomarede » Thu Oct 26, 2017 10:44 am

Steven Seagal wrote:If it is the privilege violation, it's quite frustrating as I recently "corrected" this in Steem, based on a test case run on real STE.
I'm a dodgy ST programmer unfortunately. :(
Apparently if you STOP using a non supervisor future SR like here, the CPU triggers the exception. Still seems odd.
If it's not that, then I found a third way/hack. :)

Yes, that's it. It seems that unlike "andi to sr" which allows to change SR and clear S bit, STOP will do a privilege violation exception (vector at addr $20) in case the requested value clear the S bit, which is the case with "#$777".

Is it stacking pc +4 (on next instruction) rather than pc of STOP? I don't find this in the Motorola doc? But it does the trick.
Thx to you and troed (who showed a working path) this program will work in emulators.

Yes, the stacked PC should be the one of the next instruction in case of the privilege exception ; if not, in the case of this protection we can see that code will loop forever between the STOP and the exception which goes back to the STOP after the RTE.
It's not completely explicit in Motorola doc, but it still says that STOP increases PC then stop prefetching, so it's seems close to what needs to be emulated to pass this protection.
Also, note that STOP can also be interrupted by a TRACE exception in case the T bit was set before the STOP. In that case, it could be interesting to check on real HW if the stacked PC is also pointing after the STOP.

In the end, this protection is a solid test case for emulation ; it doesn't use all the possible "undefined" CPU behaviour (and it doesn't require too much cycle accuracy, except in one or two places), but it surely deserves its place on a checklist when testing emulation accuracy :)

Nicolas

User avatar
dlfrsilver
Atari God
Atari God
Posts: 1415
Joined: Mon Jan 31, 2005 1:41 am
Contact:

Re: Req : "Audio Sculpture" (STX,...) even not running...

Postby dlfrsilver » Thu Oct 26, 2017 11:19 am

Yes i perfectly agree : those incredibly well copy protected programs allows to seriously enhance the emulator in term of accuracy. That's so pleasant and delightful to read :)
Now SPS France representative since the 19th of June 2014. Proud to be an SPS member !


Social Media

     

Return to “Applications”

Who is online

Users browsing this forum: No registered users and 1 guest