Magic Disk 64

home to index to text: MD9309-KURSE-FLOPPY_INTERN_5B.txt

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                

Valid HTML 4.0 Transitional Valid CSS!