MSX ANKモード

ANKモードのMSX文字集合の入出力に対応させてみました。

MSXは文字を好きなように書き換えることができ、SCREEN 1.5と呼ばれる裏技を使えば色まで付けられますが、ここでは初期状態を前提として変換します。

1バイト


MSXは8ビットPCであり、文字集合はJIS X 0201の拡張となっています。

0x00‐0x1f 制御文字
0x20‐0x7f JIS X 0201左側
0x80‐0x9f 半角ひらがな前半と記号類
0xa0‐0xdf 半角カタカナ(JIS X 0201右側)
0xe0‐0xff 半角ひらがな後半

0x90、0xa0、0xfeは空白です。Unicodeへのマッピングが困りましたが、0xa0はU+00A0に割り当てて、あとは無効としました。内部では独自コードなので、MSX→MSXでは文字情報は失われません。
0xffはカーソルですが、適当な宛先がないので、暫定的に U+2588 FULL BLOCK にマッピングしてあります。

また、Unicodeでは、ひらがなの半角/全角の区別は無いので、そのまま普通のひらがなにマッピングします。
カタカナは、基本は半角として、シフトJISと同様にオプションで全角変換等が可能です。
カタカナの出力は、全角から入力されても、半角から入力されても、全角で濁点や半濁点が付いていても、それなりに出力可能なようにしてあります。

MSXからの入力については、半角カナ+濁点半濁点は、-JA:ZENJOINオプション等で連結可能ですが、半角ひらがな+濁点半濁点は今のところ連結されません。
この符号の扱いにもし需要があるなら、処理を作ります。

2バイト


0x00‐0x1f部分も文字を定義することができ、BASICからは0x01の後に0x40‐0x5fを続ける2バイトシーケンスで出力することができます。

0x01 0x40は空白ですが、これも内部では独自コードですが、Unicodeでは無効文字にマッピングしてあります。

月火水木金土日年月時分秒百千万π
罫線
×大中小

半角漢字というものはないので、これも通常の漢字にマッピングしてあります。
罫線は、細い方にマッピングしてあります。

0x01の後が0x40‐0x5f以外で入力された場合、MSX BASICの動作と同様、0x01を無視して処理します。
0x01の後にCRやLFを入れた場合、改行変換処理を通さずそのままCRまたはLFとして扱われます。

2009/11/19(木)13:47 |Comments(0) |Trackback(0)

製造開発 | ソフトウェア開発 | コンピュータ | [編集]

▲ページトップ

コメント

コメントの投稿

続・MSXの機種依存文字 ホーム ISO/IEC 2022の符号対応状況
トラックバック

この記事にトラックバックする(FC2ブログユーザー)
▲ページトップ

カレンダー

03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -

プロフィール

miraicorp

Author:miraicorp
未来情報産業(株) 社長

主として「ICカードこれひとつ」や「文字、文字コード」処理、時々C++などについて記述しています。

twitterツイッター

管理用

検索フォーム

お知らせ

コメント等お気軽にどうぞ。

気に入ったら拍手して頂けると、今後の記事を書く際の参考や励みになります。

■お仕事を募集しております
ソフトウェア製造の仕事や、原稿執筆の仕事などを随時受け付けております。
お気軽にご相談下さい

■初めての方へ
こまごまと更新しているため、他にも関連する記事があるかもしれません。
「月別アーカイブ」「検索フォーム」「カテゴリ」などをお試し下さい。
トップページはこちら

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

広告枠

メール

メールはこちら

リンク

このブログをリンクに追加する

RSSリンクの表示

QRコード

QR