aISA-P21 Windows 95/NT API dl

Rev. 1.00.980423

ADTEK SYSTEM SCIENCE Co., Ltd.
========================================================================

ڎ
1.  Tv
2.  
3.  vO\
4.  API t@X
4.1.   API
4.1.1.  Aisa21GetVersion
4.1.2.  Aisa21Create
4.1.3.  Aisa21Close
4.1.4.  Aisa21GetResource
4.2.  I/O API
4.2.1.  Aisa21InPort
4.2.2.  Aisa21OutPort
4.3.  ̑ API
4.3.1.  Aisa21GetLastError
5.  萔
5.1.  G[R[h
5.2.  _|[gԍ萔
5.3.  ̑̒萔
6.  rW

========================================================================

1.  Tv

@{́AaISA-P21 p[UJ API _Ci~bNNCuiȉuDLLvj
@xŒ`܂B
@foCXhCȍڍׂɂĂ͐GĂ܂B
@ȂAP DLL  aISA-P21 𐧌䂵܂B

========================================================================

2.  

  {Œ` API ́AWindows(R) 95 (Version 4.00.950A4.00.950aA4.00.950b 
  4.00.950cj Windows NT(R) (Version 4.0) ōő 16 ܂łaISA-P21iȉ
  foCXvj𐧌䂷\łB

========================================================================

3.  vO\

  {Œ` API ̓foCXhCo
@Eaisa21.vxdiWindows(R) 95j
  Eaisa21.sys (Windows NT(R))
@ƁALQɑΉ_Ci~bNNCu
@Eaisa21.dlliWindows(R) 95Łj
@Eaisa21.dll (Windows NT(R))
@ɂ܂B

========================================================================

4.  API t@X

    API ͈ȉ̂悤ɑʂ܂B

        1.   API
        2.  I/O API
        3.  ̑ API

  ȂAVisual Basic ̃vg^Cv͐p̂̂ŁÃeLXg
  Rs[Ahy[XgꍇAG[܂B

------------------------------------------------------------------------

4.1.   API

------------------------------------------------------------------------

4.1.1.  Aisa21GetVersion

@\
    o[Wԍ擾B

`
EVisual C++
BOOL    Aisa21GetVersion(PDWORD pdwDllVersion, LPDWORD pdwDrvVer);

EVisual Basic
Function Aisa21GetVersion(pdwDllVersion As Long, pdwDrvVer As Long) As Long

EDelphi
function Aisa21GetVersion(var pdwDllVersion: DWORD; var pdwDrvVer: DWORD) BOOL;


    pdwDllVersion
          DLL ̃o[Wԍi[̈ւ̃|C^B
          NULL B

    pdwDrvVer
          Drv ̃o[Wԍi[̈ւ̃|C^B
          NULL B

o
    *pdwDllVersion
          DLL ̃o[WԍB

    *pdwDrvVer
          Drv ̃o[WԍB

߂l
      API IAsԂ܂B
    FALSE
          sB
    TRUE
          IB


      DLL  Drv ̃o[Wԍ擾B

G[
    AISA21_ERR_SYSTEM
          Windows  GetLastError() R[ĂB̃tH
        _ɃhCo\܂B

------------------------------------------------------------------------

4.1.2.  Aisa21Create

@\
    foCX̎gp錾

`
EVisual C++
#define AISA21_SLOT_AUTO    ((WORD) ~0U)
BOOL    Aisa21Create(PWORD pwLogSlot);

EVisual Basic
Global Const AISA21_SLOT_AUTO = &HFFFF
Function Aisa21Create(pwLogSlot As Integer) As Long

EDelphi
const
    AISA21_SLOT_AUTO    = $ffff;
function Aisa21Create(var pwLogSlot: WORD): BOOL;


    *lpwLogSlot
          gpfoCXw肵܂B
          AISA21_SLOT_AUTO w肵ꍇAfoCX݂Ă_
        XbgT܂BłɃAvP[VɂgpĂ
        foCX̓XLbv܂B

          ȌAAvP[V͂̒lŃfoCXʂ܂B

          NULL ͕sB

o
    *lpwLogSlot
          gp\ȃfoCXꍇ́A̘_Xbgԍ
        i[܂BȂꍇA̒l͖`łB

߂l
      API IAsԂ܂B
    FALSE
          sB
    TRUE
          IB


      Xbgɑ݂Ăł낤foCXAAvP[Vgp
    邱Ƃ DRIVER ɒʒm܂B
      XbgɃfoCX݂ĂȂꍇ́AG[ƂȂ܂B
      Xbg̃foCXłɑ̃AvP[VŎgpĂ
    ꍇG[ƂȂ܂BɂA1 ̃foCX͒P̃AvP[
    VrIɎgp܂B

      Aisa21GetVersion ȊO API ĂяoOɕK API Ăяo
    ĂB

G[
    AISA21_ERR_SYSTEM
          Windows  GetLastError() R[ĂB
    AISA21_ERR_NO_DEVICE
          gp\ȃfoCX܂iAISA21_SLOT_AUTO w肵
        ꍇjB
    AISA21_ERR_IN_USE
          w̃foCX͎gpłB
    AISA21_ERR_RESOURCE
          ̃G[邩ǂ͕słB
    AISA21_ERR_INVALID_ARGUMENT
          lpwLogSlot  NULL łB

       API sꍇAAisa21GetLastError()  wLogSlot ɂ
    AISA21_SLOT_AUTO w肵ĂB
------------------------------------------------------------------------

4.1.3.  Aisa21Close

@\
    foCXJ

`
EVisual C++
BOOL    Aisa21Close(WORD wLogSlot);

EVisual Basic
Function Aisa21Close(ByVal wLogSlot As Integer) As Long

EDelphi
function Aisa21Close(wLogSlot: WORD): BOOL;


    wLogSlot
          ̃foCXJ܂B

߂l
      API IAsԂ܂B
    FALSE
          sB
    TRUE
          IB


      AvP[VfoCX̎gpIAfoCX𑼂̃AvP[
    VɊJ邱Ƃ DRIVER ɒʒm܂B

      AvP[VIOɕK API ĂяoĂB

G[
    AISA21_ERR_SYSTEM
          Windows  GetLastError() R[ĂB
    AISA21_ERR_INVALID_SLOT
          sȘ_XbgłB

------------------------------------------------------------------------

4.1.4.  Aisa21GetResource

@\
    \[X擾

`
EVisual C++
#define AISA21_MAX_MEM  9
#define AISA21_MAX_IO   20
#define AISA21_MAX_IRQ  7
#define AISA21_MAX_DMA  7

typedef struct  _AISA21RESOURCE
{
    DWORD   dwNumMemWindows;                    /* Not used */
    DWORD   dwMemBase       [AISA21_MAX_MEM];   /* Not used */
    DWORD   dwMemLength     [AISA21_MAX_MEM];   /* Not used */
    DWORD   dwMemAttrib     [AISA21_MAX_MEM];   /* Not used */
    DWORD   dwNumIOPorts;                       /* Num IO ports */
    DWORD   dwIOPortBase    [AISA21_MAX_IO];    /* I/O port base */
    DWORD   dwIOPortLength  [AISA21_MAX_IO];    /* I/O port length */
    DWORD   dwNumIRQs;                          /* Num IRQ info */
    DWORD   dwIRQRegisters  [AISA21_MAX_IRQ];   /* IRQ list */
    DWORD   dwIRQAttrib     [AISA21_MAX_IRQ];   /* IRQ Attrib list */
    DWORD   dwNumDMAs;                          /* Not used */
    DWORD   dwDMALst        [AISA21_MAX_DMA];   /* Not used */
    DWORD   dwDMAAttrib     [AISA21_MAX_DMA];   /* Not used */
    DWORD   dwReserved1     [3];                /* Not used */
} AISA21RESOURCE;

typedef AISA21RESOURCE      *   PAISA21R;
typedef AISA21RESOURCE FAR  *   LPAISA21R;

BOOL    Aisa21GetResource(WORD wLogSlot, LPAISA21R lpres);

EVisual Basic
Global Const AISA21_MAX_MEM = 9
Global Const AISA21_MAX_IO = 20
Global Const AISA21_MAX_IRQ = 7
Global Const AISA21_MAX_DMA = 7

Type AISA21RESOURCE
    dwNumMemWindows As Long                     ' Not used
    dwMemBase(1 To AISA21_MAX_MEM) As Long      ' Not used
    dwMemLength(1 To AISA21_MAX_MEM) As Long    ' Not used
    dwMemAttrib(1 To AISA21_MAX_MEM) As Long    ' Not used
    dwNumIOPorts As Long                        ' Num IO ports
    dwIOPortBase(1 To AISA21_MAX_IO) As Long    ' I/O port base
    dwIOPortLength(1 To AISA21_MAX_IO) As Long  ' I/O port length
    dwNumIRQs As Long                           ' Num IRQ info
    dwIRQRegisters(1 To AISA21_MAX_IRQ) As Long ' IRQ list
    dwIRQAttrib(1 To AISA21_MAX_IRQ) As Long    ' IRQ Attrib list
    dwNumDMAs As Long                           ' Not used
    dwDMALst(1 To AISA21_MAX_DMA) As Long       ' Not used
    dwDMAAttrib(1 To AISA21_MAX_DMA) As Long    ' Not used
    dwReserved1(1 To 3) As Long                 ' Not used
End Type

Function Aisa21GetResource(ByVal wLogSlot As Integer, lpres As AISA21RESOURCE) As Long

EDelphi
const
    AISA21_MAX_MEM  =  9;
    AISA21_MAX_IO   = 20;
    AISA21_MAX_IRQ  =  7;
    AISA21_MAX_DMA  =  7;

type
    TAISA21RESOURCE = record
        dwNumMemWindows:DWORD;                                  { Not used }
        dwMemBase:      array [1 .. AISA21_MAX_MEM] of DWORD;   { Not used }
        dwMemLength:    array [1 .. AISA21_MAX_MEM] of DWORD;   { Not used }
        dwMemAttrib:    array [1 .. AISA21_MAX_MEM] of DWORD;   { Not used }
        dwNumIOPorts:   DWORD;                                  { Num IO ports }
        dwIOPortBase:   array [1 .. AISA21_MAX_IO] of DWORD;    { I/O port base }
        dwIOPortLength: array [1 .. AISA21_MAX_IO] of DWORD;    { I/O port length }
        dwNumIRQs:      DWORD;                                  { Num IRQ info }
        dwIRQRegisters: array [1 .. AISA21_MAX_IRQ] of DWORD;   { IRQ list }
        dwIRQAttrib:    array [1 .. AISA21_MAX_IRQ] of DWORD;   { IRQ Attrib list }
        dwNumDMAs:      DWORD;                                  { Not used }
        dwDMALst:       array [1 .. AISA21_MAX_DMA] of DWORD;   { Not used }
        dwDMAAttrib:    array [1 .. AISA21_MAX_DMA] of DWORD;   { Not used }
        dwReserved1:    array [1 .. 3] of DWORD;                { Not used }
    end;

function Aisa21GetResource(wLogSlot: WORD; var lpres: AISA21RESOURCE): BOOL;


    wLogSlot
          foCXwB

    lpres
          \[Xi[̈ւ̃|C^B
          NULL ͕sB

o
    *lpres
          蓖ĂĂ郊\[X̏B

߂l
      API IAsԂ܂B
    FALSE
          sB
    TRUE
          IB


      wLogSlot Ŏw肳ꂽfoCXɊ蓖ĂĂ郊\[X\
    pɎ擾܂B

G[
    AISA21_ERR_INVALID_SLOT
          sȘ_XbgłB
    AISA21_ERR_INVALID_ARGUMENT
          lpres  NULL łB

------------------------------------------------------------------------

4.2.  I/O API

------------------------------------------------------------------------

4.2.1.  Aisa21InPort

@\
    ͎s

`
EVisual C++
BOOL    Aisa21InPort(WORD wLogSlot, DWORD dwLogPort, PBYTE pbInValue);

EVisual Basic
Function Aisa21InPort(ByVal wLogSlot As Integer, ByVal dwLogPort As Long, pbInValue As Byte) As Long

EDelphi
function Aisa21InPort(wLogSlot: WORD; dwLogPort: DWORD; var pbInValue: BYTE): BOOL;


    wLogSlot
          foCXwB

    dwLogPort
          ̘_|[gԍ̓͂s܂B

    pbInValue
          ̓f[^i[̈ւ̃|C^B
          NULL ͕sB

o
    *pbInValue
          ̓f[^B

߂l
      API IAsԂ܂B
    FALSE
          sB
    TRUE
          IB


      wLogSlot Ŏw肳ꂽfoCX̘_|[gԍ dwLogPort 
    ܂B
G[
    AISA21_ERR_INVALID_SLOT
          sȘ_XbgłB
    AISA21_ERR_INVALID_PORT
          sȘ_|[gԍłB
    AISA21_ERR_INVALID_ARGUMENT
          lpbInValue  NULL łB

------------------------------------------------------------------------

4.2.2.  Aisa21OutPort

@\
    o͎s

`
EVisual C++
BOOL    Aisa21OutPort(WORD wLogSlot, DWORD dwPort, BYTE bOutValue);

EVisual Basic
Function Aisa21OutPort(ByVal wLogSlot As Integer, ByVal dwLogPort As Long, ByVal bOutValue As Byte) As Long

EDelphi
function Aisa21OutPort(wLogSlot: WORD; dwLogPort: DWORD; bOutValue: BYTE): BOOL;


    wLogSlot
          foCXwB

    dwLogPort
          ̘_|[gԍ̏o͂s܂B

    bOutValue
          o̓f[^B

߂l
      API IAsԂ܂B
    FALSE
          sB
    TRUE
          IB


      wLogSlot Ŏw肳ꂽfoCX̘_|[gԍ dwLogPort ɏo͂
    ܂B

G[
    AISA21_ERR_INVALID_SLOT
          sȘ_XbgłB
    AISA21_ERR_INVALID_PORT
          sȘ_|[gԍłB

========================================================================

4.3.  ̑ API

------------------------------------------------------------------------

4.3.1.  Aisa21GetLastError

@\
    G[R[h擾

`
EVisual C++
DWORD   Aisa21GetLastError(WORD wLogSlot);

EVisual Basic
Function Aisa21GetLastError(ByVal wLogSlot As Integer) As Long

EDelphi
function Aisa21GetLastError(wLogSlot: WORD): DWORD;


    wLogSlot
          foCXwB

߂l
      G[R[hB


      ƂŋߋNG[̃R[h擾܂B

========================================================================

5.  萔

------------------------------------------------------------------------

5.1.  G[R[h

#define AISA21_SUCCESS              0   /* Successfully proccessed */
#define AISA21_ERR_SYSTEM           1   /* Call GetLastError() */
#define AISA21_ERR_NO_DEVICE        2   /* No card */
#define AISA21_ERR_IN_USE           3   /* Device is in use */
#define AISA21_ERR_INVALID_SLOT     4   /* Invalid logical slot */
#define AISA21_ERR_RESOURCE         5   /* Resource exhaustion */
#define AISA21_ERR_INVALID_PORT     6   /* Invalid port */
#define AISA21_ERR_INVALID_ARGUMENT 7   /* Invalid argument */

------------------------------------------------------------------------

5.2.  _|[gԍ萔

#define AISA21_PORT_0   0
#define AISA21_PORT_1   1

------------------------------------------------------------------------

5.3.  ̑̒萔

#define AISA21_MAX_SLOTS    16  /* T|[gXbg */

========================================================================

6.  rW

========================================================================
