#module
#deffunc exmes str
mref string, 32
mref bmscr, 67
ch = bmscr.32 : cw = (ch + 1) / 2 // 文字高さと文字幅
cx = csrx : cy = csry // 初期ポジション
px = cx :py = cy // 表示位置制御用ポジション
s = string
strlen len, s
repeat len
peek chk, s, cnt
// 全角文字
if chk > 128 & (chk < 160) | (chk > 223) {
len = 2
// 半角文字
} else {
// タブ
if chk = 9 {
px += cw * (7 - (((px - cx) / cw) \ 8)) // 空白不足分を計算してセット
continue cnt + 1
}
// 改行
if chk = 13 {
px = cx : py += ch // X座標は初期位置、Y座標は一段下げる
continue cnt + 2
}
len = 1
}
strmid tmp, s, cnt, len
pos px, py : mes tmp
px += cw * len
continue cnt + len
loop
pos cx
return
#global
font "MS ゴシック", 20
pos 10, 10 : mes "12345678901234567890"
exmes "x\ty"
exmes "\tz"
exmes "abcdefgh\tijklmn"
exmes "ABCDEFGHIJ\tKLMN"
exmes "あいうえお\n\tかきくけこ"
stop
|