Jump to content
IGNORED

Disk-Master 1050 disk copy protection


ijor

Recommended Posts

Is Stefan Wachter active on the ABBUC-forum, or has ABBUC already tried to get in touch with him?

Seems to me he is a really valuable source of information not only about disk protection techniques, but the hardware side of both the diskdrives and Happy/Speedy/Turbo upgrades as well. It would be cool to read his stories about his A8 years and the development of his programs.

 

re-atari

  • Like 1
Link to comment
Share on other sites

  • 2 years later...

Hi, I just found this thread again.
I own the Disk-Master in version 1.3. However, the disk label says version 1.1.
Well, as others have written, the "protection" consists of a real twenty-seventh sector.
The sector number is actually $1B. And it's 256 bytes in size.
So the disk is in the normal Enhanced Format with 40 tracks with 26 sectors that are 128 bytes in size.
But tracks $0f - $16 also have sector $1B with 256 bytes.

 

Is it possible to make a working backup of the disk master? Yes.
Is this possible with original Atari 8-bit hardware? No.

 

I had tried examining the disk. Only with a 1050 with Super Archiver, incl. Bitwriter.
So loaded the Enhanced Density Archiver 3.03 and looked at the tracks.
There really appears a 27er sector. And of course tried to copy.
But there were typos while writing. Of course the copy didn't work.
Now with a 1050 Speedy and the MS-Copy tried to copy.
But when reading tracks $0F-$16 there was only garbage like 30 or 36 sectors.
Try the Ultracopy 2.0 as a last chance for a Happy and Speedy.
At least the 27th sector is displayed correctly here, with 256 bytes.
See image.

1216506179_DiskMastermitUltracopy.thumb.jpg.8616568f9fa0c25e167c87abb80fbd8e.jpg
But when copying, the 27th sector is only 128 bytes.
So no chance to do that with a 1050.
The Happy Software 7.x can only do single density like the backup machine in the Turbo 1050.

 

How to copy now?
There is something like an Atari ST. Well, it must be useful for something ;-)
So a 5.25" drive is connected to the ST. Either you take a 40 track drive, or an 80 track drive, which you jump to 40 tracks.
Now if that shows up as drive B in the desktop, you can use it as a 360Kb floppy.
You should also set the step rate to 6ms. Now I loaded the old procopy. Here you can analyze the disk again.
In the picture you can see the following series of numbers.

 

1477801323_DiskMasteraufST.thumb.jpg.a64167cd5e23a0e5f5cd0ae577560ad4.jpg
The first column shows track $0F
The second column shows the disks page 00 (side A = bottom)
The third column shows the sector number. $01-$1B
The fourth column shows the sector size. 00 = 128 bytes, 01 = 256 bytes (see sector $1B), 02 = 512 bytes ...
Now just copy the disk. Protectet, single side and format must be set.
And tracks 01-40. After formatting and writing you have a really working copy of Diskmaster.

 

The Disk Master runs on all 1050 Speedys but not on all Happys. I have at least 4
different roms in the mega speedy for the happy mode.

 

The tracks are shifted on the original disk.
The ST copy now has the tracks aligned with the index hole.
Luckily the programmer didn't ask for this.

 

I haven't tried the Discovery Cartrigge yet because I didn't have it then.
Now, in January, I had already read out the disk master with Greaseweasle as scp.
I wrote back the scp but it doesn't work. The 27th sector has 256 bytes.

 

  • Like 4
Link to comment
Share on other sites

Maybe you can send a physical 5,25" disk copy (made with Procopy on the ST) to DjayBee, so he can have a look at it, crack it and create an ordinary + working ATR of it. he is a member of the Abbuc regional group SAUG (and a former member of Copy Service Stuttgart)...

 

(And a copy of Ultracopy / Ultra Copier 2.0 as a working ATR image would also be nice.)

 

  • Like 1
Link to comment
Share on other sites

17 hours ago, Yellowman said:

The Disk Master runs on all 1050 Speedys but not on all Happys. I have at least 4 different roms in the mega speedy for the happy mode.

 

Do you have a Disk Master version for the Speedy? We never seen a version for the Speedy. We weren't even sure it exists.

 

17 hours ago, Yellowman said:

Now, in January, I had already read out the disk master with Greaseweasle as scp.
I wrote back the scp but it doesn't work. The 27th sector has 256 bytes.

 

This is probably because the tracks are not index aligned and the GW software doesn't know where to place the write splice.

 

Link to comment
Share on other sites

2 hours ago, ijor said:

 

Do you have a Disk Master version for the Speedy? We never seen a version for the Speedy. We weren't even sure it exists.

 

 

This is probably because the tracks are not index aligned and the GW software doesn't know where to place the write splice.

 

might be a good idea to let the GW folks know what's needed or lacking

and why

Edited by _The Doctor__
  • Like 1
Link to comment
Share on other sites

1 hour ago, _The Doctor__ said:

might be a good idea to let the GW folks know what's needed or lacking and why

I doubt they don't know. This is not specific to this title, not even specific to the Atari. It is the same with every disk that is not aligned to the index hole as it is common with many 5.25 disks including C64 ones as well. If you format the tracks "blindly" from an index pulse to the next one, you might corrupt any sector that crosses the index (sometimes called data under the index). It was also used in purpose as a copy protection in others platforms with 3.5 disk drives.

 

What is required is to perform a high level analysis of the track data to be able to locate a suitable write splice point. In other words, you find any suitable gap between sectors that doesn't have any (important) data. Then you format the track by ending the write (splice) at that point you located. It is also possible, or at least feasible, to do this without a high level analysis by detecting the original write splice point(s) at the flux transition level; but it is usually less reliable.

 

I'm sure Keirf (GW and FlashFloppy developer) knows this already.

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

On 4/16/2023 at 2:46 PM, Yellowman said:

Now, in January, I had already read out the disk master with Greaseweasle as scp.
I wrote back the scp but it doesn't work. The 27th sector has 256 bytes.

 

So you have the original disk.

Could you post the scp file you made?  I just bought a greaseweazle, and love it!

I really want to look at these protected tracks.

Also, could you post a read track dump of a track that can't be copied?

  • Like 1
Link to comment
Share on other sites

On 4/17/2023 at 3:06 PM, ijor said:

I doubt they don't know. This is not specific to this title, not even specific to the Atari. It is the same with every disk that is not aligned to the index hole as it is common with many 5.25 disks including C64 ones as well. If you format the tracks "blindly" from an index pulse to the next one, you might corrupt any sector that crosses the index (sometimes called data under the index). It was also used in purpose as a copy protection in others platforms with 3.5 disk drives.

 

What is required is to perform a high level analysis of the track data to be able to locate a suitable write splice point. In other words, you find any suitable gap between sectors that doesn't have any (important) data. Then you format the track by ending the write (splice) at that point you located. It is also possible, or at least feasible, to do this without a high level analysis by detecting the original write splice point(s) at the flux transition level; but it is usually less reliable.

 

I'm sure Keirf (GW and FlashFloppy developer) knows this already.

you never know until you offer up such info and feedback

Link to comment
Share on other sites

On 4/17/2023 at 5:34 PM, ijor said:

 

Do you have a Disk Master version for the Speedy? We never seen a version for the Speedy. We weren't even sure it exists.

 

The German manual states that 1050 with Happy or Speedy is required.

 

On 4/22/2023 at 4:09 AM, Gregf said:

So you have the original disk.

Could you post the scp file you made?  I just bought a greaseweazle, and love it!

I really want to look at these protected tracks.

Also, could you post a read track dump of a track that can't be copied?

I just did the last updates for the Greaseweazle. 
Attached is a scp from the Diskmaster side A. 
I have a modified Mitsumi drive (from an XF551) which can also dump backsides.

 

Disk Master.zip

  • Like 1
Link to comment
Share on other sites

3 minutes ago, Yellowman said:

I have a modified Mitsumi drive (from an XF551) which can also dump backsides.

Did you add a second index sensor so you can flip the disk to dump it?

With a no-flip modified drive the SCP THDT needs to be modified in order for a8rawconv 0.94 to access the sideB flux streams.

  • Like 1
Link to comment
Share on other sites

11 hours ago, Yellowman said:

The German manual states that 1050 with Happy or Speedy is required.

 

I just did the last updates for the Greaseweazle. 
Attached is a scp from the Diskmaster side A. 
I have a modified Mitsumi drive (from an XF551) which can also dump backsides.

 

Disk Master.zip 2.9 MB · 5 downloads

Thanks for the scp file.  I saw it boot to the German error message.

So, now if you could run my rdtrked.com on one of the tracks that has the weird sectors, that would really help.

Sine he requires a 1050 Happy with 8K, he may be hiding stuff in the upper 2k.

Link to comment
Share on other sites

On 4/24/2023 at 6:23 PM, Yellowman said:

The German manual states that 1050 with Happy or Speedy is required.

 

I know the manual mentions the Speedy. But all the versions we have seen before were for the Happy only. Yours is the first one that seems to support the Speedy.

 

Thanks a lot for posting the dump.

Edited by ijor
Link to comment
Share on other sites

  • 2 weeks later...
On 4/24/2023 at 11:34 PM, BillC said:

Did you add a second index sensor so you can flip the disk to dump it?

With a no-flip modified drive the SCP THDT needs to be modified in order for a8rawconv 0.94 to access the sideB flux streams.

Yes.

 

On 4/25/2023 at 10:54 AM, Gregf said:

Thanks for the scp file.  I saw it boot to the German error message.

So, now if you could run my rdtrked.com on one of the tracks that has the weird sectors, that would really help.

Sine he requires a 1050 Happy with 8K, he may be hiding stuff in the upper 2k.

It took some time. But now here are the files that were created with rdtrked.com.

Track 15 to track 23. I hope it helps with the analysis.

 

rdtrkdm.atr

Link to comment
Share on other sites

On 5/7/2023 at 2:47 PM, Yellowman said:

Yes.

 

It took some time. But now here are the files that were created with rdtrked.com.

Track 15 to track 23. I hope it helps with the analysis.

 

rdtrkdm.atr 130.02 kB · 3 downloads

Thank you so much!  Previously, I found that when using your scp file written to a disk and I got to the error msgs in German, I could pop into Omnimon and do a jsr $5000, and the menus appear-but not everything worked

 

So-using the read tracks you supplied, I found that the sector 27's on tracks 19-22 have code that runs in the $9800 area of Happy ram, as I suspected he was doing.  I found code there for Read track and Write track, so that explains why I couldn't get the track read to work. No 256 byte sectors, no code.

 

Anyway, I suspect I'll have a crack soon.

 

Now, there is one problem.  The track22 has a glitch halfway through sector 27, which can happen on a read track, but not often that I've seen.  Could you re do that track please?? I want to be sure it was a glitch, and not something he did to fool a track read.

 

Thanks again!

Edited by Gregf
  • Like 1
Link to comment
Share on other sites

20 hours ago, Gregf said:

So-using the read tracks you supplied, I found that the sector 27's on tracks 19-22 have code that runs in the $9800 area of Happy ram, as I suspected he was doing.  I found code there for Read track and Write track, so that explains why I couldn't get the track read to work. No 256 byte sectors, no code.

 

Now, there is one problem.  The track22 has a glitch halfway through sector 27, which can happen on a read track, but not often that I've seen.  Could you re do that track please?? I want to be sure it was a glitch, and not something he did to fool a track read.

 

I didn't check this version specifically. But in the version I checked there is no copy protection implemented with the read track. The read track is only used to hide the protection when you use the program to examine itself.

 

What you call read track glitches, it is very common. It (almost) always happens when using the read track command on an MFM track. This is related to the behavior of the FDC sync mark detector which is unconditionally enabled when using the read track command. It depends on the sector data. What you see as a glitch is the FDC switching to read the clock pattern instead of the data. There is nothing you can do about it. If the sector data provokes this behavior, it will happens always. Retrying won't help.

 

Note that in this case there might be additional corruption caused by formatting the track at the wrong write splice point.

Edited by ijor
Link to comment
Share on other sites

8 hours ago, ijor said:

 

I didn't check this version specifically. But in the version I checked there is no copy protection implemented with the read track. The read track is only used to hide the protection when you use the program to examine itself.

 

What you call read track glitches, it is very common. It (almost) always happens when using the read track command on an MFM track. This is related to the behavior of the FDC sync mark detector which is unconditionally enabled when using the read track command. It depends on the sector data. What you see as a glitch is the FDC switching to read the clock pattern instead of the data. There is nothing you can do about it. If the sector data provokes this behavior, it will happens always. Retrying won't help.

 

Note that in this case there might be additional corruption caused by formatting the track at the wrong write splice point.

I think this 1.3 version is protected, being that he has hidden read track and write track code in the 256 byte sector 27's that are extremely hard to copy and get all the data.  I'll let you know what I find.  It's very early in the process.

 

As far as the glitching, I have analyzed lots of data from read tracks and compared to read sector data, done crc checks, etc, and really haven't found many problems.  The problems I do find are fixed on another read, so I definitely think it's worth getting another track 22 to see. It only did this on one track.

Link to comment
Share on other sites

14 hours ago, Gregf said:

I think this 1.3 version is protected, being that he has hidden read track and write track code in the 256 byte sector 27's that are extremely hard to copy and get all the data.

Of course it is copy protected. I didn't say it isn't. The whole point in this tread that I started myself is about the unique copy protection that this title has. What I said is that the read track is not involved directly in the copy protection. The copy protection is based on on those sectors with number 27 that are completely ignored by almost every tool. The read track is involved in a secondary protection that doesn't prevent the program to run. See earlier posts for the details.

 

14 hours ago, Gregf said:

As far as the glitching, I have analyzed lots of data from read tracks and compared to read sector data, done crc checks, etc, and really haven't found many problems.  The problems I do find are fixed on another read, so I definitely think it's worth getting another track 22 to see.

I can bet that most disks you analyzed were FM, not MFM. I guess you barely analyzed MFM disks because at the time there were only two MFM titlles with copy protection published in the US. And those two have a very basic copy protection. As I said, this happens only on MFM tracks, not on FM.

 

Trust me. The read track is an exotic feature in the Atari 8-bits. But it is quite common in other platforms like the Atari ST. Many ST protections are based on the exact behavior of the FDC read track command. So we studied all the features and quirks of the FDC read track behavior, because otherwise emulation of those copy protections would fail.

 

You can do the simple following experiment and confirm this by yourself. Format a disk in double density (MFM, sectors with 256 bytes). Fill one sector (whatever) with all the possible byte values ($00-$FF). Now try to perform the read track command on the track that has that sector you filled with that data. See that you won't get the exact sector data no matter how many times you retry.

 

Anyway, this is the correct data for sector 27 on track 22: DiskMaster13-Sect27-Track22.bin

 

You can also write this sector data and perform the same test mentioned above with the read track command (again, must be on MFM). You will see you never get the original data.

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

This is the code for version 1.3 that runs inside the Happy and reads the copy protected sectors. In the earlier version I analyzed when I created this thread, these sectors had code themselves. But in this version there is no code or data at all in the 5 sectors that are read initially from tracks 15-19. There is data on the last tracks (including track 22) with the copy protection, but they are not read immediately. Not sure if they are read at some later stage or not. I didn't try following all the program features and options. Just tried the initial load until getting to the main menu.

 

; In drive Happy code
    8000: 4C 09 80          JMP $8009
    8003: 4C 4C 80          JMP $804C
    8006: 4C 78 80          JMP $8078
    
    8009: 20 FB F1          JSR $F1FB
    800C: 20 8F F4          JSR $F48F
    800F: A9 00             LDA #$00
    8011: 85 99             STA $99
    8013: A9 83             LDA #$83
    8015: 85 9A             STA $9A
    8017: A9 00             LDA #$00
    8019: 85 82             STA $82
    801B: A0 00             LDY #$00
    801D: B1 99             LDA ($99),Y
    801F: 48                PHA
    8020: A0 FF             LDY #$FF
    8022: 20 02 F0          JSR $F002
    8025: 68                PLA
    8026: 18                CLC
    8027: 65 82             ADC $82
    8029: 69 00             ADC #$00
    802B: 85 82             STA $82
    802D: E6 99             INC $99
    802F: D0 EA             BNE $801B
    8031: E6 9A             INC $9A
    8033: A5 9A             LDA $9A
    8035: C9 90             CMP #$90
    8037: 90 E2             BCC $801B
    8039: D0 06             BNE $8041
    803B: A9 98             LDA #$98
    803D: 85 9A             STA $9A
    803F: D0 DA             BNE $801B
    8041: C9 A0             CMP #$A0
    8043: 90 D6             BCC $801B
    8045: A5 82             LDA $82
    8047: A0 FF             LDY #$FF
    8049: 4C 02 F0          JMP $F002
    804C: 20 8F F4          JSR $F48F
    804F: AD 00 04          LDA $0400
    8052: 30 16             BMI $806A
    8054: AD E5 96          LDA $96E5
    8057: F0 11             BEQ $806A
    8059: A0 7F             LDY #$7F
    805B: B9 80 82          LDA $8280,Y
    805E: D9 00 82          CMP $8200,Y
    8061: D0 07             BNE $806A
    8063: 88                DEY
    8064: 10 F5             BPL $805B
    8066: A9 00             LDA #$00
    8068: F0 02             BEQ $806C
    806A: A9 01             LDA #$01
    806C: 48                PHA
    806D: A0 FF             LDY #$FF
    806F: 20 02 F0          JSR $F002
    8072: 68                PLA
    8073: A0 FF             LDY #$FF
    8075: 4C 02 F0          JMP $F002
    8078: 20 C6 80          JSR $80C6
    807B: C9 80             CMP #$80
    807D: D0 0D             BNE $808C
    807F: 20 75 F2          JSR $F275
    8082: 20 C6 80          JSR $80C6
    8085: C9 80             CMP #$80
    8087: D0 03             BNE $808C
    8089: 4C 94 F4          JMP $F494
    808C: A9 4C             LDA #$4C
    808E: 8D B8 96          STA $96B8
    8091: A9 9E             LDA #$9E
    8093: 8D B9 96          STA $96B9
    8096: A9 80             LDA #$80
    8098: 8D BA 96          STA $96BA
    809B: 4C 8F F4          JMP $F48F
    809E: E0 04             CPX #$04
    80A0: 90 10             BCC $80B2
    80A2: E0 06             CPX #$06
    80A4: B0 0C             BCS $80B2
    80A6: A5 83             LDA $83
    80A8: 10 08             BPL $80B2
    80AA: A9 80             LDA #$80
    80AC: 85 82             STA $82
    80AE: A9 82             LDA #$82
    80B0: 85 83             STA $83
    80B2: AD BB 96          LDA $96BB
    80B5: 8D C1 80          STA $80C1
    80B8: AD BC 96          LDA $96BC
    80BB: 8D C2 80          STA $80C2
    80BE: 20 0A 96          JSR $960A
    80C1: AA                TAX
    80C2: AA                TAX
    80C3: 4C F4 F3          JMP $F3F4
; This section reads the copy protected sectors
    80C6: A9 1B             LDA #$1B
    80C8: 85 82             STA $82
    80CA: A9 0F             LDA #$0F
    80CC: 85 83             STA $83
    80CE: A9 00             LDA #$00
    80D0: 85 14             STA $14
    80D2: A9 90             LDA #$90
    80D4: 85 15             STA $15
    80D6: 20 E9 80          JSR $80E9
    80D9: 10 01             BPL $80DC
    80DB: 60                RTS
    80DC: E6 83             INC $83
    80DE: E6 15             INC $15
    80E0: A5 15             LDA $15
    80E2: C9 94             CMP #$94
    80E4: 90 F0             BCC $80D6
    80E6: A9 00             LDA #$00
    80E8: 60                RTS
    80E9: 20 62 F3          JSR $F362
    80EC: 20 39 F2          JSR $F239
    80EF: A5 83             LDA $83
    80F1: 85 8D             STA $8D
    80F3: 20 EC F2          JSR $F2EC
    80F6: A5 82             LDA $82
    80F8: 8D 02 04          STA $0402
    80FB: A9 88             LDA #$88
    80FD: 8D 00 04          STA $0400
    8100: A9 E6             LDA #$E6
    8102: 20 46 F6          JSR $F646
    8105: A0 00             LDY #$00
    8107: 2C 80 02          BIT $0280
    810A: 50 2F             BVC $813B
    810C: 10 F9             BPL $8107
    810E: AD 03 04          LDA $0403
    8111: 49 FF             EOR #$FF
    8113: 91 14             STA ($14),Y
    8115: AD 96 02          LDA $0296
    8118: C8                INY
    8119: 2C 80 02          BIT $0280
    811C: 50 1D             BVC $813B
    811E: 10 F9             BPL $8119
    8120: AD 03 04          LDA $0403
    8123: 49 FF             EOR #$FF
    8125: 91 14             STA ($14),Y
    8127: C8                INY
    8128: D0 EF             BNE $8119
    812A: AD 00 04          LDA $0400
    812D: 29 01             AND #$01
    812F: D0 F9             BNE $812A
    8131: AD 00 04          LDA $0400
    8134: 29 0C             AND #$0C
    8136: D0 03             BNE $813B
    8138: A9 00             LDA #$00
    813A: 60                RTS
    813B: AD 96 02          LDA $0296
    813E: A9 80             LDA #$80
    8140: 60                RTS
    

 

Edited by ijor
Link to comment
Share on other sites

7 hours ago, ijor said:

This is the code for version 1.3 that runs inside the Happy and reads the copy protected sectors. In the earlier version I analyzed when I created this thread, these sectors had code themselves. But in this version there is no code or data at all in the 5 sectors that are read initially from tracks 15-19. There is data on the last tracks (including track 22) with the copy protection, but they are not read immediately. Not sure if they are read at some later stage or not. I didn't try following all the program features and options. Just tried the initial load until getting to the main menu.

 

; In drive Happy code
    8000: 4C 09 80          JMP $8009
    8003: 4C 4C 80          JMP $804C
    8006: 4C 78 80          JMP $8078
    
    8009: 20 FB F1          JSR $F1FB
    800C: 20 8F F4          JSR $F48F
    800F: A9 00             LDA #$00
    8011: 85 99             STA $99
    8013: A9 83             LDA #$83
    8015: 85 9A             STA $9A
    8017: A9 00             LDA #$00
    8019: 85 82             STA $82
    801B: A0 00             LDY #$00
    801D: B1 99             LDA ($99),Y
    801F: 48                PHA
    8020: A0 FF             LDY #$FF
    8022: 20 02 F0          JSR $F002
    8025: 68                PLA
    8026: 18                CLC
    8027: 65 82             ADC $82
    8029: 69 00             ADC #$00
    802B: 85 82             STA $82
    802D: E6 99             INC $99
    802F: D0 EA             BNE $801B
    8031: E6 9A             INC $9A
    8033: A5 9A             LDA $9A
    8035: C9 90             CMP #$90
    8037: 90 E2             BCC $801B
    8039: D0 06             BNE $8041
    803B: A9 98             LDA #$98
    803D: 85 9A             STA $9A
    803F: D0 DA             BNE $801B
    8041: C9 A0             CMP #$A0
    8043: 90 D6             BCC $801B
    8045: A5 82             LDA $82
    8047: A0 FF             LDY #$FF
    8049: 4C 02 F0          JMP $F002
    804C: 20 8F F4          JSR $F48F
    804F: AD 00 04          LDA $0400
    8052: 30 16             BMI $806A
    8054: AD E5 96          LDA $96E5
    8057: F0 11             BEQ $806A
    8059: A0 7F             LDY #$7F
    805B: B9 80 82          LDA $8280,Y
    805E: D9 00 82          CMP $8200,Y
    8061: D0 07             BNE $806A
    8063: 88                DEY
    8064: 10 F5             BPL $805B
    8066: A9 00             LDA #$00
    8068: F0 02             BEQ $806C
    806A: A9 01             LDA #$01
    806C: 48                PHA
    806D: A0 FF             LDY #$FF
    806F: 20 02 F0          JSR $F002
    8072: 68                PLA
    8073: A0 FF             LDY #$FF
    8075: 4C 02 F0          JMP $F002
    8078: 20 C6 80          JSR $80C6
    807B: C9 80             CMP #$80
    807D: D0 0D             BNE $808C
    807F: 20 75 F2          JSR $F275
    8082: 20 C6 80          JSR $80C6
    8085: C9 80             CMP #$80
    8087: D0 03             BNE $808C
    8089: 4C 94 F4          JMP $F494
    808C: A9 4C             LDA #$4C
    808E: 8D B8 96          STA $96B8
    8091: A9 9E             LDA #$9E
    8093: 8D B9 96          STA $96B9
    8096: A9 80             LDA #$80
    8098: 8D BA 96          STA $96BA
    809B: 4C 8F F4          JMP $F48F
    809E: E0 04             CPX #$04
    80A0: 90 10             BCC $80B2
    80A2: E0 06             CPX #$06
    80A4: B0 0C             BCS $80B2
    80A6: A5 83             LDA $83
    80A8: 10 08             BPL $80B2
    80AA: A9 80             LDA #$80
    80AC: 85 82             STA $82
    80AE: A9 82             LDA #$82
    80B0: 85 83             STA $83
    80B2: AD BB 96          LDA $96BB
    80B5: 8D C1 80          STA $80C1
    80B8: AD BC 96          LDA $96BC
    80BB: 8D C2 80          STA $80C2
    80BE: 20 0A 96          JSR $960A
    80C1: AA                TAX
    80C2: AA                TAX
    80C3: 4C F4 F3          JMP $F3F4
; This section reads the copy protected sectors
    80C6: A9 1B             LDA #$1B
    80C8: 85 82             STA $82
    80CA: A9 0F             LDA #$0F
    80CC: 85 83             STA $83
    80CE: A9 00             LDA #$00
    80D0: 85 14             STA $14
    80D2: A9 90             LDA #$90
    80D4: 85 15             STA $15
    80D6: 20 E9 80          JSR $80E9
    80D9: 10 01             BPL $80DC
    80DB: 60                RTS
    80DC: E6 83             INC $83
    80DE: E6 15             INC $15
    80E0: A5 15             LDA $15
    80E2: C9 94             CMP #$94
    80E4: 90 F0             BCC $80D6
    80E6: A9 00             LDA #$00
    80E8: 60                RTS
    80E9: 20 62 F3          JSR $F362
    80EC: 20 39 F2          JSR $F239
    80EF: A5 83             LDA $83
    80F1: 85 8D             STA $8D
    80F3: 20 EC F2          JSR $F2EC
    80F6: A5 82             LDA $82
    80F8: 8D 02 04          STA $0402
    80FB: A9 88             LDA #$88
    80FD: 8D 00 04          STA $0400
    8100: A9 E6             LDA #$E6
    8102: 20 46 F6          JSR $F646
    8105: A0 00             LDY #$00
    8107: 2C 80 02          BIT $0280
    810A: 50 2F             BVC $813B
    810C: 10 F9             BPL $8107
    810E: AD 03 04          LDA $0403
    8111: 49 FF             EOR #$FF
    8113: 91 14             STA ($14),Y
    8115: AD 96 02          LDA $0296
    8118: C8                INY
    8119: 2C 80 02          BIT $0280
    811C: 50 1D             BVC $813B
    811E: 10 F9             BPL $8119
    8120: AD 03 04          LDA $0403
    8123: 49 FF             EOR #$FF
    8125: 91 14             STA ($14),Y
    8127: C8                INY
    8128: D0 EF             BNE $8119
    812A: AD 00 04          LDA $0400
    812D: 29 01             AND #$01
    812F: D0 F9             BNE $812A
    8131: AD 00 04          LDA $0400
    8134: 29 0C             AND #$0C
    8136: D0 03             BNE $813B
    8138: A9 00             LDA #$00
    813A: 60                RTS
    813B: AD 96 02          LDA $0296
    813E: A9 80             LDA #$80
    8140: 60                RTS
    

 

Thanks, that will be useful while I try to get a working version. 

 

So, I tried the experiment writing 256 bytes to an MFM disk and reading with read track, and you were right.  I can't believe I didn't notice this, but as you said, I only worked with FM disks BITD.  Part of what made me question this is the fact that track 20 that @yellowman posted is not glitched.  It's a full 256 bytes of code that I disassembled.  So there's a mystery!

 

Maybe you can help me with writing scp files using greaseweazle with my Teac FD-55GFR that I bought recently.  I couldn't find a diskdefs.cfg for enhanced and true double density.  The atari.90 works fine for FM, but I have problems with MFM.  It works fine with Windows.

I never even heard of an scp file a month ago, so I could use some help.

My Teac is running at 360 rpm, and I couldn't seem to find the correct jumper (if I need to).

 

 

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, Gregf said:

The atari.90 works fine for FM, but I have problems with MFM.

Please post your configuration and program parameters.

 

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

Link to comment
Share on other sites

1 hour ago, DjayBee said:

Please post your configuration and program parameters.

 

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

Here's what I tried, but I was just guessing

disk atari.180
    cyls = 40
    heads = 1
    tracks * ibm.mfm
    secs = 18
    bps = 128
    iam = yes
    gap1 = 32
    gap2 = 22
    gap3 = 12
    id = 1
    cskew = 3
    rate = 250
   end
end

disk atari.enh
    cyls = 40
    heads = 1
    tracks * ibm.mfm
    secs = 26
    bps = 128
    iam = yes
    gap1 = 32
    gap2 = 22
    gap3 = 32
    id = 1
    cskew = 3
    rate = 250
   end
end

  • Like 1
Link to comment
Share on other sites

4 hours ago, Gregf said:

Part of what made me question this is the fact that track 20 that @yellowman posted is not glitched.  It's a full 256 bytes of code that I disassembled.  So there's a mystery!

As I said, this depends on the data. There are bit patterns that confuse the FDC and triggers the sync mark detector. If the patterns are not present, which depends on the sector data, reading would be fine.

 

Quote

Maybe you can help me with writing scp files using greaseweazle with my Teac FD-55GFR that I bought recently. 

I'm afraid I don't have a GW myself. But again, this is probably because of the write splice issue. See my post above on April 17.

 

Quote

My Teac is running at 360 rpm, and I couldn't seem to find the correct jumper (if I need to).

Running at 360 rpm is usually fine. The software should be able to handle this. But writing back on a 96 tpi (80 tracks) drive is a problem. You won't be able to read that disk on the 1050 unless the disk was factory virgin, or at least it was never written with the 1050 or any other 48 tpi (40 tracks) drive for that matter. This has nothing to do with the copy protection or Atari. It is related to the different size of the heads between both types of drives.

 

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

1 hour ago, ijor said:

As I said, this depends on the data. There are bit patterns that confuse the FDC and triggers the sync mark detector. If the patterns are not present, which depends on the sector data, reading would be fine.

 

I'm afraid I don't have a GW myself. But again, this is probably because of the write splice issue. See my post above on April 17.

 

Running at 360 rpm is usually fine. The software should be able to handle this. But writing back on a 96 tpi (80 tracks) drive is a problem. You won't be able to read that disk on the 1050 unless the disk was factory virgin, or at least it was never written with the 1050 or any other 48 tpi (40 tracks) drive for that matter. This has nothing to do with the copy protection or Atari. It is related to the different size of the heads between both types of drives.

 

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 🙂

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...