MOSテクノロジーVIC
MOS Technology 6560 (NTSCバージョン)/ 6561 (PALバージョン)として特に知られているVIC(ビデオインターフェイスチップ)は、コモドールVIC-20ホームコンピューターでビデオグラフィックスとサウンドを生成するための集積回路チップです。もともとは、低コストのCRT端末、生物医学モニター、制御システムディスプレイ、アーケードまたは家庭用ビデオゲームコンソールなどのアプリケーション向けに設計されました。
このチップは1977年にアル・シャルペンティエによって設計されましたが、コモドールはチップの市場を見つけることができませんでした。 1979年、MOSテクノロジーは、 TOIコンピューター向けのMOSテクノロジー6564という名前のビデオチップの作業を開始し、別のチップであるコモドールPETのカラーバージョン向けのMOS 6562の作業も行いました。これらのチップは両方とも、メモリタイミングの制約のために失敗しました(どちらも非常に高速で高価なSRAMを必要としたため、大量生産には適していません)。 VIC-20でVICの使用を最終的に開始する前に、チップ設計者のRobert Yannesは6562(より優れたサウンドジェネレーター)と6564(より多くの色)の機能を6560に戻しました。徹底的に改訂されていました。
その機能は次のとおりです。
- 画面、文字、およびカラーメモリ用の16 kBのアドレススペース(ハードウェアを変更せずにVIC-20のRAMを指すのは5 kBのみ)
- 16色(上位8色は、グローバル背景色と補助色でのみ使用できます)
- 2つの選択可能な文字サイズ(8×8または8×16ビット。ピクセル幅は「雇用」文字の場合は1ビット、「多色」文字の場合は2ビット)
- 最大ビデオ解像度はテレビシステムによって異なります(176×184はVIC-20ファームウェアの標準ですが、NTSCマシンでは最大248×232p / 464i、PALマシンでは最大256×280が可能です)
- 4チャンネルサウンドシステム(3方形波+「ホワイト」ノイズ+グローバルボリューム設定)
- オンチップDMA
- 2つの8ビットA / Dコンバーター
- ライトペンサポート
当時の他の多くのビデオ回路とは異なり、ダイナミックRAMリフレッシュ機能は提供していません。したがって、VIC-20はより高価なスタティックRAMチップを採用しました。これが、たった5 KBのRAMでマシンが販売された理由です。 VIC-20のメモリ拡張では、SRAMも使用するか、独自のリフレッシュ回路を実装しました。
VICは、16個の制御レジスタを操作することによってプログラムされ、メモリはVIC-20アドレス空間の$ 9000〜$ 900Fの範囲にマップされました。オンチップA / Dコンバータは、VICのライトペン機能も使用するVIC-20によるデュアルパドル位置の読み取りに使用されました。 VICは、VIC-20の後継であるC64およびC128で使用される、より高度なVIC-IIに先行しました。
拡張RAMを搭載したVIC-20のビデオメモリ(550バイト)は$ 1000で、存在しない場合は$ 1E00です。ユーザー定義の文字セットは、システムRAMの最初の5k以内に配置する必要があります。デフォルトのPETSCII文字ROMは8000ドルで、各文字の保存には8バイトかかります。一度に最大128文字を使用できます。 PETの文字セットにはバックスラッシュ(\)がありましたが、これはVIC-20(およびその後のすべてのコモドールマシン)で英国ポンド記号(£)に置き換えられました。
チップにはスプライトまたは全ポイントアドレス指定可能なビットマップモードがないため、VIC上でグラフィックスとアニメーションを作成する唯一の方法はプログラム可能な文字です。パレットの16色のうち、8色は前景(9400ドルのカラーRAMあたり)と境界線に使用できますが、他の色は背景と補助マルチカラーに制限されています。カラーRAMのMSBは、その文字が多色か高解像度かを示すために使用されるフラグです。前者は極端にブロックされているため、ほとんどのVIC-20ゲームは採用キャラクターを使用しています。
VICは、VIC-IIのようなスクロールまたはラスター割り込みをサポートしていませんが、画面上の特定のポイントについてスキャンラインカウンターをポーリングして、ラスター効果を生成できます。この機能は、ImagicのDemon Attackのようないくつかのタイトルを除いて、ゲームではめったに使用されませんでした。
VICでのサウンドプログラミングは、4つのレジスタのうちの1つに$ 900A- $ 900Dの周波数値を設定することで行われます(ゼロを書き込むとオフになります)。最初の3つは互いに0.5オクターブピッチの方形波ジェネレーターで、4つ目はホワイトノイズ用です。
登録
VICには、次の16個の読み取り/書き込みレジスタがあります。
登録 | 16進数 | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0 |
---|---|---|---|---|---|---|---|---|---|
0 | 9000 | インターレース | 水平原点 | ||||||
1 | 9001 | 垂直原点 | |||||||
2 | 9002 | VA9 | 列の数 | ||||||
3 | 9003 | R0 | 行の数 | 8/16 | |||||
4 | 9004 | ラスターライン(ビット8-1) | |||||||
5 | 9005 | ビデオアドレス(ビット13-10) | Char addr(ビット13-10) | ||||||
6 | 9006 | ライトペン水平 | 1 | ||||||
7 | 9007 | ライトペン垂直 | |||||||
8 | 9008 | パドルX | |||||||
9 | 9009 | パドルY | |||||||
10 | 900A | 可能にする | オシレーター1の周波数 | ||||||
11 | 900B | 可能にする | オシレーター2の周波数 | ||||||
12 | 900C | 可能にする | オシレーター3の周波数 | ||||||
13 | 900D | 可能にする | ホワイトノイズ周波数 | ||||||
14 | 900E | 補助色 | ボリューム | ||||||
15 | 900F | バックグラウンド | RV | 境界 |
カラーパレット
16色の完全なパレットは次のとおりです。
番号—名前 | Y | 鉛(相対) | Pr(相対) |
---|---|---|---|
0 —黒 | 0 | 0 | 0 |
1 —白 | 1 | 0 | 0 |
2 —赤 | 0.25 | −0.3826834 | 0.9238795 |
3 —シアン | 0.75 | 0.3826834 | −0.9238795 |
4 —紫 | 0.5 | 0.7071068 | 0.7071068 |
5 —緑 | 0.5 | −0.7071068 | −0.7071068 |
6 —ブルー | 0.25 | 1 | 0 |
7 —黄色 | 0.75 | −1 | 0 |
8 —オレンジ | 0.5 | −0.7071068 | 0.7071068 |
9 —明るいオレンジ | 0.75 | −0.7071068 | 0.7071068 |
10 —明るい赤 | 0.5 | −0.3826834 | 0.9238795 |
11 —明るいシアン | 1 | 0.3826834 | −0.9238795 |
12 —ライトパープル | 0.75 | 0.7071068 | 0.7071068 |
13 —ライトグリーン | 0.75 | −0.7071068 | −0.7071068 |
14 —水色 | 0.5 | 1 | 0 |
15 —明るい黄色 | 1 | −1 | 0 |
VIC ICリスト
- MOSテクノロジー6560 NTSC
- MOS Technology 6561E PALセラミックバージョン、初期のVIC-20で使用
- MOSテクノロジー6561-101 PAL