首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将SID文件包含到cc65程序中的C64中?

如何将SID文件包含到cc65程序中的C64中?
EN

Stack Overflow用户
提问于 2016-12-03 16:50:57
回答 1查看 937关注 0票数 3

我想在一个.sid程序中包含和播放C64文件(C64芯片音乐)。通常,sid-文件包含一个从1000美元开始的播放例程,如何将其链接到我的cc65程序?目前,我使用以下命令使用cc65编译代码:

代码语言:javascript
复制
cl65 -O -o C64test.prg -t c64 C64test.c
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-11 00:12:56

我找到了一个解决办法:

  1. 创建一个生成以下代码的.asm文件: .export _setupAndStartPlayer sid_init = $2000 sid_play =$2003siddata= $2000 .segment "CODE“.proc _setupAndStartPlayer:.proc_setupAndStartPlayer:接近lda #00;选择第一次调jsr sid_init;init音乐;现在设置新的中断指针sei lda #<_interrupt;点irq向量到我们自定义的IRQ例程ldx #>_interrupt sta $314;存储在$314/$315 stx $ cli;清除中断禁用标志rts .endproc .proc _interrupt jsr sid_play ;dec 53280;闪存边框以查看我们是活动jmp $EA31;执行正常中断服务例程.endproc。
  2. 从C调用asm函数: # #include ## #include extern int setupAndStartPlayer();int main(void) {printf(“设置player\n");setupAndStartPlayer();返回0;}
  3. 使用标准的cc65 Makefile编译两个文件,这将为您提供一个包含代码的.c64文件,但不包含SID数据。
  4. 使用sidreloc重新定位SID文件(选项-p定义新的起始页面,在本例中20表示$2000) ./sidreloc -r 10-1 f -p 20 sidfile.sid sidfile200.sid
  5. 使用C64 .prg将SID文件转换为psid64: psid -n sidfile200.sid
  6. 将文件sidfile2000.prg与使用exomizer编译的C程序链接(数字2061是程序的起始地址,2061是cc65的默认地址): 除菌剂sfx 2061 music.c64 Sidefile200.prg -o final.prg
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40950140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档