Signetics 2650 & 2636 编程/背景网格
一旦理解了背景网格的编程,它就非常简单,但它的设计有点复杂,解释和理解它并不容易。请参考上面的链接了解详细信息,然后按照本教程的步骤进行操作,并尝试设置以测试您的理解。可视化哪些可以设计和哪些不能设计可能很棘手,因此包含一个可以打印和涂鸦的工作表。
它实际上只是一个由点和垂直线组成的数组,宽度为一个像素。点的高度为两行,紧挨着它的是一个高度为 18 行的垂直线。这一对元素在屏幕上重复 16 次,向下重复 10 次,所有 320 个独立部分都可以独立地打开或关闭。
它们也可以水平扩展到 1、2、4 或 8 个像素宽。通过只扩展点,可以构建一个网格。很容易看出,通过关闭某些部分,如何从这里构建像迷宫一样的东西。
此模式是由 教程代码 - 背景网格 生成的。使用 WinArcadia 将其组装起来。注意,在右侧和底部有突出部分。这是网格结构的结果。要删除右侧的线条,使用内存编辑器将 $1F81 从 $FF 更改为 $FE,并在每个第四个字节重复此操作。要删除底部的线条,将 $1FA6 和 $1FA7 从 $FF 更改为 $00。现在您应该有一个 9 x 15 的单元格数组。但是,没有办法修复右侧边缘的小间隙。
现在将 $1F82 和 $1F86 都更改为 $9F,将 $1F84 更改为 $5F。您现在可能已经看到了如何轻松地将其变成迷宫或其他类似结构。
到目前为止,这还算比较直接,但水平扩展增加了很大的复杂性。最重要的是要记住,扩展应用于整行,并且 8x 扩展可以应用于每行,而 x2 和 x4 扩展应用于四行组。作为提醒,以下表格显示了扩展分配。
|
|
目前所有扩展寄存器都设置为 $09,这只会将奇数行(两行条)扩展到 8 个像素。将扩展寄存器 $1FA8 更改为 $0B。这将向第二行上半部分的所有活动垂直条添加 x8 扩展。
现在将 $1FA9 更改为 $C9。这将所有第二组中的活动条扩展到 4 个像素。同样,通过将寄存器 $1FAC 设置为 $49,可以将所有底部组中的活动条扩展到 2 个像素。您现在应该在模拟器屏幕上看到这一点。
程序在第一次运行时存在一个错误,网格的顶部部分已损坏。你能说出必须将哪些代码行添加到教程代码中才能解决此问题吗?
显示答案
|
---|
我们在这里看到的是放置在背景网格上的黑色分数数字 00 00。要删除它们,需要将分数数字编程为 $FF 和 $FF。 lodi,r0 $FF stra,r0 score12 stra,r0 score34 |
此工作表应有助于背景网格的设计和编程。
请记住以下限制
- 扩展应用于行中的所有单元格。
- 八像素扩展可以单独应用于 20 行中的任何一行。
- 两像素或四像素扩展应用于组中的所有 6 行。
别忘了 18 行垂直条可以分为两部分进行扩展,顶部和底部。