TK-80 とは?ページ内リンク ↓ウィキペディア(Wikipedia)記事 ↓Yahoo!知恵袋TK-80 (Training Kit μCOM80) とは、日本電気 (NEC) の半導体事業部が1976年に販売した、マイクロコンピュータ(マイコン)システム開発のためのトレーニングキットである。 出典: 『ウィキペディア(Wikipedia)』 関連商品
榊 正憲 /
最安値(新品): ¥ 2,604
最安値(中古): ¥ 3,562
|
目次 |
TK-80は、NEC製のμCOM80ファミリーを使いこなすためのトレーニングキットとして発売されたワンボードマイコンキットである。
TK-80の特徴は、データの入出力のために、ほかの機器を必要としなかったことである。当時の他社(インテルやモトローラなど)のトレーニングキットの多くは、データ入出力を行うために、シリアル通信機能を備えた端末装置(テレタイプやVDT装置など)を接続する必要があった。それに対し、TK-80は16進入力キーパッドと8桁の7セグメントLEDを基板上に備えており、端末装置なしでシステムを使うことができたのである。
高価な端末装置を必要としないという点が、当時のアマチュアの目に留まり、TK-80は本来の意図とは異なり、相当数がコンピュータマニアに購入されることになった。このことが、当時、ちょっとしたブーム(マイコンブーム)となり、その後の8ビットパソコン(国産では、NECのPC-8000シリーズ、日立のベーシックマスター、シャープのMZシリーズなど)に続いていくことになった。
初期のマイクロプロセッサは、電卓などのアプリケーションを意図していた。その後、マイクロプロセッサの能力の向上により、電卓とは別のアプリケーションも想定されるようになった。従来、ワイヤードロジック回路、リレー回路、アナログ回路、機械機構などで実現されていた複雑な動作を行う機器を、ソフトウェア制御化し、機器のコストダウン、小型化を図ろうとしたのである。
マイクロプロセッサを使ったソフトウェア制御を行うためには、機器を設計する技術者が、それまでの回路設計などの技術とは別に、ソフトウェア開発技術を習得する必要がある。そのため、マイクロプロセッサを製造、販売する会社は、技術者がマイクロプロセッサのハードウェア、ソフトウェア技術を習得するための教材として、トレーニングキット、あるいはエバリュエーションキット(評価用キット)を提供するようになった。
この種のキットは、CPU、ROM、RAM、I/Oチップなどの構成部品を1枚の基板上に実装し、最小構成のマイクロプロセッサシステムを構成していた(このような構造から、ワンボードマイコンと呼ばれた)。通常、ROMにはモニタ/デバッグプログラムが置かれていたが、ユーザーが自分用のプログラムに置き換えて各種の実験を行ったり、あるいはそのままそのボードを制御用部品として製品に組み込むこともできた。
最初に発売されたTK-80と、その後廉価版として販売されたTK-80Eでは、一部の使用部品が変更されているが、ここでは初代のTK-80を中心に説明する。
TK-80は、プロセッサ、モニタプログラムを収めたROM、RAM、DMAにより表示される8桁の7セグメントLED、プログラマブルパラレルポートから構成されている。
TK-80は、インテルの8080A互換のNEC製マイクロプロセッサμPD8080Aを、CPUとして使用している。
μPD8080Aは8080Aとは完全互換ではなかった。10進加算後のBCD補正を行うDAA命令が、インテル製のチップは加算後の補正しかできなかったのに対し、NEC製は、減算後の補正も行えたのである。NEC製チップは、加減算のBCD補正を行うために、直前に行ったのが加算であるか減算であるかを記憶するフラグを、PSW(フラグレジスタ)中に追加した。
プログラムを作る立場からすれば、NECによる拡張は便利なものだったのであるが、オリジナルの8080Aとの命令の動作の違い、フラグの構成の違いなどの問題があり、後から販売されたTK-80Eでは、BCD演算処理がインテルのオリジナルと同じになっているμPD8080AFCに変更された。
8080プロセッサは、TTLレベルではない2相クロックを必要とする。また周辺回路を制御するための信号(メモリ-I/Oアクセスの識別、リード/ライトの識別など)の信号は、特定のタイミングでデータバスに出力されるという構成であったため、そのままでは簡単に周辺チップを接続することができなかった。インテル製の8080Aファミリでは、クロックジェネレータ8224、システムコントローラ8228というチップが用意されており、8080Aとあわせて3チップで、プロセッサユニットとして機能するという設計だった。
NEC製のμCOM-80ファミリも同じ構成で、CPUがμPD8080AD、クロックジェネレータμPB8224、システムコントローラがμPD8228Dという構成である。
基板には256バイトROMを4個装着することができる。キットでは、このうち3個にμPD454Dを装着し、モニタプログラムが実行されるようになっている。μPD454Dは、専用のROMライターを使ってデータの書き込み、電気的なデータ消去を行えるEE-PROMである。
EE-PROMを使ったのは、組み込み機器の実験などのために、ユーザーがデータを書き換えて使えるようにするためだったと思われるが、アマチュアへの販売量が増えたために販売された後継の廉価版のTK-80Eでは、マスクROMのμPD464に変更された。
ROMは、8080のアドレス空間の0000Hから03FFHの1Kバイトである。TK-80/TK-80Eとも、通常の状態では、スロットの空きが1つあるので、自分でROMチップを用意し、プログラムやデータを置くことができる。つまり、モニタプログラムは0000Hから02FFHの768バイトで、0300Hから03FFHはユーザー用領域となる。
基板には256バイト(8ビット×256)のS-RAMを最大8個装着できる。TK-80では、バッテリーバックアップ可能なμPD5101Eというバッテリーバックアップ可能なC-MOSチップを使っていた。μPD5101Eは、3Vのスタンバイ電圧でデータを保持できるため、TK-80の基板に外部の3V電源(単三電池2本)を接続し、さらにスイッチで主電源のVccからバックアップのVccに切り替えられるようになっていた。
スイッチでバッテリーバックアップモード(基板上の表示ではPROTECT)に切り替えると、RAMのVcc電源がバッテリー側に切り替わるとともに、RAMチップの制御信号が変化してディセーブル状態になり、メモリアクセスが一切禁止される。そのため、動作中にPROTECTに切り替えると(また、PROTECTを解除すると)プログラム(モニタプログラムも含む)は暴走する。このスイッチを切り替える際は、RESETボタンを押しながら行わなければならない。
TK-80Eでは、コストを低下させるために、n-MOSのμPD2010AL-4が使われた。こちらは消費電力や電圧の定格の問題があるため、バッテリーバックアップはできなかった。
TK-80では、RAMのメモリアドレスは8000Hから83FFHまでの1Kバイトであるが、キットに含まれるRAMチップは4個だけで、この空間のうち、8200Hから83FFHに実装するようになっている。上位アドレスに実装するのは、最上位アドレスがモニタプログラムやLEDディスプレイ用のワークエリアとして予約されているためである。ユーザーがRAMチップを増設することで、フルに1Kバイトを利用することが可能になる(マニュアルや各種プログラムライブラリに記載されていたプログラムの多くは、標準の8200Hからのメモリ実装に対応していた)。
C-MOSの5101は、ピン互換のn-MOSの2101と比較し、アクセスタイムが長かったため、CPUによるメモリアクセスの際に、1クロック分のウェイトが挿入された。マスクROMとn-MOSの2101を使っているTK-80Eでは、このウェイトは不要なため、基板のパターンカットにより、速度を向上させることができた。ただし、タイマールーチンの待ち時間が変わるため、シリアル通信の伝送レートが変化してしまうという問題がある。
TK-80は、8080ファミリーのプログラマプルなパラレルI/OポートμPD8255を1個実装している(シリアルI/Oポートの8251は、TK-80には実装されていない)。8255は、8ビットポートを3ポート備え(PA、PB、PC)、各ポートの入出力、動作モードなどを、プログラムから設定できる。単純な8ポート×3、2ポート+制御信号、ビット単位の入出力指定(PCポートのみ)などの動作が可能だ。
TK-80は、8255をキーパッドのスキャン、シリアル入出力、LEDディスプレイの制御に使っている。このチップのアドレスは、I/Oアドレス空間の0F8Hである(ただし、フルデコードされていない)。
キーパッドは、回路に直結しているRESETを除くと24キーであり、これが3×8のマトリクス接続になっている。8255のPCポートの3ビット(PC4からPC6)とPAポートがこのマトリクスに接続されており、モニタープログラム内のキースキャンルーチンが8255のポートを制御し、キーの押し下げ状態を検出する。スイッチ操作の際にはチャタリング(断続的なスイッチのオン/オフ)が発生するが、キースキャンルーチン内でのタイマー処理により、誤動作を防いでいる。
TK-80モニタプログラムは、110bpsでのシリアル入出力をサポートしている。これはシリアル入出力LSIを使わず、ソフトウェアでタイミング処理を行い、8255のパラレルポートのビットを使用して行う。使用しているのはPC0(シリアル出力)とPB0(シリアル入力)である。タイミング生成はソフトウェアのタイマールーチン(空ループにより時間をつぶすという方法)を使っているため、この処理中は、DMAによるLEDディスプレイを停止させる必要がある。このための制御は、8255のPC7ポートで行われる。
TK-80モニタプログラムは、STORE DATAキー、LOAD DATAキーを使い、メモリデータをシリアル出力し、また外部からシリアルデータをロードできる。一般的な用法は、シリアル出力ポートのビット出力を、数kHzのオーディオ信号でトーンバースト変調し、このデータをカセットテープレコーダに出力するというものである。また、このオーディオ信号を復調し、シリアル入力ポートに与えることで、保存したデータをロードすることができる。TK-80そのものには、このようなオーディオ変調/復調回路は含まれていないが、マニュアルには回路例が記載されており、多くのユーザーは、基板上のフリースペースにこの回路を組み込んでいた。
8桁の7セグメントLEDは、パラレルポートなどを介して表示されるという構造ではなく、RAM中の特定のアドレス(83F8Hから83FFの8バイト)のデータをDMAで読み出し、各バイトの8ビットデータの値に応じて、7セグメントLEDの小数点を含めた8セグメントを点灯/消灯する。これにより、小数点を含む8個のセグメントを、任意のパターンで表示することができた。
データバスから読み出したメモリデータは、8212チップでラッチされる。これは、8ビットラッチ/3ステートバッファのバイポーラICであるが、非プログラマブルI/Oポートとして、8080ファミリーに含まれているチップである。回路構成からすると、8228ではなく単純なラッチでも済むのであるが、トレーニングキットという性格から、このチップを使ったものと考えられる。
LEDの点灯は、プログラムの動作とは関係なく、555タイマーチップを使った数百Hzの信号でCPUをホールドし、そして前述の範囲でアドレスを1つずつ進め(555の出力で、3ビットのアドレス用カウンタが動作する)、RAM中のデータを1バイトずつ読み出し、ラッチで保持し、該当桁のLEDを点灯させるというダイナミック点灯構造である。
このような構造により、プログラムは、83F8Hから83FFの8バイトに適当なデータを書き込むだけで、出力ルーチンを呼び出すことなくLED表示を行うことができる。また、データを16進数で表示するというルーチンがモニタ内にあり、これを使うことで、簡単に数値表示を行うこともできる。
8080のような単純なプロセッサの場合、プログラムの実行ステップ数を数えることで、かなり正確に時間を測ることができるが、このようなDMA処理を行うと、CPUの実行速度が多少低下し、時間を正確に測れなくなる。そのため、110bpsの入出力処理中など、厳密な時間測定が必要な時には、DMAによるLED表示を停止することができる。これは、8255の特定のビットで制御できる。
TK-80モニタプログラムは、プログラムをデバッグするためのシングルステップ実行をサポートしている。シングルステップスイッチをAUTOモードからSTEPモードにすると、プロセッサから得られるM1信号(インストラクションのフェッチ、つまり1つの命令の実行開始を示す信号)が、プロセッサの割り込み要求に入力される。これにより、8080プロセッサは割り込み処理を開始する。
8080プロセッサは、割り込み要求があると、データバスから割り込みのための命令を読み込むという動作をする。TK-80では、このフェーズにおいてメモリアクセスをディセーブルするようになっている。データバスはプルアップされているため、メモリなどがバスにデータを出力していない時は全ビットが1になり、プロセッサは0FFHという命令を読み込む。8080の命令では、これはRST 7という割り込み用の命令で、001CHへのサブルーチン呼び出しが実行される。
割り込み処理が開始されると、割り込み許可フラグがディセーブルされるので、モニタープログラム内の処理が連続実行される。モニタープログラム内では、この割り込みエントリから実行が始まると、PC(プログラムカウンタ)、Aレジスタ、PSW(フラグ)レジスタの内容をLEDに表示する。その後、RETキーを押すと、このサブルーチンコールがリターンし、ユーザープログラムにリターンし、命令の実行を継続する。このリターンの直前に割り込みが許可されるので、ユーザープログラムが1命令だけ実行され、再びモニタープログラムに戻ってくる。EI(割り込み許可)命令の後、RET(サブルーチン/割り込みからのリターン)命令を実行するが、単純にM1信号を割り込み要求に接続すると、RET命令の実行後に割り込みがかかり、ユーザープログラムが実行されない。そのためTK-80のシングルステップ実行機能は、割り込み許可後、1命令(RET命令)を実行し、その次の命令(ユーザープログラムの1命令)の実行後の割り込みが実行されるような回路になっている。
電源投入、あるいはRESETスイッチの操作により、TK-80はモニタプログラムの実行を開始する。モニタプログラムは、以下の操作を行うことができる。
100ピンのエッジコネクタには、アドレスバス、データバス、メモリ/I/Oの読み書きの信号などが接続されていたので、外部回路を接続することができる。また、バックプレーンを用意すれば、同型の基板を重ねるように使用し、システムを拡張することも可能である。後から発売されたTK-80 Basic Station、メモリカードなどは、このような構成で接続する。また、自由に回路を作成できるユニバーサル基板も販売されていた。
しかし、TK-80はトレーニングキットとして設計されたものであったため、本格的な拡張まで考えて設計されていた訳ではなかった。
たとえば、メモリアドレスのデコードである。TK-80のROMとRAMはそれぞれ1KBなので、アドレスの下位10ビットはデコーダとメモリチップに接続されていた。そして、ROMとRAMの切り替えを最上位1ビットで行い、A10からA14まではデコードされていなかった。そのため、0000Hから7FFFHまでは先頭1KBのROMイメージが繰り返し現れ、8000HからFFFFHまではRAMイメージが繰り返し現れることになった。
外部にメモリを増設する場合は、まずこのゴーストイメージ対策を行う必要がある。具体的には、アドレスをきちんとデコードするということである。TK-80の基板は、フルデコードするために、パターンをカットしてデコード信号を接続できるようになっていた。
Basic Station基板は、ROMとRAMを搭載しているため、BS基板とTK-80を接続する際には、このフルデコード改造を行う必要があった。そのため、Basic Station基板上にはTK-80基板上のROMとRAMのアドレスをデコードする回路が載っており、このデコード信号がエッジコネクタ経由でTK-80基板に送られるようになっていた。TKー80側では、パターンをカットした後、この信号をメモリチップ用のデコーダに接続しなければならなかった。
TK-80には初期モデルμPD8080A(減算時の10進補正が可能でインテルと非互換)とμPD454D(EEPROM)、uPD5101E(バッテリーバックアップ可能)、低価格化後期モデル(TK-80E:Economy)μPD8080AFCとuPD464(マスクROM)、uPD2101AL-4 がある。
純正オプションとしてメモリーボードTK-M20K(20kBytes)とBASIC STATION(Level1BASIC:整数BASIC、Level2BASIC:実数BASIC)があった。
TK-80 Basic Stationとして販売されていたのは、TK-80と重ねて実装できる基板で、拡張RAM、BasicインタープリタのROM、キーボードインターフェイス、キャラクタディスプレイ用V-RAM、カセットインターフェイスを装備していた。製品には、これに加えて、基板を接続するバックプレーン、キーボードなどが含まれていた。
その後、Basicマシンとして販売されたCOMPO-BSは、電源、カセットテープドライブを装備したケースに、Basic Station基板を収めた完成製品であるが、これにはTK-80基板は含まれていない。プロセッサユニットは、バックプレーンボード上に実装されていた。このプロセッサ基板には、当然、LEDディスプレイ、キーパッド、TK-80モニタープログラムなどは実装されておらず、電源投入でBasic環境が起動するようになっていた。
完成品のCOMPO-BSとは別に、ケース、電源は部品としても販売されていた。部品のケース購入すると、TK-80基板とBasic Station基板を重ね、バックプレーンで接続したユニットとキーボードを内部に装着し、完成品のCOMPO-BSと同等のものにできた。この構成では、Basic環境を起動するためにTK-80のキーパッドを操作する必要があるが、このケースは、キーパッドの上部が開閉可能なフタになっており、自由にTK-80基板を操作することができた(完成品のCOMPO-BSも同じケースを使っていたので、このフタもあった。もちろん、開けても下の基板が見えるだけである)。
日本のホビーパソコンとしては珍しく、COMPO-BSは、電源スイッチがキースイッチであった。
2000年に、榊正憲著「復活! TK-80」 (ISBN 978-4-7561-3401-1) という書籍が、アスキーより販売された。この本には、Windows上で動作するTK-80のシミュレータプログラム、そのソース、TK-80の当時のマニュアル(回路図、モニタプログラムのソースも含む)をPDF形式に復刻したものが含まれている。
2008年現在、TK-80上位互換の製品として、中日電工より「トレーニングボード ND80K」という製品が販売を継続している。
PageRank5以上の相互リンク
・相互リンクスクエア
(PageRank 5)
・相互リンク インプロス
(PageRank 5)
→便利!NINJA TOOLS
→FC2検索
用語
Wikipedia
YouTube
powered by Yahoo!
CASIO CTK-800 クリスマス プレゼント 新品同様
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
![]() |