User Tools

Site Tools


base:playing_music_a000-_ffff

Playing music at $A000 - $FFFF "behind" kernal

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 "musplr+.prg",cbm

      *=$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   ;-2 to remove the load adress
      !binary "music.prg"
base/playing_music_a000-_ffff.txt · Last modified: 2015-04-17 04:33 (external edit)