今日のテーマ   日々改造 (^_^;)         
[記事リスト(ツリー表示)]  [ 返信 ]   [新着記事] [最新50] [ワード検索] [過去ログ]

タイトル MS-DOS Player 2023/12/14 更新
投稿日: 2023/12/14(木) 18:36
投稿者konno
 番 号 10990   

MS-DOS Player 2023/12/14 が更新されました。

更新内容を引用します。
-----------------------------------------------------------

INT 10h AH=08hについて、漢字の文字コードを取得できるよう修正しました。

ReadConsoleOutputCharacterAで漢字を1文字だけ取得すると、20hが返るようです。
行全体を取得することで、漢字の第1・2バイトのどちらも読めるようになっているかと思います。

-----------------------------------------------------------

マイナーなファンクションですが、たまたま気が付いてご報告したら対応していただけました。
うれしいです!! \(^^)/ ヤッタ-


きっかけは
古いBASICコンパイラで、SCREEN (C,B) という関数で画面上の文字を読み取れるのですが
DOSVAXJ3 では正常に読み取れましたが、MS-DOS Player では、
1バイト文字は読み取れますが、2バイト文字は、空白文字(文字コード 20h)になって
読み取れません。

そこで、VZマクロで INT10 のBIOSコールの返り値を見てみました。
INT 10/AH=08h VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION

=int10-08.def
*m
80 ^\ "int10-08" ax=$0800, &i($10) &m("int10-08: AX=%04x CF=%d",ax,r).
*

このマクロで、カーソル位置の「★(819Ah)」を見た時の AXの返り値は

VTDOS		1D81
DOSVAXJ3	1F81
MS-DOS Player	1F20

他の2つのエミュでは 漢字の1バイト目のALは 81h ですが、
MS-DOS Player の ALは、20h 空白文字になっています。
念のため 英語モードの VZUS でも見てみました。

MS-DOS Player	1F81  1バイト目
MS-DOS Player	1F9A  2バイト目

どうやら MS-DOS Player での日本語環境で漢字は、INT 10/AH=08h の
返り値が空白になっているように見えます。


興味のある方は、更新前の MS-DOS Player で上のマクロを試してみてください。
これで私が何を弄っていたのかバレてしまったかも。(^^;


作者の武田様に感謝です。m(__)m


- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)   [引用無し]
おなまえ 
Eメール 
タイトル 
メッセージ auto soft pre(図表、プログラム) ※折り返さずに改行を入れてね
 参照先 
 暗証キー (英数字で8文字以内)
 プレビュー          

- 以下のフォームから自分の投稿記事を修正・削除することができます -
   処理   記事No   暗証キー
    [ページトップへ] [管理用]