この記事には複数の問題があります。 |


正式名称は「TLCS80A・EX-80」で、既製品のTLCS-12A用評価ボードの上位モデル。CPUにはIntel 8080A互換品のTMP9080ACが使用され、入力装置として16進キーボード(KB-1)、出力装置として8桁の7セグメントLED(EX-80Aは未実装)とテレビインターフェース、入出力制御用のモニタプログラム、プログラムの入出力を行うためのオーディオカセットインターフェースを備える。標準価格85,000円。
最大の特徴はテレビインターフェースを標準装備している点で、拡張機器なしでテレビ出力が行えるマイコンシステムとしては発売当時で最廉価の製品だった。RF出力で10文字×26行のテキスト表示(かなり横長の文字になる)が行え、プログラム入力や任意のテキスト表示(ゲーム等)に利用できるほか、モニタプログラムを使用してプログラムの逆アセンブルやレジスタ内容のトレースを行うことができた。また基板上の「BIT-CHAR」スイッチを切り換えることでキャラクタジェネレータでデコードせずに80ドット×26行のビットパターンとして表示させることも可能(テキストとの混在は不可)。テレビ音声からはキークリック音や任意のパルス波を鳴らすことができた。
I/OポートはIntel 8255と互換性のあるTMP9555Cを使用した8ビットのポートを3つ備え、EX-80ではポートAをキーボード入力、ポートCをシステムコントロールに使用している。ポートCのビット3はTV音声出力に使用していて、ビットパターンを送出することで任意の音階を鳴らすことができる。ポートBは未使用でユーザーが任意に使用可能。
LEDとTVの表示はDMAによって行っているので、VBLANKおよびHBLANK以外はCPUがHOLDされるが、高速に処理したい場合はポートCのビット7をインヒビットすることでDMAを止めることができる。
製品自体ははプリント基板と部品一式が提供されるフルキットで、使用可能な状態にするために全ての部品を自分で半田付けした上で自前で用意した電源ユニットに接続する必要があった。サポートは秋葉原に開設されたサポートセンター『マイコンセブン』で行われた。
後に廉価版のEX-80Aが標準価格65,000円で発売された。EX-80との違いは以下の通り。
| CPU | TMP9080AC 2.048MHz |
|---|---|
| ROM | TMM331AP 2KB(モニタプログラム用) |
| PROM | TMM322C 最大2Kバイト(別売) |
| RAM | TMM314P SRAM 1KB / 最大2KB |
| キーボード | データキー(0~Fの16キー)、機能キー(9キー) |
| LEDディスプレイ | 7セグメントLED アドレス部4桁 + データ部4桁 ※EX-80Aは未装備 |
| テレビディスプレイ インターフェース |
キャラクタジェネレータ T3477A テレビシンクジェネレータ TC5003P キャラクタ表示(10文字×26行)またはビットパターン表示(80ドット×26行) キャラクターセット 128字種(英大文字、数字、英記号、カタカナ、カナ記号) RF出力(家庭用テレビに接続可能) |
| オーディオカセットテープ インターフェース |
プログラマブル・コミュニケーション・インターフェース TMP9551C カンサスシティスタンダード準拠 300bps FM変調方式 |
| パラレルI/Oポート | TMP9555C 8ビット×3ポート |
| 拡張バス | 100ピンコネクタ |
| 電源 | ±5V, +12V(推奨品:エルコー製 HMC-3) |
| 基板寸法 | 310×230mm |
| 種類 | アドレス | サイズ | 内容 |
|---|---|---|---|
| ROM | 0000H - 07FFH | 2KB | モニタプログラム |
| 0800H - 0FFFH | (2KB) | ユーザーPROM用(オプション) | |
| - | 1000H - 7FFFH | (28KB) | (基板上実装不可) |
| RAM | 8000H - 81FFH | 0.5KB | モニタ用ワーキングエリア テキスト表示用VRAM(12文字×32行) |
| 8200H - 83FFH | 0.5KB | ユーザーズエリア | |
| 8400H - 87FFH | (1KB) | ユーザーズエリア(オプション) | |
| - | 8800H - FFFFH | (30KB) | (基板上実装不可) |
1978年11月25日発売。標準価格99,800円。価格は日本電気のTK-80BSに対抗する意味合いで10万円以下に設定された。発売当初は期間限定でゲームプログラムが書き込まれたPROM(1KB)と応用プログラム集をプレゼントするキャンペーンが実施された。
EX-80BSボード(完成品)、フルキーボード(KB-2)、マザーボード(100ピン×3スロット)で構成され、EX-80(A)と接続することでLEVEL-I BASIC(4KB)が使用可能。EX-80上のモニタROMとRAMをBSボードのソケットに載せ替えて使用する。RAM容量は標準4KB(EX-80の1KB、VRAM 1KBを含む)・最大16KB(+ VRAM 1KB)。EX-80とEX-80BSの接続は、2つのボードをマザーボードで接続してメモリーICを移動させるほかに、信号線のジャンパー接続とEX-80側のプルアップ抵抗1個の取り外しが必要になる。パターンカットは必要としない。
フルキーボードはラミネート加工のタッチ式キーボード(JIS配列58キー、LEDインジケーター付)が付属する。キータッチすると電子音が鳴る仕様で、音量調整用のボリュームがキーボードの裏面に付いている。ユニット自体は山下電気製のJISキーボード「F8J」のOEM品で、EX-80BSでは入力できない文字や使用しない制御キーも含んでいる。なお付属のキーボード以外でもJIS8ビットコードを出力するものであればケーブル加工して接続すれば一応動作はする(ETX キーは CTRL + C で代用する)。
VRAMとして1KBのRAM(TMM314)がFC00~FFFF番地に割り当てられており32文字×25行のキャラクターが表示できる。文字セットは2KBのマスクROM(TMM334)に8×8ドットのパターンで収められており、英大文字・数字・英記号64種、カタカナ・カナ記号64種、漢字・グラフィック文字128種が使用できる。PROM用のソケットも用意されており、ユーザ定義パターンのPROMを乗せることでソフト的に切り換えて表示させることが可能になる。
I/OポートはTMP9555をオプションで取り付けることで8ビットのパラレルポートが3ポート追加できる。全てのポートがユーザーが利用可能。
BASICの起動は、まず電源投入後にEX-80側のキーパッドで "3000" ADR RUN を実行すると画面上の文字幅が約半分になりEX-80BS側のモニタ(MONITOR-B)が起動する。次にEX-80BSのキーボードで "BS" CR を入力するとBASICインタプリタが起動してユーザーエリアの終了アドレスを聞いてくるので、標準の4KBの場合は "8C00" CR を入力するとプロンプト記号 ">" が表示されBASICが使用できる状態になる。
BASIC実行中に ETX を押すと割り込み状態になり、⌦ Del で復帰、CR で実行中のプログラムを停止、⌫ BS でBASICインタプリタを抜けてMONITOR-Bに戻る。
電源は+5Vの電流容量がEX-80単体では3.0A程度で問題なかったが、EX-80BSを使う場合は最低で4.0A、メモリを最大まで実装した場合は8.0Aの容量が必要となる。
BASICインタプリタは「東大版PALO ALTO TINY BASIC」をベースとする東芝オリジナルの4KB BASICを使用。
| 数値 | -32767から+32767の整数。後ろにHを付けると16進数になる |
|---|---|
| 変数 | アルファベット1文字、A~Zの26個。データ型は数値のみ |
| 配列 | @(0)~@(n)。添え字の最大値はフリーエリアに依存(SIZE値の約半分) |
| 演算子 | +, -, *, /。2乗の演算子は無し。優先順位は括弧と算術式に従う |
| 関係子 | <, <=, = >=, >, #。≠は"#"を使用する(<>や><は使用不可) |
| その他 | セミコロン区切りでマルチステートメントの記述が可能 |
| 種類 | アドレス | サイズ | 内容 |
|---|---|---|---|
| ROM | 0000H - 07FFH | 2KB | EX-80 モニタROM (MONITOR-A) |
| 0800H - 0FFFH | (2KB) | EX-80 ユーザーPROM用(オプション) | |
| 1000H - 2FFFH | (8KB) | EX-80BS ユーザーPROM用(オプション) | |
| 3000H - 3FFFH | 4KB | EX-80BS モニタROM (MONITOR-B) LEVEL-I BASICインタプリタ | |
| - | 4000H - 7FFFH | (16KB) | (基板上実装不可) |
| RAM | 8000H - 81FFH | 0.5KB | EX-80 MONITOR-A用ワークRAM |
| 8200H - 83FFH | 0.5KB | EX-80 マシン語サブルーチン用RAM | |
| 8400H - 8BFFH | 2KB | EX-80BS BASICユーザーズRAM | |
| 8C00H - BFFFH | (13KB) | EX-80BS 増設用BASICユーザーズRAM(オプション) | |
| - | C000H - FBFFH | (15KB) | (基板上実装不可) |
| VRAM | FC00H - FFFFH | 1KB | EX-80BS テキスト表示用VRAM(32文字×25桁) |
| コマンド | 備考 |
|---|---|
| LET | LETは省略可。 |
| REM | |
| INPUT | 「INPUT A」の書式で「A ?」の入力待ちになる。 「INPUT "A=" A」の書式で「A= ?」の入力待ちになる。 |
| IF | |
| GOTO | GOTOの行番号は数式でも記述可。 |
| FOR | 「FOR I=x TO y STEP z」の書式で記述する。STEPは省略可。 |
| NEXT | |
| GOSUB | |
| RETURN | |
| 「PRINT A,B,C」の書式で変数の値を6桁ずつ続けて表示して最後に改行する。 末尾にカンマを付けると最後の改行は入らなくなる。 「PRINT #1,A,#2,B,#3,C」の書式で変数の値を1桁、2桁、3桁でそれぞれ表示する。 (変数の値が指定桁数より大きい場合は無視されて全桁表示される) 「PRINT "凹F5,F6,EF,EE凹"」の書式で16進数が文字コードに変換されてリストに入力される。 (凹マークは ⇧ Shift + [ で入力) | |
| STOP | プログラムの実行を停止してプロンプトに戻る。 |
| CLEAR | 画面をクリアしてカーソル位置を左上に戻す。 |
| CURSOR | 「CURSOR 横,縦」でカーソル位置を移動させる。 |
| PEEK | 「A=PEEK(8200H)」で8200番地の値が変数Aに代入される。 |
| POKE | 「POKE 8200H,A」で8200番地に変数Aの値が書き込まれる。 |
| CALL | 「CALL 8200H」で8200番地のマシン語サブルーチンを呼び出す。 呼び出し後に暴走するとEX-80側のMONITOR-Aに戻ることがある。 |
| ABS() | 「Y=ABS(X)」で変数Xの絶対値を変数Yに入れる。 |
| RND() | 「RND(10)」で1から10までの乱数を作る。 |
| SIZE | フリーエリアのバイト数を出力する。 標準のRAM 4KBの場合、NEWを実行した直後の値は2766(バイト)になる。 |
| LIST | リストが長い場合は1ページ毎に停止して LF キーで次のページを表示する。 |
| RUN | 実行中のプログラムを中断させる場合は ETX キーで割り込み状態にして CR キーを押す。 |
| NEW | プログラムと全てのアドレスポインタが初期化される。 |
| TAPEH | 「TAPEH,ファイル名」でプログラムをカセットテープにセーブする。ファイル名は最大20文字。 |
| CHECKH | セーブしたプログラムとRAM上のプログラムが一致するかをベリファイする。 |
| LOADH | テープからプログラムをロードする。 |
| コマンド | 内容 |
|---|---|
| BS | BASICインタプリタを呼び出す |
| IV | 画面表示を白黒反転させる |
| エラーメッセージ | 内容 |
|---|---|
| WHAT? | 文法エラー |
| HOW? | オーバーフロー |
| SORRY | メモリオーバー |
| 整数 | 0~±999999999。10桁を超えると自動的に指数になる |
|---|---|
| 実数 | ±0.01000001~±9999999.9。範囲を超えると自動的に指数になる |
| 指数 | ±2.9387358×10-39 ~±1.70141183×1038 |
| 数値変数 | 英字1文字(A~Z)および、英字1文字+数字1文字(A0~Z9) |
| 文字変数 | 数値変数と同じ命名規則で後ろに$を付けたもの。1変数あたり最大32文字 |
| 配列 | 二次元まで。事前にDIM命令での宣言が必要 |
| 演算子 | +, -, *, /, ^(べき乗)。+は文字列の連結でも使用可 |
| 関係子 | LEVEL-I BASICの関係子の内、=と#は文字列の比較で使用可 |
| LEVEL-I | LEVEL-II | 備考 |
|---|---|---|
| TAPEH | SAVE | コマンド名の変更 |
| CHECKH | CHECK | コマンド名の変更 |
| LOADH | LOAD | コマンド名の変更 |
| 書式制御で使用するシンボルがLEVEL-Iと異なる | ||
| INPUT | INPUT | LEVEL-IIは文字変数への入力が可(文字列を'で囲む必要がある) |
| IF | IF | LEVEL-IIは条件式に文字列が使用可 |
| STOP | STOP, END | STOPの代わりにENDが使用可 |
| - | ON…GOTO | |
| - | ON…GOSUB | |
| - | DIM | 配列は二次元まで |
| - | DATA, READ, RESTORE | DATA文はREAD命令よりも前に置き、データを1行で書き切る必要がある (複数行ある場合は最後の行のみ有効になる) RESTOREは行番号の指定は不可 |
| - | SIN(), COS() | 三角関数。引数はラジアンで指定する |
| - | ATN() | 逆三角関数。答えはラジアンで返される |
| - | LOG(), LN(), EXP() | 常用対数、自然対数、eのべき乗 |
| - | SQR() | 平方根 |
| - | SGN() | 符号を判定し、-1, 0, 1を返す |
| - | INT() | 整数化 |
| - | PAI | π(3.1415926) |
| - | FLD(変数名, m, n) | 文字列のm文字目からn文字を取り出す |
| コマンド | 備考 |
|---|---|
| GR | 画面をカラーグラフィックモードに変更する |
| COLOR n | PLOTで描画する色を指定する |
| PLOT x,y | COLORで指定した色でドットを描画する |
| SCRN(x,y) | 指定した座標の色番号を読み取る |
| TEXT | 画面をテキストモードに変更する |
| COPY | EX-80BS側のテキストをカラーボード側に転送する |
| 種類 | アドレス | サイズ | 内容 |
|---|---|---|---|
| ROM | 0000H - 07FFH | 2KB | EX-80 モニタROM (MONITOR-A) |
| 0800H - 0FFFH | (2KB) | EX-80 ユーザーPROM用(オプション) | |
| 1000H - 17FFH | (2KB) | EX-80BS ユーザーPROM用(オプション) | |
| 1800H - 3FFFH | 10KB | EX-80BS モニタROM (MONITOR-B) LEVEL-II BASICインタプリタ | |
| 4000H - 5FFFH | (8KB) | カラーボード ユーザーPROM用(オプション) | |
| - | 6000H - 7FFFH | (8KB) | (基板上実装不可) |
| RAM | 8000H - 81FFH | 0.5KB | EX-80 MONITOR-A用ワークRAM |
| 8200H - 83FFH | 0.5KB | EX-80 マシン語サブルーチン用RAM | |
| 8400H - BFFFH | 15KB | EX-80BS LEVEL-II BASIC ユーザーズRAM | |
| - | C000H - E3FFH | (9KB) | (基板上実装不可) |
| VRAM | E400H - E7FFH | 1KB | カラーボード用VRAM(テキストエリア) |
| E800H - FBFFH | 5KB | カラーボード用VRAM(グラフィックエリア) | |
| FC00H - FFFFH | 1KB | EX-80BS テキスト表示用VRAM(32文字×25桁) | |