TI-99/4A

TI-99/4Aはテキサス・インスツルメンツ (TI) が1981年1月にリリースした初期のホームコンピュータである。 リリース当初の価格は525USドルであった。TI-99/4Aは1979年に1,150ドルでリリースされたTI-99/4の拡張版。TI-99/4は電卓型のチクレットキーボードで小文字が使えなかったが、TI-99/4Aではグラフィックモードとフルキーボードが追加され小文字も使える。 TI-99/4Aは、CPUとマザーボード、カートリッジスロット、キーボードが一体になった形状である。電源回路基板はカートリッジスロットの下のスロープになった部分に格納されている。そのためその部分が熱くなるので、ユーザーは「コーヒーカップ・ウォーマー」などと呼んだ。アメリカ以外で電源電圧が異なる場合はACアダプタが付属したが、それは単なる変圧器だった。 周辺機器としては、5.25インチFDD、2シリアルポートと1パラレルポートのあるRS-232カード、Pascal用P-codeカード、サーマルプリンター、音響カプラ、データレコーダ、32KBメモリ拡張カードなどがある。RFアダプタがFCCの認可を受けられなかったので、TI-99/4は当初モニター（ゼニス製13インチテレビを改造したもの）を同梱していた。 1980年代初め、TIは音声合成の先駆者として知られており、TI-99/4 (A) にも音声合成モジュールが接続可能だった。多数のカートリッジを購入すると音声合成モジュールが無料でついてくるプロモーションが行われ、TI自身がそれを使ってしゃべるゲームを多数発売した。線形予測符号の一種を音声合成に使っており、語彙も若干組み込まれている。当初、音声合成モジュールに小さなカートリッジを挿すと語彙が増えるという方式を考えていたが、Terminal Emulator IIというROMカートリッジでソフトウェアによる音声合成（テキスト読み上げ）がうまくいったため、計画は中止された。多くの音声合成モジュールは語彙カートリッジを挿すための穴が空いた状態で出荷されたが、中にコネクタが設置されていないことが多い。音声合成モジュールの発する声は比較的リアルで、例えばAlpinerというゲームでは男性と女性の声を使っているが、プレイヤーが間違った動きをすると皮肉なニュアンスのこもった音声を発した。 TI-99/4Aは当初、本体と周辺機器を一列に数珠繋ぎ（デイジーチェーン）のように拡張していくというコンセプトだった。しかし、こうすると机の幅で接続できる周辺機器が限られるという問題があった。 間もなく、拡張カードを使った拡張法に転換。5.25インチFDDと電源回路を備えたPEB (Peripheral Expansion Box) と呼ばれる拡張ボックスが用意された。拡張カード用スロットを8個装備している。各カードにはLEDが付いていて、ソフトウェアがそのカードを使ったときに点滅する。初期のS-100バスと同様、拡張カード側にレギュレータを搭載して必要な電源電圧を作らなければならない。 さらに拡張バスにはアナログ音声信号を流す線がある。これを使って音声合成モジュールの合成した音声を本体経由でモニターに渡すことができる。音声信号はケーブル経由でPEBにも渡せるので、音声合成モジュールをPEBに接続したり、本体のサウンド機能以上の機能を提供するサウンドカードを提供する可能性も考慮していた。 TI-99/4には電卓機能が組み込まれていたが、TI-99/4Aでは省かれている。どちらもANSIのBASIC規格に準拠したTI BASICというBASICプログラミング言語のインタプリタが搭載されている。一般的なMicrosoft BASICとはかなりの部分で非互換である。後期のモデルではタイトル画面に"2.2"と表示され、アタリのようなサードパーティーのライセンスを得ていないROMカートリッジが使えないようになっている。 専用ポートで2台のデータレコーダを接続し、セーブとロードが可能である。またジョイスティック用ポートもあり、2個のデジタルジョイスティックを接続できる。ジョイスティックポートは1つ（9ピン）で、そこに2個のジョイスティックを接続するようになっており、TI製のものしか使えない。サードパーティからアタリ互換ジョイスティックを2個接続できるアダプタが発売された。NTSCの場合、コンポジット映像信号と音響信号が別々のポートから出力され、外部のRFアダプタでそれらを混合してテレビに送るようになっている。PALの場合はやや複雑なYUV信号を出力し、それをRFアダプタで変調している。 TI-99/4シリーズは初の16ビット・パーソナルコンピュータである。TI-99/4AのCPUは16ビットのTMS9900で、3.0MHzで動作する。TMS9900はTIのミニコンピュータ TI-990（英語版） に基づいた設計である。命令セットは豊富で、個々の命令は高機能でサイズも様々で、アドレッシングモードも豊富である。TMS9900にはIBM System/370にも見られたEXECUTE命令があり、命令のオペランドで指定されるアドレスにある命令を実行できる。 基本的にはCISCだが、RISCを思わせる特徴として「ワークスペース」の概念がある。チップ上には、プログラムカウンタ、ステータスレジスタ、ワークスペースポインタの3つのレジスタしかなく、全ての他のレジスタはワークスペースポインタが指すRAM上に置かれている。ワークスペースには16本のレジスタがあり、コンテキストスイッチ時にはワークスペースポインタを書き換えるだけでよい。TI-99/4 (A)がCPU RAMとして持つのはたった256バイトの「スクラッチパッド」メモリであり、これがワークスペースとして使われる。16ビットバスに直接接続されていてウェイトなしでアクセスでき、システム内の他のメモリより高速である。 CPUは16ビットだが、16ビットバス上に直接接続されているのはシステムROMとスクラッチパッドRAMだけである。他のメモリと周辺機器は16ビット→8ビットのマルチプレクサを介してCPUに接続するので、あらゆるアクセスに2サイクルかかり、さらに追加の4サイクルのウェイト状態が必要になっている。システムROMにピギーバック方式でSRAMを追加することでメモリを拡張するという改造がよく行われた。これにより多くのアプリケーションで30%ほど性能が向上したという。 当時の多くのマシンと同様、TI-99シリーズもVDP（ビデオ・ディスプレイ・プロセッサ）に画面表示を任せていた。TI-99/4のVDPはTMS9918である。これにはビットマップモードがなく、TI-99/4Aで追加された。アメリカ合衆国内のTI-99/4AのVDPはTMS9918Aであり、MSXでも使われた。欧州向けのPAL仕様のマシンではTMS9929Aが使われている。 これらVDPのユニークな機能として、他のビデオ信号上にグラフィックスをスーパーインポーズする機能をハードウェアでサポートしていた。VDPシステムへのアクセスは常に8ビット単位である。このため性能が制限される反面、VDPのアップグレードも容易になった。ヤマハがTMS9918と上位互換のV9938をリリースしており、これを利用して80桁表示を行う拡張カードがMechatronicsなどからリリースされている。これを使うと512×424ピクセルで16色か、256×424ピクセルで256色のグラフィック表示が可能となる。このカードは VDP RAM を16Kバイトから最大192Kバイトに拡張するが、V9938向けに書かれたソフトウェアでないとその利点を生かせない。 TI-99/4シリーズの独特なアーキテクチャは、このマシン向けに開発されていた8ビットプロセッサ9985の失敗に起因するとされている。9985開発が中止されたとき、16ビットの9900を代替として採用したため、既存のシステム設計に9900に適合させるのに苦労し、9900の良さを生かすような変更がなされなかった。 TI-99シリーズのマシンは、初期のTI-99/4からリリースされなかったTI-99/2やTI-99/8まで、全周辺機器の「プラグアンドプレイ」をサポートしていた。デバイスドライバ（"Device Service Routines"、DSRと呼称）は各機器のROMに組み込まれており、新たなカードを挿入すると即座に使えるようになる。あらゆるデバイスはファイル型のI/O機構を採用しており、それを使う側のソフトウェアを更新しなくとも新たな周辺機器を使うことが可能である。CRU (Communications Register Unit) は4096のデバイスを扱えるが、TI製の拡張カードはそれぞれCRUバス上の固定アドレスを使っており、同じ種類のカードを同一システム内で使うには何らかの細工を必要とした。細工なしで複数枚使えるカードとしてはRS-232カードがあり、2つのベースアドレスを切り替えることができた。このためRS-232ポートを4つ、パラレルプリンターポートを2つ持つことができた。 Hexbusインタフェースは1982年に設計され、1983年後半に一般にリリースされる予定だった。これは周辺機器を高速シリアルリンクで接続するものである。後のUSBにも似ているが、実際にリリースされることはなく、一部のコレクターがTIが撤退した後でプロトタイプ品を入手しただけである。Hexbus仕様の周辺機器がいくつか計画され生産されている。WaferTape装置はテープの信頼性問題があるためプロトタイプの域を脱していなかった。両面倍密5.25インチFDDはちゃんと動作していたが、やはりプロトタイプ止まりだった。Hexbusは TI CC-40 というバッテリ駆動の携帯型コンピュータにも採用されており、CC-40向けにHexbus対応の周辺機器がいくつか出荷された。 TI製ミニコンピュータを起源とするTMS9900シリーズのアーキテクチャでは、「ワークスペース」と呼ばれるレジスタ群がメインメモリ上に置かれる。1980年代初めごろにはSRAMも高価だったので、TI-99/4Aはワークスペース用にたった256バイトの「スクラッチパッド」RAMしか装備しなかった。 本来はCPU内部に256バイトのRAMを実装することを意図していたが、9900はレジスタとして外部メモリを必要とする形になった。いずれにしてもスクラッチパッドRAMがなければ性能は大幅に低下していた。一部のソフトウェアは小さいループをスクラッチパッドRAMにコピーし、高速化を図っている。 マシンはシステムRAMとして256バイトしかアクセスできないため、TIの技術者はTI-99/4AのグラフィックコプロセッサTMS9918Aに別途記憶領域として16KバイトのVDP RAMを持たせた。VDP RAMはDRAMであり、VDPがリフレッシュを行う。 VDP RAMは一時的にユーザが作成したBASICプログラムのコードとデータを格納するのにも用いられた。BASICはTI-99シリーズではインタプリタ言語 Graphics Programming Language (GPL) を使って実装されている。GPLインタプリタはROM内にあり、電源が入るとまずGPLインタプリタに制御が渡る。GPLはTI-990シリーズ（ミニコンピュータ）の機械語によく似たコードであり、TI-99/4Aのアーキテクチャに合わせていろいろなタイプのメモリに統合的にアクセスする機能やメモリコピーやディスプレイのフォーマットなどの機能を持っていた。BASICプログラムを書くとそのコードとデータはVDP RAM上の空き領域に置かれ、実行時にはGPLインタプリタがそれにアクセスして解釈する。従って、TI BASICではVDP RAMをフルに使用する表示モードを使えない。拡張メモリを追加した場合、VDP RAMの代わりにそちらを使用する拡張BASICにアップグレードする必要があった。 同じ VDP TMS9918 がMSXやコレコビジョンのマシンでも使われていた。V9938やV9958はTMS9918の機能や仕様を包含する形でヤマハが設計、製造している。TI-99/4Aの基板はVDPを置き換えることを考慮した設計になっており、それによってグラフィック能力を向上させることができる。V9938では、512×424ピクセルで16色表示または256×256ピクセルで256色表示が可能。単にチップを置き換えればアップグレード可能というわけではなく、VDPと通常128Kバイトの VDP RAM を搭載したドーターボードを必要とする。これらのVDPはソフトウェア的にはほぼ互換だが、ROM内のバグが非互換を発生させているという問題がある。例えば、Mechatronic製の80桁表示カードはV9938を使っており、TI BASIC に入る際にあるボタンを押す必要があった。こういった80桁表示カードは広く使われていた。 Graphics Read-Only Memory (GROM) はもう1つのメモリで、専用メモリポート経由で1バイトずつアクセスされ、自動的にアドレスをひとつずつずらして読むデバイスとみなされる。TI製カートリッジの多く（Disk Manager 2、Editor/Assembler、TI Writer、多くのゲーム）が本体内蔵のTI-BASICと同様にこのシステムを利用している。本体内のTI-BASICのGROMを好きなROMカートリッジのGROMと入れ替えると、そのカートリッジのソフトウェアをブート時のメニューから直接選択できる。 BASICのプログラムはVDP RAMやGROMに置けるが、機械語のプログラムはCPUが直接アドレス指定できる空間に置く必要がある。このため機械語プログラムを作るならRAMを拡張する必要があった。32Kバイトの拡張RAMカードと4Kバイトの「ミニメモリ」モジュールの価格が下がったことでこの制限は緩和されたが、そのころには市場は他のコンピュータが主導するようになっていた。 一部の洗練されたカートリッジ（ゲームのParsecやAlpiner、TI LOGO、TI拡張BASIC）にはGROMではなくアドレス指定可能なROMが搭載されており、機械語コードを使って高速化していた。一般にカートリッジ内のGROM用ICは14ピンで、アドレス指定可能ROMのICは28ピンだった。一部カートリッジは小容量のRAMも搭載していた。このようなメモリの制限を解決する技法として、本体脇の周辺機器をデイジーチェーン接続するポートに接続する形のROMカートリッジを作った企業もある。 バスが16ビットから8ビットに変換されているために性能が抑えられていること、BASICが2段階のインタプリタになっていることから、TI-99シリーズは極めて癖のあるマシンという噂がたち、一部に熱狂的なファンを生んだ。TI BASICしか使ったことのない人にはその性能が低いことは感じられていたが、アセンブリ言語のプログラムは高速で動作した。 当初TI-99/4Aは成功し、一時はホームコンピュータ市場の35%のシェアを獲得した。しかし、コモドールとの価格競争が始まり、対抗するために価格を下げることを余儀なくされた。1982年8月、TIは100ドルのキャッシュバックキャンペーンを展開し、ビル・コスビーは「コンピュータを売るのは簡単さ。買う人に100ドルずつ配ればいい」と揶揄した。 TI-99/4AはVIC-20に比べて製造コストが高いにもかかわらず、同じ値段で競争することを余儀なくされた。TIもコモドールも自前のIC工場を持っていたが、コモドールがカスタムICを作ってコスト削減に努めたのに対し、TIは市販品を使い続け、マザーボードにもほとんど変更を加えなかった。またコモドールはボール紙をアルミホイルで覆ったものを電磁波シールドに使ってコスト削減していた。TIはそのような動きに追随しようとせず、高品質の部品を使い続け、市場がその違いを理解してくれることを期待した。 1983年2月、TIは価格を150ドルに下げ、赤字覚悟でマシンを売り続けた。そして1983年6月、TIは新たに設計した廉価版（外観がベージュ色）をやはり赤字覚悟で99ドルで販売した。TIは1983年第2四半期に1億ドルの損失を計上し、第3四半期に3.3億ドルの損失を計上した。1983年10月、TIはホームコンピュータ市場から撤退することを発表した。 1984年3月に出荷停止となるまでにTI-99/4Aは累計280万台出荷された。 TI-99/4AはコモドールのVIC-20に比べてメモリも多くグラフィックも進んでいたし、ある意味ではコモドール64に比較しても遜色なかった。しかし、その設計には批判が多かった。例えば、（高価で重い周辺拡張ボックスを買わない限り）全ての周辺装置は本体の右側に数珠つなぎに接続されるため、テープ装置やプリンタなどいろいろな周辺機器を揃えると机の上に置けなくなってしまった。また、48キーのキーボード配列も一般的なものではなかった。80桁表示のオプションも当時は存在しなかった。これらキーボードとディスプレイの制限により、ワードプロセッサとしてもほとんど使われなかった。 しかし、99/4Aの最も大きな問題点はソフトウェアライブラリの制限だった。TIはソフトウェアとハードウェアの製品化に制限を加えたため、ソフトウェアは300タイトルに止まり、少数のヒットタイトルは当時他のマシンでも動作していた。"Editor/Assembler" でアセンブリ言語開発スイートが1981年にリリースされるまで、技術文書も全く公開されず、詳細な仕様が公開されたのはTIが市場から撤退した後のことだった。これとは対照的にVIC-20向けのハードウェアおよびソフトウェア開発は完全のオープンだった。コモドールはマニュアルにシステムの回路略図を掲載し、一連のプログラマ向け書籍を出版し、誰でも周辺機器やソフトウェアを開発できる環境を整えた。VIC-20では700タイトル以上のソフトウェアがリリースされている。 TI-99/4Aは市場から無くなった後も熱狂的信者に支えられてきた。2004年にもPEB向けにUSBカードとIDEハードディスク用ATAコントローラがリリースされている。また、Chicago TI Fair が毎年開催されている。また、エミュレータもいくつか存在する。 TI-99/4Aと関係の深い携帯型コンピュータTI CC-40が1983年3月にリリースされている。バッテリ駆動で、液晶ディスプレイを備え、別バージョンのTI BASICが動作する。またHexBusを採用しており、周辺機器をTI-99/4Aに流用可能だった。 市場撤退したころ、TIはTI-99/4Aの後継機種を2つ開発中だった。どちらも生産されなかったが、いくつかのプロトタイプがコレクターの手に渡っている。TMS9900の後継であるTMS9995をCPUに採用しているため高速化されていて、HexBusを採用している。 TI-99/2 - 低価格なモノクロ表示でサウンド機能のない機種。シンクレア ZX81などを思い起こさせる。 TI-99/8 - 上位後継機で、キーボードが大きくなり、RAMは標準64Kバイトで最大15メガバイトまで拡張可能。音声合成機能、UCSD Pascalの環境を内蔵し、16ビットバスが直接拡張ポートに出ている。プロトタイプがいくつか現存しており、コレクター間でかなり高額で取引されている。 ぴゅう太 - 1982年に日本の玩具メーカートミーが発売。アーキテクチャとファームウェアはTI-99/8によく似ているが、主記憶はVDP RAM兼用でTI-99/4Aに近い。海外では Tomy Tutor の名で発売したが、日本以外ではほとんど売れなかった。 Myarc Geneve 9640 - 1987年にリリースされたPEB用拡張カードの形でTI-99/4Aを拡張するクローン。IBM PC/XTのキーボードを流用可能。TI-99/8 によく似ている。プロセッサは12MHzのTMS9995で、V9938で80桁表示が可能であり、16ビットバスでRAMを接続している。OSは独自のMDOS (Myarc Disk Operating System) で、TI-99/4A向けソフトウェアとハードウェアの多くをそのまま使える。PEBにトグルスイッチを追加して、オリジナルと同じ性能になるようウェイトを入れることもできる。 Phoenix G2 - イギリスのユーザーグループの1人Gary Smithが2010年に設計。Myarc Geneve 9640とTMS9995マイクロプロセッサを2個のFPGAでエミュレートすることで、既に製造されていないICの在庫品に頼らないようにしている。また、SDカードリーダ、イーサネット、VGA出力、64MBメモリなど新しい技術を取り入れている。 CPU: TI TMS9900 3.0MHz。16ビット メモリ: 16KバイトVDP RAM（標準のアップグレードではないが、V9938を使えば192Kバイトまで拡張可能）、256バイト CPU「スクラッチパッド」RAM（TMS9900のレジスタが置かれるワークスペース用）。また、8Kバイトまたは32KバイトのRAMと Editor/Assember GROMを搭載したカートリッジがある。 キーボード: フルキーボード。TI-99/4では電卓型キーボードだった。 ビデオ制御: TI TMS9918A VDP（TI-99/4では TMS9918、PAL版ではTMS9929/9929A） テキストモード: 40文字×24行（256個の6×8のユーザー定義文字、スプライト不可、背景色と文字色の2色のみ、BASICからはアクセス不可） グラフィックモード: 32文字×24行の文字（256個の8×8のユーザー定義文字、15色＋透明色だが配置に制限あり）と32個のスプライト（BASICではこのモードのみ使用可能。スプライトを使うには拡張BASICが必要で、28個までしか使えない） ビットマップモード: 256×192ピクセル（16色だが、横8ピクセル内は2色のみ。32個のスプライトが可能だが、メモリレイアウトの関係でROMの割り込みルーチンによる自動動作は不可。BASICでは不可。初期の9918でも不可）。あまりメモリを使わない「ハーフビットマップ」モードと呼ばれるモード群もあり、色の配置はビットマップモード並みである（これらのモードはVDPの説明書にはないが、ビットマップモードを単に賢く活用したものである）。 マルチカラーモード: 64×48ピクセル（各ピクセルに任意の色を配置可能、32個のスプライトが可能） これらのモードは36のレイヤーを使っている。ビデオ・オーバーレイ入力のレイヤー、背景色のレイヤー、2つのグラフィックモードレイヤー、32個のスプライト用レイヤーである。より高いレイヤーが透明でない限り、下位のレイヤーを隠蔽する処理がハードウェアで行われる。 16色（うち1色は透明） 32個の単色スプライト。レイヤーを指定でき、高レイヤーのスプライトは低レイヤーのスプライトの上を通過できる。8×8ピクセルと16×16ピクセルがあり、2倍に拡大表示する機能もある。衝突判定機能もある。ROM内の割り込みルーチンでスプライトを自動的に動かす機能がある。水平方向に4つより多くのスプライトを表示できない。 サウンド: TI TMS9919。後にSN94624が使われている（他のシステムでよく使われたSN76489（英語版）と同一）。 3和音+1ノイズ（ホワイトノイズまたは周期的ノイズ） 和音は110Hzから115Hzの矩形波