Signetics 2650 & 2636 程式設計/2636 PVI
本書的這一部分主要是 PVI 的參考材料。更詳細的討論可以在教程中找到。 |
Signetics 2636 可程式設計影片介面 (PVI) 是一款 40 引腳 DIL 晶片,它處理控制檯中的許多功能
- 影片生成
- 螢幕顏色
- 背景網格
- 得分數字
- 四個物件(精靈)
- 物件完成和碰撞檢測
- 方波音訊
- 模擬操縱桿的 A/D 轉換
- 記憶體和輸入/輸出裝置的晶片選擇訊號
- 37 位元組的暫存器記憶體
所有這些功能都是透過讀取和寫入 PVI 中的各種暫存器來實現的。
| 螢幕顏色
得分數字 物件 背景網格 物件複製 |
在內部,PVI 暫存器位於地址 $F00 到 $FFF。在控制檯的記憶體對映中,它們位於地址 $1F00 到 $1FFF。程式設計師只需要關心這些後者的地址,因此這些將是我們在本書中使用的地址。出於同樣的原因,我們還將忽略記憶體對映重複的區域。
請注意,某些控制暫存器是隻寫暫存器。如果程式需要知道其中任何一個的內容,則必須將副本儲存在其他地方。對一臺控制檯上的某些暫存器進行的測試表明,如果嘗試進行讀取操作,則內容將被破壞。
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 位元組 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 讀/寫 | 功能 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1FC0 | 物件 4 大小 | 物件 3 大小 | 物件 2 大小 | 物件 1 大小 | 只寫 | 物件的大小 | ||||||||||||||||||||
| 1FC1 | R1 | G1 | B1 | R2 | G2 | B2 | 只寫 | 物件的顏色 | ||||||||||||||||||
| 1FC2 | R3 | G3 | B3 | R4 | G4 | B4 | 只寫 | |||||||||||||||||||
| 1FC3 | 格式 | 位置 | 只寫 | 得分格式和位置 | ||||||||||||||||||||||
| 1FC4 | ||||||||||||||||||||||||||
| 1FC5 | ||||||||||||||||||||||||||
| 1FC6 |
|
網格啟用 |
|
只寫 | 網格啟用和顏色 | |||||||||||||||||||||
| 1FC7 | 聲音 | 只寫 | 音調週期 | |||||||||||||||||||||||
| 1FC8 | 得分數字 1 | 得分數字 2 | 只寫 | 四個得分數字的值 | ||||||||||||||||||||||
| 1FC9 | 得分數字 3 | 得分數字 4 | ||||||||||||||||||||||||
| 1FCA |
|
|
只讀 | 碰撞狀態。物件顯示完成。VRLE 設定在 VRST 的前沿。所有位在讀取時或 VRST 的後沿復位。 | ||||||||||||||||||||||
| 1FCB | VRLE |
| ||||||||||||||||||||||||
| 1FCC | A/D 電位器 1 | 只讀 | A/D 值,僅在 VRST 期間有效。 | |||||||||||||||||||||||
| 1FCD | A/D 電位器 2 | |||||||||||||||||||||||||
| 1FCE | ||||||||||||||||||||||||||
| 1FCF | ||||||||||||||||||||||||||
PVI 有四個可程式設計的二維物件,可以放置在螢幕上的任何位置,以單一的 3 位顏色以四種不同大小之一顯示。據說 PVI 是第一個具有此功能的裝置。這種圖形樣式後來被稱為精靈,但我們將在本書中堅持使用“物件”,因為它是在 Signetics 資料表中使用的術語。
物件的形狀設定在一個 10 位元組的陣列中。設定為零的位是透明的,而設定為一的位顯示為選定的顏色。
物件顏色由暫存器 $1FC1 和 $1FC2 設定。有關詳細資訊,請參閱 程式設計顏色。
物件可以以四種不同的尺寸顯示,如暫存器 $1FCO 中的兩位設定。
| 放大倍數 | 尺寸 | MSB | LSB |
|---|---|---|---|
| x1 | 8 x 10 | 0 | 0 |
| x2 | 16 x 20 | 0 | 1 |
| x4 | 32 x 40 | 1 | 0 |
| x8 | 64 x 80 | 1 | 1 |
物件的位置是根據螢幕左上角電視掃描的原點確定的。
水平座標(即 $1F0A)設定為在光柵線開始後跳過的水平時鐘數,然後顯示物件。它可以在顯示物件時更改,在這種情況下,物件的其餘部分將被移位。物件的垂直座標(即 $1F0C)使用 8 位無符號值設定,該值等於跳過的行數,然後顯示物件。此值必須在 VRST 的後沿之前設定。
螢幕下方可以顯示一個或多個重複物件。重複物件的水平座標(即 $1F0B)的設定方式與原始物件相同。重複物件的垂直座標設定為在顯示其前一個物件的最後一行後“要跳過的行數 - 1”。
PVI 在 HRST 期間的每一行讀取重複物件的水平座標,因此如果在顯示重複物件期間更改了該座標,則重複物件的其餘部分將出現在不同的位置。必須在物件完成狀態位由該物件的先前出現設定之前,對重複物件的垂直座標進行程式設計。
當物件的最後一行顯示後,暫存器 $1FCA 中會設定一個物件完成位,並且 PVI 會為微處理器生成一箇中斷訊號。
如果物件與背景網格重疊,則暫存器 $1FCA 中會設定一個物件/網格碰撞位。如果兩個物件重疊,則暫存器 $1FCB 中會設定一個物件間碰撞位。
四個得分數字可以顯示為兩個獨立的兩位數,也可以顯示為一個四位數。它們可以顯示在螢幕的頂部或底部,或者透過在第 40 行到第 199 行之間的垂直掃描期間重新程式設計,它們可以同時出現在頂部和底部。顯示模式由暫存器 $1FC3 的格式和位置位確定。
| $1FC3 | 7 | 6 | 5 | 4 | 3 | 2 | 1 格式 |
0 位置 |
|---|---|---|---|---|---|---|---|---|
| 0 | 兩個兩位數 | 頂部 | ||||||
| 1 | 一個四位數 | 底部 |
每個得分數字寬 12 個時鐘週期,高 20 行。
頂部位置對應於背景網格的第 0 行到第 19 行,或垂直座標 20 到 39。底部位置對應於第 180 行到第 199 行,或垂直座標 200 到 219。
得分的顏色與為背景網格程式設計的顏色相反。請參閱:程式設計顏色
| 1 | 2 | 3 | 4 | 外觀 | |
|---|---|---|---|---|---|
| 格式 = 0 | 28 | 44 | 76 | 92 | 12 34 |
| 格式 = 1 | 28 | 44 | 60 | 76 | 1234 |
暫存器 $1FC8 和 $1FC9 中的四個得分數字可以設定為 0 到 F 的任何十六進位制值。值 0-9 顯示為數字,A-F 顯示為空白。
PVI 具有一個可程式設計的背景網格,該網格由一個 16 寬 20 深的元素陣列組成。
這些元素是垂直條,寬一個畫素,排列成成對的水平行;每對中的第一行深兩個光柵行,第二行深 18 個光柵行。透過在記憶體地址 $1F80 - $1FA7 處位於 40 位元組陣列中設定一個位,可以開啟或關閉這 320 個垂直條中的每一個。
垂直條可以水平擴充套件,由五個暫存器 $1FA8 - $1FAC 控制。五個擴充套件暫存器中的每一個都控制四行連續的垂直條。
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
擴充套件暫存器的位 5-0 使所有水平行中的垂直條都能夠擴充套件到 8 個畫素。18 行垂直條被分成兩部分(A 和 B),每部分 9 行,從而可以將條的頂部和底部部分分別擴充套件 1、2 或 4 個畫素。
擴充套件暫存器的位 7-6 使四行組中的所有垂直條都能夠擴充套件到 1、2 或 4 個畫素。
背景網格的顏色由暫存器 $1FC6 中的位 2-0 設定。透過設定暫存器 $1FC6 中的位 3 來啟用背景網格。如果未啟用背景網格,則暫存器 $1F80-$1FAC 可用作暫存記憶體,總共 45 位元組,此外還有 37 位元組的暫存記憶體。
PVI 可以生成單個音訊方波輸出。其頻率由暫存器 $1FC7 設定。如果此值為 0,則方波將被抑制,否則其週期為 2(n+1)TH,其中 n 是在 $1FC7 中設定的值,TH 是水平復位週期。對於 PAL 系統,這簡化為 128(n+1)μs。
如果在音訊輸出期間更改了聲音暫存器,則更改將在音訊訊號的下一個負或正轉換之前不會生效。
2636 資料手冊具有誤導性。它說水平復位週期通常為 63.5μs。對於 NTSC 系統,這是正確的,但對於 PAL 系統,它是 64μs。[1] 水平復位週期和許多音訊輸出頻率已在 Voltmace 資料庫上使用 Hantek DSO5102P 示波器進行了驗證。 |
請參閱PVI 音訊頻率圖表以獲取可獲得頻率的表格。
PVI 中的兩個模擬到數字轉換器用於確定模擬操縱桿的位置。由處理器的標誌輸出驅動的外部電路用於選擇來自水平或垂直電位器的輸入。
轉換過程發生在影片掃描的活動部分。必須在垂直復位期間從 $1FCC 和 $1FCD 讀取生成的數字值才能獲得有效結果。
