Files
disasm/Tennis (JU)/copilot/prg.lst
T
tmerritt 25423d3828 Roms Completed:
Baseball
  Clu Clu Land
  Excitebike
  Pac-Man (Namco)
  Tennis
  Balloon Fight
  Bomberman (U)
  Burger Time (U)
  Defender 2 (U)
2026-10-15 09:52:48 -04:00

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