スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

今更ながら銀河漂流バイファムのオープニングのZ80コードを読んでみる

当時私が高校生だったか、趣味でZ80を覚えたての頃にたまたま見たアニメのオープニングでZ80のニーモニックが一瞬映るのを見た。銀河漂流バイファムというアニメである。演出の都合上なのか、コードは絵を背景に鏡像反転して斜めに傾いていたし、表示も一瞬。当時は高解像度のビデオデッキも無ければ理解するスキルも未熟だったので、あれが何のコードなのかわからず終いだった。

最近amazonプライムビデオのタイトルを眺めていると、なんとあの銀河漂流バイファムがあるではないか。あのコードが何のコードかを30年以上経った今、読んでみた。

結論から言えば、「HLレジスタに格納された16bitデータを表示する処理」であった。

今は便利な時代である。まずは画像をキャプチャーし、フォトショで鏡像反転して更に水平に。なるほど。PS4HXと4HEXOという名前のルーチンがある。

PS4HXを呼ぶと、スペースの表示(出力)後にHLレジスタに格納されている16bitのHEXデータを表示するようだ。実際にどのハードウェアに表示するかは、PRNTSや2HEXO内で記述されており、このコードからはわからない。UARTか何かだろう。PS4HXはPrint Space 4 HeXの略だと思われる。内部では2HEXOと呼ばれる8bitのHEXデータ表示処理を呼んでおり、これを2回呼んで16bit表示にしている。

4HEXOを呼ぶと、スペースは表示されずに、HLレジスタに格納されている16bitのHEXデータのみを表示する。

コメントの内容もコードと合っている。お作法通り、これを呼ぶとAレジスタが破壊されるとまで記載されている。それでもAFをPUSHしているのは、フラグは保存したかったのだろう。アセンブルされたマシンコードも合っている。4HEXOは4 HEX Outの略なのだろうか。

今時アセンブラで書くかどうかは別にして、特に当時まだJTAG ICEなどがメジャーじゃなかった頃に組み込みシステムを開発する場合は、UART経由でデバッグ情報などを出力するために8bitや16bitのHEXデータ出力処理は大抵実装する基本処理であった。これらの一部を抜粋して、演出として使ったのだろう。

ダミーのコードかな?思っていたのだが、実際に動くコードであった。

comment

管理者にだけメッセージを送る

プロフィール

hashiken

Author:hashiken
基本的に自分で作る、直す、メンテする。東京と安曇野の二重生活。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
Photoscope∀
different version
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。