Unsere Installationsroutine wäre damit
beendet!
Sehen uns nun als nächstes die Lese-
routine 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 ($f50a)
3.256 Bytes nach $0300 holen und die
restlichen Bytes nach $01ba - $01ff
mit Adresse ($1c01) werden Bytes von
der Diskette abgeholt.
4.GCRcode in Normalcode wandeln ($f8e0)
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 unbeabsich-
tigt falsche Daten gelesen werden
könnten.
Sicherlich ist die Abfrage in der Lese-
routine leicht zu finden und zu über-
gehen, für den geübten Cracker! Doch ich
denke das Grundprinzip eines Kopier-
schutzes 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 un-
sere Floppykursreihe ab!
Bis dahin,
Frank Boldewin