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 8000H

LD L,DATA

LOOP:
LD A,(HL)
CALL #PUTCHAR
INC HL
DJNZ LOOP
HALT

DATA:
DB 'Hello, world!'

これで23バイト。まだトップには及ばない。(つづく)