Baseball Clu Clu Land Excitebike Pac-Man (Namco) Tennis Balloon Fight Bomberman (U) Burger Time (U) Defender 2 (U)
198 lines
8.9 KiB
Plaintext
198 lines
8.9 KiB
Plaintext
ca65 V2.18 - Debian 2.19-2
|
|
Main file : prg.s
|
|
Current file: prg.s
|
|
|
|
000000r 1 .include "symbols.inc"
|
|
000000r 2 ; PPU registers
|
|
000000r 2 PPUCTRL = $2000
|
|
000000r 2 PPUMASK = $2001
|
|
000000r 2 PPUSTATUS = $2002
|
|
000000r 2 OAMADDR = $2003
|
|
000000r 2 OAMDATA = $2004
|
|
000000r 2 PPUSCROLL = $2005
|
|
000000r 2 PPUADDR = $2006
|
|
000000r 2 PPUDATA = $2007
|
|
000000r 2 OAMDMA = $4014
|
|
000000r 2 JOY1 = $4016
|
|
000000r 2 JOY2 = $4017
|
|
000000r 2
|
|
000000r 2 APUPC1BASE = $4000
|
|
000000r 2 APUPC1SWEEP = $4001
|
|
000000r 2 APUPC1TLOW = $4002
|
|
000000r 2 APUPC1THIGH = $4003
|
|
000000r 2
|
|
000000r 2 APUPC2BASE = $4004
|
|
000000r 2 APUPC2SWEEP = $4005
|
|
000000r 2 APUPC2LOW = $4006
|
|
000000r 2 APUPC2HIGH = $4007
|
|
000000r 2
|
|
000000r 2 APUTRIBASE = $4008
|
|
000000r 2 APUTRILOW = $400A
|
|
000000r 2 APUTRIHIGH = $400B
|
|
000000r 2
|
|
000000r 2 APUNOISEBASE = $400C
|
|
000000r 2 APUNOISELOOP = $400E
|
|
000000r 2 APUNOISELENGTH = $400F
|
|
000000r 2
|
|
000000r 2 APUDMABASE = $4010
|
|
000000r 2 APUDMALOAD = $4011
|
|
000000r 2 APUDMAADDR = $4012
|
|
000000r 2 APUDMALEN = $4013
|
|
000000r 2
|
|
000000r 2 APUCTRL = $4015
|
|
000000r 2 APUSTATUS = $4015
|
|
000000r 2 APUFRAMECNT = $4017
|
|
000000r 2
|
|
000000r 2 ; Controller Masks
|
|
000000r 2 PAD_RIGHT=$01
|
|
000000r 2 PAD_LEFT=$02
|
|
000000r 2 PAD_DOWN=$04
|
|
000000r 2 PAD_UP=$08
|
|
000000r 2 PAD_START=$10
|
|
000000r 2 PAD_SELECT=$20
|
|
000000r 2 PAD_B=$40
|
|
000000r 2 PAD_A=$80
|
|
000000r 2 PAD_HORIZONTAL=PAD_LEFT|PAD_RIGHT
|
|
000000r 2 PAD_VERTICAL=PAD_UP|PAD_DOWN
|
|
000000r 2 PAD_DPAD=PAD_HORIZONTAL|PAD_VERTICAL
|
|
000000r 2
|
|
000000r 1 .include "locals.inc"
|
|
000000r 2 Routine_C456 = $C456
|
|
000000r 2 Routine_C0AA = $C0AA
|
|
000000r 2 Routine_C375 = $C375
|
|
000000r 2 Routine_FFF7 = $FFF7
|
|
000000r 2 Routine_C1A5 = $C1A5
|
|
000000r 2 Routine_C195 = $C195
|
|
000000r 2 Routine_FB10 = $FB10
|
|
000000r 2
|
|
000000r 1
|
|
000000r 1 .segment "PRG"
|
|
000000r 1
|
|
000000r 1 ;------------------------------------------------------------------------------
|
|
000000r 1 ; Reset
|
|
000000r 1 ;------------------------------------------------------------------------------
|
|
000000r 1 ;
|
|
000000r 1 ; Global:
|
|
000000r 1 ; Main cartridge initialization routine entered via the RESET vector.
|
|
000000r 1 ;
|
|
000000r 1 ; Local:
|
|
000000r 1 ; Initializes CPU state, clears RAM, initializes hardware,
|
|
000000r 1 ; establishes runtime variables, and enters the main loop.
|
|
000000r 1 ;
|
|
000000r 1 ; Parameters:
|
|
000000r 1 ; None.
|
|
000000r 1 ;
|
|
000000r 1 ; Returns:
|
|
000000r 1 ; Never returns.
|
|
000000r 1 ;
|
|
000000r 1 ;------------------------------------------------------------------------------
|
|
000000r 1 Reset:
|
|
000000r 1
|
|
000000r 1 D8 cld ; C000: D8
|
|
000001r 1 78 sei ; C001: 78
|
|
000002r 1
|
|
000002r 1 AD 02 20 lda $2002 ; C002: AD 02 20
|
|
000005r 1 20 10 FB jsr Routine_FB10 ; C005: 20 10 FB
|
|
000008r 1
|
|
000008r 1 A2 00 ldx #$00 ; C008: A2 00
|
|
00000Ar 1 8E 00 20 stx $2000 ; C00A: 8E 00 20
|
|
00000Dr 1 8E 01 20 stx $2001 ; C00D: 8E 01 20
|
|
000010r 1
|
|
000010r 1 CA dex ; C010: CA
|
|
000011r 1 9A txs ; C011: 9A
|
|
000012r 1
|
|
000012r 1 A6 27 ldx $27 ; C012: A6 27
|
|
000014r 1
|
|
000014r 1 ClearRam:
|
|
000014r 1
|
|
000014r 1 A0 06 ldy #$06 ; C014: A0 06
|
|
000016r 1 84 02 sty $02 ; C016: 84 02
|
|
000018r 1
|
|
000018r 1 A0 00 ldy #$00 ; C018: A0 00
|
|
00001Ar 1 84 01 sty $01 ; C01A: 84 01
|
|
00001Cr 1
|
|
00001Cr 1 A9 00 lda #$00 ; C01C: A9 00
|
|
00001Er 1
|
|
00001Er 1 ClearRam_ByteLoop:
|
|
00001Er 1
|
|
00001Er 1 91 01 sta ($01),y ; C01E: 91 01
|
|
000020r 1 88 dey ; C020: 88
|
|
000021r 1 D0 FB bne ClearRam_ByteLoop ; C021: D0 FB
|
|
000023r 1
|
|
000023r 1 C6 02 dec $02 ; C023: C6 02
|
|
000025r 1 10 F7 bpl ClearRam_ByteLoop ; C025: 10 F7
|
|
000027r 1
|
|
000027r 1 8A txa ; C027: 8A
|
|
000028r 1 D0 02 bne UseStartupX ; C028: D0 02
|
|
00002Ar 1
|
|
00002Ar 1 A2 5F ldx #$5F ; C02A: A2 5F
|
|
00002Cr 1
|
|
00002Cr 1 UseStartupX:
|
|
00002Cr 1
|
|
00002Cr 1 8E 00 05 stx $0500 ; C02C: 8E 00 05
|
|
00002Fr 1
|
|
00002Fr 1 20 95 C1 jsr Routine_C195 ; C02F: 20 95 C1
|
|
000032r 1 20 A5 C1 jsr Routine_C1A5 ; C032: 20 A5 C1
|
|
000035r 1
|
|
000035r 1 A0 00 ldy #$00 ; C035: A0 00
|
|
000037r 1
|
|
000037r 1 8D 05 20 sta $2005 ; C037: 8D 05 20
|
|
00003Ar 1 8D 05 20 sta $2005 ; C03A: 8D 05 20
|
|
00003Dr 1
|
|
00003Dr 1 C8 iny ; C03D: C8
|
|
00003Er 1 84 38 sty $38 ; C03E: 84 38
|
|
000040r 1
|
|
000040r 1 A9 0F lda #$0F ; C040: A9 0F
|
|
000042r 1 8D 15 40 sta $4015 ; C042: 8D 15 40
|
|
000045r 1
|
|
000045r 1 A9 90 lda #$90 ; C045: A9 90
|
|
000047r 1 8D 00 20 sta $2000 ; C047: 8D 00 20
|
|
00004Ar 1 85 09 sta $09 ; C04A: 85 09
|
|
00004Cr 1
|
|
00004Cr 1 A9 06 lda #$06 ; C04C: A9 06
|
|
00004Er 1 85 0A sta $0A ; C04E: 85 0A
|
|
000050r 1
|
|
000050r 1 A9 00 lda #$00 ; C050: A9 00
|
|
000052r 1 85 30 sta $30 ; C052: 85 30
|
|
000054r 1
|
|
000054r 1 MainLoop:
|
|
000054r 1
|
|
000054r 1 A5 38 lda $38 ; C054: A5 38
|
|
000056r 1 F0 09 beq SkipWait ; C056: F0 06
|
|
000058r 1
|
|
000058r 1 A5 3E lda $3E ; C058: A5 3E
|
|
00005Ar 1 C9 01 cmp #$01 ; C05A: C9 01
|
|
00005Cr 1 D0 03 bne SkipWait ; C05C: D0 03
|
|
00005Er 1
|
|
00005Er 1 20 F7 FF jsr Routine_FFF7 ; C05E: 20 F7 FF
|
|
000061r 1
|
|
000061r 1 SkipWait:
|
|
000061r 1
|
|
000061r 1 20 75 C3 jsr Routine_C375 ; C061: 20 75 C3
|
|
000064r 1 20 AA C0 jsr Routine_C0AA ; C064: 20 AA C0
|
|
000067r 1
|
|
000067r 1 A9 01 lda #$01 ; C067: A9 01
|
|
000069r 1 85 32 sta $32 ; C069: 85 32
|
|
00006Br 1
|
|
00006Br 1 A5 30 lda $30 ; C06B: A5 30
|
|
00006Dr 1 F0 09 beq DispatchState ; C06D: F0 09
|
|
00006Fr 1
|
|
00006Fr 1 E6 27 inc $27 ; C06F: E6 27
|
|
000071r 1
|
|
000071r 1 A9 00 lda #$00 ; C071: A9 00
|
|
000073r 1 85 32 sta $32 ; C073: 85 32
|
|
000075r 1
|
|
000075r 1 4C rr rr jmp MainLoop ; C075: 4C 4F C0
|
|
000078r 1
|
|
000078r 1 DispatchState:
|
|
000078r 1
|
|
000078r 1 20 56 C4 jsr Routine_C456 ; C078: 20 56 C4
|
|
00007Br 1 4C rr rr jmp MainLoop ; C07B: 4C 6A C0
|
|
00007Er 1
|
|
00007Er 1 ; decoded code
|
|
00007Er 1
|
|
00007Er 1 48 8A 48 98 .incbin "prg.bin", $007D, $3F83
|
|
000082r 1 48 A9 00 8D
|
|
000086r 1 03 20 A9 02
|
|
00007Er 1
|