亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? emulvt.pas

?? 包含常用Internet協議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    while (From <= Length(FEscBuffer)) and (FEscBuffer[From] = ' ') do
        From := From + 1;

    Value := 0;
    while (From <= Length(FEscBuffer)) and (FEscBuffer[From] in ['0'..'9']) do begin
        Value := Value * 10 + Ord(FEscBuffer[From]) - Ord('0');
        From := From + 1;
    end;

    Result := From;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.UnimplementedEscape(EscCmd : Char);
{var
    Buf : String;}
begin
    DebugString('Unimplemented Escape Sequence: ' + FEscBuffer + EscCmd + #13 + #10);
{   Buf := FEscBuffer + EscCmd + #0;
    MessageBox(0, @Buf[1], 'Unimplemented Escape Sequence', MB_OK); }
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.InvalidEscape(EscCmd : Char);
{var
    Buf : String;}
begin
    DebugString('Invalid Escape Sequence: ' + FEscBuffer + EscCmd + #13 + #10);
{   Buf := FEscBuffer + EscCmd + #0;
    MessageBox(0, @Buf[1], 'Invalid Escape Sequence', MB_OK); }
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.ProcessESC_D;                   { Index                   }
begin
    UnimplementedEscape('D');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ Move cursor Up, scroll down if necessary                                  }
procedure TScreen.ProcessESC_M;                   { Reverse index           }
begin
    Dec(FRow);
    if FRow < FScrollRowTop then begin
        FRow := FScrollRowTop;
        ScrollDown;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.ProcessESC_E;                   { Next line               }
begin
    UnimplementedEscape('E');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.ProcessCSI_u;                  { Restore Cursor          }
begin
    UnimplementedEscape('u');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ IBM character set operation (not part of the ANSI standard)		    }
{ <ESC>[0I		=> Set IBM character set			    }
{ <ESC>[1;nnnI		=> Literal mode for nnn next characters		    }
{ <ESC>[2;onoffI	=> Switch carbon mode on (1) or off (0)		    }
{ <ESC>[3;ch;cl;sh;slI	=> Receive carbon mode keyboard code		    }
{ <ESC>[4I              => Select ANSI character set                        }
procedure TScreen.ProcessCSI_I;
var
    From, mode, nnn : Integer;
    ch, cl, sh, sl  : Integer;
begin
    From := GetEscapeParam(2, Mode);

    case Mode of
    0:  begin                { Select IBM character set                     }
            FNoXlat := TRUE;
        end;
    1:	begin                { Set literal mode for next N characters       }
            if FEscBuffer[From] = ';' then
                GetEscapeParam(From + 1, FCntLiteral)
            else
                FCntLiteral := 1;
        end;
    2:	begin		     { Switch carbon mode on or off                 }
            if FEscBuffer[From] = ';' then
                GetEscapeParam(From + 1, nnn)
            else
                nnn := 0;
            FCarbonMode := (nnn <> 0);
        end;
    3:	begin		     { Receive carbon mode key code                 }
            ch := 0; cl := 0; sh := 0; sl := 0;
            if FEscBuffer[From] = ';' then begin
                From := GetEscapeParam(From + 1, cl);
                if FEscBuffer[From] = ';' then begin
                    From := GetEscapeParam(From + 1, ch);
                    if FEscBuffer[From] = ';' then begin
                        From := GetEscapeParam(From + 1, sl);
                        if FEscBuffer[From] = ';' then begin
                            GetEscapeParam(From + 1, sh);
                        end;
                    end;
                end;
            end;
            DebugString('Special key ' +
                        IntToHex(ch, 2) + IntToHex(cl, 2) + ' ' +
                        IntToHex(sh, 2) + IntToHex(sl, 2));
        end;
    4:	begin		     { Select ANSI character set                    }
            FNoXlat := FALSE;
        end;
    else
        UnimplementedEscape('I');
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.BackSpace;
begin
    if FCol > 0 then
        Dec(FCol);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.ClearScreen;
var
    Row : Integer;
begin
    for Row := 0 to FRowCount - 1 do
        Lines[Row].Clear(FAttribute);
    FRow := 0;
    FCol := 0;
    FAllInvalid := TRUE;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.InvClear;
begin
    with FInvRect do begin
        Top    := 9999;
        Left   := 9999;
        Right  := -1;
        Bottom := -1;
    end;
    FAllInvalid := FALSE;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.InvRect(nRow, nCol : Integer);
begin
    if not FAllInvalid then begin
        if FInvRect.Top > nRow then
            FInvRect.Top := nRow;
        if FInvRect.Bottom < nRow then
            FInvRect.Bottom := nRow;
        if FInvRect.Left > nCol then
            FInvRect.Left := nCol;
        if FInvRect.Right < nCol then
            FInvRect.Right := nCol;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ The FLines array is inverted with the last host line at position 0 and
  the first host line as position FRowCount - 1. }
procedure Tscreen.SetLines(I : Integer; Value : TLine);
begin
    if I >= FRowCount then
        FLines^[0] := Value
    else
        FLines^[FRowCount - 1 - I] := Value;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function TScreen.GetLines(I : Integer) : TLine;
begin
    if I >= FRowCount then
        Result := FLines^[0]
    else
        Result := FLines^[FRowCount - 1 - I];
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.Eol;
begin
    with Lines[FRow] do begin
        FillChar(Txt[FCol], FColCount - FCol, ' ');
        FillChar(Att[FCol], (FColCount - FCol) * SizeOf(Att[FCol]), FAttribute);
    end;
    InvRect(Frow, FCol);
    InvRect(Frow, FColCount);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.Eop;
var
    Row : Integer;
begin
    Eol;
    for Row := FRow + 1 to FRowCount - 1 do
        Lines[Row].Clear(FAttribute);
    if FRow = 0 then
        FAllInvalid := TRUE
    else begin
       InvRect(FRow, 0);
       InvRect(FRowCount, FColCount);
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.ProcessCSI_J;                  { Clear the screen         }
var
    Mode : Integer;
    Row  : Integer;
begin
    GetEscapeParam(2, Mode);
    case Mode of
    0: begin                                   { Cursor to end of screen    }
           FAttribute := F_WHITE;
           Eop;
       end;
    1: begin                                   { Start of screen to cursor  }
           for Row := 0 to FRow do
               Lines[Row].Clear(FAttribute);
           InvRect(0, 0);
           InvRect(FRow, FColCount);
       end;
    2: begin                                   { Entire screen              }
           if vtoCopyBackOnClear in FOptions then CopyScreenToBack;
           ClearScreen;
       end;
    else
        InvalidEscape('J');
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.ProcessCSI_K;                  { Erase to End of Line    }
begin
    Eol;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.ProcessCSI_L;                   { Insert Line             }
var
    nLine : Integer;
    nRow  : Integer;
    Temp  : TLine;
begin
    FCol := 0;
    GetEscapeParam(2, nLine);
    if nLine = 0 then
        nLine := 1;

    if (FRow + nLine) > FScrollRowBottom then begin
        for nRow := FRow to FScrollRowBottom do
            Lines[nRow].Clear(FAttribute);
        Exit;
    end;

    for nRow := FScrollRowBottom downto FRow + nLine do begin
        Temp                := Lines[nRow];
        Lines[nRow]         := Lines[nRow - nLine];
        Lines[nRow - nLine] := Temp;
    end;

    for nRow := FRow to FRow + nLine - 1 do
        Lines[nRow].Clear(FAttribute);

    FAllInvalid := TRUE;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TScreen.ProcessCSI_M;                   { Delete Line             }
var
    nLine : Integer;
    nRow  : Integer;
    Temp  : TLine;
begin
    FAllInvalid := TRUE;
    FCol := 0;
    GetEscapeParam(2, nLine);
    if nLine = 0 then
        nLine := 1;

    if (FRow + nLine) > FScrollRowBottom then begin
        for nRow := FRow to FScrollRowBottom do
            Lines[nRow].Clear(FAttribute);
        Exit;
    end;

    for nRow := FRow to FRow + nLine - 1 do
        Lines[nRow].Clear(F_WHITE {FAttribute});  { 12/11/99 }
    for nRow := FRow to FScrollRowBottom - nLine do begin
        Temp                := Lines[nRow];
    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
三级精品在线观看| 国产在线精品一区二区| 国产三区在线成人av| 欧美日韩中文另类| 丁香亚洲综合激情啪啪综合| 天天影视色香欲综合网老头| 亚洲嫩草精品久久| 久久精品这里都是精品| 欧美一区二区久久久| 色偷偷一区二区三区| 成人性生交大合| 九九**精品视频免费播放| 五月天一区二区| 一区二区三区国产精品| 成人欧美一区二区三区小说| 久久精品网站免费观看| 欧美成va人片在线观看| 91精品国产综合久久久蜜臀粉嫩 | 久久99精品久久久| 亚洲午夜激情网站| 亚洲欧美另类综合偷拍| 欧美激情艳妇裸体舞| 久久综合久久99| 日韩精品一区二区三区视频播放 | 东方欧美亚洲色图在线| 狠狠色伊人亚洲综合成人| 日本怡春院一区二区| 亚洲电影你懂得| 亚洲国产精品久久久男人的天堂| 亚洲靠逼com| 一区二区在线看| 一区二区三区在线影院| 一卡二卡三卡日韩欧美| 一区二区三区日韩欧美| 亚洲综合色丁香婷婷六月图片| 亚洲视频综合在线| 亚洲欧美另类久久久精品2019| 亚洲欧洲精品一区二区精品久久久| 国产精品色噜噜| 中文字幕欧美国产| 1区2区3区国产精品| 中文字幕亚洲不卡| ...xxx性欧美| 洋洋av久久久久久久一区| 亚洲午夜日本在线观看| 日韩精品亚洲一区二区三区免费| 肉肉av福利一精品导航| 久久99精品国产麻豆不卡| 精品亚洲porn| 国产精品一区一区| 成人av午夜影院| 91九色最新地址| 8v天堂国产在线一区二区| 日韩欧美国产午夜精品| 国产欧美日韩不卡| 亚洲精品中文在线观看| 午夜精品成人在线视频| 黄页网站大全一区二区| 成人激情免费网站| 在线观看日韩毛片| 4438x亚洲最大成人网| 精品日韩欧美一区二区| 国产精品视频一二三区| 亚洲一区二区在线免费看| 日韩成人伦理电影在线观看| 国产呦萝稀缺另类资源| 91色综合久久久久婷婷| 欧美日韩aaaaa| 久久精品夜色噜噜亚洲aⅴ| 成人免费一区二区三区在线观看| 亚洲国产一区二区a毛片| 精品综合久久久久久8888| 不卡视频在线观看| 91精品免费在线| 国产精品久久久99| 日韩精品欧美精品| 不卡视频在线看| 日韩视频免费观看高清完整版在线观看 | 色综合色狠狠天天综合色| 欧美日韩国产高清一区| 国产婷婷色一区二区三区四区| 亚洲一区二区三区四区五区中文| 久久99在线观看| 99久精品国产| 亚洲精品在线观| 亚洲一区二区视频在线| 国产福利一区二区三区视频在线 | 99精品桃花视频在线观看| 欧美一级淫片007| 一区二区中文视频| 美女视频免费一区| 在线观看日韩av先锋影音电影院| 国产亚洲女人久久久久毛片| 亚洲高清不卡在线| 成人av影院在线| 欧美精品一区二区三区蜜臀| 亚洲一区二区三区激情| 成人免费看片app下载| 91精品国产综合久久蜜臀| 亚洲欧美日韩国产综合| 国产成人高清在线| 日韩欧美的一区二区| 亚洲午夜精品在线| 91香蕉国产在线观看软件| 国产网站一区二区| 久久99热这里只有精品| 欧美日韩在线免费视频| 国产精品久久久99| 高清不卡一区二区| 精品国免费一区二区三区| 丝袜亚洲另类欧美综合| 在线一区二区三区| 中文字幕在线不卡一区二区三区| 精品在线一区二区三区| 欧美一卡二卡在线观看| 日韩精品亚洲一区| 日本道精品一区二区三区| 国产精品久久久久久久蜜臀| 国产精品资源在线观看| 精品欧美一区二区久久| 蜜桃av一区二区三区电影| 欧美一区二区在线观看| 天堂午夜影视日韩欧美一区二区| 色综合久久中文综合久久97| 国产精品国产三级国产普通话三级 | 日韩久久免费av| 日本成人在线看| 天天色综合天天| 一区二区三区高清不卡| 91丨porny丨中文| 国产精品国产馆在线真实露脸| 国产成人自拍网| 国产女主播在线一区二区| 国产黄色精品网站| 国产欧美精品一区aⅴ影院| 粉嫩一区二区三区性色av| 国产精品卡一卡二| 91在线播放网址| 亚洲综合成人在线视频| 欧美日韩精品一区二区三区蜜桃| 视频在线观看一区| 欧美一级艳片视频免费观看| 老司机免费视频一区二区| 精品人伦一区二区色婷婷| 国产精品一区久久久久| 国产精品美女久久久久久久久| www.亚洲精品| 一区二区三区免费看视频| 在线观看区一区二| 免费xxxx性欧美18vr| www一区二区| 成人动漫一区二区| 一区二区三区在线播放| 在线观看91精品国产麻豆| 美女mm1313爽爽久久久蜜臀| 久久久国产精品不卡| 97久久人人超碰| 亚洲高清在线精品| 精品日韩欧美一区二区| www.欧美精品一二区| 五月天网站亚洲| 9191成人精品久久| 韩国毛片一区二区三区| 中文字幕一区二区三区av| 在线欧美日韩精品| 久久国产人妖系列| 国产精品拍天天在线| 在线一区二区观看| 国产综合色视频| 亚洲丝袜另类动漫二区| 91麻豆精品国产自产在线观看一区 | 国产成人精品免费一区二区| 一区二区三区.www| 亚洲精品一区二区三区99| 不卡高清视频专区| 日韩精品高清不卡| 国产精品素人视频| 91精品国产综合久久蜜臀| 国产69精品一区二区亚洲孕妇| 一区二区三区四区五区视频在线观看 | 在线看国产一区| 国产一区二区三区美女| 亚洲一区二区3| 国产性色一区二区| 欧美日韩一区 二区 三区 久久精品| 极品美女销魂一区二区三区| 亚洲自拍偷拍欧美| 日本一区二区三区四区 | 欧美日韩精品一区二区三区| 国产一区二区毛片| 丝袜亚洲另类欧美综合| 亚洲日韩欧美一区二区在线| 欧美mv日韩mv国产| 欧美亚洲日本一区| 成人性生交大片免费看中文网站| 手机精品视频在线观看| 亚洲精品午夜久久久| 欧美经典三级视频一区二区三区| 欧美一级二级三级蜜桃| 91福利视频久久久久|