z80 golf(1)
anarchy golf
http://golf.shinh.org/
でZ80が使えるようになった。
z80部門のランキング
http://golf.shinh.org/l.rb?z8b
ソースとしてマシンコードを入力しないといけないので、マシンコードを覚えていない人は(普通、覚えていないんだろうけども、Z80時代にさんざんハンドアセンブルした人なら覚えているかも)、
http://www.mokehehe.com/z80golf/test.html
でアセンブラのソースをマシンコードに変換。
Z80なら負けるはずがないと思い、さっそくHello, world!チャレンジ。
id:Ozy:20071205#p1のソースを参考に進める。Hello, world!を出力したあとが、出力の最後は\0を無駄に出力しても、それはchopされた上で判定されるようなので、Bレジスタの初期化は不要。あと、開始アドレスは必ず0番地で、レジスタはスタート時にすべて0であることが保証されるので、LD HL,DATA は LD L,DATAとしたほうが1バイト短い。
#PUTCHAR EQU 8000HLD L,DATA
LOOP:
LD A,(HL)
CALL #PUTCHAR
INC HL
DJNZ LOOP
HALTDATA:
DB 'Hello, world!'
これで23バイト。まだトップには及ばない。(つづく)