[表紙頁]へ  関連記事の目次へ
[令和三年四月五日(2021/04/05)]
PC110 No.5 FrontFrame検討中 VPATCH2 [to English Note

+++ VPATCH2の試験台:No.5 +++

MoonLightさんが、サイトに上げて居られる「VPATCH2.C」と「config.txt」を拝借して、「6型WVGA-TFT−LCD」の"画面の右寄せ"を検討してみた。

ところが、現在「WVGA-TFT-LCD」搭載のマシンは、どれも左端が見えないものばかりになっている。
幸か不幸か、それらの中で、(次に前枠を入れ替える予定の)この「No.5:無銘」は、実は、左端の「IBMロゴ部」を切り取った後、貼り戻してあるだけなのだ。(図2[クリック]
(右寄せは、「ct65535e.exe」で行っている)
それを、再び剥がして、左端が見えるようにして、実験を始めた。

VPATCH2」+αを適用したら、"VGA画面"はきちんと表示出来た!
此の「VPATCH2」は、実行後にソフト・ブートする方式だが、レジスタ値などは、後で、MoonLightさんから頂いた値などを付け加えている。
おお、結構!(図1
これは、「VGA-TFT-LCD」対応については、もう完成形だと思う。

他方、「WVGA-TFT-LCD」では、右寄せは出来るが、右端が欠ける。これの補正の仕方が、未だ見付らない。
あれこれ実験していて思ったのは、もしかしたら「WVGA-TFT」対応については、守備範囲外ではなかろうか、ということ。
それに、「WVGA−TFT」では、「ドット・クロック」を25MHz(XR54=0xC0)に上げることは無理で、XR54=0xC8、0xCCが適当であった。
これらのことから、「WVGA-TFT」対応は、もっと別の考え方(例えば、浮動画面を前提とした"特製BIOS"とか)をする必要があるのかもしれない。
(後日、MoonLightさんにもご意見も伺おうと思っているが、もう少し実験してみてからにしようと思う)

−−−−−−−−−−−−−−−−−−−−−−−−−

+++ 画面、XRレジスタ値 +++

此の「VPATCH2」を「WVGA-TFT-LCD」に使った場合でも、正常な"VGAモード"(つまり、"左寄せ画面")になる。
「XR56」の値を増やせば、それに応じた画面の"右寄せ"は出来る。
しかし、その分だけ、"右端が欠ける"。(図3

此の"右端欠け"を補正することが出来る「XRレジスタ」はどれなのか?その値は?
(以前に教わっていたのだが、)今回やっと、"あ、なるほど!"と気が付いたのは、"C000:0A90〜"の領域に、"XRレジスタ(番号)"と"(その)値"が、"対"で並んでいたこと。(図4[クリック] 四角で囲んだのが、XRレジスタ番号)

これらは、幾つかのブロックに分かれているので、多分、割り込み"INT 10H"で呼び出される"ビデオサービス"の各ルーチンで使われる値群だろう。
となると、どのルーチンも、"WVGA対応モード"なんてのは無くて、極く標準的な処理しか出来ないのではないかという疑念が生じている。
"WVGA画面上の任意の場所に、VGA画面をシフトして置く"というような、非常識な/非定型な要望には応えてくれないかもしれない。

「アプリケーション・プログラム」が、自由に画面を作り直しても、最後は"VGAモード"に戻すだろうから、"WVGAモード"のままを期待するのは、"間違い"のような気もするが...未だ、分からない。

いずれにせよ、(「ct65535e.exe」のように、)「XR1Cレジスタ」に、「50h〜7Fh」の値を設定するルーチンを呼び出せば、(事後処理的に)"右端欠け"を補正出来るので、"事後対策"は可能だろう。
望みは、"事前対策"なのだが、自動あるいは、手動の"事後対応手段"を設けることも考えねばならないかもしれない。


−*−*−*−*−*−*−*−*−*−*−*−*−*−*−

[2021/04/05]
PC110 No.5 FrontFrame under consideration VPATCH2

+++ VPATCH2 test stand : No.5 ++++

Mr. MoonLight says " VPATCH2.C " and "config.txt" are borrowed from "6 inch WVGA-TFT-LCD". Screen right justification " was examined.

However, at present, most of my machines equipped with "fVGA-TFT-LCD" cannot see the left end.
Fortunately or unfortunately, among them, this " No.5:no name " (which will be replaced next time) is actually after cutting off the "IBM logo" at the left end. It's just pasted back. (Fig.2 [click])
(Right justification is done with " ct65535e.exe ")
I peeled it off again so that the left end could be seen, and started the experiment.

After applying " VPATCH2 " + α, the " VGA screen " was displayed properly !
This " VPATCH2 " is a method of soft booting after execution, but register values which given by MoonLight is added.
Oh, fine !!! (Fig.1)
I think this is completed for "VGA-TFT-LCD" support.

On the other hand, with "WVGA-TFT-LCD", right alignment is possible, but the right end is missing.
And I haven't found a way to correct this yet.
When I was experimenting with this and that, I thought maybe it was out of the defensive range for "WVGA-TFT" support.
In addition, with "WVGA-TFT", it was impossible to raise the "dot clock" to 25MHz (XR54 = 0xC0), and XR54 = 0xC8 and 0xCC were appropriate.
From these things, it may be necessary to think differently (for example, "special BIOS" that assumes a floating screen) for "WVGA-TFT" support.
(I'm thinking of asking Mr. MoonLight for his opinions after a later date, so I'll experiment a little more.)
−−−−−−−−−−−−−−−−−−−−−−−−

+++ Screen, XR register value +++

Even if this " VPATCH2 " is used for " WVGA-TFT-LCD ", the normal "VGA mode" (that is, "left-aligned screen") become.
When I increase the value of "XR56", I can "right justify" the screen accordingly.
However, that much, " the right edge is missing ". (Fig.3)

Which "XR register" can correct this " missing right edge " ? What is its value ?
(Although I was taught before) At last, I noticed "Oh, I see !" In the area of "C000:0A90~", "XR register (number)" and "(that) value" , "Pair" lined up. (Fig.4 [click] XR register number surrounded by a square)

These are divided into several blocks, so they are probably the values used in each routine of the "video service" called by the interrupt "INT 10H".
Then, there is a suspicion that none of the routines has a "WVGA compatible mode" and can only perform very standard processing.
It may not respond to insane/atypical requests such as "shift the VGA screen anywhere on the WVGA screen".

Even if the "application program" freely creates the screen, it will eventually return to "VGA mode", so it may be a wrong expect that I'll keep in "WVGA mode"... I still don't know.

In any case, put the value of " 50h~7Fh " in the " XR1C register" (like " ct65535e.exe "). By calling the routine to be set, "right end chipping" can be corrected (post-processing), so "post-measures" may be able to take separately.
The hope is "pre-emptive measures", but it may be necessary to consider providing automatic or manual "post-action measures".
to [Top page]  to [Related pages]

[表紙頁]へ  関連記事の目次へ