Signetics 2650 & 2636 程式設計/程式設計顏色
這系列的控制檯能使用的顏色調色盤非常有限。PVI 有三個數字(即要麼開要麼關)顏色訊號,它們連線到 PAL 編碼器的紅、綠和藍輸入端。這將系統限制為八種顏色:黑、紅、綠、藍、青、洋紅、黃和白。
乍一看這似乎很簡單,但有兩個其他訊號會影響顯示屏上的顏色,這使得它變得複雜起來
- PVI 的 OBJ/SCR 輸出端,它會在顯示物件或分數數字時變為低電平。請記住:SCR 是分數,而不是螢幕!
- 74LS138 '效果' 暫存器的第 5 位。
另一個複雜之處在於,一些控制檯(如 Interton VC4000)使用這些訊號來改變顏色的亮度,而另一些控制檯則使用它來反轉顏色。本頁面的其餘部分適用於顏色反轉方法,特別是 Voltmace 資料庫中實現的方法。

連線到 PAL 編碼器的三個有效電平顏色輸入端直接連線到 PVI 的有效低電平顏色輸出端:R、G、B。
連線到 PAL 編碼器的有效電平 INV 輸入端是從一個線與電路匯出的,該電路包含一個開集電極電晶體、開漏 OBJ/SCR 和一個上拉電阻。這兩個器件中的任何一個都可以將反轉輸入拉至低邏輯電平。
INVERT 訊號透過寫入十六進位制 D 型觸發器 74LS378 的第 5 位(在記憶體地址 $1E80 處)來設定。將 1 寫入該位會導致電晶體導通,並無論 OBJ/SCR 的狀態如何,都將 PAL 編碼器的 INV 輸入拉至邏輯 0。
所有顏色資訊都由四個暫存器控制,三個在 PVI 中,一個在邏輯晶片中。請注意,這些暫存器都是隻寫暫存器。程式設計師需要自行跟蹤暫存器中的內容。
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|
| - | - | INVERT | - | - | - | - | - |
該暫存器中的其他位由音訊電路使用。
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|
| X | X | R1 | G1 | B1 | R2 | G2 | B2 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|
| X | X | R3 | G3 | B3 | R4 | G4 | B4 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|
| X | R | G | B | 背景 啟用 |
R | G | B |
| X | 背景顏色 | 螢幕顏色 | |||||
如果背景啟用設定為零,則螢幕和背景網格都將從 PVI 輸出為 '111'。
如果背景網格不用於圖形,則定義它的暫存器($1F80 - $1FAC)可用於變數儲存。透過將背景和螢幕設定為相同的顏色,它們在顯示屏上隱藏起來。
如果您覺得硬體描述難以理解,因為它包含多個反轉,那麼您並不孤單。在程式設計顏色時,您只需要使用下面的表格。
| 顏色 | 物件 | 背景或螢幕 | |
| INVERT = 0 | INVERT = 1 | ||
| 黑色 | 111 | 000 | 111 |
| 藍色 | 110 | 001 | 110 |
| 綠色 | 101 | 010 | 101 |
| 青色 | 100 | 011 | 100 |
| 紅色 | 011 | 100 | 011 |
| 洋紅色 | 010 | 101 | 010 |
| 黃色 | 001 | 110 | 001 |
| 白色 | 000 | 111 | 000 |
分數顏色無法獨立程式設計;它始終是為背景程式設計的顏色反轉。
物件顏色和分數顏色都不會受到 74LS138 '效果' 暫存器的第 5 位狀態的影響,因為在顯示它們時,OBJ/SCR 將為低電平。
INVERT 位在一些遊戲中使用,例如 Interton 的超級太空,作為螢幕保護程式。雖然將 INVERT 位正常設定為 0 非常誘人,但最好將其正常設定為 1。這樣,物件、分數、背景和螢幕的顏色程式碼就相同,並且將處於負邏輯狀態,即 0 使顏色開啟。
所有顏色都由這四個暫存器設定
effects equ $1E80 colours12 equ $1FC1 colours34 equ $1FC2 backgnd equ $1FC6
在程式的早期清除效果暫存器是一個好主意。這不僅會關閉顏色反轉,還會關閉音訊。
eorz r0
stra,r0 effects
或者,如上所述,可以關閉音訊並開啟顏色反轉,以便所有顏色都可以使用相同的程式碼程式設計。
lodi,r0 $20
stra,r0 effects
請記住,物件的顏色始終為低電平有效,因此 RGB 序列 101 將顯示為綠色,等等。
lodi,r0 %00010101 ; XX / 011 / 110
stra,r0 colours12 ; / obj1 red / obj2 blue
背景和螢幕顏色取決於反轉位的狀態。當反轉位為 0 時,它們的的顏色始終為高電平有效,因此 RGB 序列 010 將顯示為綠色,等等。
eorz r0
stra,r0 effects ; invert bit = 0
lodi,r0 %00001110 ; X / 100 / 1 / 001
stra,r0 backgnd ; / background red / enabled / screen blue
相反,當反轉位為 1 時,它們的的顏色為低電平有效,因此 RGB 序列 101 將顯示為綠色,等等。
lodi,r0 $20
stra,r0 effects ; invert bit = 1
lodi,r0 %00001110 ; X / 011 / 1 / 110
stra,r0 backgnd ; / background red / enabled / screen blue

此教程的程式碼可以在 Signetics 2650 & 2636 程式設計/教程程式碼 - 程式設計顏色 找到。執行此程式後,您應該看到一個靜態螢幕,如下所示
四個物件以不同的顏色程式設計。當第一行物件顯示後,效果暫存器中的 反轉 位被設定為 1。這會反轉螢幕的顏色(黃色 110 變為藍色 001),並且背景從黑色切換到白色。
請注意,此轉換之上和之下的物件和分數數字是相同的。還要注意,分數是為背景程式設計的顏色反轉。
- 將四個物件的顏色更改為紅色、青色、黃色和藍色。
- 將背景網格的初始顏色更改為青色。
- 將分數的顏色更改為洋紅色。