home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Digital Talk 93
/
Digital_Talk_93_2011-11-15_Digital_Talk_Side_B.d64
/
source.s
< prev
next >
Wrap
Text File
|
2023-02-26
|
11KB
|
1,199 lines
;===============================================================
;
; Famous Fairlight Cracktro - #2
;
; disassembled/converted to source
; by the 6502 junkie called Adam Morton
;
; ...Yet another intro sourced for your study and amusement
;
; - Some minor code/data adjustments..
; - Music replayer+Data disassembly added..
; - Some comments maybe?
;
;===============================================================
PROCESSOR 6502
ORG $C000
SEI
LDA #>IRQ
STA $0315
LDA #<IRQ
STA $0314
LDA #$01
STA $D012
STA $D01A
LDA #$7F
STA $DC0D
LDA #$1B
STA $D011
LDA #$94
STA $DD00
LDA #$12
STA $D018
LDA #$09
LDX #$00
a1 STA $D800,X
INX
BNE a1
LDX #$20
a2 STA $D8FF,X
DEX
BNE a2
LDA #$01;
a3 STA $D920,X
STA $DA00,X
STA $DB00,X
INX
BNE a3
LDA #$00; Screen Colour
STA $D020
STA $D021
LDA #$0A; Multicolours
LDX #$02
STA $D023
STX $D022
LDA #$D8
STA $D016
LDA #$FF; Turn Sprites ON
STA $D015
LDA #$18; Setup Sprite Locations
STA $D000; for the ever-famous,
LDA #$48; fake raster bar =)
STA $D002;
LDA #$78;
STA $D004
LDA #$A8
STA $D008
LDA #$D8
STA $D00A
LDA #$08
STA $D00C
LDA #$38
STA $D00E
LDA #$C0; Set Sprite MSB
STA $D010
LDA #$FF
STA $D01C
STA $D01D
LDA #$0D; Setup sprite colours
LDX #$07
a4 STA $D027,X
DEX
BPL a4
LDA #$05; Setup Multicolors
LDX #$01
STA $D025
STX $D026
LDA #$00
STA $02
JSR $C200; Play Music + Do Colour Cycle
CLI
l4eva JMP l4eva
;===============================================================
org $c0b2
LDA #$01
STA $D019
loop JSR m10; Play Music
INC $02
LDX $02
LDA $C2C0,X
LDY #$0E
a5 STA $D001,Y
DEY
DEY
BPL a5
LDA $D001
CMP #$32
BNE a6a
LDA #$00
a6 STA $D01B
JMP a8
a6a CMP #$7B
BNE a7
LDA #$FF
JMP a6
a7 CMP #$33
BNE a8
LDA a8+1
CMP #$1F
BEQ a8
INC a8+1
a8 LDA #$15
STA $D418
LDA #$98
LDX #$00
a9 CMP $D012
BNE a9
b1 LDA $C280,X
TAY
LDA $D012
b0 CMP $D012
BEQ b0
STY $D021
INX
CPX #$2A
BNE b1
b2 LDA $D012
CMP #$D2
BNE b2
LDA $09
STA $D016
LDX #$64
b3 DEX
BNE b3
LDA #$D8
STA $D016
DEC $09
LDA $09
CMP #$FF
BNE b6
LDA #$07
STA $09
LDX #$00
b4 LDA $C721,X
STA $C720,X
INX
CPX #$27
BNE b4
LDX #$00
LDA ($39,X)
CMP #$FF
BEQ RES
STA $C747
BACK INC $39
LDA $39
CMP #$00
BNE b6
INC $3A
LDA $3A
CMP #$CC
BNE b6
LDA #$CA
STA $3A
b6 LDA $DB20
PHA
LDX #$00
b5 LDA $DB21,X
STA $DB20,X
INX
CPX #$27
BNE b5
PLA
STA $DB47
JMP $EA81
RESLDA #$CA; Reset scroll text location
LDX #$00 ; back to the start
STA $3A
STX $39
JMP BACK
;===============================================================
IRQ;ORG $C174
LDA #$01
STA $D019
LDA a8+1; Check music fade-in - Has it reached $1f yet?
CMP #$1F ; No? Then don't allow the space key to be pressed..
BNE b7
LDA $DC01
CMP #$EF
BEQ EXIT
b7 JSR $FFE4
JMP loop
EXIT SEI
LDA #$EA; Reset IRQ to default address
LDX #$31
STA $0315
STX $0314
JSR $FF81
LDA #$97
STA $DD00
LDA #$0B
STA $D011
CLI
LDA #$00
STA $D020
STA $D021
LDX #$1C; Zeros to SID (silence it)
LDA #$00
b8 STA $D41C,X
DEX
BNE b8
JMP 64738
;===============================================================
ORG $c200
JSR $CC19; Play the music
LDA #$10
STA $C0F1
LDX #$C0
LDA #$00
c0 STA $DA40,X
DEX
BNE c0
LDA #$CA
LDX #$00
STA $3A
STX $39
LDX #$00
c1 LDA $C258,X
STA $DB20,X
INX
CPX #$28
BNE c1
LDA #$00
STA $C6
STA $C5
RTS
;===============================================================
ORG $C241
DC.B $09,$07,$07,$01,$01,$01,$07,$07,$09
;===============================================================
ORG $C258
DC.B $01,$01,$01,$01,$01 ; Colour Cycling
dc.b $0f,$0f,$0f,$0f,$0f ; for the scroll text
DC.B $0c,$0c,$0c,$0c,$0c
dc.b $0b,$0b,$0b,$0b,$0b
DC.B $01,$01,$01,$01,$01
dc.b $0f,$0f,$0f,$0f,$0f
DC.B $0c,$0c,$0c,$0c,$0c
DC.B $0b,$0b,$0b,$0b,$0b
;===============================================================
ORG $C280
DC.B $00,$00,$00,$00; Raster list for bars
DC.B $00,$00,$00,$00 ; under the text lines
DC.B $00,$00,$00,$00
DC.B $00,$00,$00,$02
DC.B $0a,$01,$01,$01
DC.B $0a,$0a,$02,$00
DC.B $00,$00,$00,$00
DC.B $00,$06,$0e,$0e
DC.B $01,$01,$0e,$0e
DC.B $06,$00,$00,$00
DC.B $00
;===============================================================
ORG $C2BE; Sinus Data
INCBIN SINUS_C2BE.bin
ORG $C3C0; Sprite (fake raster bar)
INCBIN SPRITE_C3C0.bin
ORG $C400; Screen Location
INCBIN SCREEN_C400.bin
ORG $C800; Charset
INCBIN CHARSET_C800.bin
ORG $CA00; Scroll Text
INCBIN SCROLL_CA00.bin
;===============================================================
;===============================================================
ORG $CC00; Music Code+Data
DC.B $20,$00,$00,$08
DC.B $10,$2e,$4e,$00
DC.B $00,$00,$08,$40
DC.B $8a,$0a,$00,$00
DC.B $00,$07,$40,$0a
DC.B $0a,$00,$7d,$d6
DC.B $1f
;---------------------------
ORG $CC19; Music Player
LDX #$18
m0 LDA $CC00,X
STA $D400,X
DEX
BPL m0
LDA $CC04
STA $0355
LDA $CC0B
STA $0356
LDA $CC12
STA $0357
LDX #$02
LDA #$01
m1 STA $0358,X
DEX
BPL m1
LDX #$08
LDA #$00
m2 STA $035B,X
DEX
BPL m2
LDA #$01
STA $0354
LDX #$05
m3 LDA $CE00,X
STA $0364,X
DEX
BPL m3
INC $0358
RTS
m10 DEC $0354
BEQ m4
JMP $CD1D
m4 LDA #$0A
STA $0354
LDX #$02
m9 DEC $0358,X
BNE m5
TXA
STA $9E
ASL
PHA
ASL
ASL
SEC
SBC $9E
TAY
LDA $0355,X
STA $D404,Y
PLA
TAY
m7 LDA $0364,Y
STA $9E
CLC
ADC #$03
STA $0364,Y
LDA $0365,Y
STA $9F
ADC #$00
STA $0365,Y
LDY #$02
LDA ($9E),Y
BEQ m6
STA $035E,X
DEY
LDA ($9E),Y
STA $035B,X
LDA #$01
STA $0361,X
m8 DEY
LDA ($9E),Y
STA $0358,X
BNE m5
TXA
ASL
TAY
LDA $CE00,Y
STA $0364,Y
LDA $CE01,Y
STA $0365,Y
JMP m7
m6 DEY
LDA #$00
STA $0361,X
JMP m8
m5 DEX
BPL m9
LDA $A0
AND #$07
CLC
ADC #$04
STA $D40A
LDA $035B
STA $D400
LDA $035E
STA $D401
LDA $035C
STA $D407
LDA $035F
STA $D408
LDA $035D
STA $D40E
LDA $0360
STA $D40F
LDA $0355
ORA $0361
STA $D404
LDA $0356
ORA $0362
STA $D40B
LDA $0357
ORA $0363
STA $D412
RTS
;===============================================================
ORG $CE00
DC.B $57,$ce,$06,$ce,$57,$ce,$03,$85; Music notes+delays ect..
DC.B $06,$03,$e2,$04,$06,$2c,$05,$03
DC.B $cf,$05,$03,$cf,$05,$06,$85,$06
DC.B $03,$85,$06,$03,$e2,$04,$06,$2c
DC.B $05,$03,$cf,$05,$03,$cf,$05,$06
DC.B $85,$06,$03,$85,$06,$02,$85,$06
DC.B $01,$0a,$0d,$06,$2c,$05,$03,$cf
DC.B $05,$02,$e2,$04,$01,$cf,$05,$06
DC.B $85,$06,$03,$85,$06,$03,$e2,$04
DC.B $06,$2c,$05,$03,$cf,$05,$03,$e2
DC.B $04,$06,$42,$03,$00,$00,$00,$60
DC.B $00,$00,$03,$29,$34,$01,$8c,$3a
DC.B $01,$08,$3e,$01,$29,$34,$04,$a1
DC.B $45,$02,$08,$3e,$01,$8d,$3a,$01
DC.B $08,$3e,$04,$8d,$3a,$06,$29,$34
DC.B $03,$29,$34,$01,$8d,$3a,$01,$08
DC.B $3e,$01,$29,$34,$04,$a1,$45,$02
DC.B $08,$3e,$01,$8c,$3a,$01,$08,$3e
DC.B $04,$a1,$45,$06,$27,$4e,$03,$27
DC.B $4e,$01,$cd,$52,$01,$27,$4e,$01
DC.B $cd,$52,$04,$27,$4e,$02,$a1,$45
DC.B $01,$08,$3e,$01,$a1,$45,$04,$8d
DC.B $3a,$06,$29,$34,$03,$29,$34,$01
DC.B $8d,$3a,$01,$08,$3e,$01,$29,$34
DC.B $04,$a1,$45,$02,$08,$3e,$01,$8c
DC.B $3a,$01,$08,$3e,$02,$8c,$3a,$02
DC.B $78,$2e,$06,$29,$34,$02,$0a,$0d
DC.B $02,$0a,$0d,$01,$a3,$0e,$01,$82
DC.B $0f,$04,$b3,$14,$02,$89,$13,$02
DC.B $68,$11,$02,$82,$0f,$02,$a3,$0e
DC.B $03,$82,$0f,$01,$68,$11,$02,$a3
DC.B $0e,$02,$0a,$0d,$02,$0a,$0d,$01
DC.B $a3,$0e,$01,$82,$0f,$02,$b3,$14
DC.B $02,$89,$13,$02,$68,$11,$02,$82
DC.B $0f,$02,$a3,$0e,$02,$82,$0f,$06
DC.B $c4,$09,$02,$0a,$0d,$02,$a3,$0e
DC.B $02,$82,$0f,$02,$b3,$14,$02,$89
DC.B $13,$02,$68,$11,$02,$82,$0f,$02
DC.B $a3,$0e,$02,$82,$0f,$06,$82,$0f
DC.B $02,$0a,$0d,$02,$0a,$0d,$01,$a3
DC.B $0e,$01,$82,$0f,$02,$b3,$14,$02
DC.B $b3,$14,$02,$89,$13,$02,$68,$11
DC.B $02,$82,$0f,$01,$a3,$0e,$01,$82
DC.B $0f,$06,$0a,$0d,$06,$0a,$0d,$09
DC.B $82,$0f,$03,$a3,$0e,$06,$0a,$0d
DC.B $06,$13,$27,$09,$d0,$22,$03,$04
DC.B $1f,$06,$14,$1a,$03,$14,$1a,$02
DC.B $14,$1a,$01,$13,$27,$06,$66,$29
DC.B $03,$d0,$22,$02,$04,$1f,$01,$46
DC.B $1d,$06,$14,$1a,$03,$14,$1a,$03
DC.B $8a,$13,$06,$b3,$14,$04,$04,$1f
DC.B $05,$d0,$22,$03,$14,$1a,$00,$00
DC.B $00,$20,$ff,$ff,$ff,$ff,$ff,$ff
DC.B $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
DC.B $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
DC.B $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
;===============================================================
;===============================================================