[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2342] Re: trevize2, estoril2.



小柳です。こんにちは。

trevize2 を試しました。

Hidemi KAWAI wrote:
> 
>   こんにちは、川合です。
> 
>   trevize2とestoril2をベータリリースします。
> 
>   主な変更点は以下の通りです。

test025, test026 の動作を確認しました。

> 3.2000 JISの仕様が把握できていないために、漢字フォントの取り扱
>   いが正式決定できていません。しかしだからといってver.1.8では漢
>   字表示なし、というのはあんまりなので暫定仕様を決めました。それ
>   は先のJPN16.FNTの後ろに0x7421〜0x7426の6文字を加えただけのもの
>   で、これをJPN16$.FNTと呼ぶとにします。
> 
>     これに関連して、test027を作りました。フォントファイルの構造
>   が変わるとアプリも一部書き換えなければいけなくなるのは必至で、
>   したがって暫定仕様の間でもアプリを作っていいですが、正式決定す
>   るまでは時々変更を迫られることを覚えておいてください。

これですが、例えば16ドットフォントでコードが16ビットなら

( 0x0000 〜 0xffff ) * 16ドットフォントのデータ長(32バイト) = 2 MB

 のメモリ空間を用意して、フォントデータの存在する部分だけ書き込んで
いけば、OSASK のメモリ管理では、書き込み/読み込みを行わないページは
実際にはメモリは消費されないので、問題ないと思いますがどうでしょうか?

つまり、フォントが存在しているコード領域情報をフォントデータに含む
ということです。例えば私が shinonome font から作成している JPN16$.FNT
の場合だと、

/* +0x00000〜0x05dff : JISの0x2121〜0x287e */
/* +0x09ca0〜0x0a09f : 半角カタカナ 64文字 [2e40-2e5f] */
/* +0x0b040〜0x3cfff : JIS-1, JIS-2全角漢字コード 0x3021〜0x7426 */

の 3つの領域情報を持っていて、この部分のみをメモリに反映します。
データ形式が多少は複雑になりますが、これなら各フォントのコード体系が
何bit であるかだけ決めておけばいいので、後々の変更が簡単になるでしょう。
ただフォントがない部分をアクセスされると、空白ではなくゴミが
出てしまうという問題はありますが。

現在の .FNT ファイルのヘッダにフォントのコードのビット数やフォントの種
別、
フッタ開始位置等を書いておいて、フッタにコード領域を書いておけばいいと
思います。

>     なお、JPN16$.FNTを生成するためにgkfnt1.lzhをアップロードして
>   おきます。しかしこれを使わなくても、きっと小柳さんがすぐにフリ
>   ーフォントファイルを用意してくださるでしょう。

http://homepage1.nifty.com/dreaming/osask/jpn16s2.lzh
に置きました。
半角カタカナのマッピング位置が変更されたようです。
元の JPN16.FNT に 0x7421〜0x7426 を加えただけのものだと半角カタカナが
正しく表示されません。

>   漢字フォントファイルの仕様が近いうちに判明しなければ、このバー
> ジョンが一般公開候補版になります。

2000JIS を調べてみようとは思っていますが、少し時間がかかりそうです。

# テストに使用していた FD が 1枚不良セクタが出ました。
# 1 か月前に使用開始してまだ20〜30回くらいしか書き込みを行っていない
# のですが。捨てることにしました。

-- 
小柳 雅明(Koyanagi.Masaaki !Atmark! nifty.ne.jp)
「人の足を止めるのは"絶望"ではなく"諦観"
  人の足を進めるのは"希望"ではなく"意志"」
                  -- ARMS