5日目 その1

今日は文字列を表示するところ(harib02f)まで。


問題になるのはhankaku.txtの扱いです。
makefont.exeが使えないので、rubyでC配列を出力させてそれを利用します。


hankaku.txtからC配列を出力させるhankaku.rbはこんな感じ

#!/usr/bin/ruby

fio = open(ARGV[0], "r")

print "char hankaku[0x100][16] = {\n"

fio.each do |line|
  if line =~ /^char (0x..)/
    print "{"
    fio.each do |data|
      break if /^\s*$/ =~ data
        printf "%#x, ", "0b" + data.chomp.tr(".","0").tr("*","1")
    end
    print "}, \n"
  end      
end

print "};\n"

あとはMakefileを編集。
OBJ変数の修正と今回作ったファイルに対するルールを追加してやればOKです。

OBJS = crt.o bootpack.o asmfunc.o hankaku.o
                                  ^^^^^^^^^
(略)

hankaku.c: hankaku.txt
	ruby hankaku.rb $< > $@