跳转到内容

Signetics 2650 & 2636 编程/背景网格

50% developed
来自维基教科书,自由的教学读物

教程 - 背景网格

[编辑 | 编辑源代码]
另请参阅: 2636 PVI: 背景网格

一旦理解了背景网格的编程,它就非常简单,但它的设计有点复杂,解释和理解它并不容易。请参考上面的链接了解详细信息,然后按照本教程的步骤进行操作,并尝试设置以测试您的理解。可视化哪些可以设计和哪些不能设计可能很棘手,因此包含一个可以打印和涂鸦的工作表。

它实际上只是一个由点和垂直线组成的数组,宽度为一个像素。点的高度为两行,紧挨着它的是一个高度为 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 扩展应用于四行组。作为提醒,以下表格显示了扩展分配。

扩展寄存器
寄存器 7 6 5 4 3 2 1 0
  扩展组 x1,2,4 扩展行 x8
$1FA8 行 1-4 4B 4A 3 2B 2A 1
$1FA9 行 5-8 8B 8A 7 6B 6A 5
$1FAA 行 9-12 12B 12A 11 10B 10A 9
$1FAB 行 13-16 16B 16A 15 14B 14A 13
$1FAC 行 17-20 20B 20A 19 18B 18A 17
     
组扩展
扩展    7        6    
x1 0 0
x2 0 1
x1 1 0
x4 1 1

目前所有扩展寄存器都设置为 $09,这只会将奇数行(两行条)扩展到 8 个像素。将扩展寄存器 $1FA8 更改为 $0B。这将向第二行上半部分的所有活动垂直条添加 x8 扩展。

现在将 $1FA9 更改为 $C9。这将所有第二组中的活动条扩展到 4 个像素。同样,通过将寄存器 $1FAC 设置为 $49,可以将所有底部组中的活动条扩展到 2 个像素。您现在应该在模拟器屏幕上看到这一点。

程序在第一次运行时存在一个错误,网格的顶部部分已损坏。你能说出必须将哪些代码行添加到教程代码中才能解决此问题吗?

显示答案

我们在这里看到的是放置在背景网格上的黑色分数数字 00 00。要删除它们,需要将分数数字编程为 $FF 和 $FF。

        lodi,r0 $FF
        stra,r0 score12
        stra,r0 score34

网格设计

[编辑 | 编辑源代码]
背景工作表可供下载,尺寸最大为 1,650 × 1,275 像素,适合打印。

此工作表应有助于背景网格的设计和编程。

请记住以下限制

  • 扩展应用于行中的所有单元格。
  • 八像素扩展可以单独应用于 20 行中的任何一行。
  • 两像素或四像素扩展应用于组中的所有 6 行。

别忘了 18 行垂直条可以分为两部分进行扩展,顶部和底部。

华夏公益教科书