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