アカウント名:
パスワード:
一番醜いのは自己書き換えの自己書き換えでハーバードアーキテクチャ対応のコードもちろんスーパーバイザーモードかキャッシュ制御関係のサブルーチンがユーザーモードで使えないと実行できない。動作速度はGCC -o3の10倍、アセンブラの3倍、マシン語でのコーディングは8bit時代のタコ部屋を連想させるのであった。今は、Rubyとか使ってゆる~いコーディングを楽しんでます。
えっと、グラフィック画面上のマウスによるリアルタイムな範囲選択という視覚的なサブルーチンで10MHzの68000でまともに動くというのが前提条件かつ68030でも問題なく動作するという仕様だったと思います。
でなるべく高速動作するようにとの注文だったような気がします。10MHzでも20fpsでハイカラーのアニメーションができてましたよ。マウスの選択画面のうちマウスをポーリングして前回のポーリング時と違う部分だけ描画するコードをまず区切りのいい水平ライン分ループ展開したもの(固定コード)を高速に水平ライン分自己展開するコードを垂直ライン分自己展開するソースだったと思いま
> SP退避 #ちょっと特殊な事してた
ADD HL,SPでもLD (nn),SPでもお好きなほうを
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
昔の自分のコーディング (スコア:0)
一番醜いのは自己書き換えの自己書き換えでハーバードアーキテクチャ対応のコード
もちろんスーパーバイザーモードかキャッシュ制御関係のサブルーチンがユーザーモード
で使えないと実行できない。
動作速度はGCC -o3の10倍、アセンブラの3倍、
マシン語でのコーディングは8bit時代のタコ部屋を連想させるのであった。
今は、Rubyとか使ってゆる~いコーディングを楽しんでます。
Re: (スコア:1)
8Bit機が全盛だった頃・・
低速機でのゲームプログラミングで、PUSH命令で画面クリアするというテクニックを紹介してる記事あったなあw
Re: (スコア:0)
えっと、グラフィック画面上のマウスによるリアルタイムな範囲選択という
視覚的なサブルーチンで10MHzの68000でまともに動くというのが
前提条件かつ68030でも問題なく動作するという仕様だったと思います。
でなるべく高速動作するようにとの注文だったような気がします。
10MHzでも20fpsでハイカラーのアニメーションができてましたよ。
マウスの選択画面のうちマウスをポーリングして前回のポーリング時と
違う部分だけ描画するコードをまず区切りのいい水平ライン分ループ展開
したもの(固定コード)を高速に水平ライン分自己展開するコードを垂直ライン分
自己展開するソースだったと思いま
Re: (スコア:1)
おまけにM1サイクルに1ウェイト必要な機種だったので、実質6502系の1MHz以下の速度しかでないというw
こんなスペックで8KBのVRAMを瞬時にクリアしようというお題でした。
割り込み停止
SP退避 #ちょっと特殊な事してた
LD A,128 #ループ回数カウンタ 8bitレジスタの方が減算が速い&ループ終了判定の回数も減らしたい
LD HL,VRAM末端アドレス + 2
LD SP,HL
LD DE,クリア用定数
:ラベル
PUSH DE を32個
DEC A
JR NZ,:ラベル
SP戻す
割り込み再開
こんな感じだったかな・・
Re:昔の自分のコーディング (スコア:0)
> SP退避 #ちょっと特殊な事してた
ADD HL,SPでもLD (nn),SPでもお好きなほうを