IBM 5100
概要
IBM 5100はPALM(Put All Logic in Microcode)という16ビットのCPUモジュールが使用されている。IBM 5100のメンテナンスマニュアルでは、このPALMモジュールを「コントローラ」と呼んでいた。PALMは直接64KBのメモリを扱うことができ、またIBM 5100にはExecutable ROSと呼ばれるROMと合計で64KB以上のRAM領域があり、トグルスイッチを用いた簡素なバンク切り換え機構で運用された。ユーザーが入力したAPL/BASICインタプリタは、PALMが周辺機器を扱う別々のLanguage ROSアドレス空間に保存する事が出来た。
IBM初の「ポータブル・コンピューター」
IBM 5100は現在で言う処の「一体型PC」で、およそ25kgの重さの小さなスーツケース程度のサイズの筐体にキーボード、5インチのCRTディスプレイ、テープドライブ、CPU、システムソフトウェア(OS)を含む数100KB程度のROM、そして最大64KBのRAMが内蔵されていた。それまで部屋を一つ占有するのが当たり前であったメインフレームから比較すると驚異的な小型化を達成し、人間の力でも持ち運ぶ事が可能であった事から「ポータブル・コンピューター」と銘打たれていた。
今のノートパソコンから見るとIBM 5100はとてつもなく大型のように思えるが、1975年の時点で、IBM 5100ほど小さな筐体に多量のROMとRAMがある完全なコンピュータシステムとCRT、さらにはテープドライブを収めた事は技術的に驚くべき達成だった。IBM 5100とほぼ同様の構成を持つコモドールPET 2001がリリースされるにはもう2年の期間を要した。IBM 5100が登場する以前のデスクトップコンピュータはHP 9830などがあるが、サイズこそ殆ど同じながら、IBM 5100のようにCRTや大容量のROM/RAMを内蔵する事は不可能であった。
また、IBM 5100と同等の性能を持つ1960年代のIBM製コンピュータは、2脚の机とほとんど同じくらいの大きさで、500kg近い重さがあった。この事実を照らし合わせると、IBM 5100の小型化が当時どれ程の脅威を市場に与えたかは想像に難くない。
外部モニター出力機能
IBM 5100はバックパネル上のBNCコネクタを通して外部のビデオモニター(または、改造されたテレビ)を接続できた。IBM 5100は内蔵モニタの画面のバックグラウンドを白（文字は黒）か黒（文字は白）か選択するフロントパネルスイッチを持っていたが、このスイッチは外部のモニターの表示には影響せず、当時の外部モニターの黒いバックグラウンドに対してスイッチの操作に関係なく白い文字を表示した。 垂直同期周波数は60Hzで固定であり、50Hzのテレビジョン方式(旧EC圏や南米諸国)を採用している外国のユーザーにとっては多少の不便を強いられる事となった。
コミュニケーションアダプタ（一種の通信機能）
1975年9月に、IBMはIBM 5100の拡張機能としてIBM 5100 Communications Adapterを発表した。これは一種の通信機能であり、メインフレームがリモートシステム上の5100がデータを送るのを許容し、データの通信を可能にした。IBM 5100でEBCD (Extended Binary Coded Decimal)を使用する場合においては、IBM 5100をIBM 2741 Communications Terminalと見せ掛ける事ができ、メインフレーム側はIBM 5100をIBM 2741互換機として処理する事が可能であった。ただし、EBCDはより一般的なIBM EBCDICコードと似ているが、完全に同じものではなかった。
多様なプログラミング言語
IBM 5100はプログラミング言語はAPLかBASICのどちらかを選択して利用可能だった。それまでAPLはメインフレームでの利用に限定されており、既存のコンピュータではWang 2200とHP 9830だけがAPLと同時にBASICが使用可能であった。
APLとBASICの両方の言語をサポートしたIBM 5100は、フロントパネル上のトグルスイッチを操作する事で言語を選択できた。IBMの開発技術者がベータテスターであったDonald Polonisに尋ねたとき、彼は「ユーザーがメインフレームを使用するためには、まずAPLを学ばなければならないから、IBM 5100はより簡素な"パーソナルコンピュータ"として作られなければならない」と論評した。 彼は市場のユーザーがIBM 5100を受け入れるには、メインフレーム的コンピュータではなく"パーソナルコンピュータ"として使用するのが簡単でなければならないという事実を開発技術者に強調した。
APLにはベクトルとマトリクスとしてデータを操作するための強力な機能があったが、当時のメインフレームの特殊なAPLコードとAPLキーボードは難解で、APLを学ぶ初心者にとっては大きな障害でもあった。当時IBMのメインフレームと競合していたHP 9830はAPLのマトリクス操作のためには、アドオンされているROMとは別の言語拡張を追加しなければならない程であった。
しかしIBM 5100は簡素な操作体系でAPLを簡単に扱えるようになった為、メインフレームの操作端末として一定の成功を収める事となった。
添付ソフトウェア
IBMはIBM 5100を販売するに当たり、数学の問題、統計的手法、および財務分析に必要な1000以上の対話的ルーチンをユーザーに提供するために、IBM5100と共に磁気テープカートリッジに記録されたProblem-Solver Librariesと呼ばれるアプリケーションソフトウェアを添付した。
マイクロコードのエミュレータ機能
IBM 5100のアーキテクチャのコンセプトの一つに、「マイクロコードで書かれたエミュレータを使えば、プログラムを作り直してデバッグする時間とコストをかけずに、旧来の巨大で高価なコンピュータ向けのプログラムを、より小さくて比較的安いコンピュータで実行することができるであろう」というものがある。これは、System/360シリーズにおいて上位モデルと同じ命令セットアーキテクチャ（ISA）を下位モデルに実装した手法と全く同一のコンセプトであり、それを低コストの側に（当時可能なレベルで）究極に押し進めたものと言える。
IBM 5100にはそのような二つのプログラムが入っており、System/370メインフレームのためのIBMのAPLインタプリタAPL.SVに若干手を加えたバージョンと、IBMのSystem/3コンピュータ上で使用されるBASICインタプリタが実装されていた。つまり、IBM 5100のマイクロコードは、System/370とSystem/3の両方の機能の大部分をエミュレートするように書かれたのである。
IBMは後に、1983年のIBM PCのXT/370モデルで同じアプローチを採っている。これはSystem/370エミュレータカードが追加された標準IBM PC XTであった。
評価
後年に日本のIT情報誌『日経コンピュータ』（1983年5月30日号）は次のように評価した。
今になってIBM5100を見直してみると、画面のサイズが小さい、カラー表示ができない、フロッピーディスクが使えない、価格が300万円前後と高価、といった"難点"はあったが、現在のパソコンのイメージとオーバーラップする点は多い。結局、5100のビジネスは必ずしも成功しなかったが、APLインタプリタをこの程度の超小型コンピュータ上で実用に耐えるスピードで動作させていたパソコンに関する技術力はむしろ驚異的だったとも言える。
また、IBMはIBM 5100の投入でAPLの普及を後押ししようと目論んでいたものの、APLの表記が難しかったために普及は進まず、パソコン市場の実情を踏まえて次のIBM 5110ではBASICを標準の開発言語にしたのだろうと推測された。当初、IBM 5100は科学技術計算（エンジニアリング）用として発売されたが、後継の5110から5120、System/23にかけて徐々にビジネス向けパソコンに変わっていったと振り返った。