妄想の続き。
7)プログラムをCALLのみ
LD (SP待避),SP
LD SP,VRAM最終アドレス+1
JP 画面データ#-1,-2
CALL 画面データ#-3,-4 ; 17
CALL 画面データ#-5,-6 ; 17
:
: ×0x2000回実行
:
No WAIT として、
1バイト当たり8.5クロック。
1ページ描画(16Kバイト書き込み)には 90.7ms 。
1秒のフレーム数は、11.0 枚。
上のプログラムが不思議な感じだと思いますが...
CALL はPC をスタックに待避して、新しいアドレスに飛ぶ命令です。
言い換えると、
・現在のレジスタ(PC)の2バイトの値をメモリに書き込む。
・メモリのポインタを2減算する。
・新しい値をレジスタ(PC)に読み込む。
を1命令で実行します。
通常のプログラムではPC が無茶苦茶になるので、データに依存して飛び先が変わるプログラムは使えません。
そこで、外部RAMのエリアの64Kバイト領域すべてを外部回路に割り当てます。
通常のメモリは、
アドレス入力→そのアドレスに格納されているデータを出力
となるところを、外部回路では
アドレス入力→特定のデータを出力
にすると、PC と関係なくプログラムを動かす事が出来ます。
さすがにこれが限界っぽいです。11fps なら見られるかな?
2012年12月05日
この記事へのコメント
コメントを書く

