(527)
527:
画面行数の変化への追従
投稿者:
としき@宿直
2005/09/10(土) 05:54
参照先:http://toshiki.la.coocan.jp/
コメント数 1
DOS/V版Vzがどうなっているのかは知りませんが、PC-98版のVzは、30BIOS対
応ということもあって、動的な画面行数の変化に追従しています。
これをポケ3用Vzで実現するのは難しいのでしょうか。
現在、ポケ3用Vzを常駐後にECSで画面行数を変えると、表示系が完全にお
かしくなってしまい、実質的に使い物にならなくなってしまいます。これが、動
的に表示行数を変えられると、私としては非常にありがたいです。
検討だけでもしてもらえるとありがたいです。
- No.527 -
このTreeへ
[リストへもどる]
pre
(527)
530:
Re: 画面行数の変化への追従
投稿者:
Konno
2005/09/11(日) 00:54
527 番 としき@宿直 さんへのコメント コメント数 1
> DOS/V版Vzがどうなっているのかは知りませんが、PC-98版のVzは、30BIOS対
> 応ということもあって、動的な画面行数の変化に追従しています。
> これをポケ3用Vzで実現するのは難しいのでしょうか。
私もちょっと考えてたんですが難しそうですね。ソースがかなり変っているので
全然読めません。
> 現在、ポケ3用Vzを常駐後にECSで画面行数を変えると、表示系が完全にお
> かしくなってしまい、実質的に使い物にならなくなってしまいます。これが、動
> 的に表示行数を変えられると、私としては非常にありがたいです。
うちではECS常駐後VZがメモリ不足で動きませんでした。DEFが太りすぎ
のようです。バッファを減らしたら起動できました。ファイラーでは行数が増え
ていいですね。
> 検討だけでもしてもらえるとありがたいです。
ソースはたまに眺めているのでいつか読めるようになるといいなぁ。
ポケ3の画面表示などの情報がもっとあればいいんですがねぇ。
- No.530 -
このTreeへ
コメント元:527 へ
[リストへもどる]
pre
(527)
531:
Re^2: 画面行数の変化への追従
投稿者:
としき
2005/09/11(日) 11:58
参照先:http://toshiki.la.coocan.jp/
530 番 Konno さんへのコメント コメント数 1
> 私もちょっと考えてたんですが難しそうですね。ソースがかなり変っているので
> 全然読めません。
そういう事なら、無理は申しません。
あきらめることにします。
- No.531 -
このTreeへ
コメント元:530 へ
[リストへもどる]
pre
(527)
532:
Re^3: 画面行数の変化への追従
投稿者:
Konno
2005/09/11(日) 23:48
531 番 としき さんへのコメント コメント数 1
> そういう事なら、無理は申しません。
> あきらめることにします。
力不足で申し訳ない。
VTEXT や 30BIOS はAPIを公開していて、それで対応できたのだと思いますが
ECS は情報が何も無いんですよね。常駐させると 2F,91,DA をフックしている
ので、たぶん文字表示をBIOSレベルでフックして文字を縮小表示してるのでは
ないかと思いますが。
ECS のソースでもあれば何か分かるかなぁ。いや、私はポケ3の BIOS などの
内部情報も分かってないのでやっぱり無理でしょう。
- No.532 -
このTreeへ
コメント元:531 へ
[リストへもどる]
pre
(527)
533:
Re^4: 画面行数の変化への追従
投稿者:
としき
2005/09/12(月) 00:33
参照先:http://toshiki.la.coocan.jp/
532 番 Konno さんへのコメント コメント数 1
> VTEXT や 30BIOS はAPIを公開していて、それで対応できたのだと思いますが
あ〜、API。
という事は、コールバック関数か何かを使っているんでしょうか。
Vz起動前に行数を変えておけばそれに応じた表示にはなるので、内部でシステム
から行数を取得するルーチンというのは絶対あるはずです。私は、98版などでは
画面表示のたびに画面行数を確認するルーチンをいちいち呼んでいるけれども、ポ
ケ3版の場合にはそういう事を行っていないだけだとばかり思っていたのですよ。
ちなみに、ポケ3で行数を取得するには、 ah=4, int 91hでDHレジスタに返ってく
るはずです。
- No.533 -
このTreeへ
コメント元:532 へ
[リストへもどる]
pre
(527)
534:
Re^5: 画面行数の変化への追従
投稿者:
Konno
2005/09/12(月) 23:38
533 番 としき さんへのコメント コメント数 1
> あ〜、API。
> という事は、コールバック関数か何かを使っているんでしょうか。
30BIOS はわかりませんが、VTEXT では BIOSの拡張で実現していたと思います。
> Vz起動前に行数を変えておけばそれに応じた表示にはなるので、内部でシステム
> から行数を取得するルーチンというのは絶対あるはずです。私は、98版などでは
> 画面表示のたびに画面行数を確認するルーチンをいちいち呼んでいるけれども、ポ
> ケ3版の場合にはそういう事を行っていないだけだとばかり思っていたのですよ。
ううーん、文字が何も表示されないのは、行数の問題よりも、スクリーンモード
とか、表示ページが違うような気がします。例えばグラフィックモードでテキスト
を表示しようとするとこれに似た症状になったような気がします。ECS はおそらく
グラフィックモードで文字をドットで縮小表示させているのではないでしょうか。
> ちなみに、ポケ3で行数を取得するには、 ah=4, int 91hでDHレジスタに返ってく
> るはずです。
これはマクロでキチンと値を取得できました。ついては、上記のスクリーンモード
とか、表示ページを切り替えるような機能はないでしょうか。
- No.534 -
このTreeへ
コメント元:533 へ
[リストへもどる]
pre
(527)
535:
Re^6: 画面行数の変化への追従
投稿者:
としき
2005/09/13(火) 00:36
参照先:http://toshiki.la.coocan.jp/
534 番 Konno さんへのコメント コメント数 1
> これはマクロでキチンと値を取得できました。ついては、上記のスクリーンモード
> とか、表示ページを切り替えるような機能はないでしょうか。
ポケ3には、画面のページという概念はありません。
もしかしたら、スクリーンモードという概念もないんじゃないかなぁ。
例えば、画面に文字を表示した状態で、単に特定のメモリに特定の値を書き込むだけ
で、対応するドットのセット・リセットということが可能です。
この辺のことは、
http://toshiki.la.coocan.jp/computer/oapk3/pk3soft.html
↑ここから落せるグラフィックユーティリティのソースを見ると、わかる人ならわか
るかもしれません。あと、ベクターにある、ポケ3用のMAGファイル表示用ソフト
P3MAGなんかで画像ファイルを表示させて、それからVzの編集画面やらファイラー
やらを表示させてみると、切替という事はしていないんじゃないかという気になって
きます。
でも、じゃぁ、ECSって何をやっているんだろう。
画面モードを切り替えるだけなら常駐する必要はないですよね。
なのに、常駐しているという事は、何かをフックして何かを変換しているわけで。
逆汗すればわかるかもしれないけど、ちょっと気が重いなぁ。
- No.535 -
このTreeへ
コメント元:534 へ
[リストへもどる]
pre
(527)
536:
Re^7: 画面行数の変化への追従
投稿者:
Konno
2005/09/14(水) 01:35
535 番 としき さんへのコメント コメント数 1
> ポケ3には、画面のページという概念はありません。
> もしかしたら、スクリーンモードという概念もないんじゃないかなぁ。
うーむむ、外したようですね。
> なのに、常駐しているという事は、何かをフックして何かを変換しているわけで。
INT91 はフックしているようなので、あとはフォント関係ですかねぇ。
> 逆汗すればわかるかもしれないけど、ちょっと気が重いなぁ。
ソーサーで逆汗してみましたが、やはり INT91 などの BIOS の機能が分からない
ため何をやっているのかさっぱり分かりません。
- No.536 -
このTreeへ
コメント元:535 へ
[リストへもどる]
pre
(527)
538:
Re^8: 画面行数の変化への追従
投稿者:
としき
2005/09/18(日) 10:05
参照先:http://toshiki.la.coocan.jp/
536 番 Konno さんへのコメント コメント数 1
> ソーサーで逆汗してみましたが、やはり INT91 などの BIOS の機能が分からない
> ため何をやっているのかさっぱり分かりません。
どういったものが使われているか、書いてみていただけますか?
INTxxH AH=yyみたいな感じで。
標準的なF−BIOSであればわかると思います。
ポケ3専用のものだと全くわかりませんが。
- No.538 -
このTreeへ
コメント元:536 へ
[リストへもどる]
pre
(527)
539:
Re^9: ECSのINTxx
投稿者:
Konno
2005/09/18(日) 11:46
538 番 としき さんへのコメント コメント数 1
> どういったものが使われているか、書いてみていただけますか?
そうですね。それらしきものを抜き出してみました。
mov ah,0F0h
int99h
mov ah,0Fh
int91h
mov ah,0Bh
int90h
mov ax,0E00h
int90h
mov ah,3
int0ECh
mov ah,2
int0ECh
こんなところです。完全な逆汗ではないので抜けがあるかもしれませんが。
- No.539 -
このTreeへ
コメント元:538 へ
[リストへもどる]
pre
(527)
541:
Re^10: ECSのINTxx
投稿者:
としき
2005/09/18(日) 14:28
参照先:http://toshiki.la.coocan.jp/
539 番 Konno さんへのコメント コメント数 1
> mov ah,0F0h
> int99h
いきなりですが、これはポケ3の独自BIOSのようです。
INT99Hは標準F−BIOSだとマウス用のBIOSです。
手元の資料ではAH=0CHまでしか記載がありません。
> mov ah,0Fh
> int91h
これは、画面のアトリビュート設定です。
DH=桁位置(スタートは1)
DL=行位置(スタートは1)
DS:DI=4バイトの構造体でアトリビュート指定
> mov ah,0Bh
> int90h
キーボードバッファへの文字列の追加です。
AL=0:バッファの先頭に挿入
1:バッファの最後に追加
CX:追加文字数
DS:DI:文字列先頭アドレス
> mov ax,0E00h
> int90h
キー割り当てです。
ファンクションキーなどに任意の文字列を割り当てられるようです。
AL=0:割り当てられた文字に押下されたキーアドレスを付加
1:割り当てられた文字のキーアドレスに00Hを付加
DX:文字コード(JIS)
CX:割り当て文字数
DS:DI:文字列先頭アドレス
> mov ah,3
> int0ECh
かな漢字変換の現在の入力モードを読み取ります。
呼び出しは上記だけです。ALが戻り値です。
> mov ah,2
> int0ECh
かな漢字変換の入力モードの設定です。
ALが入力モードです。
といったところで、何かの参考になるでしょうか。
> こんなところです。完全な逆汗ではないので抜けがあるかもしれませんが。
でも、ソーサーを持っているなんて、うらやましいです。
- No.541 -
このTreeへ
コメント元:539 へ
[リストへもどる]
pre
(527)
544:
Re^11: ECSのINTxx
投稿者:
Konno
2005/09/19(月) 16:35
541 番 としき さんへのコメント
> いきなりですが、これはポケ3の独自BIOSのようです。
> INT99Hは標準F−BIOSだとマウス用のBIOSです。
> 手元の資料ではAH=0CHまでしか記載がありません。
なるほど、それが分かっただけでもかなり絞り込めそうですね。それにしても
同じメーカーで同じ番号に違う機能を割り当てているというのもなんだかなあ。
> といったところで、何かの参考になるでしょうか。
大変参考になります。この情報を元に見直せば何か見えてきそうな気がします。
> でも、ソーサーを持っているなんて、うらやましいです。
若さゆえでしょうか、昔は仕事とは全く関係ないところでえらい金をつぎ込んで
たようです。仕事の選択を間違えたかな。
ほかにも色々買っていたようなので、そのうちリストにしてみようかな。
- No.544 -
このTreeへ
コメント元:541 へ
[リストへもどる]
pre