thumb|right|EPFL(ローザンヌ)に展示されている MOS KIM-1 KIM-1(Keyboard Input Monitorの略)は、モステクノロジーが1976年に開発した6502ベースのマイクロコンピュータ・モジュールである。

その低価格と拡張性により成功を収めた。

歴史 モステクノロジーの最初のプロセッサ 6501 はMC6800用のマザーボードにセットして使うことができたので、能力のある技術者やホビイスト(電子工作愛好家)は既存のハードウェアを使って簡単にシステムを構築することができた。これはモトローラを怒らせ、モスは 6501 を市場から引き上げざるを得なくなった。そこでピン配置を換えて投入したのが6502である。機能は 6501 と変わりなかったが、周辺のハードウェアが揃っていないため、そのCPUを使ったシステムを作ることはハードルが高くなってしまった。

モスの650xチームのリーダーチャック・ペドル(元・モトローラ MC6800チームのメンバー)は、そのようなニーズを満たすために KIM-1を設計し、1976年にリリースした。マシンは基本的に技術者に使ってもらうことを想定していたが、多くのホビイストがいることがすぐにわかった。システム構築はキットの価格245ドルを含めて500ドル以下で可能で、後は使い古しの端末とカセットテープレコーダーがあればよかった。

KIM向けの小さなアセンブリ言語プログラムが載った本がいくつも出版された。例えば、"The First Book of KIM" がある。あるデモプログラムではソフト制御可能な出力ビットを小さなスピーカーにつないでKIMに音楽を奏でさせた。

システムは Tiny BASIC 言語が使えるようになってさらに人気が高まった。ただしこれを使うにはメモリを拡張する必要があった。また、テープからのBASICのロードには15分間かかった。

ロックウェル・インターナショナル(6502のセカンドソース)は Synertek と共に 1976年に評価ボード AIM-65 をリリースしている。AIMにはフルASCIIキーボードと20桁の14セグメント英数字LEDディスプレイ、キャッシュレジスターのような小さなプリンタを備えていた。ファームウェアとしてデバッグモニタが標準で搭載されており、ユーザはオプションのROMチップを購入してアセンブラか Microsoft BASIC インタプリタを選ぶことができた。

さらに、Synertekは派生品SYM-1を出している。これはKIM-1とAIM65の中間とも言うべきもので、KIMのような小さな表示と16進入力用の29キーのキーボードを備えていたが、AIMと互換のある拡張インターフェイスを備え、RS-232Cも持っていた。

KIMを出して間もなくモステクノロジーはコモドールに買収され、KIM-1はCBMのラベルを付けて売られるようになった。チャック・ペドルはQWERTY配列のフルキーボードとカセットテープ装置とモノクロディスプレイ装置を組み込んだ拡張版の開発に取り掛かった。

ディスプレイは新たに設計したデジタル回路で駆動され、外付けの端末を不要とした。内蔵ROMには BASIC が格納されるようになり、電源を入れると同時にBASICが使えるようになった。こうして1977年にCommodore PET がリリースされた。

キット内容 thumb|right|250px|稼動しているKIM-1 KIM-1組み立てキットの内容は以下の通りである。 プリント基板×1: 部品は片面実装 CPU:6502×1 周辺チップ 6530×2(1KB ROM、64バイト RAM、8ビット双方向ポート×2、プログラマブル・インターバルタイマ) 6102×8(1Kビット RAM) 周辺デバイス 7セグメントLED×6桁分 24キー電卓型キーパッド

仕様 CPU: MCS6502 2×PIO MCS6530 - 1024×8ビットROM、64×8ビットRAM、2×8ビットGPIOポート、 8×6102 SRAM 1024×1 (合計1152バイト) 6×7セグメントLED 24キーの電卓型キーパッド 2×シリアルポート Terminal Interface Monitor (TIM) - ブート、キーパッド、7セグメントLED、カセットレコーダを制御

KIM-1の説明書には "1 K BYTE RAM" とあるが、6102×8による1024バイトの他に6530×2による128バイトが加わるので、正確には1152バイトである。Byte magazine 1976年4月号で紹介され、掲載された広告には "1 K BYTE RAM" および "2048 ROM BYTES" と書かれていた。

6530の多くのI/Oピンは基板の端にあるコネクタ部分に接続されていて、TTY 33-ASRテレタイプ端末や紙テープ装置を接続するシリアルポートとして使うことができた。一部のコネクタピンは電源供給用、また一部はカセットテープレコーダを接続することができる。

初期のマイクロコンピュータの Altair 8800 はまず「ブートストラップローダ」という小さなプログラムを入力してから他のプログラムを紙テープ読み取り装置などから読み込んだ。ブートストラップローダを誤入力すると最初からやり直すことになった。それに対して、KIM-1はもう少し複雑なブートストラップ・ローダに相当するプログラムTIMを あらかじめ6530の内蔵ROMに書き込んであった。このプログラムはカセットテープを記憶装置として使う機能を持っており、LED表示を操作し、キーパッドからの入力を受け付けた。電源を入れると、TIMが動作し、ユーザは即座にキーパッドから入力することができた。

KIM-1は比較的低価格なうえに電源装置を追加するだけでコンピュータの実験ができたので、1970年代後半を通じてホビイストの間で人気を博した。

ビデオディスプレイ ドン・ランカスター は、KIM-1 用の低価格なビデオディスプレイを開発した。追加基板でTVまたはモニターに最大4000文字を表示できる装置であった。一般的な設定は、16行×32桁表示で、大文字だけというものであった。その基板上には10個の低価格なICが使われているだけで、KIM-1 のメモリを表示用に利用していた。

ポピュラーエレクトロニクス誌の1977年6月号で TVT-6 プロジェクトが始まった。このキットは PAiA Electronics が 34.95ドルで通信販売した。

ドン・ランカスターはこれを応用してカラー表示と単純なグラフィックス表示が可能な装置を The Cheap Video Cookbook という本で紹介した。

テープのフォーマット カセットテープ上では、個々のビットが2.484ミリ秒間の音を3つ配置することで表現される。最初の音は常に3700Hzで、2つめの音は "0" なら 3700Hz、"1" なら 2400Hz 、最後の音は常に2400Hz である。これにより、実質のビットレートは134.2ビット毎秒となる。LM565を使ったPLLで読み取る。

テープ上のフォーマットは次のような順序である。 0x16 (SYN) 100バイト 0x2A (*) 1バイト レコード識別番号 開始アドレス(アドレスの下位バイトに対応する2文字に上位バイトに対応する2文字が続く) 終了アドレス(開始アドレスと同じ形式) 実際のデータ 0x2F (/) 1バイト チェックサム2バイト 0x04 (EOT) 2バイト

メモリ上の1バイトはテープ上ではASCII文字2文字で格納される。例えば、十六進法でB5(十進では181)という値があるとき、テープ上には "B" と "5"(十六進では42と35)が書き込まれる。

エミュレータ コモドール64上で動作するKIM-1エミュレータがあった。

現在では次のようなエミュレータがある。 KIM Uno - Oscar Vermeulen が開発した、Arduino(ATmega328)上で6502 CPUとKIM-1 ROMをエミュレートするオープンソース・ハードウェア。7セグLEDとボタン(キーパッド)を搭載した自作キット。 KIM-1 Online Emulator - Maksim Korzh が開発。ブラウザ上に7セグメントLEDとキーパッドが再現され、直感的にアドレス操作やデータの打ち込みが可能 その他、ソフトウェアによるエミュレータは多数ある。

脚注

参考文献 Bagnall, Brian (2006) On The Edge - The Spectacular Rise and Fall of Commodore, Variant Press,

関連項目 AIM-65 SYM-1 ワンボードマイコン

外部リンク

バーチャル博物館 OLD-COMPUTERS.COM での KIM-1 の展示(英語)(リンク切れ) KIM-1 oldcomputermuseum.com – のKIM-1に関するサイト。HTML化されたマニュアルや書籍がある。(リンク切れ) Instructions on building your own KIM-1 KIM-1 Hints/FAQ Modern KIM-1 clone website(リンク切れ) KIM-1 hobbyist's development: KIM-1とそのクローンの写真