老いたテキストモードで塗装赤い長方形の窓のこの目を刺しサイケデリック絵を考えてみましょう:
各白青色の正方形は、文字セルを表します。セルは右上にあり、の最上部はです。 上の数字は、下に読んで、左端からセルの距離を示します。
左の数字は、上からセルの距離を示しています。
対(上から左、距離からの距離)は、各セルのためのユニークな、ペアまたは単にが(あるいはCOORDS)の座標を座標と呼ばれています。
それはXととしてトップからの距離Yと何か-Xと何か-Yとして高さに関連するすべてのものとして幅に関連するすべてのもののように左からの距離を呼ぶのが通例です。
大きな赤い矩形は、ウィンドウです。
Windowsには2つの次元と位置があります。したがって、ウィンドウは、三角形(左上隅の位置座標、サイズ-X、サイズ-Y)で識別できます。
たとえば、赤いウィンドウは、(30,8)で始まるので、((30,8)、22,7)と記述できます。幅は22セル、高さは7セルです。
ウィンドウを記述するもう1つの方法は、左上隅の座標と右下隅の座標です。
この場合、赤いウィンドウは((30,8)、(51,14))です。
サービスint 10h/AH=06h
は赤色ウィンドウアップ内部コンテンツを移動させるために使用することができます。
移動するウィンドウがどこにあるのか、それに2番目の表記を使用するので、私たちはそれを伝える必要があります。
CL
とCH
CHにCL、YにおけるX、左上COORDSを保持する対を形成します。
DL
とDH
はDHにDLにおける右下のCOORDSを保持する一対の、X、Yを形成します。
このコードは、レジスタが適切に(同等の両方のバージョン)
;Easy version ;Normal version
mov cl, 30 mov cx, 081eh
mov ch, 8 mov dx, 0e34h
mov dl, 52
mov dh, 14
サービス・ルーチンの他の入力は自明である負荷が、BH
ため今のところ、我々はゼロに設定されます。
mov ax, 0603h ;Scroll three lines up
xor bh, bh
mov cx, 081eh
mov dx, 0e34h
int 10h
結果は次のとおりです:
我々はウィンドウ内内容は三行でスクロールアップされていることを確認することができます
は、サービスを呼び出すことができます。
ウィンドウの外側には何も触れられていません。
また、下から「シフト」した行は黒い線です。
これは、入力BH
が出現するところで、それらの行を描くのに使用される属性(色と背景色の組み合わせ)を含んでいます。
例えば属性0E0Hは、それを使用することができます、明るい黄色を指定します。
mov ax, 0603h ;Scroll three lines up
mov bh, 0e0h ;Yellow lines
mov cx, 081eh
mov dx, 0e34h
int 10h
最後に、AL
の値は、ウィンドウの高さに等しいライン、すなわち数をウィンドウ全体をスクロールするためにゼロとすることができます。サービスint 10h/AH=07h
については
根拠は同じですが、窓がダウンスクロールします。セル単位で
。
番号を表示するために使用されるセルにも座標があることに注意してください。
実際にはウィンドウのように見えます。
このコンテキストでは、高輝度ビットが設定されています。
ウィンドウ(画面の長方形部分)をスクロールできます。その座標でウィンドウを指定します。ちょうどそれを試してみてください:) – Jester