base:playing_music_a000-_ffff
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | base:playing_music_a000-_ffff [2015-04-17 04:33] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Playing music at $A000 - $FFFF " | ||
+ | |||
+ | Ok, you saw the simple IRQ music player I added previously, now let's play some music inside the IRQ that is outside the $0400-$9fff area. How do we come about it? Well, simple really. We need to turn off the kernal (SET #$35 to $01) initialize the tune and then turn the kernal back on (SET #$37 to $01). You do the same to play the music as well. This is an example for a JCH/DMC tune at $A000. | ||
+ | < | ||
+ | !to " | ||
+ | |||
+ | *=$0810 | ||
+ | SEI | ||
+ | LDA #<IRQ | ||
+ | LDX #>IRQ | ||
+ | STA $0314 | ||
+ | STX $0315 | ||
+ | LDA #$7F | ||
+ | STA $DC0D | ||
+ | LDA #$1B | ||
+ | STA $D01B | ||
+ | LDA #$01 | ||
+ | STA $D01A | ||
+ | LDA #$35 ;TURN OFF BASIC KERNAL | ||
+ | STA $01 | ||
+ | LDA #$00 | ||
+ | JSR $A000 | ||
+ | LDA #$37 ;TURN BASIC KERNAL BACK ON | ||
+ | STA $01 | ||
+ | CLI | ||
+ | JMP * | ||
+ | IRQ INC $D019 | ||
+ | LDA #$00 | ||
+ | STA $D012 | ||
+ | LDA #$35 | ||
+ | STA $01 | ||
+ | JSR $A003 | ||
+ | LDA #$37 | ||
+ | STA $01 | ||
+ | JMP $EA31 | ||
+ | |||
+ | *=$a000-2 | ||
+ | !binary " | ||
+ | |||
+ | </ | ||
+ | |||
base/playing_music_a000-_ffff.txt · Last modified: 2015-04-17 04:33 by 127.0.0.1