Dirty tricks 6502 programmers use
a year ago
- #optimization
- #6502
- #Commodore64
- 文章介绍了一场Commodore 64编程竞赛,参赛者需用最少字节绘制两条线。
- 选手提交带字节长度和MD5哈希的PRG文件,Philip Heron与Geir Straume以34字节并列冠军。
- C64默认图形模式中,屏幕RAM位于$0400,颜色RAM在$d800,$d020和$d021存储颜色设置。
- 示例C代码通过硬编码斜率和屏幕RAM操作实现画线功能。
- 6502汇编优化技巧包括循环展开、屏幕指针递进式移动和ROM例程调用。
- 关键技巧包括:借用'上滚屏'ROM函数避免手动更新屏幕、自修改代码压缩体积、利用C64开机状态。
- 参赛者通过覆写栈或BASIC热启动向量精简初始化代码,非常规控制流节省字节。
- 位压缩画线算法和极限零页内存使用属于高阶优化手段。
- Philip Heron的34字节夺冠方案融合栈操作进入程序、间接索引寻址等多项技巧。
- 赛后讨论催生出更精简版本,展现了极客社群的创造力。