このシリーズも3回目となりました(前回はこちら)。いよいよ、プログラミングのお話らしくなっていく今回、少し想像力を働かせていただければ幸いです。
EX-80を前にして考え込みました。このプログラムを入れるにはどうしたらよいのでしょうか?とりあえず、そんなところからスタートしました。掲載されているプログラムの形式は、今で言えばアセンブリリストというものです。プログラムの番地、アセンブリ命令、アセンブリコード、が並んでいます。こんな感じです。
8200 MVI A,1 3E 01
これ、どうすればいいんだろう?こんなところで突っかかってしまったのです。16進数はわかりますが、他のアルファベットはどうしたらいいんでしょう?そんなものを入れる部分はないし、入れられたとしても入れ方もわかりません。さて困ったと思っていたら、親切な先輩Hさんがアドバイスしてくれました。
左の8200をまず指定して、右の3E, 01を順番に入れていけばいい。
何だ、真ん中は無視すればいいのですか。少し突破口が開けた感じもしましたが、8200を指定するって、どういうこと?8200, 3E, 01と入れていけばいいのかな?ですが、非情にも入れたものは入れただけで、電卓のように数が積み重なるだけでした。要するに、入れ方にルールがあるらしいのです。ここでまた突っかかりました。どうやら、指定する、というアクションが必要なようです。ここでH先輩に教えを請います。
あの、8200を指定する、ってどういうことでしょうか?
8200はアドレスだから、入れた8200がアドレスだ!とコンピュータに教えてあげる必要がある。このために、8200を入れた後に[ADRS]と書かれたボタンを押すのだ。なるほど、さっそくやってみると、8200を入れ、[ADRS]を押すとあ~ら不思議、入れた8200が左に移動しました。
よく見ると、7セグメントLEDによる表示器は、4桁の塊で2つあります。つまり、8桁あるのです。また、わかりやすいように4桁ずつの間には少し間隔があります。つまり、こんな風に見えます。
0123 4567
ここまでのとおり、8200, [ADRS]と入れると、こんな感じになります(細かな点が違ってたらゴメンナサイ)。
8200 0000
ここで、3E, 01と入れたいのですが、ここでもルールがあるようです。単に、3E, 00と入れても、3E00と積み重なるだけです。すると、H先輩がすかさずアドバイスしてくれます。
最初に3Eまで入れたら、[DATA]を押すのだ。
さっきアドレスを指定したから、今度はデータを指定するのだ。決まりで、データは2桁の16進数でしか入れられないから、3Eで[DATA]、00で[DATA]とするのだ。なるほど、こうやって入れるのか。と思って見たら、最初に3Eを入れて[DATA]を押すと、アドレスが8201にアップするのです。なるほど、こうやって次々とデータを入れていけばよいのだ、と少しずつ要領のわかってきた私でした。
だけでこれだけでは何にもなりません。どうするのでしょう?