Pack Of Aces

  • Very strange, debugging jetzt in VICE.

    Brainfuck-Quellcode

    1. .8:0566 C9 AC CMP #$AC - A:AC X:FD Y:0D SP:39 N.-..I.C 14660
    2. (8:566) z
    3. .8:0568 D0 E4 BNE 54E - A:AC X:FD Y:0D SP:39 ..-..IZC 14660
    4. (8:568) z
    5. .8:056a 88 DEY - A:AC X:FD Y:0D SP:39 ..-..IZC 14660
    6. (8:56a) z
    7. .8:056b D0 05 BNE 572 - A:AC X:FD Y:0C SP:39 ..-..I.C 14660
    8. (8:56b) z
    9. .8:0572 CA DEX - A:AC X:FD Y:0C SP:39 ..-..I.C 14660
    10. (8:572) z
    11. .8:0573 D0 EB BNE 560 - A:AC X:FC Y:0C SP:39 N.-..I.C 14660
    12. (8:573) z
    13. .8:0560 50 FE BVC 560 - A:AC X:FC Y:0C SP:39 N.-..I.C 14660
    14. (8:560) z
    15. .8:0560 50 FE BVC 560 - A:AC X:FC Y:0C SP:39 N.-..I.C 14660
    16. (8:560) z
    17. .8:0560 50 FE BVC 560 - A:AC X:FC Y:0C SP:39 N.-..I.C 14660
    18. (8:560) z
    19. .8:0562 B8 CLV - A:AC X:FC Y:0C SP:39 NV-..I.C 14660
    20. (8:562) z
    21. .8:0563 AD 01 1C LDA $1C01 - A:AC X:FC Y:0C SP:39 N.-..I.C 14660
    22. (8:563) z
    23. .8:0566 C9 AC CMP #$AC - A:8A X:FC Y:0C SP:39 N.-..I.C 14660
    24. ^
    25. HIER-------------------------------------
    Alles anzeigen


    obwohl track 41 hat nur #$AC in GCR kommt nacht 4ten versuch immer ein #$8a. ich schaue später von zuhause aus....

    Update

    ich habe vergessen zu erwähen das mit ein floppy + 1571 in VICE funktioniert.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von mrr19121970 ()

  • GenerationCBM schrieb:

    dem erwähnten Kopierschutz auf einem Original von "Firetrap",
    Ich denke Fire Track ? (siehe Fire Track (1987)(Aardvark) [pal][s1].nib). Der hochgeladene drivecode ist sehr änhlich.

    Auch diese G64 ist 'sehr launerisch' in VICE. Drag'n'drop funktioniert nicht immer. Aber manuel "attach disk image" bzw nach ein hard reset funktionieren meistens alle beide einwandfrei

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von mrr19121970 ()

  • mrr19121970 schrieb:

    Ich denke Fire Track ? (siehe Fire Track (1987)(Aardvark) [pal][s1].nib).
    Nee, schon "Firetrap": gamebase64.com/game.php?id=2756&d=18&h=0

    Davon habe ich ein Original mit diesem besagten Kopierschutz. Gibt's in dieser (meiner) Fassung meines Wissens noch nicht im Preservation Project oder Gamebase oder sonstwo. Was man davon so als NIB/G64 findet hat durchweg einen anderen Kopierschutz.

    Diese "Parker-Brown"-Schutzfamilie (oder wie auch immer man's nennen will) gibt's natürlich auch noch bei einigen anderen Spielen. "Karnov" von Electric Dreams fällt mir als Beispiel ein. Das Aussehen des Directories (in DirMaster) ist immer ziemlich charakteristisch, muss bei load"$",8 aber nicht zwingend so grün-weiss gehalten sein. Ist in der Funktionsweise auch nicht immer gleich, aber im Code gibt's immer so einige Ähnlichkeiten.
  • Gestern habe ich schon von F64 Wolke (Greyhole Collection) diese runtergeladen Firetrap (1987)(Electric Dreams).nib Hier gibt es keiner vergleichbare protection drauf. Aber mit der suche nach FIRE, bin ich auf Fire Track gestolpert.

    Kannst du mir ein D64 ohne patch von dein Firetrap zukommen lassen ? Gerne auch per PM. Ich möchte nähere ankucken.
  • Ich habe der kopierschütz auf:

    Karnov [pal][s1].g64
    Fire Trap (dein original D64)
    Pack Of Aces
    vegliechen. Die sind alle byte 1:1 identisch:

    Quellcode

    1. ;
    2. ; **** ZP ABSOLUTE ADRESSES ****
    3. ;
    4. a03 = <span class="redactor-ie-paste"></span>3
    5. a51 = $51
    6. a6A = $6A
    7. a7F = $7F
    8. a80 = $80
    9. ;
    10. ; **** ABSOLUTE ADRESSES ****
    11. ;
    12. a0601 = <span class="redactor-ie-paste"></span>601
    13. a0602 = <span class="redactor-ie-paste"></span>602
    14. a1C01 = $1C01
    15. a1C03 = $1C03
    16. a1C0C = $1C0C
    17. ;
    18. ; **** POINTERS ****
    19. ;
    20. p304C = $304C
    21. ;
    22. ; **** EXTERNAL JUMPS ****
    23. ;
    24. eC100 = $C100
    25. eD6D3 = $D6D3
    26. eFD96 = $FD96
    27. * = <span class="redactor-ie-paste"></span>500
    28. JMP ENTRY
    29. MAIN1 JSR eC100 ;$C100 Turn LED on for current drive
    30. LDA #<span class="redactor-ie-paste"></span>5
    31. STA a6A ;Number of read attempts [5]
    32. LDA TRACK_COUNT
    33. STA a80 ;Current Track number
    34. STA a51 ;Current track number for formatting [FF]
    35. LDA #<span class="redactor-ie-paste"></span>3
    36. JSR eD6D3 ;$D6D3 Transmit parameter to disk controller
    37. LDA #<p304C ;ie JMP a0530
    38. STA a0600 ;Buffer 3
    39. a051C =*+<span class="redactor-ie-paste"></span>1
    40. LDA #>p304C ;ie JMP a0530
    41. STA a0601
    42. LDA #<span class="redactor-ie-paste"></span>5 ;ie JMP a0530
    43. STA a0602
    44. LDA a7F ;Drive number (on 1541 always 00)
    45. ORA #$E0 ;execute jobcode
    46. STA a03 ;Command code for buffer 3
    47. LOOP0 LDA a03 ;Command code for buffer 3
    48. BMI LOOP0 ;loop until MAIN2 has finished, then return to caller
    49. RTS
    50. MAIN2 LDA a1C0C ;Auxiliary control register
    51. ORA #$E0
    52. STA a1C0C ;Auxiliary control register
    53. LDA #<span class="redactor-ie-paste"></span>
    54. STA a1C03 ;CA, direction port A
    55. LDA #$FF ;Retry counter
    56. STA RETRY_COUNT
    57. LOOP1 LDY #<span class="redactor-ie-paste"></span>
    58. LOOP2 BVC LOOP2 ;wait for byte ready
    59. CLV
    60. LDA a1C01 ;PA, port A ( to and from read/write head)
    61. CMP #$AC ;Looking for the 1st magic byte in the track
    62. BEQ LOOP5 ;Found it, now look for 256 more in a sequence
    63. LOOP3 DEY
    64. BNE LOOP2 ;Retry
    65. DEC RETRY_COUNT
    66. BNE LOOP1
    67. LOOP4 LDA #<span class="redactor-ie-paste"></span> ;Initialize copy protection flag
    68. STA COPY_FLAG
    69. EXIT JMP eFD96 ;$FD96 turn off drive motor etc., end job
    70. LOOP5 LDX #<span class="redactor-ie-paste"></span> ;Counting 256
    71. LOOP6 BVC LOOP6 ;wait for byte ready
    72. CLV
    73. LDA a1C01 ;PA, port A ( to and from read/write head)
    74. LOOP7 CMP #$AC ;Looking for magic bytes in the track
    75. BNE LOOP3 ;Found it, now look for more
    76. DEY
    77. BNE LOOP8
    78. DEC RETRY_COUNT
    79. BEQ LOOP4 ;No more retries
    80. LOOP8 DEX
    81. BNE LOOP6
    82. LDA #$C2 ;Set copy protection flag OK
    83. STA COPY_FLAG
    84. JMP eFD96 ;$FD96 turn off drive motor etc., end job
    85. .BYTE $1A,$1A,$1A
    86. ENTRY LDA #$29 ;Track 41
    87. STA TRACK_COUNT
    88. LDA #$30 ;ie JMP a0530
    89. STA a051C
    90. JSR MAIN1 ;call the subroutine to look for magic bytes
    91. LDA #$12 ;Track 18
    92. STA TRACK_COUNT
    93. LDA #$7A ;ie JMP a057a
    94. STA a051C
    95. JSR MAIN1 ;call the subroutine (just to shut down drive motor etc.)
    96. RTS
    97. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    98. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    99. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    100. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    101. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    102. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    103. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    104. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    105. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    106. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    107. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    108. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    109. .BYTE $EA,$EA
    110. TRACK_COUNT .BYTE $EA
    111. RETRY_COUNT .BYTE $EA
    112. COPY_FLAG .BYTE $BC
    Alles anzeigen
    Aber Fire Track (1987)(Aardvark) [pal] ist sehr änlich, aber nicht so streng. Eventuell V1.1 ??

    Quellcode

    1. ;
    2. ; **** ZP ABSOLUTE ADRESSES ****
    3. ;
    4. a03 = <span class="redactor-ie-paste"></span>3
    5. a51 = $51
    6. a6A = $6A
    7. a7F = $7F
    8. a80 = $80
    9. ;
    10. ; **** ABSOLUTE ADRESSES ****
    11. ;
    12. a0601 = <span class="redactor-ie-paste"></span>601
    13. a0602 = <span class="redactor-ie-paste"></span>602
    14. a1C01 = $1C01
    15. a1C03 = $1C03
    16. a1C0C = $1C0C
    17. ;
    18. ; **** POINTERS ****
    19. ;
    20. p384C = $384C
    21. pA94C = $A94C
    22. ;
    23. ; **** EXTERNAL JUMPS ****
    24. ;
    25. eC100 = $C100
    26. eD6D3 = $D6D3
    27. eFD96 = $FD96
    28. * = <span class="redactor-ie-paste"></span>500
    29. JSR eC100 ;$C100 Turn LED on for current drive
    30. LDA #<span class="redactor-ie-paste"></span>1
    31. STA a6A ;Number of read attempts [5]
    32. LDA #$29 ;Track 41
    33. STA a80 ;Current Track number
    34. STA a51 ;Current track number for formatting [FF]
    35. LDA #<span class="redactor-ie-paste"></span>3
    36. JSR eD6D3 ;$D6D3 Transmit parameter to disk controller
    37. LDA #<p384C ;ie JMP MAIN
    38. STA a0600 ;Buffer 3
    39. LDA #>p384C ;ie JMP MAIN
    40. STA a0601
    41. LDA #<span class="redactor-ie-paste"></span>5 ;ie JMP MAIN
    42. STA a0602
    43. LDA a7F ;Drive number (on 1541 always 00)
    44. ORA #$E0 ;execute jobcode
    45. STA a03 ;Command code for buffer 3
    46. LOOP1 LDA a03 ;Command code for buffer 3
    47. BMI LOOP1 ;loop until MAIN1 has finished
    48. JMP MAIN2
    49. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    50. .BYTE $EA,$EA
    51. MAIN1 LDA #<span class="redactor-ie-paste"></span> ;Initialize copy protection flag
    52. STA COPY_FLAG
    53. NOP
    54. NOP
    55. NOP
    56. LDA a1C0C ;Auxiliary control register
    57. ORA #$E0
    58. STA a1C0C ;Auxiliary control register
    59. LDA #<span class="redactor-ie-paste"></span>
    60. STA a1C03 ;CA, direction port A
    61. LOOP2 LDX #$FF ;
    62. LOOP3 BVC LOOP3 ;wait for byte ready
    63. CLV
    64. LDA a1C01 ;PA, port A ( to and from read/write head)
    65. CMP #$AC ;Looking for the 1st magic byte in the track
    66. BNE LOOP2 ;Didn't find it, reset counter and try again
    67. DEX ;Found it, now look for 255 more in a sequence
    68. BNE LOOP3
    69. LDA #$FF ;Set copy protection flag OK
    70. STA COPY_FLAG
    71. EXIT JMP eFD96 ;$FD96 turn off drive motor etc., end job
    72. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    73. .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA
    74. .BYTE $EA,$EA,$EA,$1A,$1A,$EA,$EA,$EA
    75. .BYTE $EA,$EA,$EA,$EA
    76. MAIN2 LDA #<span class="redactor-ie-paste"></span>1
    77. STA a6A ;Number of read attempts [5]
    78. LDA #$12 ;Track 18
    79. STA a80 ;Current Track number
    80. STA a51 ;Current track number for formatting [FF]
    81. LDA #<span class="redactor-ie-paste"></span>3
    82. JSR eD6D3 ;$D6D3 Transmit parameter to disk controller
    83. LDA #<pA94C
    84. STA a0600 ;Buffer 3
    85. LDA #>pA94C
    86. STA a0601
    87. LDA #<span class="redactor-ie-paste"></span>5
    88. STA a0602
    89. LDA a7F ;Drive number (on 1541 always 00)
    90. ORA #$E0
    91. STA a03 ;Command code for buffer 3
    92. b05A4 LDA a03 ;Command code for buffer 3
    93. BMI b05A4 ;loop until has finished
    94. RTS
    95. JMP eFD96 ;$FD96 turn off drive motor etc., end job
    96. .BYTE $EA,$EA,$EA,$EA,$F6,$BD,$AF,$6B
    97. .BYTE $DA,$F6,$BD,$AF,$6B,$DA,$F6,$BD
    98. .BYTE $AF,$6B,$DA,$F6,$BD,$AF,$6B,$DA
    99. .BYTE $F6,$BD,$AF,$6B,$DA,$F6,$BD,$AF
    100. .BYTE $6B,$DA,$F6,$BD,$AF,$6B,$DA,$F6
    101. .BYTE $BD,$AF,$6B,$DA,$F6,$BD,$AF,$6B
    102. .BYTE $DA,$F6,$BD,$AF,$6B,$DA,$F6,$BD
    103. .BYTE $AF,$6B,$DA,$F6,$BD,$AF,$6B,$DA
    104. .BYTE $F6,$BD,$AF,$6B,$DA,$F6,$BD,$AF
    105. .BYTE $6B,$DA,$F6,$BD,$AF,$6B,$DA,$F6
    106. .BYTE $BB,$D5,$29
    107. COPY_FLAG .BYTE $4A
    Alles anzeigen
  • mrr19121970 schrieb:

    Eventuell V1.1 ??
    Tja, schwierig da eine Evolutionsrichtung zu definieren. Verwandt auf jeden Fall.

    Ich habe mir irgendwann mal das Archiv vom Preservation Project umsortiert bzw. die Sortierung verbessert und erweitert. Das hier sind die Images in meinem "Parker-Brown"-Folder (muss mal einen besseren Namen dafür finden...). Die sind nicht alle mit Firetrap und Karnov und Co. total gleich, Dizzy Dice z.B. ist merklich anders im Aufbau (XOR-verschlüsselte Hauptroutine und haufenweise Illegal Opcode-NOPs eingestreut um den Code schwerer lesbar zu machen). Aber nach oberflächlicher Ansicht haben alle diese bestimmte Art, das Directory zu verschleiern, und den Spielnamen oben links weiss auf schwarz auszugeben, deswegen gehe ich da erstmal von Verwandschaftsverhältnissen aus:

    apb[tengen_1989](pal)(!).nbz
    apb[tengen_1989](pal)(alt).nbz
    back_to_the_future_ii_s1[mirrorsoft_1990](pal)(!).nbz
    back_to_the_future_ii_s2[mirrorsoft_1990](pal)(!).nbz
    blasteroids[tengen_1989](pal).nbz
    bloodwych[mirrorsoft_1990](!).nbz
    bloodwych[mirrorsoft_1990](alt1).nbz
    bloodwych[mirrorsoft_1990](alt2).nbz
    bombuzal[mirrorsoft_1988](pal).nbz
    castle_master_i_and_ii[incentive_1990](!).nbz
    citadel[electric_dreams_1989](pal)(!).nbz
    dizzy_dice[players_1987](alt).nbz
    dynamite_dux_s1[activision_1988](pal)(alt).nbz
    dynamite_dux_s2[activision_1988](pal)(alt).nbz
    elven_warrior[players_premier_1989](pal)(alt).nbz
    fernandez_must_die[mirrorsoft_1988].nbz
    football_manager[addictive_games_1984](pal).nbz
    football_manager_2_expansion_kit[prism_leisure_1989].nbz
    fox_fights_back[image_works_1988].nbz
    hades_nebula[paranoid_1987](pal).nbz
    hot_shot[addictive_1988](alt1).nbz
    hot_shot[addictive_1988](alt2).nbz
    hot_shot[addictive_1988].nbz
    hunters_moon[thalamus_1987](pal)(!).nbz
    karnov_s1[electric_dreams_1988](pal).nbz
    karnov_s2[electric_dreams_1988](pal).nbz
    license_to_kill[domark_1989].nbz
    metaplex[prism_leisure_1988](alt).nbz
    metaplex[prism_leisure_1988].nbz
    passing_shot[mirrorsoft_1989](pal).nbz
    pictionary[domark_1989].nbz
    real_ghostbusters_s1[data_east_1987].nbz
    real_ghostbusters_s2[data_east_1987].nbz
    snare[thalamus_1989].nbz
    stir_crazy_featuring_bobo[infogrames_1988](pal).nbz
    tanium[players_1988](pal)(!).nbz
    the_corporation[activision_1988](pal)(!).nbz
    time_scanner[activision_1989].nbz
    tomcat[players_1989](pal).nbz
    toobin[tengen_1989].nbz
    total_eclipse_1_and_2[incentive_1989].nbz
  • Ich habe gerade an Dizzy Dice (1987)(Players).nib von F64 Wolke angeschaut. Der kopierschütz selber ist 1:1 identisch wie oben erwähnt.

    Momentar kann ich der inhalt von track 41 nicht anschauen, aber ich denke diese muss auch identisch sein.

    In prinzip:

    NIBEDIT -T 41 "Dizzy Dice (1987)(Players).g64" "Dizzy Dice (1987)(Players).trk"


    Ich sollte nicht Notepad++ 'compare' für ein binär datei verwenden. Ich muss später anschauen.

    Update Hier (nicht so gut kommentiert)

    Quellcode

    1. ;
    2. ; **** ZP ABSOLUTE ADRESSES ****
    3. ;
    4. a03 = $03
    5. a51 = $51
    6. a6A = $6A
    7. a7F = $7F
    8. a80 = $80
    9. ;
    10. ; **** ABSOLUTE ADRESSES ****
    11. ;
    12. a0601 = $0601
    13. a0602 = $0602
    14. a1C00 = $1C00
    15. a1C01 = $1C01
    16. a1C03 = $1C03
    17. a1C0C = $1C0C
    18. ;
    19. ; **** POINTERS ****
    20. ;
    21. p444C = $444C
    22. ;
    23. ; **** EXTERNAL JUMPS ****
    24. ;
    25. eC100 = $C100
    26. eD6D3 = $D6D3
    27. eFD96 = $FD96
    28. * = $0500
    29. LDA #$24
    30. STA TRACK_COUNT
    31. LDA #$44
    32. STA a0530
    33. JSR s0517
    34. LDA #$12
    35. STA TRACK_COUNT
    36. LDA #$86
    37. STA a0530
    38. s0517 JSR eC100 ;$C100 Turn LED on for current drive
    39. LDA #$05
    40. STA a6A ;Number of read attempts [5]
    41. LDA TRACK_COUNT
    42. STA a80 ;Current Track number
    43. STA a51 ;Current track number for formatting [FF]
    44. LDA #$03
    45. JSR eD6D3 ;$D6D3 Transmit parameter to disk controller
    46. LDA #<p444C ;ie JMP MAIN1
    47. STA a0600 ;Buffer 3
    48. a0530 =*+$01
    49. LDA #>p444C ;ie JMP MAIN1
    50. STA a0601
    51. LDA #$05 ;ie JMP MAIN1
    52. STA a0602
    53. LDA a7F ;Drive number (on 1541 always 00)
    54. ORA #$E0
    55. STA a03 ;Command code for buffer 3
    56. b053F LDA a03 ;Command code for buffer 3
    57. BMI b053F
    58. RTS
    59. MAIN1 LDA a1C0C ;Auxiliary control register
    60. ORA #$E0
    61. STA a1C0C ;Auxiliary control register
    62. LDA #$00
    63. STA a1C03 ;CA, direction port A
    64. LDA #$FF
    65. STA RETRY_COUNT
    66. b0556 BIT a1C00 ;PB, control port B
    67. BMI b0556
    68. b055B BIT a1C00 ;PB, control port B
    69. BMI b055B
    70. b0560 BIT a1C00 ;PB, control port B
    71. BPL b0560
    72. LDX #$00
    73. b0567 JSR SEARCH_MAGIC
    74. BEQ b0577 ;Didn't find MAGIC
    75. DEX
    76. BNE b0567
    77. LDA #$00
    78. STA COPY_FLAG
    79. JMP eFD96 ;$FD96 turn off drive motor etc., end job
    80. b0577 LDY #$00
    81. b0579 JSR SEARCH_MAGIC
    82. BNE b0567 ;Didn't find MAGIC
    83. DEY
    84. BNE b0579
    85. LDA #$C2 ;Set copy protection flag OK
    86. STA COPY_FLAG
    87. JMP eFD96 ;$FD96 turn off drive motor etc., end job
    88. SEARCH_MAGIC BVC SEARCH_MAGIC ;wait for byte ready
    89. CLV
    90. LDA a1C01 ;PA, port A ( to and from read/write head)
    91. CMP #$AC
    92. BEQ b05B2
    93. CMP #$56
    94. BEQ b05B2
    95. CMP #$2B
    96. BEQ b05B2
    97. CMP #$95
    98. BEQ b05B2
    99. CMP #$CA
    100. BEQ b05B2
    101. CMP #$65
    102. BEQ b05B2
    103. CMP #$B2
    104. BEQ b05B2
    105. CMP #$59
    106. BEQ b05B2
    107. LDA #$FF ;No magic bytes found
    108. RTS
    109. b05B2 LDA #$00
    110. RTS
    111. TRACK_COUNT .BYTE $24
    112. RETRY_COUNT .BYTE $FF
    113. COPY_FLAG .BYTE $00,$50,$52,$4F,$54,$45,$43,$54
    114. .BYTE $45,$44,$20,$41,$4E,$44,$20,$44
    115. .BYTE $55,$50,$4C,$49,$43,$41,$54,$45
    116. .BYTE $44,$20,$42,$59,$20,$44,$41,$54
    117. .BYTE $41,$20,$44,$55,$50,$4C,$49,$43
    118. .BYTE $41,$54,$49,$4F,$4E,$20,$57,$52
    119. .BYTE $49,$54,$54,$45,$4E,$20,$42,$59
    120. .BYTE $20,$4B,$45,$56,$49,$4E,$20,$50
    121. .BYTE $41,$52,$4B,$45,$52,$05,$05,$05
    122. .BYTE $05
    Alles anzeigen

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von mrr19121970 ()

  • Dizzy Dice (1987)(Players).nib hat copy protection auf track 36.

    Quellcode

    1. ;
    2. ; **** ZP ABSOLUTE ADRESSES ****
    3. ;
    4. a03 = $03
    5. a51 = $51
    6. a6A = $6A
    7. a7F = $7F
    8. a80 = $80
    9. ;
    10. ; **** ABSOLUTE ADRESSES ****
    11. ;
    12. a0601 = $0601
    13. a0602 = $0602
    14. a1C00 = $1C00
    15. a1C01 = $1C01
    16. a1C03 = $1C03
    17. a1C0C = $1C0C
    18. ;
    19. ; **** POINTERS ****
    20. ;
    21. p444C = $444C
    22. ;
    23. ; **** EXTERNAL JUMPS ****
    24. ;
    25. eC100 = $C100
    26. eD6D3 = $D6D3
    27. eFD96 = $FD96
    28. * = $0500
    29. LDA #$24 ;Track 36
    30. STA TRACK_COUNT
    31. LDA #$44 ;ie JMP MAIN2
    32. STA a0530
    33. JSR MAIN1
    34. LDA #$12 ;Track 18
    35. STA TRACK_COUNT
    36. LDA #$86 ;ie JMP EXIT
    37. STA a0530
    38. MAIN1 JSR eC100 ;$C100 Turn LED on for current drive
    39. LDA #$05
    40. STA a6A ;Number of read attempts [5]
    41. LDA TRACK_COUNT
    42. STA a80 ;Current Track number
    43. STA a51 ;Current track number for formatting [FF]
    44. LDA #$03
    45. JSR eD6D3 ;$D6D3 set track and sector number
    46. LDA #<p444C ;ie JMP MAIN1
    47. STA a0600 ;Buffer 3
    48. a0530 =*+$01
    49. LDA #>p444C ;ie JMP MAIN2
    50. STA a0601
    51. LDA #$05 ;ie JMP MAIN2
    52. STA a0602
    53. LDA a7F ;Drive number (on 1541 always 00)
    54. ORA #$E0 ;execute jobcode
    55. STA a03 ;Command code for buffer 3
    56. LOOP1 LDA a03 ;Command code for buffer 3
    57. BMI LOOP1 ;loop until MAIN2 has finished, then return to caller
    58. RTS
    59. MAIN2 LDA a1C0C ;Auxiliary control register
    60. ORA #$E0
    61. STA a1C0C ;Auxiliary control register
    62. LDA #$00
    63. STA a1C03 ;CA, direction port A
    64. LDA #$FF
    65. STA RETRY_COUNT
    66. LOOP2 BIT a1C00 ;PB, control port B
    67. BMI LOOP2
    68. LOOP3 BIT a1C00 ;PB, control port B
    69. BMI LOOP3
    70. LOOP4 BIT a1C00 ;PB, control port B
    71. BPL LOOP4
    72. LDX #$00
    73. LOOP5 JSR SEARCH_MAGIC ;Looking for the 1st magic byte in the track
    74. BEQ MAIN3 ;Found it, now look for 256 more in a sequence
    75. DEX
    76. BNE LOOP5
    77. LDA #$00
    78. STA COPY_FLAG
    79. JMP eFD96 ;$FD96 turn off drive motor etc., end job
    80. MAIN3 LDY #$00
    81. LOOP6 JSR SEARCH_MAGIC ;Looking for magic bytes in the track
    82. BNE LOOP5 ;Didn't find MAGIC
    83. DEY
    84. BNE LOOP6
    85. LDA #$C2 ;Set copy protection flag OK
    86. STA COPY_FLAG
    87. EXIT JMP eFD96 ;$FD96 turn off drive motor etc., end job
    88. SEARCH_MAGIC BVC SEARCH_MAGIC ;wait for byte ready
    89. CLV
    90. LDA a1C01 ;PA, port A ( to and from read/write head)
    91. CMP #$AC
    92. BEQ b05B2
    93. CMP #$56
    94. BEQ b05B2
    95. CMP #$2B
    96. BEQ b05B2
    97. CMP #$95
    98. BEQ b05B2
    99. CMP #$CA
    100. BEQ b05B2
    101. CMP #$65
    102. BEQ b05B2
    103. CMP #$B2
    104. BEQ b05B2
    105. CMP #$59
    106. BEQ b05B2
    107. LDA #$FF ;No magic bytes found
    108. RTS
    109. b05B2 LDA #$00
    110. RTS
    111. TRACK_COUNT .BYTE $24
    112. RETRY_COUNT .BYTE $FF
    113. COPY_FLAG .BYTE $00,$50,$52,$4F,$54,$45,$43,$54
    114. .BYTE $45,$44,$20,$41,$4E,$44,$20,$44
    115. .BYTE $55,$50,$4C,$49,$43,$41,$54,$45
    116. .BYTE $44,$20,$42,$59,$20,$44,$41,$54
    117. .BYTE $41,$20,$44,$55,$50,$4C,$49,$43
    118. .BYTE $41,$54,$49,$4F,$4E,$20,$57,$52
    119. .BYTE $49,$54,$54,$45,$4E,$20,$42,$59
    120. .BYTE $20,$4B,$45,$56,$49,$4E,$20,$50
    121. .BYTE $41,$52,$4B,$45,$52,$05,$05,$05
    122. .BYTE $05
    Alles anzeigen

    Hier wird gesucht nach eine von #$AC #$56 #$2B #$95 #$CA #$65 #$B2 #$59 in 257 reihenfolge. Wenn gefunden = OK, sonst kopie.

    snare[thalamus_1989].nbz ist identisch hier

    hunters_moon[thalamus_1987](pal)(!).nbz ist identisch wie Pack Of Aces

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von mrr19121970 ()

  • mrr19121970 schrieb:

    Dizzy Dice (1987)(Players).nib hat copy protection auf track 36.
    Yep.

    Ist auch so'n Kopierschutz der mit den ganzen Illegals und dergleichen sich wahnsinnig clever anstellt um alles mögliche zu verschleiern, und am Ende kann man ihn doch mit einem Byte aushebeln. (In BOOT bei $0244 das lda #$40 in lda #$94 ändern, dann führt das jmp ($01ff) in $024e komplett am Kopierschutz vorbei - aber immerhin versuchen sie's mit dem Page Wrap Bug, sieht man auch nicht so oft...)
  • mrr19121970 schrieb:

    Klaus Scheuer schrieb:

    Hier, versuche das mal
    Danke Klaus. Das ist genau was ich in mein ersten betrag genwünscht habe.
    Dein track 42 ist sehr änlich wie meine erste versuch (aber hier habe ich ca 1300 invalid GCR bytes gehabt). Kömischeweise deine erste 35 tracks sind anders als meine original. Mal schauen ob nähre analysis lohnt sich.
    Das Original hatte vor etwa 15 Jahren übertragen. Ich weiß nicht mehr genau ob ich den Schutz mit einem selbst programierten Signaturmaker nachträglich installiert habe.
    Einzig was ich dazu noch weiß, ist dass man den albernen Schutz schon mittels Dir-Editor aushebeln konnte.