Commodore VIC-1001/20(1980)
- 公開日: 2020/08/01
- 更新日: 2020/08/01
ハードウェア概要
コモドールによる低価格パソコン。もともとはコモドールジャパンによる開発で、欧米に先駆けて日本国内でVIC-1001という名称で1980年11月に発売された[1]。翌年にはVIC-20(ドイツではVC-20)と名を変えて世界各国で販売された。日本ではPC-6001との競合もありぱっとしなかったが、欧米では世界発の100万台売れたパソコンとなるなどヒット製品となった。
コントローラ端子の特徴
以下の説明は"VIC-20 Programmer's Reference Guide"及びzimmers.netにあった回路図に基づく。本機はコントローラ端子を1つもっており、ピンアウトは以下の通りである。
pin# |
Function |
---|---|
1 |
Digital in / Digital out |
2 |
Digital in / Digital out |
3 |
Digital in / Digital out |
4 |
Digital in |
5 |
Analog in |
6 |
Digital in / Digital out / Light Pen |
7 |
VCC |
8 |
GND |
9 |
Analog in |
ピン1〜3、6はピンごとにデジタル入力とデジタル出力を切替可能である。また、ピン1〜4、6は本体内でプルアップされている。ピン6はライトペン入力にも用いられる(後述)。
ハードウェア実装
上記回路図からコントローラ端子周りを抜粋したものを下図に示す。
コントローラ端子はCPU(MOS6502)の周辺チップであるMOS6522(通称VIA)と、ビデオコントローラであるMOS6560(通称VIC)[2]のI/Oポートを使って実装されている。なお、VIAは2つ使われている。
6560はNTSC版。PAL版は6561
コントローラ端子のピン1〜3及び6はVIA#1のPA2~5に接続されている。また、コントローラ端子のピン4はVIA#2のPB7に接続されている。なお、VIA#2のPA0~7(READ)、PB0~7(WRITE)は通常はキーボードスキャンのために使用されている。ピン5, 9はVICのアナログ入力端子に、ピン6はVICのライトペン入力端子に接続されている。
制御方法
各ピンの制御方法は以下の通りである。
ピン1〜4、6のデジタル入出力については、アドレス$9111、$9113、$9120、$9122を使用する。
port# |
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
---|---|---|---|---|---|---|---|---|
9111 (R/W) |
Read / Write PA of VIA#1 |
|||||||
PA7 |
PA6 |
PA5 |
PA4 |
PA3 |
PA2 |
PA1 |
PA0 |
|
9113 (W) |
Set Direction for PA of VIA#1 |
|||||||
PA7 |
PA6 |
PA5 |
PA4 |
PA3 |
PA2 |
PA1 |
PA0 |
|
9120 (R/W) |
Read / Write PB of VIA#2 |
|||||||
PB7 |
PB6 |
PB5 |
PB4 |
PB3 |
PB2 |
PB1 |
PB0 |
|
9122 (W) |
Set Direction for PB of VIA#2 |
|||||||
PB7 |
PB6 |
PB5 |
PB4 |
PB3 |
PB2 |
PB1 |
PB0 |
デジタル信号の読出しは以下の手順となる。なお、Hレベルが1、Lレベルが0である。
アドレス$9113に$00を書き込む。
アドレス$9122に$7Fを書き込み、すぐにアドレス$9120を読み出してアドレス$9122に$FFを書き込む[3]。
アドレス$9111を使って信号入力を読み出す。
VIA#2のPBは通常は出力モードでキーボードスキャンを行っているので、ビット7の読出しを行う直前に読み込みモードにし、読出しが終わった直後に書き込みモードにする
信号の出力を行う場合は、出力を行いたいピンに対応したアドレス$9113のビットに1を書き込み、アドレス$9111から出力を行う。
ピン5、9の読み取り手順は、それぞれアドレス$9008、$9009を読み出すだけでよい。ライトペンも、アドレス$9006にX座標が、$9007にY座標が保存されるようになっている。