Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.65 - CLIENT : 54.198.77.35

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Task Force IIgs (Britannica, 1990)

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 2936
Localisation: Le Chesnay, France

MessagePosté le: Mar 22 Mar 2016, 11:56    Sujet du message: Task Force IIgs (Britannica, 1990) Répondre en citant

#815 - "Freeze!!!!" - Yeah, sure. No one listens to the law anymore... Not since terrorism has come to America's city streets. That's why you, Jon Baxter, and yours partner, Michael Dvorak, have been chosen by the FBI to spearhead a specially organized TASK FORCE. Hottest action ever for IIgs. Simultaneous 2-player combat - Outrageously real animation - Just like-you're-there sounds - Five major American cities. Development by Visual Concepts.

Big Hello to the Static Vengeance from Club 96: "That one was fun!"

Protection type
This is the same kind of protection as the Great Western Shootout published a year before: change the address field markers, read block #$63F, compare the results, ask for the original if the protection check fails, otherwise... play.
Some slight variations: main part of the protection check is in a compressed file. The read block routine being in the STARTUP.SYSTEM file at address $A43 (because the file data is moved from $2000 to $800) - Once the bad block data is loaded, it's moved at $02/9800 and checked plenty of times by the code thanks to the routine at $D3FD.
The standard address field markers are D5AAAD. For block #$63F, they have been changed to AACCD5. More below...

How to copy
Use ZZCopy or Photonix II to copy your disk. Then, store it in a dry and safe place.
If you wish, you can use Copy II Plus to read block #$63F, patch the internal RWTS at first, read the block, reset the markers and write the block onto your copy.
I do not tell you to do because our crack will avoid reading the block.

Boot tracing
ProDOS loads STARTUP.SYSTEM at $2000. The code is moved at $800. Then a jump to $837 is executed. A routine checks that we have the disk /TF1/ online, then loads the title screen, then loads the game code (TFM0.LZ...) and jumps to $02/427F once everything is in order.
At $02/427F, there are some inits, then we find different calls:
- $ACC5: saves the IIgs address field markers
- $C191: sets the new markers
- $00/0A43: reads the block (and move results at $02/9800 if OK)
- $C2AD: restores the markers
Later in the code, there is a routine at $D3FD that checks the results. It returns with a CLC if we have an original disk, with the carry set otherwise.

But... how do we interrupt the game? We cannot enter the control-panel, we cannot have both ProDOS' BASIC.SYSTEM and the game in memory (files overwrite the BASIC interpreter).
With Block.Warden, I edited STARTUP.SYSTEM, I removed the STZ SOFTEV+1 (see code below), and I replaced the JMPL $02/427F with a keyboard wait loop (]lp LDA $BFFF BPL ]lp). I booted the disk and after some time, I pressed control-reset and entered the monitor. Gotcha!

How to crack
We'll rewrite the routine at $0A43, the one from STARTUP.SYSTEM that reads block #$63F and moves the contents at $02/9800. We will generate the table instead of comparing it. This is the weakness of the protection check: reading/comparing and generating are 99.99% the same routine!

Launch Block.Warden and...
Code:

Prefix /TF1
Follow file STARTUP.SYSTEM
At offset $243: replace
20 E5 0C 48 08 E2 20 AF
35 C0 E1 29 BF 8F 35 C0
E1 C2 20 28 68 8B 4B AB
with
A2 FE 01 A0 00 00 8A 18
C8 98 2A A8 08 9F 00 98
02 28 CA CA 10 F2 18 6B
Write the block back onto disk


The disk images are at http://www.brutaldeluxe.fr/crack/

Reboot and... enjoy,

LoGo
3/2016


Derničre édition par toinet le Mar 22 Mar 2016, 12:02; édité 1 fois
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 2936
Localisation: Le Chesnay, France

MessagePosté le: Mar 22 Mar 2016, 11:57    Sujet du message: Répondre en citant

The code in bank 2

Code:

02/427F: 78           SEI                                                       
02/4280: 18           CLC                                                       
02/4281: FB           XCE                                                       
02/4282: 4B           PHK                                                       
02/4283: AB           PLB                                                       
02/4284: C2 30        REP #30                                                   
02/4286: F4 00 00     PEA 0000                                                 
02/4289: 2B           PLD                                                       
02/428A: A9 FF 01     LDA #01FF                                                 
02/428D: 1B           TCS                                                       
02/428E: AF CA 00 E1  LDA E100CA                                               
02/4292: 85 AC        STA AC                                                   
02/4294: 64 AA        STZ AA                                                   
02/4296: 9C 47 D4     STZ D447                                                 
02/4299: 20 C5 AC     JSR ACC5                                                 
02/429C: 20 91 C1     JSR C191                                                 
02/429F: 22 43 0A 00  JSL 000A43                                               
02/42A3: 20 AD C2     JSR C2AD                                                 
02/42A6: 4C 88 41     JMP 4188                                                 
02/42A9: 20 21 AE     JSR AE21                                                 

* Save the markers

02/ACC5: AF 58 0F E1  LDA E10F58                                               
02/ACC9: 8D 0A A6     STA A60A                                                 
02/ACCC: AF 5A 0F E1  LDA E10F5A                                               
02/ACD0: 8D 0C A6     STA A60C                                                 
02/ACD3: 60           RTS                                                       

* Set the new markers

02/C191: A9 D5 CC     LDA #CCD5                                                 
02/C194: 8F 58 0F E1  STA E10F58                                               
02/C198: E2 20        SEP #20                                                   
02/C19A: A9 AA        LDA #AA                                                   
02/C19C: 8F 5A 0F E1  STA E10F5A                                               
02/C1A0: C2 20        REP #20                                                   
02/C1A2: 60           RTS                                                       

* Restore markers

02/C2AD: AD 0A A6     LDA A60A                                                 
02/C2B0: 8F 58 0F E1  STA E10F58                                               
02/C2B4: E2 20        SEP #20                                                   
02/C2B6: AD 0C A6     LDA A60C                                                 
02/C2B9: 8F 5A 0F E1  STA E10F5A                                               
02/C2BD: C2 20        REP #20                                                   
02/C2BF: 60           RTS                                                       

* The check

02/D3FD: A2 FE 01     LDX #01FE                                                 
02/D400: A0 00 00     LDY #0000                                                 
02/D403: 8A           TXA                                                       
02/D404: 18           CLC                                                       
02/D405: C8           INY                                                       
02/D406: 98           TYA                                                       
02/D407: 2A           ROL                                                       
02/D408: A8           TAY                                                       
02/D409: 08           PHP                                                       
02/D40A: DD 00 98     CMP 9800,X                                               
02/D40D: D0 1E        BNE D42D {+1E}                                           
02/D40F: 28           PLP                                                       
02/D410: CA           DEX                                                       
02/D411: CA           DEX                                                       
02/D412: 10 F1        BPL D405 {-0F}                                           
02/D414: 18           CLC                                                       
02/D415: 60           RTS                                                       
...
02/D42D: 28           PLP                                                       
02/D42E: 38           SEC                                                       
02/D42F: 60           RTS                                                       
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 2936
Localisation: Le Chesnay, France

MessagePosté le: Mar 22 Mar 2016, 11:58    Sujet du message: Répondre en citant

The STARTUP.SYSTEM code. A good start for a HDD version...

Code:

*
* Task Force
* (c) 1990, Fanfare
* (k) 2016, The Static Vengeance & LoGo
*

SOFTEV   EQU   $03F2
PRODOS8  EQU   $BF00
TBCOLOR  EQU   $C022
NEWVIDEO EQU   $C029
CLOCKCTL EQU   $C034
CYAREG   EQU   $C036
STATEREG EQU   $C068

*---------------------------------------------------------*
*     Disassembled with The Flaming Bird Disassembler     *
*    (c) Phoenix corp. 1992,93  -  All rights reserved    *
*---------------------------------------------------------*

         TYP   SYS
         DSK   STARTUP.SYSTEM
         ORG   $002000
         lst   off

L2000    CLC              ; clear SHR
         XCE
         REP   #$30
         PHK
         PLB
         SEP   #$20
         LDA   #$40
         TSB   NEWVIDEO
         REP   #$20
         LDX   #$7FFE
         LDA   #$0000
L2015    STAL  $E12000,X
         DEX
         DEX
         BPL   L2015

         SEP   #$20
         LDA   #$80
         TSB   NEWVIDEO
         REP   #$20       ; move data
         LDA   #$0BAF
         LDX   #$2000
         LDY   #$0800
         MVN   $000000,$000000
         PHK
         PLB
         JMP   L0837

         ORG   $000837

*
* Entry point
*

L0837    SEI
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         AND   #$BF
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         SEP   #$30
         LDA   #$80
         TSB   CYAREG
         LDA   #$10
         TRB   CYAREG
         LDA   #$30
         TRB   STATEREG
         LDA   #$0F
         TRB   CLOCKCTL
         LDA   #$F0
         TRB   TBCOLOR
         REP   #$30
         STZ   SOFTEV+1   ; NOP it
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         ORA   #$5F
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         STZ   L0D6C

         JSR   L0B08      ; check pathname
         JSR   L0CD1      ; move E0 to 01
         LDA   #$0001     ; index
         LDY   #$0000     ; sub-index
         JSL   L092E      ; load L.PIC
         LDA   #$0000     ; index
         LDY   #$0000     ; sub-index
         JSL   L092E      ; load CODE

         LDA   #$FEE8     ;
         CLC
         SBC   #$C600     ; lgth: 38E9
         LDX   #$0000     ; from: $03/0000
         LDY   #$C600     ;   to: $01/C600
         MVN   $030000,$010000
         PHK
         PLB
         LDX   #$FFFF
         STX   L0D6C
         LDA   #$0000     ; index
         LDY   #$0001     ; sub-index
         JSL   L092E      ; load
         LDA   #$01FF     ; lgth: $200
         LDX   #$0000     ; from: $03/0000
         LDY   #$F170     ;   to: $01/F170
         MVN   $030000,$010000
         PHK
         PLB
         JMPL  $02427F    ; jump (put a LDA $C000 BPL here)

*
* Load level data
*

L08CD    PHB
         PHK
         PLB
         STA   L11C5+$A   ; level
         STA   L11D7+$A   ; level
         TYA
         ORA   #$0030
         SEP   #$20
         STA   L11C5+4    ; prefix 1/2
         STA   L11D7+4    ; prefix
         CLC
         ADC   #$10
         STA   L11C5+6    ; side A/B
         STA   L11D7+6    ; side
         REP   #$20
         LDA   #$0004
         LDY   #$0000
         JSL   L092E      ; load
         PLB
         RTL

*
* Load level objects
*

L08F9    PHB
         PHK
         PLB
         STA   L1209+$A   ; level
         STA   L121B+$A   ; level
         STA   L122D+$A   ; level
         TYA
         ORA   #$0030
         SEP   #$20
         STA   L1209+4    ; prefix 1/2
         STA   L121B+4    ;
         STA   L122D+4    ;
         CLC
         ADC   #$10
         STA   L1209+6    ; side A/B
         STA   L121B+6    ;
         STA   L122D+6    ;
         REP   #$20
         LDA   #$0004
         LDY   #$0001
         JSL   L092E
         PLB
         RTL

L092E    JSR   L0CE5      ; save E0
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         AND   #$BF
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         PHB
         PHK
         PLB
         STZ   $AE
         JSR   L0CAD      ; save DP
         PHY
         ASL
         TAY
         LDA   L0E13,Y
         STA   $00
         PLA
         ASL
         TAY
         LDA   ($00),Y
         TAY
L0959    LDA   |$0000,Y
         CMP   #$FFFF
         BEQ   L09A7
         PHA
         LDA   |$0002,Y
         STA   $54
         PHA
         LDX   |$0004,Y
         STX   $56
         LDA   |$0006,Y
         STA   $58
         LDA   |$0008,Y
         STA   $5A
         STY   L09C1
         PLA
         PLY
         JSR   L0BA9
         LDA   $58
         ORA   $5A
         BEQ   L099D
         LDA   [$54]
         PHA
         INC   $54
         INC   $54
         LDA   [$54]
         TAX
         PLA
         INC   $54
         INC   $54
         STA   L0AC4
         STX   L0AC6
         JSR   L0D72
L099D    LDA   L09C1
         CLC
         ADC   #$000A
         TAY
         BRA   L0959
L09A7    JSR   L0CBF
         PLB
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         ORA   #$5F
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         JSR   L0CD1      ; E0 to 01
         RTL

L09C1    DW    $0000

L09C3    JSR   L0CE5      ; save E0
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         AND   #$BF
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         PHB
         PHK
         PLB
         STZ   $AE
         JSR   L0CAD      ; save DP
         LDY   #L0ED2
         JSR   L0B5D
L09E6    SEC
         XCE
         JSR   PRODOS8    ; open
         DB    $C8
         DA    L0A93
         PHP
         CLC
         XCE
         PLP
         REP   #$30
         JSR   L0CF9      ; check read status
         BCS   L09E6
         SEP   #$20
         LDA   L0A98
         STA   L0AA8
         STA   L0AB0
         REP   #$20
         SEC
         XCE
         JSR   PRODOS8    ; write
         DB    $CB
         DA    L0AA7
         PHP
         CLC
         XCE
         PLP
         REP   #$30
         JSR   L0CF9      ; check P8 status
         PHP
         SEC
         XCE
         JSR   PRODOS8    ; close
         DB    $CC
         DA    L0AAF
         PHP
         CLC
         XCE
         PLP
         REP   #$30
         PLP
         BCS   L09E6
         JSR   L0CBF
         PLB
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         ORA   #$5F
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         JSR   L0CD1      ; E0 to 01
         RTL

*
* Read pseudo bad block!
* We replace that code (called from bank $2)
* with the table generation adapted-code from $2/D3FD
*

L0A43    JSR   L0CE5      ; from 01 to E0
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         AND   #$BF
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         PHB
         PHK
         PLB
         STZ   $AE
         JSR   L0CAD      ; save DP
L0A60    SEC
         XCE
         JSR   PRODOS8    ; read block
         DB    $80
         DA    L0AB4
         PHP
         CLC
         XCE
         PLP
         REP   #$30
         LDA   #$0000
         JSR   L0CF9      ; check prodos status
         BCS   L0A60
         JSR   L0CBF
         PLB
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         ORA   #$5F
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         JSR   L0C9D      ; copy prot data to $02/9800
         JSR   L0CD1      ; from E0 to 01
         RTL

L0A93    DB    $03
         DA    L0AC8
         DW    $1400
L0A98    DB    $00
L0A99    DB    $02
L0A9A    DB    $00
L0A9B    ADRL  $00000000  ; GET_EOF is ADR not ADRL
L0A9F    DB    $04
L0AA0    DB    $00
         DW    $1800
L0AA3    DW    $0000
         DW    $0000
L0AA7    DB    $04
L0AA8    DB    $00
         DW    $1800
         DW    $0200
         DW    $0000
L0AAF    DB    $01
L0AB0    DB    $00
L0AB1    DB    $01
         DA    L0AC8

L0AB4    DB    $03        ; P8 READ_BLOCK parms
         DB    $50
         DW    $1800
         DW    $063F

         DB    $00
         DB    $00
         DB    $00
         DB    $00
L0ABE    DB    $00
         DB    $00
L0AC0    DB    $00
         DB    $00
L0AC2    DB    $00
         DB    $00
L0AC4    DB    $00
         DB    $00
L0AC6    DB    $00
         DB    $00
L0AC8    DB    $00
L0AC9    DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00
         DB    $00

*
* Check inserted disk /TF1/
*

L0B08    PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         AND   #$BF
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         STZ   L0D70
         SEC
         XCE
         JSR   PRODOS8
         DB    $C7
         DA    L0AB1
         PHP
         CLC
         XCE
         PLP
         REP   #$30
         LDY   #$0001
L0B2E    LDA   L0AC8,Y
         EOR   L0B57,Y
         AND   #$00FF
         BNE   L0B41
         INY
         CPY   #$0006
         BCC   L0B2E
         BRA   L0B44
L0B41    DEC   L0D70
L0B44    PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         ORA   #$5F
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         RTS

L0B57    STR   '/TF1/'

L0B5D    PHA
         PHX
         PHY
         LDA   |$0004,Y
         AND   #$00FF
         SEC
         SBC   #$0030
         STA   L0D6E
         BIT   L0D70
         BPL   L0B91
         SEP   #$20
         LDA   |$0000,Y
         DEC
         DEC
         DEC
         DEC
         DEC
         STA   L0AC8
         LDX   #$0000
L0B82    LDA   |$0006,Y
         STA   L0AC9,X
         INY
         INX
         CPX   #$001F
         BCC   L0B82
         BRA   L0BA3
L0B91    SEP   #$20
         LDX   #$0000
L0B96    LDA   |$0000,Y
         STA   L0AC8,X
         INY
         INX
         CPX   #$0020
         BCC   L0B96
L0BA3    REP   #$20
         PLY
         PLX
         PLA
         RTS

L0BA9    STA   L0ABE
         STX   L0AC0
         JSR   L0B5D
         STZ   $AE
L0BB4    SEC
         XCE
         JSR   PRODOS8
         DB    $C8
         DA    L0A93
         PHP
         CLC
         XCE
         PLP
         REP   #$30
         JSR   L0CF9      ; check prodos status
         BCS   L0BB4
         SEP   #$20
         LDA   L0A98
         STA   L0A9A
         STA   L0AA0
         STA   L0AB0
         REP   #$20
         SEC
         XCE
         JSR   PRODOS8
         DB    $D1
         DA    L0A99
         PHP
         CLC
         XCE
         PLP
         REP   #$30
         LDA   L0A9B
         STA   L0AC4
         LDA   L0A9B+2
         STA   L0AC6
L0BF1    LDA   L0A9B+2
         BNE   L0BFE
         LDA   L0A9B
         CMP   #$A600
         BCC   L0C01
L0BFE    LDA   #$A600
L0C01    STA   L0AC2
         STA   L0AA3
         SEC
         XCE
         JSR   PRODOS8
         DB    $CA
         DA    L0A9F
         PHP
         CLC
         XCE
         PLP
         REP   #$30
         LDA   L0ABE
         CMP   #$1800
         BNE   L0C25
         LDA   L0AC0
         CMP   #$0000
         BEQ   L0C28
L0C25    JSR   L0C4F
L0C28    LDA   L0A9B
         SEC
         SBC   L0AC2
         STA   L0A9B
         LDA   L0A9B+2
         SBC   #$0000
         STA   L0A9B+2
         ORA   L0A9B
         BNE   L0BF1
         SEC
         XCE
         JSR   PRODOS8
         DB    $CC
         DA    L0AAF
         PHP
         CLC
         XCE
         PLP
         REP   #$30
         RTS

L0C4F    PHD              ; UNPACK
         PHB
         LDA   L0AC2
         STA   L0C75+1
         LDY   L0ABE
         SEP   #$20
         LDA   L0AC0
         PHA
         PLB
         REP   #$20
         LDX   #$0000
         LDA   #$1800
         TCD
L0C6A    LDA   $00,X
         STA   |$0000,Y
         INY
         INY
         BEQ   L0C7C
L0C73    INX
         INX
L0C75    CPX   #$0000
         BCC   L0C6A
         BRA   L0C87
L0C7C    SEP   #$20
         PHB
         PLA
         INC
         PHA
         PLB
         REP   #$20
         BRA   L0C73
L0C87    PLB
         PLD
         LDA   L0ABE
         CLC
         ADC   L0AC2
         STA   L0ABE
         LDA   L0AC0
         ADC   #$0000
         STA   L0AC0
         RTS

*
* Copy block $63F data
*

L0C9D    LDX   #$01FE
L0CA0    LDAL  $001800,X
         STAL  $029800,X
         DEX
         DEX
         BPL   L0CA0
         RTS

*
* Save DP
*

L0CAD    PHA
         PHX
         LDX   #$00FE
L0CB2    LDA   $00,X
         STAL  $010100,X
         DEX
         DEX
         BPL   L0CB2
         PLX
         PLA
         RTS

*
* Restore DP
*

L0CBF    PHA
         PHX
         LDX   #$00FE
L0CC4    LDAL  $010100,X
         STA   $00,X
         DEX
         DEX
         BPL   L0CC4
         PLX
         PLA
         RTS

*
* From E0 to 01
*

L0CD1    PHA
         PHX
         LDX   #$17FE
L0CD6    LDAL  $E06000,X
         STAL  $010800,X
         DEX
         DEX
         BPL   L0CD6
         PLX
         PLA
         RTS

*
* From 01 to E0
*

L0CE5    PHA
         PHX
         LDX   #$17FE
L0CEA    LDAL  $010800,X
         STAL  $E06000,X
         DEX
         DEX
         BPL   L0CEA
         PLX
         PLA
         RTS

*
* Check read block error code
*

L0CF9    BCC   L0D3E      ; read error?
         AND   #$00FF
         LDX   L0D6E
         BIT   L0D6C
         BPL   L0D30
         PHA
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         ORA   #$5F
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         PLA
         JSL   $0242DF
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         AND   #$BF
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
L0D30    LDX   #$0019     ; wait
         LDY   #$0000
L0D36    DEY
         BNE   L0D36
         DEX
         BNE   L0D36
         SEC              ; error
         RTS

*

L0D3E    BIT   $AE        ; We're good
         BPL   L0D6A
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         ORA   #$5F
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
         JSL   $0243A9    ; restore data
         PHA
         PHP
         SEP   #$20
         LDAL  $E1C035
         AND   #$BF
         STAL  $E1C035
         REP   #$20
         PLP
         PLA
L0D6A    CLC              ; Say read OK
         RTS

L0D6C    DW    $0000
L0D6E    DW    $0000
L0D70    DW    $0000

L0D72    CLC
         ADC   $58
         STA   $5C
         TXA
         ADC   $5A
         STA   $5E
         SEP   #$30
         LDY   #$00
         TYA
         STZ   $12
L0D83    STA   $0200,Y
         INY
         CPY   #$80
         BNE   L0D83
L0D8B    LDA   [$54]
         REP   #$20
         INC   $54
         SEP   #$20
         STA   [$58]
         REP   #$20
         INC   $58
         BNE   L0D9D
         INC   $5A
L0D9D    SEP   #$20
         STA   $0200,Y
         INY
         BNE   L0D8B
         STZ   $14
L0DA7    LDA   [$54]
         REP   #$20
         INC   $54
         SEP   #$20
         TAX
         BEQ   L0DD0
         LDA   [$54]
         REP   #$20
         INC   $54
         SEP   #$20
         TAY
L0DBB    LDA   $0200,Y
         STX   $10
         LDX   $14
         STA   $1400,X
         INX
         STX   $14
         LDX   $10
         INY
         DEX
         BNE   L0DBB
         BRA   L0DE0
L0DD0    LDA   [$54]
         REP   #$20
         INC   $54
         SEP   #$20
         LDX   $14
         STA   $1400,X
         INX
         STX   $14
L0DE0    LDX   #$00
L0DE2    LDA   $1400,X
         STA   [$58]
         REP   #$30
         INC   $58
         BNE   L0DEF
         INC   $5A
L0DEF    LDY   $58
         CPY   $5C
         BNE   L0DFB
         LDY   $5A
         CPY   $5E
         BEQ   L0E10
L0DFB    SEP   #$30
         LDY   $12
         STA   $0200,Y
         INY
         STY   $12
         INX
         CPX   $14
         BNE   L0DE2
         LDX   #$00
         STX   $14
         BRA   L0DA7
L0E10    REP   #$30
         RTS

L0E13    DA    L0E21      ; A=0 -
         DA    L0E25      ; 1 -
         DA    L0E39      ; 2 -
         DA    L0E55      ; 3 -
         DA    L0E59      ; 4 - LEVEL
         DA    L0E5D      ; 5 - SOUND
         DA    L0E6B      ; 6 - SOUND

L0E21    DA    L0E79      ; A=0 - TMF0.LZ
         DA    L0EC6      ; HI.DAT

L0E25    DA    L0EE0      ; A=1
         DA    $0000
         DA    L0EFC
         DA    L0F18
         DA    L0F34
         DA    L0F51
         DA    L0F6E
         DA    L0F8B
         DA    L0FA8
         DA    L0FC5

L0E39    DA    L0FE1      ; A=2
         DA    L0FFF
         DA    L101E
         DA    L103B
         DA    L1058
         DA    L1075
         DA    L1092
         DA    L10AE
         DA    L10CA
         DA    L10E6
         DA    L1102
         DA    L111E
         DA    L113B
         DA    L1157

L0E55    DA    L1173      ; A=3
         DA    L1191

L0E59    DA    L11AF      ; A=4
         DA    L11E9

L0E5D    DA    L123F      ; A=5
         DA    L1258
         DA    L1272
         DA    L128C
         DA    L12A6
         DA    L12C0
         DA    L12DC

L0E6B    DA    L12F8      ; A=6
         DA    L1312
         DA    L132C
         DA    L1346
         DA    L1360
         DA    L137A
         DA    L1394

* File data
* word: pathname pointer
* long: load address
* long: RAM address

L0E79    DA    L0E99
         ADRL  $00001800
         ADRL  $00020000
L0E83    DA    L0EA8
         ADRL  $00001800
         ADRL  $00029C00
L0E8D    DA    L0EB7
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L0E99    STR   '/TF1/A/TFM0.LZ'
L0EA8    STR   '/TF1/A/TFM1.LZ'
L0EB7    STR   '/TF1/A/TFMD.LZ'

L0EC6    DA    L0ED2
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L0ED2    STR   '/TF1/A/HI.DAT'

L0EE0    DA    L0EEC
         ADRL  $00001800
         ADRL  $00E12000
         DW    $FFFF
L0EEC    STR   '/TF1/A/L.PIC.LZ'

L0EFC    DA    L0F08
         ADRL  $00001800
         ADRL  $00012000
         DW    $FFFF
L0F08    STR   '/TF1/A/T.PIC.LZ'
L0F18    DA    L0F24
         ADRL  $00001800
         ADRL  $00012000
         DW    $FFFF
L0F24    STR   '/TF1/A/J.PIC.LZ'
L0F34    DA    L0F40
         ADRL  $00001800
         ADRL  $00012000
         DW    $FFFF
L0F40    STR   '/TF1/A/HQ.PIC.LZ'
L0F51    DA    L0F5D
         ADRL  $00001800
         ADRL  $00012000
         DW    $FFFF
L0F5D    STR   '/TF1/A/LT.PIC.LZ'
L0F6E    DA    L0F7A
         ADRL  $00001800
         ADRL  $00012000
         DW    $FFFF
L0F7A    STR   '/TF2/B/LT.PIC.LZ'
L0F8B    DA    L0F97
         ADRL  $00001800
         ADRL  $00012000
         DW    $FFFF
L0F97    STR   '/TF1/A/AP.PIC.LZ'
L0FA8    DA    L0FB4
         ADRL  $00001800
         ADRL  $00012000
         DW    $FFFF
L0FB4    STR   '/TF1/A/CS.PIC.LZ'
L0FC5    DA    L0FD1
         ADRL  $00001800
         ADRL  $00012000
         DW    $FFFF
L0FD1    STR   '/TF2/B/E.PIC.LZ'
L0FE1    DA    L0FED
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L0FED    STR   '/TF1/A/COP.SPR.LZ'
L0FFF    DA    L100B
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L100B    STR   '/TF1/A/GLOB.SPR.LZ'
L101E    DA    L102A
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L102A    STR   '/TF1/A/LT.SPR.LZ'
L103B    DA    L1047
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L1047    STR   '/TF2/B/LT.SPR.LZ'
L1058    DA    L1064
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L1064    STR   '/TF1/A/AP.SPR.LZ'
L1075    DA    L1081
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L1081    STR   '/TF1/A/HQ.SPR.LZ'
L1092    DA    L109E
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L109E    STR   '/TF1/A/T.SPR.LZ'
L10AE    DA    L10BA
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L10BA    STR   '/TF1/A/D.SPR.LZ'
L10CA    DA    L10D6
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L10D6    STR   '/TF2/B/D.SPR.LZ'
L10E6    DA    L10F2
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L10F2    STR   '/TF1/A/H.SPR.LZ'
L1102    DA    L110E
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L110E    STR   '/TF2/B/H.SPR.LZ'
L111E    DA    L112A
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L112A    STR   '/TF2/B/YH.SPR.LZ'
L113B    DA    L1147
         ADRL  $00001800
         ADRL  $00003800
         DW    $FFFF
L1147    STR   '/TF1/A/B.SPR.LZ'
L1157    DA    L1163
         ADRL  $00001800
         ADRL  $00003800
         DW    $FFFF
L1163    STR   '/TF2/B/B.SPR.LZ'
L1173    DA    L117F
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L117F    STR   '/TF1/A/E__.SPR.LZ'
L1191    DA    L119D
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L119D    STR   '/TF2/B/E__.SPR.LZ'

* A=4

L11AF    DA    L11C5
         ADRL  $00001800
         ADRL  $0003B000
         DA    L11D7
         ADRL  $00001800
         ADRL  $0003FC00
         DW    $FFFF
L11C5    STR   '/TF_/_/L/__.PF.LZ'
L11D7    STR   '/TF_/_/L/__.SB.LZ'
L11E9    DA    L1209
         ADRL  $00001800
         ADRL  $0003B000
         DA    L121B
         ADRL  $00001800
         ADRL  $0003FC00
         DA    L122D
         ADRL  $00001800
         ADRL  $00030000
         DW    $FFFF
L1209    STR   '/TF_/_/L/__.PF.LZ'
L121B    STR   '/TF_/_/L/__.SB.LZ'
L122D    STR   '/TF_/_/L/__.OB.LZ'

* A=5

L123F    DA    L124B
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L124B    STR   '/TF1/A/T.SND'
L1258    DA    L1264
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L1264    STR   '/TF1/A/HQ.SND'
L1272    DA    L127E
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L127E    STR   '/TF1/A/LT.SND'
L128C    DA    L1298
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L1298    STR   '/TF2/B/LT.SND'
L12A6    DA    L12B2
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L12B2    STR   '/TF1/A/AP.SND'
L12C0    DA    L12CC
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L12CC    STR   '/TF1/A/GLOB.SND'
L12DC    DA    L12E8
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L12E8    STR   '/TF2/B/GLOB.SND'

* A=6

L12F8    DA    L1304
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L1304    STR   '/TF1/A/LA.SND'
L1312    DA    L131E
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L131E    STR   '/TF1/A/SF.SND'
L132C    DA    L1338
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L1338    STR   '/TF2/B/CH.SND'
L1346    DA    L1352
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L1352    STR   '/TF2/B/NY.SND'
L1360    DA    L136C
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L136C    STR   '/TF2/B/DC.SND'
L137A    DA    L1386
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L1386    STR   '/TF2/B/Y0.SND'
L1394    DA    L13A0
         ADRL  $00030000
         ADRL  $00000000
         DW    $FFFF
L13A0    STR   '/TF2/B/Y1.SND'
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 2936
Localisation: Le Chesnay, France

MessagePosté le: Mar 22 Mar 2016, 12:01    Sujet du message: Répondre en citant

The Block.Warden views: before, after, disassembly of the new code

Code:

Block: $0569 (1385)     Volume name: TF1             Monday     22-Mar-16  9:43
Prefix: /TF1/                                                                   
Following: STARTUP.SYSTEM, Type SYS, Rel block 2, Byte $000243                 
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000: 0A 8D B0 0A C2 20 38 FB 20 00 BF CB A7 0A 08 18   ..0.B 8{ .?K'...   
  b Z 010: FB 28 C2 30 20 F9 0C 08 38 FB 20 00 BF CC AF 0A   {(B0 y..8{ .?L/.   
B y Z 020: 08 18 FB 28 C2 30 28 B0 BD 20 BF 0C AB 48 08 E2   ..{(B0(0= ?.+H.b   
L   Z 030: 20 AF 35 C0 E1 09 5F 8F 35 C0 E1 C2 20 28 68 20    /5@a._.5@aB (h   
O G Z 040: D1 0C 6B>20 E5 0C 48 08 E2 20 AF 35 C0 E1 29 BF   Q.k e.H.b /5@a)?   
C l Z 050: 8F 35 C0 E1 C2 20 28 68 8B 4B AB<64 AE 20 AD 0C   .5@aB (h.K+d. -.   
K e Z 060: 38 FB 20 00 BF 80 B4 0A 08 18 FB 28 C2 30 A9 00   8{ .?.4...{(B0).   
  n Z 070: 00 20 F9 0C B0 EA 20 BF 0C AB 48 08 E2 20 AF 35   . y.0j ?.+H.b /5   
W   Z 080: C0 E1 09 5F 8F 35 C0 E1 C2 20 28 68 20 9D 0C 20   @a._.5@aB (h ..   
A B Z 090: D1 0C 6B 03 C8 0A 00 14 00 02 00 00 00 00 00 04   Q.k.H...........   
R r Z 0A0: 00 00 18 00 00 00 00 04 00 00 18 00 02 00 00 01   ................   
D e Z 0B0: 00 01 C8 0A 03 50 00 18 3F 06 00 00 00 00 00 00   ..H..P..?.......   
E d Z 0C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
N o Z 0D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
  n Z 0E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
    Z 0F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   

Block: $0569 (1385)     Volume name: TF1             Monday     22-Mar-16  9:44
Prefix: /TF1/                                                                   
Following: STARTUP.SYSTEM, Type SYS, Rel block 2, Byte $000243                 
(c) Q      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F            Edit mode
1988ZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
    Z 000: 0A 8D B0 0A C2 20 38 FB 20 00 BF CB A7 0A 08 18   ..0.B 8{ .?K'...   
  b Z 010: FB 28 C2 30 20 F9 0C 08 38 FB 20 00 BF CC AF 0A   {(B0 y..8{ .?L/.   
B y Z 020: 08 18 FB 28 C2 30 28 B0 BD 20 BF 0C AB 48 08 E2   ..{(B0(0= ?.+H.b   
L   Z 030: 20 AF 35 C0 E1 09 5F 8F 35 C0 E1 C2 20 28 68 20    /5@a._.5@aB (h   
O G Z 040: D1 0C 6B>A2 FE 01 A0 00 00 8A 18 C8 98 2A A8 08   Q.k"~. ....H.*(.   
C l Z 050: 9F 00 98 02 28 CA CA 10 F2 18 6B<64 AE 20 AD 0C   ....(JJ.r.kd. -.   
K e Z 060: 38 FB 20 00 BF 80 B4 0A 08 18 FB 28 C2 30 A9 00   8{ .?.4...{(B0).   
  n Z 070: 00 20 F9 0C B0 EA 20 BF 0C AB 48 08 E2 20 AF 35   . y.0j ?.+H.b /5   
W   Z 080: C0 E1 09 5F 8F 35 C0 E1 C2 20 28 68 20 9D 0C 20   @a._.5@aB (h ..   
A B Z 090: D1 0C 6B 03 C8 0A 00 14 00 02 00 00 00 00 00 04   Q.k.H...........   
R r Z 0A0: 00 00 18 00 00 00 00 04 00 00 18 00 02 00 00 01   ................   
D e Z 0B0: 00 01 C8 0A 03 50 00 18 3F 06 00 00 00 00 00 00   ..H..P..?.......   
E d Z 0C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
N o Z 0D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
  n Z 0E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   
    Z 0F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................   

Block: $0569 (1385)     Volume name: TF1             Monday     22-Mar-16 12:00
Prefix: /TF1/                                                                   
Following: STARTUP.SYSTEM, Type SYS, Rel block 2, Byte $000200                 
                                                                               
1043: A2 FE       LDX  #$FE       "~    1060: 38          SEC             8     
1045: 01 A0       ORA  ($A0,X)    .     1061: FB          XCE             {     
1047: 00          BRK             .     1062: 20 00 BF    JSR  $BF00       .?   
1048: 00          BRK             .     1065: 80       (read block)       .     
1049: 8A          TXA             .     1066: B4 0A                       4.   
104A: 18          CLC             .     1068: 08          PHP             .     
104B: C8          INY             H     1069: 18          CLC             .     
104C: 98          TYA             .     106A: FB          XCE             {     
104D: 2A          ROL             *     106B: 28          PLP             (     
104E: A8          TAY             (     106C: C2 30       REP  %00110000  B0   
104F: 08          PHP             .     106E: A9 00 00    LDA  #$0000     )..   
1050: 9F 00 98 02 STAL $029800,X  ....  1071: 20 F9 0C    JSR  $0CF9       y.   
1054: 28          PLP             (     1074: B0 EA       BCS  $1060      0j   
1055: CA          DEX             J     1076: 20 BF 0C    JSR  $0CBF       ?.   
1056: CA          DEX             J     1079: AB          PLB             +     
1057: 10 F2       BPL  $104B      .r    107A: 48          PHA             H     
1059: 18          CLC             .     107B: 08          PHP             .     
105A: 6B          RTL             k     107C: E2 20       SEP  %00100000  b     
105B: 64 AE       STZ  $AE        d.    107E: AF 35 C0 E1 LDAL $E1C035    /5@a 
105D: 20 AD 0C    JSR  $0CAD       -.   1082: 09 5F       ORA  #$5F       ._   
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com