バックアップTweet追加された行はこの色です。削除された行はこの色です。[#za9ad027]1:次のプログラムのマシン語の部分を、8000h番地から入力していった。RET}}2:入力後にまた8000h番地に移動して、AUTOにスイッチが入っていることを確認してから、[RUN]を押す。3:LEDの上を矢印が左から右に移動していけば、TK-85がきちんと動作し、しかもプログラムに間違いがないことが判明する([[動画:http://security2600.sakura.ne.jp/main2/data1/CIMG1791.AVI]])。2〜10行目がメインプログラム(注目する桁を変化させる処理を担当)、12行目〜18行目が待機処理用サブルーチン(同じ桁で矢印が表示され続ける処理を担当)になっている。H,83F8H」でHLレジスタに83F8hをセット(H=83h,L=F8h)。--83F8h番地はアドレスディスプレイの上1桁目のためのセグメントデータバッファである。A,08」でAレジスタに8をセット。--LEDが8桁あることに関係する。--Aレジスタは注目しているLEDの桁数に対応する。M,40H」でHLレジスタにセットされているアドレス値に40hをセット。--40hはハイフンを対応するセグメントデータである。--つまり、アドレスディスプレイの上1桁目にハイフンが表示される。ADDR1」でラベル名ADDR1のアドレス値(12行目)の命令が呼び出される。M,00」でHLレジスタにアドレス値に00hをセット。--00hは表示なしを意味する。--つまり、アドレスディスプレイの上1桁目のハイフンの表示が消える。H」でHLレジスタの内容を+1する。A」でAレジスタの内容を-1する。LOOP」でZフラグが0ならばラベル名LOOPのアドレス値にジャンプする。START」でラベル名STARTのアドレス値にジャンプする。--Aを8からデクリメントしていき、0になるとゼロフラグが立つので、Aに8をセットするところまで戻る。8桁目→7桁目→...→1桁目→8桁目→...と注目する桁が変化していく(これは矢印の動きに対応)。D,40H」でDレジスタに40hをセットする。--このDレジスタは矢印がその場で表示され続ける時間に対応している。B,00」でBレジスタに0をセットする。B」でBレジスタの内容を-1する。--この処理が実行されると、Bレジスタは常に-1になる。ADDR3」でZフラグが0ならばラベル名ADDR3のアドレス値にジャンプする。D」でDレジスタの内容を-1にする。ADDR2」でZフラグが0ならばラベル名ADDR2のアドレス値にジャンプする。--つまり、Dレジスタが40hからデクリメントされていき、最終的に0になったら、ジャンプせずに18行目のRET命令によりサブルーチンを抜け出す。D,20H」に変更するして、同じく8000h番地に移動してからプログラムを走らせると、矢印の動きが早くなったことを確認できるはずである([[動画:http://security2600.sakura.ne.jp/main2/data1/CIMG1793.AVI]])。[#p569c6cb]-『TK-85トレーニングブック。