
マイクロプロセッサの側面からの足跡
この記事は私の個人的な振り返りのための記録です。したがって、何かを主張することを目的として書いているわけではないことを、あらかじめお伝えしておきます。
学生時代、1979年頃、i8080搭載機 MP-80 を組み立てるキットを購入し8080のアッセンブリ言語の勉強をしていました。
当時は、NEC製のTK-80シリーズ(TK-80BS)が販売されていましたが、高価だったため、安価だったMP-80を買ったと記憶しています。
地道に苦労して組み立てても電源ユニットが別売だったので、電源ユニットを調達して動かせるまで時間がかかったと思います。当時の事を記録していなかったので、組み立て開始から電源オンまで、何日掛かったか覚えていません。
ノートに8080のアセンブリ言語でコーディングして、その横にハンドアッセンブルした機械語を書いて、ようやく16進キーでちまちま入力して行く必要がありました。
アセンブリ言語自体は、それまで、IBM System/360互換のメインフレーム(HITAC 8250)で学習していた事や、命令セットの種類もメインフレームに比べてシンプルで、さほど抵抗はありませんでした。
ただ、ハンドアッセンブルでは、分岐先のアドレスを自分でコーディングしなければならず、1バイトでも分岐先のアドレスがずれるような事があれば、いとも簡単に暴走してしまうため細心の注意が必要でした。
後に、BASIC言語のインタプリタが実行できる日立製作所製のパソコンのベーシックマスターを利用出来るようになり、個人レベルのコンピューティング環境の大きな進歩を実感する事ができました。
BASICインタプリタを利用したBASICプログラミングは、それまでのアセンブリ言語に比べて生産性が格段に向上しました。
しかし、BASICインタプリタでは、VRAMデータの更新など細かい操作に対して制約があり、それらの操作はアセンブリ言語(機械語)を利用する必要がありました。
そのような経緯で、ベーシックマスターでは、モトローラ6800のアセンブリ言語(機械語)のコーディングも行う事になりました。
Z80のパソコンのMZ-80シリーズがリリースされてからは、アルバイトでBASICプログラム開発を行なった程度で、Z80アセンブリ言語については、その命令セットの種類の多さに愕然とし、もはやハンドアッセンブルのレベルでは無いと感じていました。
そのほか、8ビットのパソコンとしてはApple Ⅱ の環境で6502アセンブリ言語のプログラムを分析する機会があり、コーディングはしないが、ソースコードを読み込みロジックを読み解くことがありました。
16ビットのCPU/MPUとしては、モトローラのMC68000のアーキテクチャを学習し、その応用としてのアレイ・プロセッサや、マルチ・プロセス・プログラミングなどの研究を行なっていました。
就職後、8086系CPUが搭載された IBM-PCや、その互換機を利用するようになってからは、C言語や、8086アセンブリ言語を利用するようになりました。
当然ながら、この時点の8086アセンブリ言語でのハンド・アッセンブルすることはありませんでしたが、8080アセンブリ言語の経験は活かされたような気がしています。
また、8086のアーキテクチャ上メモリーサイズの制約がシビアだった頃のプログラミングでは、C言語のコーディングの変更で、コンパイル後の機械語のサイズを推測しながら実装を行わなければならない事などもあり、その頃の苦労が懐かしく思えます。
その後、8086アーキテクチャのCPUは、32ビット、64ビットへ進化しました。そのコア数もシングルからデュアル、クワッド、そしてそれ以上の物が作られるようになり、現在までの Windows OS や Mac のプラットフォームとして利用してきました。
Windows OSでのクライアント・アプリケーション開発では、Visual Basic、Visual COBOL、C#を利用していました。Webアプリケーションでは、Sun Microsystems のJavaとMicrosoft VB.Net を利用していました。(Oracleで扱われているJavaは、利用する機会がありませんでした)
一方で、Macのプラットフォームとしては、MC68000系MPUのもの Macintosh plus、Color Classic、Quadra 660AVを使っていましたが、PowerPC系の物は何故か利用した事がありませんでした。(業務では、PowerPCを搭載したIBM RS/6000を利用する機会はありました)
それ以降のインテルMacについては、2025年2月現在まで、Mac miniシリーズが続いており、次は、AppleシリコンのMac miniを整備予定です。(家族は、早くからAppleシリコンのノート型Macを利用していました。)
※ ここまでのマイクロプロセッサの足跡ではパソコン系を対象としていて、業務で利用していたメインフレーム、オフコン、ワークステーションを含みません。