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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? msvc50dlg.cpp

?? TvicHW32(評估版)另一個(gè)編寫驅(qū)動程序的實(shí)用工具(497KB)
?? CPP
字號:
// msvc50Dlg.cpp : implementation file
//

#include "stdafx.h"
#include "msvc50.h"
#include "msvc50Dlg.h"
#include <winsvc.h>
#include "tvichw32.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

PVicHW32Descriptor HwCtrl      = NULL;
BOOL			   ActiveHW    = FALSE;
short			   IRQ         = 10;	
void *             PointPhys   = NULL;
DWORD              PhysAddr = 0;
long               Flag_Intr   = 0;
BYTE               membuffer[256];
char               buffer[255];
HFONT	           hFontMemdump = 0;
UINT               TimerID = 0;
DWORD              Sum_Ticks = 0;
DWORD              IRQCounter = 0;
DWORD              Flag_Tim  = 0;
DWORD              OldTicker =0, CurrTicker  = 0;
HANDLE             hDlg;
short              Data_Reg, Status_Reg, Scan_Code;

/////////////////////////////////////////////////////////////////////////////
// CMSVC50Dlg dialog

CMSVC50Dlg::CMSVC50Dlg(CWnd* pParent /*=NULL*/)
	: CDialog(CMSVC50Dlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMSVC50Dlg)
	m_Unmask = FALSE;
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CMSVC50Dlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMSVC50Dlg)
	DDX_Check(pDX, IDC_UNMASK, m_Unmask);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CMSVC50Dlg, CDialog)
	//{{AFX_MSG_MAP(CMSVC50Dlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(ID_OPENDRIVER, OnOpendriver)
	ON_BN_CLICKED(ID_CLOSEDRIVER, OnClosedriver)
	ON_BN_CLICKED(IDC_WPIN1, OnWpin)
	ON_BN_CLICKED(IDC_READPORT, OnReadPort)
	ON_BN_CLICKED(IDC_WRITEPORT, OnWritePort)
	ON_BN_CLICKED(IDC_HARD, OnHardAccess)
	ON_BN_CLICKED(IDC_READMEMORY, OnReadMemory)
	ON_BN_CLICKED(IDC_RPIN25, OnShowButtons)
	ON_BN_CLICKED(IDC_UNMASK, OnUnmask)
	ON_BN_CLICKED(IDC_INIT, OnLPTInit)
	ON_EN_CHANGE(IDC_LPT_NUMBER, OnChangeLptNumber)
	ON_BN_CLICKED(IDC_WPIN10, OnWpin)
	ON_BN_CLICKED(IDC_EXIT, OnOK)
	ON_BN_CLICKED(IDC_WPIN2, OnWpin)
	ON_BN_CLICKED(IDC_WPIN20, OnWpin)
	ON_BN_CLICKED(IDC_WPIN11, OnWpin)
	ON_BN_CLICKED(IDC_WPIN3, OnWpin)
	ON_BN_CLICKED(IDC_WPIN12, OnWpin)
	ON_BN_CLICKED(IDC_WPIN13, OnWpin)
	ON_BN_CLICKED(IDC_WPIN14, OnWpin)
	ON_BN_CLICKED(IDC_WPIN15, OnWpin)
	ON_BN_CLICKED(IDC_WPIN16, OnWpin)
	ON_BN_CLICKED(IDC_WPIN17, OnWpin)
	ON_BN_CLICKED(IDC_WPIN18, OnWpin)
	ON_BN_CLICKED(IDC_WPIN19, OnWpin)
	ON_BN_CLICKED(IDC_WPIN4, OnWpin)
	ON_BN_CLICKED(IDC_WPIN5, OnWpin)
	ON_BN_CLICKED(IDC_WPIN6, OnWpin)
	ON_BN_CLICKED(IDC_WPIN7, OnWpin)
	ON_BN_CLICKED(IDC_WPIN8, OnWpin)
	ON_BN_CLICKED(IDC_WPIN9, OnWpin)
	ON_BN_CLICKED(IDC_WPIN21, OnWpin)
	ON_BN_CLICKED(IDC_WPIN22, OnWpin)
	ON_BN_CLICKED(IDC_WPIN23, OnWpin)
	ON_BN_CLICKED(IDC_WPIN24, OnWpin)
	ON_BN_CLICKED(IDC_WPIN25, OnWpin)
	ON_BN_CLICKED(IDC_LPT_IRQ, OnLptIrq)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

//----------------------------------------------------------------------------
DWORD
HexToInt(char* s)
{
	char hexch[] = "0123456789ABCDEF";
	int i,j;
   DWORD r,n,k;
   char ch;

  	k=1; r=0;
  	for (i=strlen(s);  i>0; i--) {
   	ch = s[i-1]; if (ch > 0x3f) ch &= 0xDF;
   	n = 0;
    	for (j = 0; j<16; j++)
      	if (ch == hexch[j])
         	n = j;
    	r += (n*k);
     	k *= 16;
	}
  	return r;
}


//----------------------------------------------------------------------------
char*
PrintMemLine(char *szBuf, LPSTR mem, int len, int dwid, DWORD olbl)
{
	int i, j;
	BYTE  c;
   BYTE  buff[80];
   BYTE  tbuf[80];

	if (len > dwid)
   	len = dwid;

	*szBuf = 0;

	// memory address
   sprintf((char *)tbuf, "%08X ", olbl);
   strcpy(szBuf, (char *)tbuf);

   for (i = 0; i < len; i++) {
   	c = *mem++;

       sprintf((char *)tbuf, "%02X", c);
       strcat(szBuf, (char *)tbuf);

       if (c >= 32 && c < 127)
       	buff[i] = c;
       else
       	buff[i] = 46;
    }

    j = dwid - i;

    buff[i] = 0;

    for (i = j; i > 0; i--)
        strcat(szBuf, "   ");

    // add ASCII codes.
    sprintf((char *)tbuf, " %s", (char *)buff);		// " |%s|"
    strcat(szBuf, (char *)tbuf);

    for (i = j; i > 0; i--)
        strcat(szBuf, " ");

    return(szBuf);
}

void CALLBACK EXPORT OnMyTimer(
   HWND hWnd,      //handle of CWnd that called SetTimer
   UINT nMsg,      //WM_TIMER
   UINT nIDEvent,  //timer identification
   DWORD dwTime    //system time
)
{

	int n,i;

	if (ActiveHW) {

	  for (i=1; i<=17; i++) {

            n = GetPin(HwCtrl,i)?1:0;

            CheckDlgButton(hWnd,IDC_RPIN+i,n);


	  }

	  CheckDlgButton(hWnd,IDC_ACKWL,GetLPTAckwl(HwCtrl)?1:0);
      CheckDlgButton(hWnd,IDC_BUSY,GetLPTBusy(HwCtrl)?1:0);
      CheckDlgButton(hWnd,IDC_ERROR,GetLPTError(HwCtrl)?1:0);
      CheckDlgButton(hWnd,IDC_PE,GetLPTPaperEnd(HwCtrl)?1:0);
      CheckDlgButton(hWnd,IDC_SLCT,GetLPTSlct(HwCtrl)?1:0);


      SetDlgItemInt(hWnd,IDE_IRQCOUNT  , IRQCounter, FALSE);
	  SetDlgItemInt(hWnd,IDE_IRQHANDLED, Flag_Intr, FALSE);
	  SetDlgItemInt(hWnd,IDE_IRQTIME   , Flag_Tim / 1000, FALSE);

      sprintf(buffer, "%02Xh", Scan_Code);
	  SetDlgItemText(hWnd,IDC_SCAN,buffer);
	  sprintf(buffer, "%02Xh", Data_Reg);
	  SetDlgItemText(hWnd,IDC_DATA,buffer);
	  sprintf(buffer, "%02Xh", Status_Reg);
	  SetDlgItemText(hWnd,IDC_STATUS,buffer);

       
      if (ActiveHW && (!IsIRQMasked(HwCtrl))){
        CurrTicker = GetTickCount();
        Flag_Tim = Sum_Ticks+CurrTicker-OldTicker;
	  }
      else  OldTicker = GetTickCount();
	}
	
}

/////////////////////////////////////////////////////////////////////////////
// CMSVC50Dlg message handlers

BOOL CMSVC50Dlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here

	CheckDlgButton(IDC_HARD,1);
	
	SetDlgItemText(IDC_PORT0, "300");
	SetDlgItemText(IDC_PORT1, "300");
	SetDlgItemText(IDC_PORT2, "300");
	SetDlgItemText(IDC_PORT3, "300");
    SetDlgItemText(IDE_MEMADDR, "000C0044");

	SetDlgItemText(IDC_IRQ, "10");
	SetDlgItemText(IDC_LPTS, "0");
	SetDlgItemText(IDC_LPT_NUMBER, "0");
	SetDlgItemText(IDC_BASE, "000h");
	
    hFontMemdump = CreateFont(-12, 0, 0, 0, FW_NORMAL,
   			0, 0, 0,  ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
            DEFAULT_QUALITY, FIXED_PITCH | FF_DONTCARE, "Courier New");

   	SendDlgItemMessage(IDL_MEMDUMP, WM_SETFONT, (WPARAM)hFontMemdump, 0L);
	SendDlgItemMessage(IDE_MEMADDR, WM_SETFONT, (WPARAM)hFontMemdump, 0L);
	//SendDlgItemMessage(IDL_MEMDUMP, WM_SETFONT, (WPARAM)hFontMemdump, 0L);
	//SendDlgItemMessage(IDL_MEMDUMP, WM_SETFONT, (WPARAM)hFontMemdump, 0L);
	//SendDlgItemMessage(IDL_MEMDUMP, WM_SETFONT, (WPARAM)hFontMemdump, 0L);

   
    GetDlgItem(IDC_WPIN10)->EnableWindow(FALSE);
    GetDlgItem(IDC_WPIN11)->EnableWindow(FALSE);
    GetDlgItem(IDC_WPIN12)->EnableWindow(FALSE);
    GetDlgItem(IDC_WPIN13)->EnableWindow(FALSE);
   
    GetDlgItem(IDC_WPIN15)->EnableWindow(FALSE);
   
    if ((GetVersion() & 0x80000000)!=0) GetDlgItem(IDC_LABEL3)->SetWindowText("Operating system: Windows 95/98");
    else GetDlgItem(IDC_LABEL3)->SetWindowText("Operating system: Windows NT");

	TimerID = SetTimer(1000, 100, OnMyTimer);
	UpdateData();
    //E_Addr.text = IntToHex(PhysAddr,8);
     OnShowButtons();    

	return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CMSVC50Dlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CMSVC50Dlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CMSVC50Dlg::OnOpendriver() 
{
	
 HwCtrl = 0;
 HwCtrl = OpenTVicHW32(HwCtrl);

 if (!GetActiveHW(HwCtrl)){
 
    MessageBeep(0);
    MessageBox("The driver VICHWxx not found",
                           " Warning! ",MB_OK | MB_ICONWARNING);
 }
 else {
         ActiveHW = TRUE;
		 IRQ = (WORD) GetDlgItemInt(IDC_IRQ, NULL, FALSE);

         SetIRQ(HwCtrl,IRQ,NULL);  

	 	 for (int i = 1; i<=17; i++) 
       	 	SetPin(HwCtrl,i,FALSE);	
 };
 GetDlgItem(IDC_READMEMORY)->EnableWindow(TRUE);
 OnShowButtons();	
}

void CMSVC50Dlg::OnClosedriver() 
{
	
  if (ActiveHW) SetPortByte(HwCtrl,GetLPTBasePort(HwCtrl)+2,0);
  CheckDlgButton(IDC_LPT_IRQ,0);
  CheckDlgButton(IDC_UNMASK,0);
  PointPhys=NULL;
  GetDlgItem(IDC_READMEMORY)->EnableWindow(FALSE);
  Flag_Intr=0;
  ActiveHW=FALSE;
  HwCtrl=CloseTVicHW32(HwCtrl);
  OnShowButtons();

}

void CMSVC50Dlg::OnOK() 
{
	OnClosedriver();
	CDialog::OnOK();
}

BEGIN_EVENTSINK_MAP(CMSVC50Dlg, CDialog)
    //{{AFX_EVENTSINK_MAP(CMSVC50Dlg)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()


void CMSVC50Dlg::OnWpin() 
{
	if (ActiveHW)
	  for (int i = 1; i<=17; i++) 
	 	SetPin(HwCtrl,i,IsDlgButtonChecked(IDC_WPIN1+i-1)==1);	
}


void CMSVC50Dlg::OnReadPort() 
{
	WORD a;
	
	for (int i=0; i<4; i++) {
		GetDlgItemText(IDC_PORT0 + i, buffer, 40);
        a = (WORD) HexToInt(buffer);
		sprintf(buffer, "%02X", GetPortByte( HwCtrl, a ));
		SetDlgItemText(IDC_VAL0 + i, buffer);
	}
}

void CMSVC50Dlg::OnWritePort() 
{
	WORD a;
	BYTE d;

    for (int i=0; i<4; i++) {
		GetDlgItemText(IDC_PORT0 + i, buffer, 40);
		a = (WORD) HexToInt(buffer);
		GetDlgItemText(IDC_VAL0  + i, buffer, 40);
   		d = (BYTE) HexToInt(buffer);
        SetPortByte( HwCtrl, a, d);
	}	
}

void CMSVC50Dlg::OnHardAccess() 
{
  SetHardAccess( HwCtrl, (BOOL)((SendDlgItemMessage(IDC_HARD, BM_GETSTATE, 0, 0) & 1) != 0) );	
}

void CMSVC50Dlg::OnReadMemory() 
{
    GetDlgItemText(IDE_MEMADDR, buffer, 40);
    PhysAddr = HexToInt(buffer);
    sprintf(buffer, "%08X", PhysAddr);
    SetDlgItemText(IDE_MEMADDR, buffer);
    PointPhys = (void*)MapPhysToLinear(HwCtrl,PhysAddr, 256);
    //sprintf(buffer, "%08X", PointPhys);
	//SetDlgItemText(IDE_MEMADDR2, buffer);
	OnShowButtons();

    if (PointPhys != NULL) {
	   	memcpy(membuffer, (BYTE*) PointPhys, 256);
		SendDlgItemMessage( IDL_MEMDUMP, LB_RESETCONTENT, 0, 0);
    	for (int i=0; i<16; i++) {
    		PrintMemLine(buffer, (LPSTR) &membuffer[i*16], 16, 16, PhysAddr + (DWORD)(i*16));
	    	SendDlgItemMessage(IDL_MEMDUMP, LB_ADDSTRING, 0, (LPARAM) (LPCTSTR)buffer);
		}
	}
}

void CMSVC50Dlg::OnShowButtons() 
{
   GetDlgItem(IDC_READMEMORY)->EnableWindow(ActiveHW);

   if (ActiveHW) {

	   SetDlgItemInt(IDC_LPTS,GetLPTNumPorts(HwCtrl));
	   if (GetDlgItemInt(IDC_LPT_NUMBER) != (WORD)GetLPTNumber(HwCtrl))
	      SetDlgItemInt(IDC_LPT_NUMBER,GetLPTNumber(HwCtrl));
       sprintf(buffer, "%03Xh", GetLPTBasePort(HwCtrl));
	   SetDlgItemText(IDC_BASE, buffer);
	   
   }

   GetDlgItem(IDC_BASE)->EnableWindow(ActiveHW);
   GetDlgItem(IDC_LPT_NUMBER)->EnableWindow(ActiveHW);
   GetDlgItem(IDC_INIT)->EnableWindow(ActiveHW);
   GetDlgItem(IDC_LPTS)->EnableWindow(ActiveHW);
   
   CheckDlgButton(IDC_HARD,(!ActiveHW) || (GetHardAccess(HwCtrl))?1:0);
   GetDlgItem(IDC_HARD)->EnableWindow(ActiveHW);
   GetDlgItem(IDC_IRQ)->EnableWindow(ActiveHW && (!IsDlgButtonChecked(IDC_UNMASK)));
   GetDlgItem(ID_OPENDRIVER)->EnableWindow(!ActiveHW);
   GetDlgItem(ID_CLOSEDRIVER)->EnableWindow(ActiveHW);
   GetDlgItem(IDC_READPORT)->EnableWindow(ActiveHW);
   GetDlgItem(IDC_WRITEPORT)->EnableWindow(ActiveHW);


   GetDlgItem(IDC_UNMASK)->EnableWindow((ActiveHW && IRQ>0 && IRQ<16)?1:0);
   GetDlgItem(IDC_LPT_IRQ)->EnableWindow(ActiveHW &&
       ((IRQ==7) && (GetLPTNumber(HwCtrl) == 1)) ||
       ((IRQ==5) && (GetLPTNumber(HwCtrl) == 2)));
   for (int i = 1;  i<18; i++) {
     if (!ActiveHW) CheckDlgButton(IDC_RPIN1+i-1,0);
	 if (!ActiveHW) CheckDlgButton(IDC_WPIN1+i-1,0);
   };
  
}

void __stdcall OnHWInterrupt(long  HWCounter,
						     short LPT_DataReg,
							 short LPT_StatusReg,
							 short Keyb_ScanCode)
{

  Flag_Intr++;
  Data_Reg   = LPT_DataReg;
  Status_Reg = LPT_StatusReg;
  Scan_Code  = Keyb_ScanCode;
  IRQCounter = HWCounter;

}


void CMSVC50Dlg::OnUnmask() 
{

  if (!IsIRQMasked(HwCtrl)) {
      Sum_Ticks = Flag_Tim;
      
      MaskIRQ(HwCtrl); 

      SetPortByte(HwCtrl,GetLPTBasePort(HwCtrl)+2,0);
      CheckDlgButton(IDC_LPT_IRQ,0);
  }
  else {
      IRQ  =  (WORD) GetDlgItemInt(IDC_IRQ, NULL, FALSE);
      Flag_Intr  =  0;
      Sum_Ticks  =  0;
      Flag_Tim   =  0;
      Scan_Code  =  0;

	  SetIRQ(HwCtrl,IRQ,OnHWInterrupt);  
	  UnmaskIRQ(HwCtrl); 
  
   };
   OnShowButtons();
}

void CMSVC50Dlg::OnLPTInit() 
{
	LPTInit(HwCtrl);
}

void CMSVC50Dlg::OnChangeLptNumber() 
{
  int n = GetDlgItemInt(IDC_LPT_NUMBER, NULL, FALSE);
  if (!ActiveHW) return;
  if ((n>0) && (n<=GetLPTNumPorts(HwCtrl))) {
	    SetLPTNumber(HwCtrl,n);
  }
  else {
    MessageBeep(0);
	MessageBox("Incorrect value!",
                           " Warning! ",MB_OK | MB_ICONWARNING);
  };

  OnShowButtons();
}


void CMSVC50Dlg::OnLptIrq() 
{
	 if (IsDlgButtonChecked(IDC_LPT_IRQ)) SetPortByte(HwCtrl,GetLPTBasePort(HwCtrl)+2,0x10);
     else SetPortByte(HwCtrl,GetLPTBasePort(HwCtrl)+2,0x00);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国中文字幕2020精品| 在线观看欧美精品| 国产精品久久久久久亚洲伦| 成人黄色小视频在线观看| 18成人在线观看| 欧美综合欧美视频| 日韩电影在线看| 久久久久久久久岛国免费| 成人免费观看视频| 亚洲综合激情网| 欧美一区二区三级| 国产美女娇喘av呻吟久久| 国产精品乱码人人做人人爱| 91啪九色porn原创视频在线观看| 色噜噜狠狠一区二区三区果冻| 亚洲人成7777| 7777精品伊人久久久大香线蕉的 | 黑人精品欧美一区二区蜜桃| 国产欧美精品一区aⅴ影院 | 中文字幕av一区二区三区高| 色综合视频一区二区三区高清| 丝袜亚洲另类丝袜在线| 精品国产91洋老外米糕| av在线不卡网| 三级影片在线观看欧美日韩一区二区 | 91在线国内视频| 日日夜夜一区二区| 久久久电影一区二区三区| 91猫先生在线| 免费久久99精品国产| 国产精品久久久爽爽爽麻豆色哟哟| 色乱码一区二区三区88| 精品一区精品二区高清| 日韩一区在线免费观看| 日韩欧美一级在线播放| a级精品国产片在线观看| 日本在线观看不卡视频| 中文字幕中文乱码欧美一区二区 | 久久久久久黄色| 在线观看国产91| 精品一二三四区| 亚洲综合免费观看高清完整版| 2017欧美狠狠色| 欧美色倩网站大全免费| 高清shemale亚洲人妖| 日本欧美在线观看| 中文字幕一区二区视频| 欧美电影免费观看完整版| 91无套直看片红桃| 狠狠色伊人亚洲综合成人| 亚洲狠狠爱一区二区三区| 国产日韩欧美激情| 欧美精品自拍偷拍动漫精品| 成人国产精品免费观看| 久久99国产精品久久99| 亚洲一二三四在线| 国产精品卡一卡二| 精品久久国产老人久久综合| 欧美系列一区二区| 成人黄色a**站在线观看| 久久国产精品第一页| 亚洲成人免费在线| 国产精品高清亚洲| 久久久精品tv| 欧美一区二区三区婷婷月色| 色哟哟国产精品免费观看| 国产成人av电影在线观看| 日本不卡一区二区| 亚洲一区二区黄色| 亚洲人成网站影音先锋播放| 久久精品一级爱片| 精品女同一区二区| 欧美日韩国产影片| 91国产福利在线| 99久久综合99久久综合网站| 国产精品中文字幕欧美| 美国欧美日韩国产在线播放| 亚洲va欧美va人人爽| 亚洲男人天堂av| 中文字幕一区日韩精品欧美| 日本一区二区三区免费乱视频| 欧美mv日韩mv亚洲| 91.xcao| 欧美日韩一区不卡| 欧美在线免费观看视频| 色综合久久久久综合99| 99re成人在线| 波多野结衣的一区二区三区| 国产91在线|亚洲| 国产大陆亚洲精品国产| 国产一区二区福利| 裸体在线国模精品偷拍| 日本午夜精品视频在线观看| 丝袜美腿亚洲综合| 亚洲成人免费观看| 亚洲国产乱码最新视频 | 成人免费电影视频| 国产精品123区| 国产一区二区三区蝌蚪| 激情五月激情综合网| 美女mm1313爽爽久久久蜜臀| 美女www一区二区| 麻豆91在线观看| 蜜臀精品一区二区三区在线观看 | 欧美日韩欧美一区二区| 欧美羞羞免费网站| 欧美日韩久久久一区| 欧美日本在线播放| 欧美剧情电影在线观看完整版免费励志电影 | 精品久久人人做人人爰| 精品国产乱码久久久久久久| 精品国一区二区三区| 久久久一区二区三区捆绑**| 欧美精品一区二区三区蜜桃视频| 精品国产一区二区三区久久久蜜月 | 欧美日韩国产免费| 制服丝袜av成人在线看| 日韩美一区二区三区| 久久亚洲私人国产精品va媚药| 久久久美女毛片| 欧美精彩视频一区二区三区| 中文字幕一区二区三中文字幕 | 最新成人av在线| 亚洲精选视频在线| 亚洲高清免费视频| 日本成人超碰在线观看| 国产一区二区三区久久久| 高清不卡在线观看av| 99精品1区2区| 欧美日韩国产综合一区二区三区 | 亚洲美女淫视频| 亚洲成av人片www| 久久精品国产澳门| 丁香一区二区三区| 在线免费观看日本欧美| 91精品国产乱| 久久精品视频网| 亚洲美女免费视频| 日本欧美韩国一区三区| 国产精品一区二区三区网站| 99vv1com这只有精品| 欧美日韩一区二区在线视频| 日韩美女一区二区三区四区| 国产精品美女久久久久av爽李琼| 亚洲资源在线观看| 毛片不卡一区二区| 成人免费高清视频在线观看| 欧美私人免费视频| 久久综合中文字幕| 亚洲精品免费一二三区| 日本sm残虐另类| 国产不卡视频一区| 欧美三级韩国三级日本一级| 精品粉嫩超白一线天av| 亚洲视频综合在线| 免费在线观看一区| 成人理论电影网| 欧美日韩精品免费观看视频| 久久久久9999亚洲精品| 一区二区三区在线免费| 美女看a上一区| 成人av一区二区三区| 欧美精品99久久久**| 国产精品少妇自拍| 亚洲成av人在线观看| 国产精品456露脸| 欧美日韩免费高清一区色橹橹| 久久精品综合网| 亚洲mv在线观看| 国产999精品久久| 制服丝袜一区二区三区| 国产精品免费视频一区| 日本欧美韩国一区三区| av亚洲精华国产精华| 日韩欧美一区二区在线视频| 亚洲人成网站色在线观看| 精品一二线国产| 欧美日韩在线三级| 国产精品欧美久久久久无广告| 欧美aa在线视频| 色综合中文字幕国产 | 这里只有精品免费| 亚洲欧洲成人精品av97| 久草热8精品视频在线观看| 在线看国产日韩| 欧美激情一区二区在线| 日韩精品成人一区二区三区| 99re热视频这里只精品| 久久综合国产精品| 日韩成人伦理电影在线观看| 91免费观看视频在线| 国产欧美综合在线观看第十页| 七七婷婷婷婷精品国产| 欧美制服丝袜第一页| 国产精品久久久久四虎| 国产一区二区三区免费观看| 91精品国产综合久久蜜臀| 一区二区三区在线播| 丁香婷婷综合五月| 精品日韩av一区二区|