Hasty Briefsbeta

双语

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字节夺冠方案融合栈操作进入程序、间接索引寻址等多项技巧。
  • 赛后讨论催生出更精简版本,展现了极客社群的创造力。