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

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

?? as_comp.txt

?? TvicHW32(評估版)另一個編寫驅動程序的實用工具(497KB)
?? TXT
字號:
                           TVicHW32 version 3.0
                           ====================

                   Copyright (C) 1997,1998 Victor Ishikeev
                     e-mail: ivi@ufanet.ru, tools@entechtaiwan.com
                     http://www.entechatiwan.com/tools.htm

                             AS_COMP.TXT
                             ===========



CONTENTS
========

1. GENERAL TVicHW32 COMPONENT PROPERTIES AND METHODS
2. DIRECT MEMORY ACCESS WITH TVicHW32 (NEW features!)
3. DIRECT PORT I/O WITH TVicHW32
4. HARDWARE INTERRUPT HANDLING WITH TVicHW32 (NEW features!)
5. SPECIFIC WORK WITH THE LPT PORT (NEW!)
6. CONTACT INFORMATION



1. GENERAL TVicHW32 COMPONENT PROPERTIES AND METHODS
====================================================

After successfully adding the TVicHW32 component to your VCL, and
after copying the kernel-mode driver(s) to the appropriate Windows
directories, you can test the functionality of the component, and
examine the sample code provided, by opening the included HW_TEST
demonstration program.

TVicHW32 has the following general component properties and methods:

    constructor Create (Owner: TComponent); override;
    -------------------------------------------------
    The Create method allocates memory to create the TVicHW32 
    component and initializes data as needed. Note that Create does 
    *not* automatically open the kernel-mode driver: you must open the
    kernel-mode driver with the OpenDriver method (see below).

    You do not normally need to directly call the Create method; the 
    component is automatically created at run-time.
    
    destructor Destroy; override;
    -----------------------------
    The Destroy method destroys the TVicHW32 component releases the 
    memory allocated to it. If a hardware interrupt was "unmasked" to
    permit direct access, the "mask" is automatically restored, and if 
    the kernel-mode driver was opened, it is automatically closed.

    You do not normally need to directly call the Destroy method; the 
    component is automatically destroyed when the application closes.

    procedure OpenDriver;
    ---------------------
    Loads the vichwXX.vxd (under Windows 95) or vichwXX.sys (under 
    Windows NT) kernel-mode driver, providing direct access to the 
    hardware. If the kernel-mode driver was successfully opened, the
    boolean ActiveHW property (see below) will be set to True; if the 
    procedure fails, the ActiveHW property will be False.

    procedure CloseDriver;
    ----------------------
    Closes the kernel-mode driver and releases memory allocated to it.
    If a hardware interrupt was "unmasked", the "mask" is restored. If the
    driver was successfully closed, the ActiveHW property (see below) will
    be set to False.

    property ActiveHW: Boolean; (published, read);
    ----------------------------------------------
    The read-only and run-time ActiveHW property specifies whether the
    kernel-mode driver is open. ActiveHW returns True if the driver is
    open, or False if it is not.


2. DIRECT MEMORY ACCESS WITH TVicHW32 (includes NEW features!)
==============================================================

The following function permits direct memory acccess:

    function MapPhysToLinear (PhAddr: dWord; Size: dWord): Pointer;
    ---------------------------------------- ----------------------
    Maps a specific physical address to a pointer in linear memory, 
    where PhAddr is the base address and Size is the actual number of
    bytes to which access is required.

    NEW! Now you can get up 16 of valid pointers to various physical 
    ===  addresses.

    The pointer returned by MapPhysToLinear() can be used in Mem[],
    MemW[] and in MemL[] properties (NEW! see below)
    
    The following example returns a pointer to the system ROM BIOS area:

    type 
      TBiosArray = array [0 ..255] of Byte;
      PBiosArray = ^TBiosArray;

    var 
      pBIOS: PBiosArray;

    begin
      with VicHw32 do
      begin
        OpenDriver;
        if ActiveHW then
        begin
          PBIOS:=MapPhysToLinear ($F8000,256); //255 bytes beginning at $F8000
          {...working with pBIOS...}
          CloseDriver;
        end
        else ShowMessage('ERROR: Kernel-mode driver is not open.'); 
      end;
    end;

NEW!
====
For access to the predefined memory area, TVicHW32 3.0 provides an 
implementation of the traditional Borland Pascal 7 predefined arrays,
Mem, MemW and MemL

    property    Mem[Base:Pointer; Index:DWORD]  : Byte; read, write;
    -----------------------------------------------------------------
    Value of the Mem array is of type Byte.
    This property allows read/write one byte  from the array type Byte
    based at given linear  address: Result := Mem[Base, index]. 
    "Index" value should begin from the "0" value.
    In general, "Base" can be any valid linear pointer to the memory. But 
    if this pointer was received from the MapPhysToLinear() function then 
    you can access physical memory also.

    property    MemW[Base:Pointer; Index:DWORD]  : Word; read, write;
    -----------------------------------------------------------------
    Value of the MemW array is of type Word.
    This property allows read/write two bytes (one word) from the array
    type word based at given linear  address: Result := MemW[Base, index]. 
    "Index" value should begin from the "0" value.

    property    MemL[Base:Pointer; Index:DWORD]  : DWORD; read, write;
    -----------------------------------------------------------------
    Value of the MemL array is of type DWORD.
    This property allows read/write four bytes (two words) from the array
    type DWORD based at given linear  address: Result := MemL[Base, index]. 
    "Index" value should begin from the "0" value.

    The following example demonstrates direct access to the physical memory
    address 0040:0008:

    type TLPTAddress : array[1..3] of Word;
         PLPTAddress :^PLPTAddress;
    var  PLPT        : PLPTAddress;
         index       : DWORD;

    with VicHw32 do
    begin
      {...}
      PLPT := MapPhysToLinear($408,6); // Map 6 bytes to the linear address space
     
      for index:= 0 to 2 do
        ShowMessage("Address of LPT"+IntToStr(index+1)+" is: "+IntToHex(MemW[PLPT,index]);
      {...}
    end;


3. DIRECT PORT I/O WITH TVicHW32
================================

For access to the 80x86 CPU data ports, TVicHW32 provides an implementation of
the traditional Borland Pascal 7 predefined arrays, Port and PortW, and adds
PortL (which accepts a DWORD) and a "Hard/Soft" boolean switch.

When a value is assigned to an array of type Port, PortW, or PortL, the value 
is output to the selected port. When an array of type Port, PortW or PortL is 
referenced in an expression, its value is input from the selected port. Use of 
the Port, PortW and PortL arrays are restricted to assignment and reference in 
expressions only.

The following properties permit direct I/O port access:

    property Port[Index: Word]: Byte; (public, read, write);
    --------------------------------------------------------
    Value of the Port array is of type Byte.

    property PortW [Index: Word]: Word; (public, read, write);
    --------------------------------------- ------------------
    Value of the PortW array is of type Word.

    property PortL [Index: Word]: dWord; (public, read, write);
    --------------------------------------- -------------------
    Value of the PortL array is of type DWord.

    procedure   PortControl(Ports:pPortRec; NumPorts:Word);
    -------------------------------------------------------

    This method allows write/read array of ports.

    type PortRec = array[1..NumPorts] of record
           PortAddr : Word;    // Address
           PortData : Byte;    // Data (for writing or after reading)
           fWrite   : Boolean; // TRUE if you want to write this port 
                               // and FALSE if to read.
         end;
     pPortRec   =^PortRec;

    procedure ReadPortFIFO(PortAddr:Word; NumPorts:Word; var Buffer);
    ----------------------------------------------------------------
   
    This method allows read array of bytes from single port.

    procedure WritePortFIFO(PortAddr:Word; NumPorts:Word; var Buffer);
    ------------------------------------------------------------------
   
    This method allows write array of bytes to single port.

    property HardAccess: Boolean; (published, read, write); default TRUE;
    --------------------------------------- -----------------------------
    The HardAccess property determines whether the kernel-mode driver
    should use "hard" or "soft" access to the I/O ports. If set to True
    "hard" access is employed; if set to False "soft" access is employed.

    "Soft" access provides higher performance access to ports, but may fail
    if the port(s) addressed are already in use by another kernel-mode 
    driver. While slower, "Hard" access provides more reliable access to
    ports which have already been opened by another kernel-mode driver. 
    I reccomend you use HardAccess := TRUE.

    The following example demonstrates direct port I/O calls, and generally
    complies with traditional Borland Pascal 7 syntax to facilitate porting
    16-bit code to Delphi 2:

    with VicHw32 do
    begin
      {...}
      Port[$2F8]:=$34;     // write a byte to port
      {...}
      MyByte:=Port[$2f9];  // read a byte from a port
      {...}
    end;


4. HARDWARE INTERRUPT HANDLING WITH TVicHW32 (NEW features!)
============================================================

In a Win32 environment, hardware interrupts are normally hidden or "masked" 
by Windows; the TVicHW32 kernel-mode driver allows you to "unmask" the 
interrupt for direct handling by your application. Note that only one 
interrupt can be handled at a time.

The following properties and methods permit access to hardware interrupts.

    property OnHwInterrupt (Sender        : TObject;
                            HwCounter     : Longint;
                            LPT_DataReg   : Byte;
                            LPT_StatusReg : Byte;
                            Keyb_ScanCode : Byte) of object; published;
    -------------------------------------------------------------------
    Notification event that a specific hardware interrupt has occurred.

    HwCounter       : shows how many interruption was processed in the driver.
    LPT_DataReg     : if used IRQ7 then driver reads base LPT port (data)
    LPT_StatusReg   : if used IRQ7 then driver reads status LPT register(base+2)
    Keyb_ScanKode   : if used IRQ1 then driver allows you see all keystrokes
                      (scan codes) from the keyboard.

    property IRQNumber: Byte; (published, read, write)
    --------------------------------------------------
    Specifies which hardware interrupt (IRQ1..15) is to be unmasked for 
    processing. Note that IRQ0 (the system timer) is *not* supported.

    property IRQMasked : Boolean; (public, read, write);
    ---------------------------------------------------
    Unmasks (IRQMasked := TRUE) or masks the hardware interrupt specified 
    by the IRQNumber property, so that an OnHWInterrupt event will be generated 
    when a hardware interrupt occurs.
    You can read this property when you want check if current IRQ masked or not. 

5. SPECIFIC WORK WITH THE LPT PORT (NEW!)
=========================================

Now TVicHW32 provides extended properties and methods for work with the
printer (LPT) port.   

==== BASE ====

    property LPTNumPorts : Byte; (public, read only)
    -------------------------------------------
    Shows how many LPT ports are installed on your PC.

    property LPTNumber : Byte; (public, read, write, default 1);
    -----------------------------------------------------------
    Allows select a current LPT port.

    property LPTBasePort : Word; (public, read);
    --------------------------------------------
    Returns a base address of the current LPT port.

==== PINS ====

    property Pin[Index:1..25] : Boolean; (public, read, write)
    ---------------------------------------------------------
    Allows : 1) Read an electrical level from the select pin of
             current LPT port. Returns TRUE if current level is HIGH
             2) Write an electrical level to the selected pin.
                TRUE - HIGH level.
    Note: Not all pins are accessible for this operation. Run test example
          for more info.

==== STATUS ====

    property LPTAckwl : Boolean (public, read)
    ------------------------------------------
    Returns ACKWL state from the printer

    property LPTBusy : Boolean (public, read)
    ------------------------------------------
    Returns BUSY state from the printer

    property LPTPaperEnd : Boolean (public, read)
    --------------------------------------------
    Returns PAPER END state from the printer
    
    property LPTSlct : Boolean (public, read)
    ------------------------------------------
    Returns SLCT state from the printer

    property LPTError : Boolean (public, read)
    ------------------------------------------
    Returns ERROR state from the printer

=== COMMANDS ===

    procedure LPTStrobe; public;
    ----------------------------
    Sends STROBE signal to the printer

    procedure LPTAutofd(Flag:Boolean); public;
    ------------------------------------------
    Sets current AUTOFD  state on printer

    procedure LPTInit; public;
    -------------------------------------
    Resets printer by sending INIT signal

    procedure LPTSlctIn; public;
    ----------------------------------
    Sends SLCTIN signal to the printer

    function LPTPrintChar(ch:Char):Boolean; public;
    -----------------------------------------------
    Sends one symbol to the printer. Returns TRUE if
    successed. Otherwise you need repeat this operation.   
    

6. CONTACT INFORMATION
======================

    Comments, questions and suggestions regarding TVicHW32 can be directed
by e-mail to ivi@ufanet.ru or tools@entechtaiwan.com. For the latest version
of TVicHW32 visit http://www.entechatiwan.com/tools.htm

With best wishes,

Victor Ishikeev
Oct 1998

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99久久99小草精品免视看| 美女脱光内衣内裤视频久久影院| 精品av综合导航| 欧美一区二区三区公司| 欧美日本一区二区三区| 91精品国产综合久久婷婷香蕉| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 色偷偷88欧美精品久久久| 91国偷自产一区二区使用方法| 色综合久久中文字幕综合网| 色狠狠色狠狠综合| 91麻豆精品国产91久久久久久| 日韩欧美国产不卡| 国产亚洲一区二区三区在线观看| 久久久久久久久久久久久女国产乱 | 亚洲福利一二三区| 丝袜美腿亚洲综合| 国产一区二区三区不卡在线观看| 成人美女在线观看| 欧美日韩卡一卡二| 26uuu国产日韩综合| 亚洲欧洲色图综合| 日本午夜一本久久久综合| 国产伦精品一区二区三区免费| av中文字幕一区| 欧美一区二区视频在线观看2022| 精品99999| 亚洲宅男天堂在线观看无病毒| 日韩在线a电影| 波多野结衣91| 欧美一区二区三区四区高清| 中文字幕中文字幕一区| 免费成人美女在线观看.| 成人精品视频一区二区三区| 欧美日本国产一区| 亚洲欧洲av色图| 久久99久久99| 欧美色精品在线视频| 国产日本欧美一区二区| 丝袜脚交一区二区| 色屁屁一区二区| 久久久久久久国产精品影院| 五月激情六月综合| 91在线丨porny丨国产| 久久久久久久久免费| 午夜视黄欧洲亚洲| 91影院在线观看| 国产欧美一区二区三区在线看蜜臀| 性久久久久久久| 91麻豆免费观看| 久久久久久麻豆| 蜜桃传媒麻豆第一区在线观看| 91九色最新地址| 一色屋精品亚洲香蕉网站| 久久91精品国产91久久小草| 欧美在线不卡一区| 亚洲欧美一区二区久久| 丁香啪啪综合成人亚洲小说| 亚洲精品一区二区三区蜜桃下载 | 免费在线一区观看| 欧美日产国产精品| 亚洲第四色夜色| 欧洲av一区二区嗯嗯嗯啊| 亚洲欧美国产77777| 成人高清伦理免费影院在线观看| 久久女同精品一区二区| 国内外成人在线视频| 欧美精品一区二区在线观看| 久久99九九99精品| 久久综合色8888| 国产福利一区二区三区视频在线| 欧美岛国在线观看| 精品影视av免费| 欧美变态凌虐bdsm| 国产乱一区二区| 国产精品无码永久免费888| 国产精品1区2区| 国产精品电影院| 91网站黄www| 香蕉乱码成人久久天堂爱免费| 欧美日韩高清一区二区三区| 石原莉奈在线亚洲二区| 日韩免费视频一区| 久久成人久久鬼色| 欧美国产精品一区二区三区| 99国产精品视频免费观看| 亚洲最色的网站| 日韩精品一区二区在线观看| 国产在线精品国自产拍免费| 国产目拍亚洲精品99久久精品| 97精品国产露脸对白| 亚洲韩国一区二区三区| 欧美大度的电影原声| 丁香天五香天堂综合| 一区二区三区在线高清| 日韩女优电影在线观看| 高清国产一区二区三区| 一区二区三区电影在线播| 日韩精品一区二区三区蜜臀| 国产成人精品免费网站| 亚洲一区二区三区免费视频| 欧美成人综合网站| 97se亚洲国产综合自在线不卡| 视频精品一区二区| 国产精品入口麻豆原神| 51久久夜色精品国产麻豆| 国产91丝袜在线播放0| 洋洋av久久久久久久一区| 日韩欧美高清一区| 在线免费观看日本欧美| 国产专区欧美精品| 午夜影院久久久| 自拍偷拍国产精品| 欧美成人免费网站| 欧美色综合网站| 成人av网站大全| 久久丁香综合五月国产三级网站| 综合色中文字幕| 精品国产第一区二区三区观看体验| 色8久久人人97超碰香蕉987| 国产一区二区三区香蕉| 五月天久久比比资源色| 自拍偷在线精品自拍偷无码专区| 欧美一区二区三区成人| 在线观看一区不卡| gogo大胆日本视频一区| 国产一区二区不卡| 日韩成人免费电影| 亚洲一区二区欧美日韩| 国产精品不卡视频| 亚洲国产精品高清| 久久色视频免费观看| 日韩欧美不卡一区| 欧美精品在线观看播放| 欧美亚洲国产bt| 色94色欧美sute亚洲线路二| a在线播放不卡| 成人激情电影免费在线观看| 国产成人午夜高潮毛片| 国产美女精品人人做人人爽| 精品在线一区二区| 精品一区二区三区在线视频| 日本女优在线视频一区二区| 香港成人在线视频| 午夜精品一区在线观看| 午夜在线成人av| 日韩中文字幕麻豆| 欧美a一区二区| 久久国产剧场电影| 国模大尺度一区二区三区| 狠狠久久亚洲欧美| 国产99一区视频免费| 不卡在线观看av| 99v久久综合狠狠综合久久| 成人国产精品免费网站| 91论坛在线播放| 欧美日韩综合在线| 日韩视频中午一区| 26uuu欧美日本| 国产精品污网站| 一区二区三区蜜桃网| 亚洲成人中文在线| 精品亚洲成a人| 不卡一卡二卡三乱码免费网站| 成人黄色在线看| 欧洲av在线精品| 日韩精品中文字幕一区二区三区 | 亚洲免费在线电影| 亚洲午夜在线视频| 久久电影网站中文字幕| 成人午夜激情在线| 欧美日韩成人在线| 久久久久久久久99精品| 亚洲欧洲成人av每日更新| 日日摸夜夜添夜夜添精品视频 | av激情综合网| 欧美日韩国产天堂| 久久久综合视频| 亚洲激情在线播放| 狠狠色丁香久久婷婷综| 95精品视频在线| 日韩女优电影在线观看| 成人欧美一区二区三区小说| 首页亚洲欧美制服丝腿| 丰满少妇在线播放bd日韩电影| 色呦呦国产精品| 久久久欧美精品sm网站| 亚洲第一精品在线| 成人一区二区三区视频| 欧美午夜不卡视频| 国产精品久久久久久久岛一牛影视 | 国产精品国产馆在线真实露脸| 亚洲高清在线精品| va亚洲va日韩不卡在线观看| 日韩写真欧美这视频| 亚洲乱码国产乱码精品精的特点 | 麻豆精品一区二区三区| 91亚洲国产成人精品一区二三| 日韩欧美资源站| 亚洲成av人影院|