Magic Disk 64

home to index to html: MD9309-KURSE-FLOPPY_INTERN_5B.html
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                



Valid HTML 4.0 Transitional Valid CSS!