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