|
|
IDENTIFICATION SERVEUR : 10.14.20.153 - CLIENT : 3.238.174.50 |
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
toinet Site Admin
Inscrit le: 15 Juin 2007 Messages: 3076 Localisation: Le Chesnay, France
|
Posté le: Dim 07 Juil 2019, 20:28 Sujet du message: The Snapper (Silicon Valley Systems, 1982) |
|
|
#1006 - That is an arcade game that 4am proposed me to crack. That was fun but as with other one-pass loading programs, once you win the boot trace, you are done or nearly done...
Disk structure
This is a non standard disk. It cannot be copied with Locksmith Fast Disk Backup. It loads fast, it seems it is using 4*4 encoded nibbles (where two bytes on disk make one byte in RAM)
Protection type
The program is heavily protected against boot tracing. Moreover, it uses:
- 4*4 encoded nibbles,
- nibbles on disk tell where to execute code,
- it uses false opcodes to lose the pirate (07 06),
- uses the text page to put code.
Boot trace
I invite you in reading the next message. It contains all my notes to get it into memory, ie. crack it.
How to normalize
I used a WOZ image (see applesaucefdc.com) provided by 4am. I booted it under OpenEmulator. So, once I had the program in RAM, I saved the emupack of it and then reconstructed a disk image:
- T0: the standard RWTS from DOS 3.3
- T1/S0-T7/S7: the game (from $800..$6FFF, a waste of two tracks for no image)
- T7/S8-T7/SF: the original $0000..$07FF area that is relocated by a code at offset $80 on T0/S0
Information
Note that the keys (stored at $4AFC) are ? ] ^ ^ > < / M N . , and ESC
ESC leaves the game, it does NOT pause it!!
The disk image is available at http://www.brutaldeluxe.fr/crack/
Reboot and... enjoy,
LoGo
7/2019
Dernière édition par toinet le Ven 12 Juil 2019, 22:18; édité 3 fois |
|
Revenir en haut de page |
|
 |
toinet Site Admin
Inscrit le: 15 Juin 2007 Messages: 3076 Localisation: Le Chesnay, France
|
Posté le: Dim 07 Juil 2019, 20:29 Sujet du message: |
|
|
My cracking notes:
Code: |
Get T0/S0
CALL-151
9600<C600.C6FFM
96F8:4C DA FD
9600G
D5AAB5
D5AAAD
Get boot 2
CALL-151
9600<C600.C6FFM
C0E9
96F8:A9 59 8D 38 08 A9 FF 8D 39 08 4C 01 08
9600G
0326- 8D F3 03 STA $03F3
0329- 8D F4 03 STA $03F4
032C- 07 ???
032D- 06 84 ASL $84
032F- 48 PHA
*300.37F
0300: 99 E8 E8 A9 00 8D 00 20
0308: EE 06 03 D0 F8 EE 07 03
0310: 10 F3 2C 54 C0 2C 52 C0
0318: 2C 57 C0 2C 50 C0 AD 81
0320: C0 A9 00 8D F2 03 8D F3
0328: 03 8D F4 03 07 06 84 48
0330: 07 06 A0 00 07 06 B9 50
0338: 03 07 06 45 48 07 06 99
0340: 50 00 07 06 C8 D0 ED 07
0348: 06 20 C2 00 07 06 07 06
0350: 1F A7 1C A3 3F A7 1F D9
0358: 39 99 3C A3 1D A5 1C A4
0360: 3F B2 B9 25 99 5C 99 49
0368: 60 B9 25 99 5C 98 49 6C
0370: B9 25 99 5C 9B 49 6C 24
0378: 15 59 89 62 B3 1C A6 24
0380: 15 59 89 62 BC A6 08 A5
0388: 51 49 75 97 99 59 24 15
0390: 59 89 62 5C 9A 49 24 7F
0398: A4 5F D9 49 43 B9 25 99
03A0: 1C 9B B9 25 99 1C 98 B9
03A8: 25 99 1C 99 B9 25 99 1C
03B0: 9A B9 25 99 5C 99 49 98
03B8: F9 F5 65 66 24 15 59 89
03C0: 62 F9 30 4D 39 33 1C 99
03C8: 1D 98 1C 9B 1D 9A 30 9D
03D0: D1 D1 33 39 1F 1D C9 D5
03D8: C9 99 C9 99 D5 C9 99 D5
03E0: C9 99 D5 C9 99 D5 C9 99
03E8: D5 C8 99 D5 CB 99 D5 CA
03F0: 99 D5 CD 99 D5 CC 99 D5
03F8: CF 99 D5 CE 99 D5 C1 13
The page is full of 07 06 which can be replaced with EA EA to ease readability
1000:A2 00 BD 00 03 C9 06 F0 08 C9 07 F0 04 E8 D0 F2 60 A9 EA 9D 00 03 4C 0D 10
1000G
*301L
0301- E8 INX
0302- E8 INX
0303- A9 00 LDA #$00
0305- 8D 00 20 STA $2000
0308- EE EA 03 INC $03EA
030B- D0 F8 BNE $0305
030D- EE EA 03 INC $03EA
0310- 10 F3 BPL $0305
0312- 2C 54 C0 BIT $C054
0315- 2C 52 C0 BIT $C052
0318- 2C 57 C0 BIT $C057
031B- 2C 50 C0 BIT $C050
031E- AD 81 C0 LDA $C081
0321- A9 00 LDA #$00
0323- 8D F2 03 STA $03F2
0326- 8D F3 03 STA $03F3
0329- 8D F4 03 STA $03F4
032C- EA NOP
032D- EA NOP
032E- 84 48 STY $48
0330- EA NOP
0331- EA NOP
0332- A0 00 LDY #$00
0334- EA NOP
0335- EA NOP
0336- B9 50 03 LDA $0350,Y
0339- EA NOP
033A- EA NOP
033B- 45 48 EOR $48
033D- EA NOP
033E- EA NOP
033F- 99 50 00 STA $0050,Y
0342- EA NOP
0343- EA NOP
0344- C8 INY
0345- D0 ED BNE $0334
0347- EA NOP
0348- EA NOP
0349- 20 C2 00 JSR $00C2
034C- EA NOP
034D- EA NOP
034E- EA NOP
034F- EA NOP
The same usual key: 99
Let's rewrite the code at $32C and execute it
1000: A0 00 B9 50 03 49 99 99 50 23 C8 D0 F5 60
1000G
And we have it now (I reconstructed it from the original and decyphered versions)
2300: 99 E8 E8 A9 00 8D 00 20
2308: EE 06 03 D0 F8 EE 07 03
2310: 10 F3 2C 54 C0 2C 52 C0
2318: 2C 57 C0 2C 50 C0 AD 81
2320: C0 A9 00 8D F2 03 8D F3
2328: 03 8D F4 03 EA EA 84 48
2330: EA EA A0 00 EA EA B9 50
2338: 03 EA EA 45 48 EA EA 99
2340: 50 00 EA EA C8 D0 ED EA
2348: EA 20 C2 00 EA EA EA EA
2350: 86 3E 85 3A A6 3E 86 40
2358: A0 00 A5 3A 84 3C 85 3D
2360: A6 2B 20 BC 00 C5 00 D0
2368: F9 20 BC 00 C5 01 D0 F5
2370: 20 BC 00 C5 02 D0 F5 BD
2378: 8C C0 10 FB 2A 85 3F BD
2380: 8C C0 10 FB 25 3F 91 3C
2388: C8 D0 EC 0E 00 C0 BD 8C
2390: C0 10 FB C5 03 D0 BD E6
2398: 3D C6 40 D0 DA 20 BC 00
23A0: 85 02 20 BC 00 85 01 20
23A8: BC 00 85 00 20 BC 00 85
23B0: 03 20 BC 00 C5 00 D0 01
23B8: 60 6C FC FF BD 8C C0 10
23C0: FB 60 A9 D4 A0 AA 85 00
23C8: 84 01 85 02 84 03 A9 04
23D0: 48 48 AA A0 86 84 50 4C
23D8: 50 00 50 00 4C 50 00 4C
23E0: 50 00 4C 50 00 4C 50 00
23E8: 4C 51 00 4C 52 00 4C 53
23F0: 00 4C 54 00 4C 55 00 4C
23F8: 56 00 4C 57 00 4C 58 8A
The nibbles on entry
D4 AA D4 AA
The nibbles on exit:
D7 F7 D7 F5
The routine in its disassembled form:
2350- 86 3E STX $3E
2352- 85 3A STA $3A
2354- A6 3E LDX $3E
2356- 86 40 STX $40
2358- A0 00 LDY #$00
235A- A5 3A LDA $3A
235C- 84 3C STY $3C
235E- 85 3D STA $3D
2360- A6 2B LDX $2B
2362- 20 BC 00 JSR $00BC
2365- C5 00 CMP $00
2367- D0 F9 BNE $2362
2369- 20 BC 00 JSR $00BC
236C- C5 01 CMP $01
236E- D0 F5 BNE $2365
2370- 20 BC 00 JSR $00BC
2373- C5 02 CMP $02
2375- D0 F5 BNE $236C
2377- BD 8C C0 LDA $C08C,X
237A- 10 FB BPL $2377
237C- 2A ROL
237D- 85 3F STA $3F
237F- BD 8C C0 LDA $C08C,X
2382- 10 FB BPL $237F
2384- 25 3F AND $3F
2386- 91 3C STA ($3C),Y
2388- C8 INY
2389- D0 EC BNE $2377
238B- 0E 00 C0 ASL $C000
238E- BD 8C C0 LDA $C08C,X
2391- 10 FB BPL $238E
2393- C5 03 CMP $03
2395- D0 BD BNE $2354
2397- E6 3D INC $3D
2399- C6 40 DEC $40
239B- D0 DA BNE $2377
239D- 20 BC 00 JSR $00BC
23A0- 85 02 STA $02
23A2- 20 BC 00 JSR $00BC
23A5- 85 01 STA $01
23A7- 20 BC 00 JSR $00BC
23AA- 85 00 STA $00
23AC- 20 BC 00 JSR $00BC
23AF- 85 03 STA $03
23B1- 20 BC 00 JSR $00BC
23B4- C5 00 CMP $00
23B6- D0 01 BNE $23B9
23B8- 60 RTS
23B9- 6C FC FF JMP ($FFFC)
23BC- BD 8C C0 LDA $C08C,X
23BF- 10 FB BPL $23BC
23C1- 60 RTS
23C2- A9 D4 LDA #$D4
23C4- A0 AA LDY #$AA
23C6- 85 00 STA $00
23C8- 84 01 STY $01
23CA- 85 02 STA $02
23CC- 84 03 STY $03
23CE- A9 04 LDA #$04
23D0- 48 PHA
23D1- 48 PHA
23D2- AA TAX
23D3- A0 86 LDY #$86
23D5- 84 50 STY $50
23D7- 4C 50 00 JMP $0050
23DA- 50 00 BVC $23DC
23DC- 4C 50 00 JMP $0050
23DF- 4C 50 00 JMP $0050
23E2- 4C 50 00 JMP $0050
23E5- 4C 50 00 JMP $0050
23E8- 4C 51 00 JMP $0051
23EB- 4C 52 00 JMP $0052
23EE- 4C 53 00 JMP $0053
23F1- 4C 54 00 JMP $0054
23F4- 4C 55 00 JMP $0055
23F7- 4C 56 00 JMP $0056
23FA- 4C 57 00 JMP $0057
23FD- 4C 58 8A JMP $8A58
Let's patch the routine:
2300:A2 60 86 2B 20 C2 23 4C DA FD
23CE:A9 14 A2 04 EA A0 86 86 50 4C 50 23
23B9:60
BC:BD 8C C0 10 FB 60
2300G
D7
*bingo* We got the third boot pages at $1400..$17FF
1400: A9 67 85 48 8D 98 99 04
1408: 00 99 00 01 99 00 02 99
1410: 00 03 C8 D0 F1 86 2B EA
1418: EA EA EA EA EA A9 02 07
1420: 06 20 72 06 07 06 A9 08
1428: 07 06 48 07 06 A2 04 07
1430: 06 20 00 06 07 06 A4 0A
1438: 07 06 C8 07 06 98 07 06
1440: 20 72 06 07 06 68 07 06
1448: 18 69 04 07 06 C9 20 D0
1450: 06 07 06 A9 40 07 06 C9
1458: 70 90 CD 07 06 07 06 A9
1460: 15 07 06 20 72 06 07 06
1468: 20 30 05 07 06 A9 15 07
1470: 06 8D F2 03 07 06 A9 08
1478: 07 06 8D F3 03 07 06 49
1480: A5 07 06 8D F4 03 07 06
1488: 4C 80 07 07 06 00 00 00
1490: 00 00 00 00 00 00 00 00
1498: 00 00 00 00 00 00 00 00
14A0: 00 00 00 00 00 00 00 00
14A8: 00 00 00 00 00 00 00 00
14B0: 00 00 00 00 00 00 00 00
14B8: 00 00 00 00 00 00 00 00
14C0: 00 00 00 00 00 00 00 00
14C8: 00 00 00 00 00 00 00 00
14D0: 00 00 00 00 00 00 00 00
14D8: 00 00 00 00 00 00 00 00
14E0: 00 00 00 00 00 00 00 00
14E8: 00 00 00 00 00 00 00 00
14F0: 00 00 00 00 00 00 00 00
14F8: 00 00 00 00 00 00 2B 03
1500: A9 00 85 00 85 01 A8 A9
1508: 08 84 02 85 03 B1 02 45
1510: 00 85 00 B1 02 18 65 01
1518: 85 01 C8 D0 F0 E6 03 A5
1520: 03 C9 20 D0 02 A9 40 C9
1528: 70 D0 E0 60 00 00 00 00
1530: 20 00 05 A5 00 CD FE 04
1538: D0 16 A5 01 CD FF 04 D0
1540: 0F 60 00 00 00 00 00 00
1548: 00 00 00 00 00 00 00 00
1550: A0 7F 98 AA 2C 30 C0 CA
1558: D0 FD 38 E9 01 D0 F4 88
1560: D0 F0 98 20 A8 FC 20 A8
1568: FC 6C FC FF 00 00 00 00
1570: 00 00 00 00 00 00 00 00
1578: 00 00 00 00 00 00 00 00
1580: 00 00 00 00 00 00 00 00
1588: 00 00 00 00 00 00 00 00
1590: 00 00 00 00 00 00 00 00
1598: 00 00 00 00 00 00 00 00
15A0: 00 00 00 00 00 00 00 00
15A8: 00 00 00 00 00 00 00 00
15B0: 00 00 00 00 00 00 00 00
15B8: 00 00 00 00 00 00 00 00
15C0: 00 00 00 00 00 00 00 00
15C8: 00 00 00 00 00 00 00 00
15D0: 00 00 00 00 00 00 00 00
15D8: 00 00 00 00 00 00 00 00
15E0: 00 00 00 00 00 00 00 00
15E8: 00 00 00 00 00 00 00 00
15F0: 00 00 00 00 00 00 00 00
15F8: 00 00 00 00 00 00 00 00
1600: 86 3E 85 3A A6 3E 86 40
1608: A0 00 A5 3A 84 3C 85 3D
1610: A6 2B 20 6C 06 C5 00 D0
1618: F9 20 6C 06 C5 01 D0 F5
1620: 20 6C 06 C5 02 D0 F5 BD
1628: 8C C0 10 FB 2A 85 3F BD
1630: 8C C0 10 FB 25 3F 91 3C
1638: C8 D0 EC 0E 00 C0 BD 8C
1640: C0 10 FB C5 03 D0 BD E6
1648: 3D C6 40 D0 DA 20 6C 06
1650: 85 02 20 6C 06 85 01 20
1658: 6C 06 85 00 20 6C 06 85
1660: 03 20 6C 06 C5 00 D0 01
1668: 60 6C FC FF BD 8C C0 10
1670: FB 60 85 41 C5 0A F0 4F
1678: A9 00 85 26 A5 0A 85 27
1680: 38 E5 41 F0 31 B0 06 49
1688: FF E6 0A 90 04 69 FE C6
1690: 0A C5 26 90 02 A5 26 C9
1698: 0C B0 01 A8 38 20 BA 06
16A0: B9 D3 06 20 C8 06 A5 27
16A8: 18 20 BC 06 B9 DF 06 20
16B0: C8 06 E6 26 D0 C6 20 C8
16B8: 06 18 A5 0A 29 03 2A 05
16C0: 2B AA BD 80 C0 A6 2B 60
16C8: A2 13 CA D0 FD 38 E9 01
16D0: D0 F6 60 01 30 28 24 20
16D8: 1E 1D 1C 1C 1C 1C 1C 70
16E0: 2C 26 22 1F 1E 1D 1C 1C
16E8: 1C 1C 1C 00 00 00 00 00
16F0: 00 00 00 00 00 00 00 00
16F8: 00 00 00 00 00 00 00 00
1700: 00 00 00 00 00 00 00 00
1708: 00 00 00 00 00 00 00 00
1710: 00 00 00 00 00 EA EA A0
1718: 80 B9 00 07 99 00 01 88
1720: D0 F7 4C 25 01 EA A9 A0
1728: 99 00 04 99 00 05 99 00
1730: 06 99 00 07 C8 D0 F1 6C
1738: 20 00 00 00 00 00 00 00
1740: 00 00 00 00 00 00 00 00
1748: 00 00 00 00 00 00 00 00
1750: 00 00 00 00 00 00 00 00
1758: 00 00 00 00 00 00 00 00
1760: 00 00 00 00 00 00 00 00
1768: 00 00 00 00 00 00 00 00
1770: 00 00 00 00 00 00 00 00
1778: 00 00 00 00 00 00 00 00
1758: 00 00 00 00 00 00 00 00
1760: 00 00 00 00 00 00 00 00
1768: 00 00 00 00 00 00 00 00
1770: 00 00 00 00 00 00 00 00
1778: 00 00 00 00 00 00 00 00
1780: A9 FF 20 C0 07 C9 D5 D0
1788: F7 20 C2 07 C9 FF D0 F5
1790: 20 C2 07 C9 D4 D0 F5 20
1798: B9 07 8D A7 07 20 B9 07
17A0: 8D A8 07 20 B9 07 8D FF
17A8: FF C9 EA D0 EA BD 88 C0
17B0: 20 B9 07 48 20 B9 07 48
17B8: 60 BD 8C C0 10 FB 38 2A
17C0: 85 FF BD 8C C0 10 FB 25
17C8: FF 60 00 00 00 00 00 00
17D0: 00 00 00 00 00 00 00 00
17D8: 00 00 00 00 00 00 00 00
17E0: 00 00 00 00 00 00 00 00
17E8: 00 00 00 00 00 00 00 00
17F0: 00 00 00 00 00 00 00 00
17F8: 00 00 00 00 00 00 00 00
Let's patch the beast to get the whole program in memory:
1400: A9 D7 85 00 85 02 A9 F7
1408: 85 01 A9 F5 85 03 A0 00
1410: 84 0A EA A2 60
17B3:A8
17B7:EA
146E:59
1477:FF
1488:20
148B:84 FF 85 FE 2C 51 C0 AD 00 C0 10 FB 2C 10 C0 4C 59 FF
The following will move code at its right addresses and be executed
00/1000: A2 00 LDX #00
00/1002: BD 00 14 LDA 1400,X
00/1005: 9D 00 04 STA 0400,X
00/1008: BD 00 15 LDA 1500,X
00/100B: 9D 00 05 STA 0500,X
00/100E: BD 00 16 LDA 1600,X
00/1011: 9D 00 06 STA 0600,X
00/1014: BD 00 17 LDA 1700,X
00/1017: 9D 00 07 STA 0700,X
00/101A: E8 INX
00/101B: D0 E5 BNE 1002 ;-1B=
00/101D: 4C 00 14 JMP 1400
1000:A2 00 BD 00 14 9D 00 04
1008:BD 00 15 9D 00 05 BD 00
1010:16 9D 00 06 BD 00 17 9D
1018:00 07 E8 D0 E5 4C 00 04
1000G
*bingo* We have the program in memory:
$0800..$1FFF
$4000..$6FFF
That's all!
We preserve the $0000..$07FF area as the program uses a lot of indirect jumps on entry
We put that on a disk at the end of the program at $7000..$77FF, call the RWTS to read the data in memory and then execute the following code bfore jumping to the game:
The new Boot 1 sector on T0/S0
0080:A2 00 LDX #$00
0082:BD 00 70 LDA $7000,X
0085:9D 00 00 STA $0000,X
0088:BD 00 71 LDA $7100,X
008B:9D 00 01 STA $0100,X
008E:BD 00 72 LDA $7200,X
0091:9D 00 02 STA $0200,X
0094:BD 00 73 LDA $7300,X
0097:9D 00 03 STA $0300,X
009A:BD 00 74 LDA $7400,X
009D:9D 00 04 STA $0400,X
00A0:BD 00 75 LDA $7500,X
00A3:9D 00 05 STA $0500,X
00A6:BD 00 76 LDA $7600,X
00A9:9D 00 06 STA $0600,X
00AC:BD 00 77 LDA $7700,X
00AF:9D 00 07 STA $0700,X
00B2:E8 INX
00B3:D0 CD BNE $0082
00B5:4C 15 07 JMP $0715
|
|
|
Revenir en haut de page |
|
 |
toinet Site Admin
Inscrit le: 15 Juin 2007 Messages: 3076 Localisation: Le Chesnay, France
|
Posté le: Dim 07 Juil 2019, 20:30 Sujet du message: |
|
|
The original boot 3 code at $400..$7FF:
Code: |
*
* The Snapper
*
* (c) 1982, Silicon Valley Systems
* (k) 2019, LoGo
*
*---------------------------------------------------------*
* Disassembled with The Flaming Bird Disassembler *
* (c) Phoenix corp. 1992,93 - All rights reserved *
*---------------------------------------------------------*
TYP BIN
ORG $000400
MX %11
* TFBD generated equates
* (c) PHC 1992,93
SOFTEV EQU $03F2
PWREDUP EQU $03F4
KBD EQU $C000
SPKR EQU $C030
WAIT EQU $FCA8
RESETV EQU $FFFC
IRQV EQU $FFFE
*---
L0400 LDA #$67
STA $48
NOP
TYA
L0406 STA |$0004,Y
STA $0100,Y
STA $0200,Y
STA $0300,Y
INY
BNE L0406
STX $2B
NOP
NOP
NOP
NOP
NOP
NOP
LDA #$02
NOP
NOP
JSR L0672
NOP
NOP
LDA #$08
L0428 NOP
NOP
PHA
NOP
NOP
LDX #$04
NOP
NOP
JSR L0600
NOP
NOP
LDY $0A
NOP
NOP
INY
NOP
NOP
TYA
NOP
NOP
JSR L0672
NOP
NOP
PLA
NOP
NOP
CLC
ADC #$04
NOP
NOP
CMP #$20
BNE L0457
NOP
NOP
LDA #$40
NOP
NOP
L0457 CMP #$70
BCC L0428
NOP
NOP
NOP
NOP
LDA #$15
NOP
NOP
JSR L0672
NOP
NOP
JSR L0530
NOP
NOP
LDA #$15
NOP
NOP
STA SOFTEV
NOP
NOP
LDA #$08
NOP
NOP
STA SOFTEV+1
NOP
NOP
EOR #$A5
NOP
NOP
STA PWREDUP
NOP
NOP
JMP L0780
NOP
NOP
DS $71
L04FE DB $2B
L04FF DB $03
L0500 LDA #$00
STA $00
STA $01
TAY
LDA #$08
STY $02
L050B STA $03
L050D LDA ($02),Y
EOR $00
STA $00
LDA ($02),Y
CLC
ADC $01
STA $01
INY
BNE L050D
INC $03
LDA $03
CMP #$20
BNE L0527
LDA #$40
L0527 CMP #$70
BNE L050B
RTS
DS 4
L0530 JSR L0500
LDA $00
CMP L04FE
BNE L0550
LDA $01
CMP L04FF
BNE L0550
RTS
DS $E
L0550 LDY #$7F
L0552 TYA
L0553 TAX
BIT SPKR
L0557 DEX
BNE L0557
SEC
SBC #$01
BNE L0553
DEY
BNE L0552
TYA
JSR WAIT
JSR WAIT
JMP (RESETV)
DS $94
L0600 STX $3E
STA $3A
L0604 LDX $3E
STX $40
LDY #$00
LDA $3A
STY $3C
STA $3D
LDX $2B
L0612 JSR L066C
L0615 CMP $00
BNE L0612
JSR L066C
L061C CMP $01
BNE L0615
JSR L066C
CMP $02
BNE L061C
L0627 LDA $C08C,X
BPL L0627
ROL
STA $3F
L062F LDA $C08C,X
BPL L062F
AND $3F
STA ($3C),Y
INY
BNE L0627
ASL KBD
L063E LDA $C08C,X
BPL L063E
CMP $03
BNE L0604
INC $3D
DEC $40
BNE L0627
JSR L066C
STA $02
JSR L066C
STA $01
JSR L066C
STA $00
JSR L066C
STA $03
JSR L066C
CMP $00
BNE L0669
RTS
L0669 JMP (RESETV)
L066C LDA $C08C,X
BPL L066C
RTS
L0672 STA $41
CMP $0A
BEQ L06C7
LDA #$00
STA $26
L067C LDA $0A
STA $27
SEC
SBC $41
BEQ L06B6
BCS L068D
EOR #$FF
INC $0A
BCC L0691
L068D ADC #$FE
DEC $0A
L0691 CMP $26
BCC L0697
LDA $26
L0697 CMP #$0C
BCS L069C
TAY
L069C SEC
JSR L06BA
LDA L06D3,Y
JSR L06C8
LDA $27
CLC
JSR L06BC
LDA L06DF,Y
JSR L06C8
INC $26
BNE L067C
L06B6 JSR L06C8
CLC
L06BA LDA $0A
L06BC AND #$03
ROL
ORA $2B
TAX
LDA $C080,X
LDX $2B
L06C7 RTS
L06C8 LDX #$13
L06CA DEX
BNE L06CA
SEC
SBC #$01
BNE L06C8
RTS
L06D3 HEX 01302824201E1D1C1C1C1C1C
L06DF HEX 702C26221F1E1D1C1C1C1C1C
DS $15
L0700 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
NOP
NOP
LDY #$80
L0719 LDA L0700,Y
STA $0100,Y
DEY
BNE L0719
JMP $0125
NOP
LDA #$A0
L0728 STA L0400,Y
STA L0500,Y
STA L0600,Y
STA L0700,Y
INY
BNE L0728
JMP ($0020)
DS $46
L0780 LDA #$FF
JSR L07C0
L0785 CMP #$D5
BNE L0780
JSR L07C2
L078C CMP #$FF
BNE L0785
JSR L07C2
CMP #$D4
BNE L078C
L0797 JSR L07B9
STA L07A6+1
JSR L07B9
STA L07A6+2
JSR L07B9
L07A6 STA IRQV+1
CMP #$EA
BNE L0797
LDA $C088,X
JSR L07B9
TAY
JSR L07B9
NOP
RTS
L07B9 LDA $C08C,X
BPL L07B9
SEC
ROL
L07C0 STA $FF
L07C2 LDA $C08C,X
BPL L07C2
AND $FF
RTS
DS $36
|
|
|
Revenir en haut de page |
|
 |
|
|
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
|
|