IBM 5100
IBM 5100ポータブル・コンピューター(IBM 5100 Portable Computer)は1975年6月、IBM PCの6年前にIBMが市場に初めて投入したデスクトップコンピュータである。IBM 5100は、IBMが1973年にデモを行ったSCAMP(Special Computer APL Machine Portable)と呼ばれるプロトタイプPCの発展型だった。1978年1月にIBMはIBM 5100の発展型であるIBM 5110を発表し、IBM 5100は1982年3月に販売を終了した。その後継機としてはIBM 5120がある。
なお、後の1981年に発表・発売されたIBM PCにはIBM Personal Computer 5150という、51?0というパターンに一致する番号が付けられたが、IBM PCと本機5100～5120の系列とは関連は無い。
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 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には16KB、32KB、48KBまたは64KBのRAMを搭載した12種類のモデルが存在した。IBM 5100は米国では8,975ドルから1万9975ドル、日本では約340万円～800万円で販売されていた。
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はIBMの革新的なコンセプトに基づいており、それは「マイクロコードで書かれたエミュレータを使えば、プログラムを作り直してデバッグする時間とコストをかけずに、旧来の巨大で高価なコンピュータ向けのプログラムを、より小さくて比較的安いコンピュータで実行することができるであろう」というものであった。
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であった。