跳轉到內容

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 行垂直條可以分為兩部分進行擴充套件,頂部和底部。

華夏公益教科書