Jump to content
IGNORED

Disk-Master 1050 disk copy protection


ijor

Recommended Posts

I analyzed this version 1.3 a little more. Something is wrong with this dump. Either this is a version only for the Speedy, or either some sectors are missing the data.

 

The Speedy code reads protected sectors from tracks 19-22. They have the correct code for the Speedy.

 

The Happy code reads protected sectors from tracks 15-18. They are supposed to have the code to perform the custom format inside the Happy drive. But these sectors are blank. They are not blank in the 1.0 version I checked some time ago.

 

@Yellowman are you sure this is fully working on the Happy. Note that you can get to the main menu anyway. But did you actually try to perform a custom format (which is the main functionality of this software) with the Happy?

 

In also found that there is an additional protection. The program checks for track skew align. And it does it counting Vertical Blank interrupts. It won't work on NTSC systems. May be the 1.0 version has this same skew align check but I didn't note it. I noted it here with version 1.3 because sometimes this check fails, even on PAL (but it always fails on NTSC).

 

  • Like 3
Link to comment
Share on other sites

12 hours ago, DjayBee said:

Thanks but are these your not-yet-working settings for ED and DD?

 

I was interested in your seemingly working settings for SD disks.

Yes, those were the attempts that wouldn't write any readable sectors when read back on my 1050.

 

Here is for what worked

gw.exe write --device=COM16 --drive=A --format atari.90 --tracks=c=0-39:h=0:step=2 "Happy71.scp"

 

gw.exe read --device=COM16 --drive=A --format atari.90 --tracks=c=0-39:h=0:step=2 "Happy71.scp"

 

However----It only worked on my 810 Happy drive!!!

I wrote and read this 2 more times to verify it works

Link to comment
Share on other sites

9 hours ago, ijor said:

I analyzed this version 1.3 a little more. Something is wrong with this dump. Either this is a version only for the Speedy, or either some sectors are missing the data.

 

The Speedy code reads protected sectors from tracks 19-22. They have the correct code for the Speedy.

 

The Happy code reads protected sectors from tracks 15-18. They are supposed to have the code to perform the custom format inside the Happy drive. But these sectors are blank. They are not blank in the 1.0 version I checked some time ago.

 

@Yellowman are you sure this is fully working on the Happy. Note that you can get to the main menu anyway. But did you actually try to perform a custom format (which is the main functionality of this software) with the Happy?

 

In also found that there is an additional protection. The program checks for track skew align. And it does it counting Vertical Blank interrupts. It won't work on NTSC systems. May be the 1.0 version has this same skew align check but I didn't note it. I noted it here with version 1.3 because sometimes this check fails, even on PAL (but it always fails on NTSC).

 

Thanks for analyzing this further.  This would explain a lot.  The code looks like Happy code, but I haven't analyzed it yet, but it should be a simple matter to look at addresses he uses and see if they are in the Happy rom.

 

I found the HxCFloppyEmulator and used it to write the scp to an img file, so now I have access to all the sectors, and wrote back to an enhanced floppy.

 

I translated the German error messages, and it's saying I don't have a Happy drive. The last error was trying to use the 48 CMND with 30a and 30b at 60,60.  That should be fine, but the 48 CMND has been overwritten.

If I read back 9780, the new commands C A L M T and F are written. The Happy drive does not like any of this!

 

Link to comment
Share on other sites

Looking at code on the sector 27's, there are a bunch of JSRs and JMPs that are not in the Happy rom.  Well, not good addresses anyway.

JMP FF06, JSR FF09, JSR FF2A, JSR FF2D and JSR FF5A

 

I've never looked at Speedy code before, but I bet these are used there.

so @ijor, thanks for finding this so I don't waste any more time trying to get it to work.

Link to comment
Share on other sites

22 hours ago, Gregf said:

I guess I better get a 40 track drive then, but also it seems that the greaseweazle doesn't do what I hoped it would do.  So, what do you recommend other than an ST and Discovery cartridge? and maybe a bulk eraser 🙂

 

The GW is great for reading disks. Writing back disks is complicated and there is no ideal universal solution. Currently, probably the best hardware for Atari 8-bit disks is the SCP. This is because Phaeron's software can drive the SCP hardare directly and write back disks selecting a suitable write splice point. I don't know if the SCP is currently available to purchase or not. This is a purely software issue, so I expect that it eventually will be resolved with the GW, that is actively developed and updated. May there is already some work in progress, I don't know. Somebody should contact Keirf (GW developer) about the issue.

 

The 48 tpi vs 96 tpi issue is another thing. Yes, if you don't have a 48 tpi drive you need either a bulk eraser or some factory virgin disks. I read once that some people had good results bulk erasing disks with a CRT. No idea how reliably this method is, and CRTs are becoming hard to find nowadays, anyway.

 

On 5/12/2023 at 7:34 AM, DjayBee said:

We were not yet able to write anything successful back to real disks using the Greaseweazle.

Really? I would expect that as long as the disk image is aligned to the index hole (such as Electronic Arts titles) it should work fine ???

 

I'll follow up about the Disk Master 1.3 issue later

Edited by ijor
Link to comment
Share on other sites

I'm attaching here the content of the protected sectors on Yelloman's dump of DiskMaster 1050 1.3. As commented above, this disk seems to be only for the Speedy, not for the Happy. I don't know if it was released like that by the original author or not. But I currently have no plans to do any further work on that specific version. At least not until somehow confirming the status of this dump. For this reason I am providing instructions on how to run this version under emulation with Altirra. This task is not for everybody. You have to be familiar with Altirra's debugger.

 

- Download the 1.3 SCP dump posted earlier in this thread.

- Run Phaeron's a8rawconv to produce an ATR (or ATX) image. Components of the copy protection would be missing anyway.

- Configure Altirra for PAL, XL, and a 1050 Speedy drive with full emulation. You would need a working Speedy firmware.

- Enable the debugger and set a breakpoint at location $8614

- With the debugger switch CPU target to the Speedy (usually with the command ~1s) and set two breakpoints at $8085 and $80A9

- Again, the last two breakpoints must be on the drive CPU, not on the main one.

- Run the DiskMaster image. It will stop at breakpoint $8085. This is the Speedy routine that reads the copy protected sectors.

- Modify two bytes at the drive memory (again, use ~1s if needed) with the following debugger commands:

- e $8092 $80, and e $80b5 $1a

- Continue execution and it will stop at breakpoint $80A9

- At this point you must manually load the copy protected sectors from the binary file attached in this post.

- Again, at the drive memory, run the debugger command: .readmem <path to the binary file> $9800

- Continue execution and it will stop at the main CPU breakpoint $8614.

- This is the skew align test and most of the times you would need to modify the A register at the main CPU:

- r a 8

- Continue execution and the same breakpoint will trigger again.

- The A register would probably have the correct value this time ($08), otherwise modify it again.

- Continue and, finally, you are good to go ...

 

Hope I didn't make any mistake. This was not thoroughly tested.

 

DiskMaster13-Sect27-Tracks19-22.bin

Edited by ijor
  • Like 2
Link to comment
Share on other sites

3 minutes ago, Mathy said:

Hello @Gregf

 

Maybe you can ask some of the native German speakers here on AtariAge to help with translations.  Translating tech talk isn't easy, especially if the sentences are short like they are in most utilities.

 

Sincerely

 

Mathy

 

Yes, I might do that.  It is very different from the romance languages that I studied.  One word added or removed can change the meaning.

  • Like 1
Link to comment
Share on other sites

The above image was generated from Yellowman's dump.

These ones are generated from dumps contained in the current A8SP torrent:

 

This version should work on Happy enhanced 1050s (only):

DiskMaster v1.0 [cr test1].atr

 

An alternate v1.3 (only for Speedies):

DiskMaster v1.3 [alt version][cr test4].atr

 

Now we only need somebody who tests if they really work. ;)

  • Like 4
Link to comment
Share on other sites

Okay DjayBee,

only a small+fast test here. All Speedy V1.3 versions above (cr test1, cr test3, alt version) do boot fine with my Speedy drives. I can reach the title screen, Speedy jumps to ultraspeed after some seconds and after being programmed, it goes to slow speed mode, then the menu appears. And from there, I have absolutely no clue what to do...

 

I do not have any Happy drives and as I expected, the Happy Version 1.0 of DiskMaster does not work with a Speedy drive. The Speedy jumps to ultraspeed and when being programmed, an error appears that says the drive is not a Happy and cannot be programmed...

 

Since I will visit the HATZ meeting tomorrow and you said you will be there, maybe we can do some further tests there ? Hopefully I do not need to take some copy-protected A8 program with me (not planned, not packed)... and as others already know, I do not have many original A8 programs in their original copy-protected form anymore...

 

 

  • Like 1
Link to comment
Share on other sites

And the Happy 1.0 version doesn't work on my Happy 1050 rev 2 rom with 8k ram

If I nop the calls to the 48 and 4c commands, then it goes to the menu. 

Otherwise the message says "Drive cannot be programmed."

And of course the read track doesn't work.  Bad 54 command.

 

I would like to see a translated Disk Master manual, if anyone has done this.

 

Edited by Gregf
Link to comment
Share on other sites

2 hours ago, CharlieChaplin said:

Since I will visit the HATZ meeting tomorrow and you said you will be there, maybe we can do some further tests there ? Hopefully I do not need to take some copy-protected A8 program with me (not planned, not packed)... and as others already know, I do not have many original A8 programs in their original copy-protected form anymore...

There is no need for copy protected disks. The main functionality can be tested with simple disks. But you have to read the manual to be able to understand what to do. There are two main tasks. One is to read a track, the other is to perform a custom format. As expected, the latter requires a disk that can be erased and reformatted.

 

7 minutes ago, Gregf said:

And the Happy 1.0 version doesn't work on my Happy 1050 rev 2 rom with 8k ram

As I commented in the initial posts, it requires a Happy 1050 with rev 1 ROM (and 8K RAM).

Edited by ijor
Link to comment
Share on other sites

Just now, ijor said:

There is no need for copy protected disks. The main functionality can be tested with simple disks. But you have to read the manual to be able to understand what to do. There are two main tasks. One is to read a track, the other is to perform a custom format. As expected, the latter requires a disk that can be erased and reformatted.

 

As I commented in the initial posts, it requires a Happy 1050 with rev 1 ROM (and 8K RAM).

Well that explains that.  I think I missed the 1st half of the thread.  I'll go back and read it.  In the mean time, I might have a rev 1 rom somewhere.

Link to comment
Share on other sites

On 5/17/2023 at 11:36 PM, ijor said:

As I commented in the initial posts, it requires a Happy 1050 with rev 1 ROM (and 8K RAM).

I found why it doesn't work with Happy rev 2 rom. I sent a patch to @DjayBee. He will probably post an updated crack at some point including another enhancement I recommended.

 

The modified program works fine with both official Happy rom revisions. Or at least it seem so at the extended that is possible to test it under emulation, which is limited. Probably not, but I can't be 100% sure if the program doesn't have other incompatibilities with Happy rev 2.

Link to comment
Share on other sites

On 5/21/2023 at 9:38 AM, ijor said:

I found why it doesn't work with Happy rev 2 rom. I sent a patch to @DjayBee. He will probably post an updated crack at some point including another enhancement I recommended.

 

The modified program works fine with both official Happy rom revisions. Or at least it seem so at the extended that is possible to test it under emulation, which is limited. Probably not, but I can't be 100% sure if the program doesn't have other incompatibilities with Happy rev 2.

Thanks for your work on this.  I'll give it a thorough test on my drive.

Link to comment
Share on other sites

On 5/21/2023 at 6:38 PM, ijor said:

I found why it doesn't work with Happy rev 2 rom. I sent a patch to @DjayBee. He will probably post an updated crack at some point including another enhancement I recommended.

 

The modified program works fine with both official Happy rom revisions. Or at least it seem so at the extended that is possible to test it under emulation, which is limited. Probably not, but I can't be 100% sure if the program doesn't have other incompatibilities with Happy rev 2.

After I got positive response from two German testers, please give these dumps a try (v1.3 is Speedy-only and v1.0 is Happy-only but incl. Speedy's Happy mode).
There seems to be an intermittent problem when reading track 0 (at least from a v1.3 original disk). It sometimes returns garbage.

 

DiskMaster v1.3 [cr test5].atr from @Yellowman's dump.

DiskMaster v1.3 [alt version][cr test5].atr dump from A8SP's torrent

DiskMaster v1.0 [cr test3].atr dump from A8SP's torrent

 

Credits go to @ijor who submitted all the needed information. I just had to put everything together and make the crack small enough to exactly overwrite the existing code.

 

Modifications:

  • Instead of 4 times sector 27 with 256 bytes and spread over four tracks, my code loads sectors 1-8 with 128 bytes from the first of the protected tracks (v1.0 track $0F, v1.3 track $13).
    This is based on ijor's information further up this thread.
  • The original is able to examine its own disk except for the protected tracks. In which case it delivers garbage data.
    ijor submitted a patch to allow dumping these tracks as well.
  • And as stated several times above, the original Happy version runs only on v1 Happy ROMS.
    ijor submitted a patch to run on v2 ROMs as well.

Waiting for more feedback by @Gregf and certainly others as well, if everything works well.

  • Like 1
Link to comment
Share on other sites

@DjayBee and @ijor

 

OK, I finally got it to work.  For some reason, the protected sectors you put on track $0F weren't there on the disk I created with Ape Prosystem.  I could see the Happy code on the ATR file, so, I manually wrote that data to sectors $187 thru $18e and now it works fine on the read track.

 

 

Edited by Gregf
Link to comment
Share on other sites

9 hours ago, Gregf said:

@DjayBee and @ijor

 

OK, I finally got it to work.  For some reason, the protected sectors you put on track $0F weren't there on the disk I created with Ape Prosystem.  I could see the Happy code on the ATR file, so, I manually wrote that data to sectors $187 thru $18e and now it works fine on the read track.

 

 

@classics,

might want to know about that.

Link to comment
Share on other sites

11 hours ago, Gregf said:

OK, I finally got it to work. ..

 

Glad you could make it work.

 

Btw, Greg, in another thread we were talking about a possible incompatibility between accessing the $9800 address space and the optional Happy Controller. This because any access to this address space seems to trigger one of the flip flops on the Happy Controller board. Since you mentioned you used the extra RAM for some in-house software, do you remember anything about this possible conflict?

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...