Unsere Installationsroutine wäre damit
beendet!
Sehen uns nun als nächstes die Leseroutine bzw. die Schutzabfrage an.
lda#$03 Puffer sta$31 ab $0300 jsr$f50a Datenblockanfang suchen m01 bvc$m01 Byte ready? clv m03 lda$1c01 Datenbyte holen sta($30),y und 256 mal iny in Puffer bne$m01 schreiben ldy#$ba m02 bvc$m02 Byte ready? clv lda $1c01 Datenbyte holen sta $0100,y und 69 mal iny nach $01ba - $01ff bne $m02 schreiben jsr $f8e0 Daten aus GCR berechnen ldx #$00 Text mit m04 lda text,x gelesenen cmp $0300,x Daten vergleichen bne $m03 nicht gleich? inx sonst cpx #$0a noch ein Byte vergleiche bne $m04 bis alle verglichen lda #$01 ok jmp $f969 Meldung!
text." protect41 !"
Start der Floppyroutine:
ldx #$29 Track 41 ldy #$00 Sektor 0 stx $0a poken sty $0b und lda #$e0 Programm sta $02 bei $0500 m05 lda $02 starten und bmi $m05 ausführen rts Ende
Gehen wir nun wieder die einzelnen Schritte durch:
1 . Readpuffer ab $0300($30+$31)2 . Datenblockanfang suchen ($ f50 a)3 .256 Bytes nach $0300 holen und die restlichen Bytes nach $01 ba -$01 ff mit Adresse ($1 c01) werden Bytes von der Diskette abgeholt.
4 . GCRcode in Normalcode wandeln ($ f8 e0)5 . Abfrage ob richtiger Text im Speicher, wenn nein= Absturz der Floppy wenn ja = ok Meldung ($ f969)
Bevor sie die Routinen starten, sollten
sie die Floppy stets zuerst Reseten
und Initialisieren, da sonst unbeabsichtigt falsche Daten gelesen werden
könnten.
Sicherlich ist die Abfrage in der Leseroutine leicht zu finden und zu übergehen, für den geübten Cracker! Doch ich
denke das Grundprinzip eines Kopierschutzes ist erklärt und Ihnen stehen nun die Türen offen einen besseren, schwerer zu analysierenden Kopierschutz
zu entwickeln.
Ebenfalls haben sie leichtveränderte
Routinen kennengelernt, die das System
für die Jobcodes,$80- lesen und $90 schreiben, benutzt.
Beim naechsten Mal beschaeftigen wir uns
dann mit d er Speederprogrammierung und
schliessen damit auch gleichzeitig unsere Floppykursreihe ab!
Bis dahin, Frank Boldewin