User Tools

Site Tools


base:playing_music_a000-_ffff

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

base:playing_music_a000-_ffff [2015-04-17 04:33] (current)
Line 1: Line 1:
 +====== 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.
 +<​code>​
 +      !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"​
 +
 +</​code>​
 +
  
base/playing_music_a000-_ffff.txt ยท Last modified: 2015-04-17 04:33 (external edit)