ホーム > セレクトバグ > 5かい図鑑完成プログラムでバイナリゴルフ

5かい図鑑完成プログラムでバイナリゴルフ

54byte使うのはあまりにも長すぎじゃね?ということで、大規模に修正をかけてメインのコード部分を大幅に短くしました。
手順としては次のような方針。

  1. 埋める順番をd27b→d2a0の方向から、d2a0→d27bの方向に変更、ldd (hl),aを活用
  2. 相対ジャンプを絶対ジャンプにすることで短距離の戻りジャンプを実現
  3. 7Fの代入を先において次のFF代入命令にフォールスルーさせることでコード短縮
  4. 終端文字50を可能な限り活用して無駄を減らす

と、ここまで頑張って30byteまで減らしたのですが、絶対ジャンプのアドレス指定の関係でボックスの5匹目から配置する必要があります。
しかも、メノクラゲのPPから5匹目の先頭アドレスde7cに直接ジャンプしようとするとPU1, PP60というありえない数値を要求されてしまいます。

ということで、頭4匹には事実上のnopになってもらうことにしました。


; 1匹目~4匹目: そそそそそ
bf; cp a x5回
50; ld d, b

; de7c 5匹目 ぜメがめぼ
2e a0; ld l,a0
26 d2; ld h,d2
3e 50; ld a, 50

; de82 6匹目 にぞづョべ
c6 2f; add a, 2f
32; ldd (hl),a
af; xor a
3d; dec a
50; ld d, b

; de88 7匹目 づぼセすぼ
32; ldd (hl),a
3e 8d; ld a, 8d
bd; cp l
3e 50; ld a, 50

; de8e 8匹目 はアんにご
ca 80 de; jp z de80
c6 2a; add a, 2a
50; ld d, b

; de94 9匹目 すつカんの
bd; cp l
c2 85 de; jp nz de85
c9; ret
50; ld d, b

最終的に全体のコード長は削減されていませんが、入力の手間がちょっと減ったということで。

広告
カテゴリー:セレクトバグ タグ:
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。