Last Updated or created 2023-08-02
Started with a example from https://codebase64.org/
But that didn“t work (see movie clip)
looking at the sid info:
Title Bottom Author Richard Bayliss Released 2011 The New Dimension Load Address $8000 Init Address $8000 Play Address $8003 Number of tunes 1 Default tune 1 Speed $00000000 SID Model 8580 Clock PAL File Format PSID Format Version 2 BASIC false PlaySID Specific false
I saw that I have to move the load/init/play address.
Luckily there is sidreloc !
wget https://hd0.linusakesson.net/files/sidreloc-1.0.tgz tar xzvf sidreloc* cd sidreloc make
Using:
~/Downloads/sidreloc-1.0/sidreloc -p 10 ~/projects/sidplaybottomdemo/bottom.sid ~/projects/sidplaybottomdemo/bottom1000.sid
I could successfully move the sid to $1000
Final code (for now, next time i’ll add a picture).
(Using ACME as compiler, and X64 (vice as emulator))
;https://codebase64.org/doku.php?id=base:simple_irq_music_player
!to "bottom.prg",cbm
* = $0801
sysline:
!byte $0b,$08,$01,$00,$9e,$32,$30,$36,$31,$00,$00,$00 ;= SYS 2061
* = $080d
sei
lda #<irq
ldx #>irq
sta $314
stx $315
lda #$1b
ldx #$00
ldy #$7f
sta $d011
stx $d012
sty $dc0d
lda #$01
sta $d01a
sta $d019 ; ACK any raster IRQs
lda #$00
jsr $1000
cli
hold jmp hold
; we could also RTS here, when also changing $ea81 to $ea31
irq
lda #$01
sta $d019 ; ACK any raster IRQs
jsr $1003 ;Play the music
jmp $ea31
* = $1000
!binary "bottom1000.sid" ,, $7c+2