Meine erste T41 war nur AC, aber etwas launerisch. Mit CA viel besser. Am ende wird ich deine original T41 auf mein original wider überspielen.
Beiträge von mrr19121970 im Thema „Pack Of Aces“
-
-
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.
-
Auch $c191 von #$c7 auf #$05 funktioniert. Hier wird der ganze normal durch kopieprotection laufen. Track 36 checken und alle fälle 'OK' zurückgeben. Aber leider kann ich der NBZ nicht auf D64 umwandeln.
-
Dizzy Dice (1987)(Players).nib hat copy protection auf track 36.
Code
Alles anzeigen; ; **** ZP ABSOLUTE ADRESSES **** ; a03 = $03 a51 = $51 a6A = $6A a7F = $7F a80 = $80 ; ; **** ABSOLUTE ADRESSES **** ; a0601 = $0601 a0602 = $0602 a1C00 = $1C00 a1C01 = $1C01 a1C03 = $1C03 a1C0C = $1C0C ; ; **** POINTERS **** ; p444C = $444C ; ; **** EXTERNAL JUMPS **** ; eC100 = $C100 eD6D3 = $D6D3 eFD96 = $FD96 * = $0500 LDA #$24 ;Track 36 STA TRACK_COUNT LDA #$44 ;ie JMP MAIN2 STA a0530 JSR MAIN1 LDA #$12 ;Track 18 STA TRACK_COUNT LDA #$86 ;ie JMP EXIT STA a0530 MAIN1 JSR eC100 ;$C100 Turn LED on for current drive LDA #$05 STA a6A ;Number of read attempts [5] LDA TRACK_COUNT STA a80 ;Current Track number STA a51 ;Current track number for formatting [FF] LDA #$03 JSR eD6D3 ;$D6D3 set track and sector number LDA #<p444C ;ie JMP MAIN1 STA a0600 ;Buffer 3 a0530 =*+$01 LDA #>p444C ;ie JMP MAIN2 STA a0601 LDA #$05 ;ie JMP MAIN2 STA a0602 LDA a7F ;Drive number (on 1541 always 00) ORA #$E0 ;execute jobcode STA a03 ;Command code for buffer 3 LOOP1 LDA a03 ;Command code for buffer 3 BMI LOOP1 ;loop until MAIN2 has finished, then return to caller RTS MAIN2 LDA a1C0C ;Auxiliary control register ORA #$E0 STA a1C0C ;Auxiliary control register LDA #$00 STA a1C03 ;CA, direction port A LDA #$FF STA RETRY_COUNT LOOP2 BIT a1C00 ;PB, control port B BMI LOOP2 LOOP3 BIT a1C00 ;PB, control port B BMI LOOP3 LOOP4 BIT a1C00 ;PB, control port B BPL LOOP4 LDX #$00 LOOP5 JSR SEARCH_MAGIC ;Looking for the 1st magic byte in the track BEQ MAIN3 ;Found it, now look for 256 more in a sequence DEX BNE LOOP5 LDA #$00 STA COPY_FLAG JMP eFD96 ;$FD96 turn off drive motor etc., end job MAIN3 LDY #$00 LOOP6 JSR SEARCH_MAGIC ;Looking for magic bytes in the track BNE LOOP5 ;Didn't find MAGIC DEY BNE LOOP6 LDA #$C2 ;Set copy protection flag OK STA COPY_FLAG EXIT JMP eFD96 ;$FD96 turn off drive motor etc., end job SEARCH_MAGIC BVC SEARCH_MAGIC ;wait for byte ready CLV LDA a1C01 ;PA, port A ( to and from read/write head) CMP #$AC BEQ b05B2 CMP #$56 BEQ b05B2 CMP #$2B BEQ b05B2 CMP #$95 BEQ b05B2 CMP #$CA BEQ b05B2 CMP #$65 BEQ b05B2 CMP #$B2 BEQ b05B2 CMP #$59 BEQ b05B2 LDA #$FF ;No magic bytes found RTS b05B2 LDA #$00 RTS TRACK_COUNT .BYTE $24 RETRY_COUNT .BYTE $FF COPY_FLAG .BYTE $00,$50,$52,$4F,$54,$45,$43,$54 .BYTE $45,$44,$20,$41,$4E,$44,$20,$44 .BYTE $55,$50,$4C,$49,$43,$41,$54,$45 .BYTE $44,$20,$42,$59,$20,$44,$41,$54 .BYTE $41,$20,$44,$55,$50,$4C,$49,$43 .BYTE $41,$54,$49,$4F,$4E,$20,$57,$52 .BYTE $49,$54,$54,$45,$4E,$20,$42,$59 .BYTE $20,$4B,$45,$56,$49,$4E,$20,$50 .BYTE $41,$52,$4B,$45,$52,$05,$05,$05 .BYTE $05
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
-
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)
Code
Alles anzeigen; ; **** ZP ABSOLUTE ADRESSES **** ; a03 = $03 a51 = $51 a6A = $6A a7F = $7F a80 = $80 ; ; **** ABSOLUTE ADRESSES **** ; a0601 = $0601 a0602 = $0602 a1C00 = $1C00 a1C01 = $1C01 a1C03 = $1C03 a1C0C = $1C0C ; ; **** POINTERS **** ; p444C = $444C ; ; **** EXTERNAL JUMPS **** ; eC100 = $C100 eD6D3 = $D6D3 eFD96 = $FD96 * = $0500 LDA #$24 STA TRACK_COUNT LDA #$44 STA a0530 JSR s0517 LDA #$12 STA TRACK_COUNT LDA #$86 STA a0530 s0517 JSR eC100 ;$C100 Turn LED on for current drive LDA #$05 STA a6A ;Number of read attempts [5] LDA TRACK_COUNT STA a80 ;Current Track number STA a51 ;Current track number for formatting [FF] LDA #$03 JSR eD6D3 ;$D6D3 Transmit parameter to disk controller LDA #<p444C ;ie JMP MAIN1 STA a0600 ;Buffer 3 a0530 =*+$01 LDA #>p444C ;ie JMP MAIN1 STA a0601 LDA #$05 ;ie JMP MAIN1 STA a0602 LDA a7F ;Drive number (on 1541 always 00) ORA #$E0 STA a03 ;Command code for buffer 3 b053F LDA a03 ;Command code for buffer 3 BMI b053F RTS MAIN1 LDA a1C0C ;Auxiliary control register ORA #$E0 STA a1C0C ;Auxiliary control register LDA #$00 STA a1C03 ;CA, direction port A LDA #$FF STA RETRY_COUNT b0556 BIT a1C00 ;PB, control port B BMI b0556 b055B BIT a1C00 ;PB, control port B BMI b055B b0560 BIT a1C00 ;PB, control port B BPL b0560 LDX #$00 b0567 JSR SEARCH_MAGIC BEQ b0577 ;Didn't find MAGIC DEX BNE b0567 LDA #$00 STA COPY_FLAG JMP eFD96 ;$FD96 turn off drive motor etc., end job b0577 LDY #$00 b0579 JSR SEARCH_MAGIC BNE b0567 ;Didn't find MAGIC DEY BNE b0579 LDA #$C2 ;Set copy protection flag OK STA COPY_FLAG JMP eFD96 ;$FD96 turn off drive motor etc., end job SEARCH_MAGIC BVC SEARCH_MAGIC ;wait for byte ready CLV LDA a1C01 ;PA, port A ( to and from read/write head) CMP #$AC BEQ b05B2 CMP #$56 BEQ b05B2 CMP #$2B BEQ b05B2 CMP #$95 BEQ b05B2 CMP #$CA BEQ b05B2 CMP #$65 BEQ b05B2 CMP #$B2 BEQ b05B2 CMP #$59 BEQ b05B2 LDA #$FF ;No magic bytes found RTS b05B2 LDA #$00 RTS TRACK_COUNT .BYTE $24 RETRY_COUNT .BYTE $FF COPY_FLAG .BYTE $00,$50,$52,$4F,$54,$45,$43,$54 .BYTE $45,$44,$20,$41,$4E,$44,$20,$44 .BYTE $55,$50,$4C,$49,$43,$41,$54,$45 .BYTE $44,$20,$42,$59,$20,$44,$41,$54 .BYTE $41,$20,$44,$55,$50,$4C,$49,$43 .BYTE $41,$54,$49,$4F,$4E,$20,$57,$52 .BYTE $49,$54,$54,$45,$4E,$20,$42,$59 .BYTE $20,$4B,$45,$56,$49,$4E,$20,$50 .BYTE $41,$52,$4B,$45,$52,$05,$05,$05 .BYTE $05 -
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:Code
Alles anzeigen; ; **** ZP ABSOLUTE ADRESSES **** ; a03 = <span class="redactor-ie-paste"></span>3 a51 = $51 a6A = $6A a7F = $7F a80 = $80 ; ; **** ABSOLUTE ADRESSES **** ; a0601 = <span class="redactor-ie-paste"></span>601 a0602 = <span class="redactor-ie-paste"></span>602 a1C01 = $1C01 a1C03 = $1C03 a1C0C = $1C0C ; ; **** POINTERS **** ; p304C = $304C ; ; **** EXTERNAL JUMPS **** ; eC100 = $C100 eD6D3 = $D6D3 eFD96 = $FD96 * = <span class="redactor-ie-paste"></span>500 JMP ENTRY MAIN1 JSR eC100 ;$C100 Turn LED on for current drive LDA #<span class="redactor-ie-paste"></span>5 STA a6A ;Number of read attempts [5] LDA TRACK_COUNT STA a80 ;Current Track number STA a51 ;Current track number for formatting [FF] LDA #<span class="redactor-ie-paste"></span>3 JSR eD6D3 ;$D6D3 Transmit parameter to disk controller LDA #<p304C ;ie JMP a0530 STA a0600 ;Buffer 3 a051C =*+<span class="redactor-ie-paste"></span>1 LDA #>p304C ;ie JMP a0530 STA a0601 LDA #<span class="redactor-ie-paste"></span>5 ;ie JMP a0530 STA a0602 LDA a7F ;Drive number (on 1541 always 00) ORA #$E0 ;execute jobcode STA a03 ;Command code for buffer 3 LOOP0 LDA a03 ;Command code for buffer 3 BMI LOOP0 ;loop until MAIN2 has finished, then return to caller RTS MAIN2 LDA a1C0C ;Auxiliary control register ORA #$E0 STA a1C0C ;Auxiliary control register LDA #<span class="redactor-ie-paste"></span> STA a1C03 ;CA, direction port A LDA #$FF ;Retry counter STA RETRY_COUNT LOOP1 LDY #<span class="redactor-ie-paste"></span> LOOP2 BVC LOOP2 ;wait for byte ready CLV LDA a1C01 ;PA, port A ( to and from read/write head) CMP #$AC ;Looking for the 1st magic byte in the track BEQ LOOP5 ;Found it, now look for 256 more in a sequence LOOP3 DEY BNE LOOP2 ;Retry DEC RETRY_COUNT BNE LOOP1 LOOP4 LDA #<span class="redactor-ie-paste"></span> ;Initialize copy protection flag STA COPY_FLAG EXIT JMP eFD96 ;$FD96 turn off drive motor etc., end job LOOP5 LDX #<span class="redactor-ie-paste"></span> ;Counting 256 LOOP6 BVC LOOP6 ;wait for byte ready CLV LDA a1C01 ;PA, port A ( to and from read/write head) LOOP7 CMP #$AC ;Looking for magic bytes in the track BNE LOOP3 ;Found it, now look for more DEY BNE LOOP8 DEC RETRY_COUNT BEQ LOOP4 ;No more retries LOOP8 DEX BNE LOOP6 LDA #$C2 ;Set copy protection flag OK STA COPY_FLAG JMP eFD96 ;$FD96 turn off drive motor etc., end job .BYTE $1A,$1A,$1A ENTRY LDA #$29 ;Track 41 STA TRACK_COUNT LDA #$30 ;ie JMP a0530 STA a051C JSR MAIN1 ;call the subroutine to look for magic bytes LDA #$12 ;Track 18 STA TRACK_COUNT LDA #$7A ;ie JMP a057a STA a051C JSR MAIN1 ;call the subroutine (just to shut down drive motor etc.) RTS .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA TRACK_COUNT .BYTE $EA RETRY_COUNT .BYTE $EA COPY_FLAG .BYTE $BCAber Fire Track (1987)(Aardvark) [pal] ist sehr änlich, aber nicht so streng. Eventuell V1.1 ??
Code
Alles anzeigen; ; **** ZP ABSOLUTE ADRESSES **** ; a03 = <span class="redactor-ie-paste"></span>3 a51 = $51 a6A = $6A a7F = $7F a80 = $80 ; ; **** ABSOLUTE ADRESSES **** ; a0601 = <span class="redactor-ie-paste"></span>601 a0602 = <span class="redactor-ie-paste"></span>602 a1C01 = $1C01 a1C03 = $1C03 a1C0C = $1C0C ; ; **** POINTERS **** ; p384C = $384C pA94C = $A94C ; ; **** EXTERNAL JUMPS **** ; eC100 = $C100 eD6D3 = $D6D3 eFD96 = $FD96 * = <span class="redactor-ie-paste"></span>500 JSR eC100 ;$C100 Turn LED on for current drive LDA #<span class="redactor-ie-paste"></span>1 STA a6A ;Number of read attempts [5] LDA #$29 ;Track 41 STA a80 ;Current Track number STA a51 ;Current track number for formatting [FF] LDA #<span class="redactor-ie-paste"></span>3 JSR eD6D3 ;$D6D3 Transmit parameter to disk controller LDA #<p384C ;ie JMP MAIN STA a0600 ;Buffer 3 LDA #>p384C ;ie JMP MAIN STA a0601 LDA #<span class="redactor-ie-paste"></span>5 ;ie JMP MAIN STA a0602 LDA a7F ;Drive number (on 1541 always 00) ORA #$E0 ;execute jobcode STA a03 ;Command code for buffer 3 LOOP1 LDA a03 ;Command code for buffer 3 BMI LOOP1 ;loop until MAIN1 has finished JMP MAIN2 .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA MAIN1 LDA #<span class="redactor-ie-paste"></span> ;Initialize copy protection flag STA COPY_FLAG NOP NOP NOP LDA a1C0C ;Auxiliary control register ORA #$E0 STA a1C0C ;Auxiliary control register LDA #<span class="redactor-ie-paste"></span> STA a1C03 ;CA, direction port A LOOP2 LDX #$FF ; LOOP3 BVC LOOP3 ;wait for byte ready CLV LDA a1C01 ;PA, port A ( to and from read/write head) CMP #$AC ;Looking for the 1st magic byte in the track BNE LOOP2 ;Didn't find it, reset counter and try again DEX ;Found it, now look for 255 more in a sequence BNE LOOP3 LDA #$FF ;Set copy protection flag OK STA COPY_FLAG EXIT JMP eFD96 ;$FD96 turn off drive motor etc., end job .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA,$EA,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$1A,$1A,$EA,$EA,$EA .BYTE $EA,$EA,$EA,$EA MAIN2 LDA #<span class="redactor-ie-paste"></span>1 STA a6A ;Number of read attempts [5] LDA #$12 ;Track 18 STA a80 ;Current Track number STA a51 ;Current track number for formatting [FF] LDA #<span class="redactor-ie-paste"></span>3 JSR eD6D3 ;$D6D3 Transmit parameter to disk controller LDA #<pA94C STA a0600 ;Buffer 3 LDA #>pA94C STA a0601 LDA #<span class="redactor-ie-paste"></span>5 STA a0602 LDA a7F ;Drive number (on 1541 always 00) ORA #$E0 STA a03 ;Command code for buffer 3 b05A4 LDA a03 ;Command code for buffer 3 BMI b05A4 ;loop until has finished RTS JMP eFD96 ;$FD96 turn off drive motor etc., end job .BYTE $EA,$EA,$EA,$EA,$F6,$BD,$AF,$6B .BYTE $DA,$F6,$BD,$AF,$6B,$DA,$F6,$BD .BYTE $AF,$6B,$DA,$F6,$BD,$AF,$6B,$DA .BYTE $F6,$BD,$AF,$6B,$DA,$F6,$BD,$AF .BYTE $6B,$DA,$F6,$BD,$AF,$6B,$DA,$F6 .BYTE $BD,$AF,$6B,$DA,$F6,$BD,$AF,$6B .BYTE $DA,$F6,$BD,$AF,$6B,$DA,$F6,$BD .BYTE $AF,$6B,$DA,$F6,$BD,$AF,$6B,$DA .BYTE $F6,$BD,$AF,$6B,$DA,$F6,$BD,$AF .BYTE $6B,$DA,$F6,$BD,$AF,$6B,$DA,$F6 .BYTE $BB,$D5,$29 COPY_FLAG .BYTE $4A -
ich habe track 41 von Fire Track als anfangspunkt genommen. Mit nibedit Bitte melde dich an, um diesen Link zu sehen. extrahiert. Notepad++ geändert (ein bischen trial and error). Denn G64 in vice monitor verfolgt.
Micro64 ist mir nicht bekannt, aber mein annahme ist 1541 ist nicht voll untergestützt
-
selbstgebaut von Dein d64 und ein selbst gebaute track 41. Erste version war ca 25% unverlässig. V2 scheint 100% auf echte hardware und auf vice
-
Und ein weniger launerisch Pack Of Aces mit koperschütz. Mit VICE immer noch ein bischen kömisch mit drag'n'drop.
-
Hier ist ein version ohne patch mit copy protection. Lauft jetzt auch mein breadbox/1541-II und VICE 3.1
-
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.
-
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
-
Very strange, debugging jetzt in VICE.
Code
Alles anzeigen.8:0566 C9 AC CMP #$AC - A:AC X:FD Y:0D SP:39 N.-..I.C 14660 (8:566) z .8:0568 D0 E4 BNE 54E - A:AC X:FD Y:0D SP:39 ..-..IZC 14660 (8:568) z .8:056a 88 DEY - A:AC X:FD Y:0D SP:39 ..-..IZC 14660 (8:56a) z .8:056b D0 05 BNE 572 - A:AC X:FD Y:0C SP:39 ..-..I.C 14660 (8:56b) z .8:0572 CA DEX - A:AC X:FD Y:0C SP:39 ..-..I.C 14660 (8:572) z .8:0573 D0 EB BNE 560 - A:AC X:FC Y:0C SP:39 N.-..I.C 14660 (8:573) z .8:0560 50 FE BVC 560 - A:AC X:FC Y:0C SP:39 N.-..I.C 14660 (8:560) z .8:0560 50 FE BVC 560 - A:AC X:FC Y:0C SP:39 N.-..I.C 14660 (8:560) z .8:0560 50 FE BVC 560 - A:AC X:FC Y:0C SP:39 N.-..I.C 14660 (8:560) z .8:0562 B8 CLV - A:AC X:FC Y:0C SP:39 NV-..I.C 14660 (8:562) z .8:0563 AD 01 1C LDA $1C01 - A:AC X:FC Y:0C SP:39 N.-..I.C 14660 (8:563) z .8:0566 C9 AC CMP #$AC - A:8A X:FC Y:0C SP:39 N.-..I.C 14660 ^ HIER-------------------------------------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.
-
Ok, nun ohne patch. Ich habe der fehlender track 41 eingefügt. Nun mein original ist wieder am laufen ohne patch.
-
hier war nur mist
-
Ich habe es geschafft als 1 byte patch in file "@"
$f157 von $05 auf $c7 umändern
Hier wird denn der routine in 1541 speicher reingeladen immer auf $C2 als antwort zurückgeben
-
Es gibt auch bei der BASIC eine lüstige nachricht
Bitte melde dich an, um diesen Anhang zu sehen.
aber es ist doch sichtbar (mit load"*",8 und start addresse von $0800 andstadt $0801)
Bitte melde dich an, um diesen Anhang zu sehen.
wie schon bewusst, keine error handling falls disk ist be LOAD nicht mehr in laufwerk.
-
Hier ist mein 'effort'. 2 byte patch. noch besser ware ein signatur richtig auf der floppy zu schreiben, ohne patch. Aber ich denke die rätsel wird ich nicht bald lösen.
UPDATE
Menu ist auch in BASIC
Bitte melde dich an, um diesen Anhang zu sehen.
-
Genau $c2 habe ich doch selber endeckt....
Bitte melde dich an, um diesen Anhang zu sehen.
danke für dein PATCH version. so weit war ich nicht. immer noch in VICE mit breakpoints beschäftigt...
-
in der zweites bild rechts sehe ich 2x....
KLVGPLCVKMLCN ICPCVG RCPU
muss aber
INTERNATIONAL KARATE PART
Sein oder ??
Update
Ich bin weg von rechner, aber XOR #$02 scheint mir sehr wahrscheinlich zu sein