API-PAC(W32)RM/DIO

Similar documents
API-PAC(W32)

API-PAC(W32)RM/AIO

ACX-PAC(W32)BP, ACX-PAC(W32)AP

untitled

CD Microsoft, MS-DOS, Windows 95, Windows 98,Windows Me, Windows NT, Windows 2000, Visual Basic, Visual Basic.NET, Visual C#, Excel, ActiveX Microsoft

活用ガイド (ソフトウェア編)

LPM-CBUSB2

LMC-CA64U2K

ACX-PAC(W32)

活用ガイド (ソフトウェア編)

Windows XP Windows Me Windows 98 Second Edition Windows /... 25

入門ガイド

LMC-CA84U2

困ったときのQ&A

LHA-FW801

活用ガイド (ハードウェア編)

untitled

i

2

テープバックアップ装置・ユーザーズマニュアル

USB FDユニット ユーザーズマニュアル

C++ ++ Wago_io.dll DLLDynamicLinkLibrary Microsoft VisualBasic Visual C Wago_io.dll Wago_io.dll Wago_io.dll WAGO_OpenCommPort WAGO_CloseCommPort WAGO_

VM-53PA1取扱説明書

はがきファイリングOCR V1.1 ユーザーズガイド

オンラインによる 「電子申告・納税等開始(変更等)届出書」 提出方法

ユーザーズガイド

<4D F736F F F696E74202D C835B B E B8CDD8AB B83685D>

SC-85X2取説



ハードディスクユニット ユーザーズマニュアル

WinDriver PCI Quick Start Guide

ICD-SX78/SX88

ACX-PAC(W32)AP, BP

LAJPutlguide9.PDF

MultiPASS B-20 MultiPASS Suite 3.10使用説明書

N manual_JP.PDF

Macintosh... 5 Windows USB-SCSI... LogitecWare CD-ROM... USB-SCSI USB-SCSI SCSI SCSI

EPSON EasyMP Multi PC Projection Ver.1.10 Operation Guide


ネットワークビデオレコーダー VK-64/VK-16/VK-Lite v2.2 セットアップガイド

ハードディスク ユニット ユーザーズマニュアル

EPSON EasyMP Multi PC Projection Ver.1.00 Operation Guide

II

これわかWord2010_第1部_ indd

パワポカバー入稿用.indd

これでわかるAccess2010

Windows Web Windows Windows WinSock

untitled

困ったときのQ&A

インストールマニュアル

DVD...j.b.g.n.[.h.E.F.A.}.j...A...p65

EPSON EasyMP Multi PC Projection Ver.1.11 Operation Guide

M G

平成18年版 男女共同参画白書

名刺ファイリングOCR ユーザーズガイド

インストールマニュアル

ii

DVD-RAM±R/RWユニット ユーザーズマニュアル


チュートリアル XP Embedded 入門編

i


Wide Scanner TWAIN Source ユーザーズガイド


REX-PCI30LHユーザーズマニュアル

ライブラリー関数リファレンス

EPSON GT-7400U ユーザーズガイド

ExpressUpdate Agent インストレーションマニュアル

エクセルカバー入稿用.indd

Oracleコール・インタフェース for Windows スタート・ガイド リリース8.1.6

LP-M720F

ONLINE_MANUAL

ONLINE_MANUAL

01_.g.r..

Transcription:

PC-MODULE / PC-HELPER API-PAC(W32 DIO

http://www.contec.co.jp/ http://www.contec.com/ http://www.contec.com.cn/ PDF / ( E-mail(tsc@contec.co.jp FAX E-mail Question FAX Question FAX Question API-PAC(W32RM/DIO i

FA/LA FA/LA OEM / ODM OEM E-mail(sales@contec.co.jp ii API-PAC(W32RM/DIO

(1 (2 (3 (4 (5 MS Microsoft Windows Windows NT MS-DOS Microsoft Corporation API-PAC(W32RM/DIO iii

... i... i (... i... ii... ii... ii FA/LA... ii OEM... ii...iii...iii...iii... iv 1... 1... 2 CompactPCI... 2 PCI... 2 E... 2... 3... 3 PIO-32DM(PCI... 3... 4... 5 Visual Basic.NET Visual C++.NET... 7 Visual Basic.NET... 7 Visual C++.NET... 8 Borland Delphi... 9 Borland Delphi... 9... 10 Windows Me/98/95... 11 Windows XP/2000/NT... 11 13... 13 DioOpen... 15 DioOpenEx... 17 DioClose... 19 DioWait... 20 iv API-PAC(W32RM/DIO

DioWaitEx...21 DioSFilter...22 DioUseMutex...24 Dio8255Mode...25 DioGet8255Mode...27 DioSetIoDirection...29 DioGetIoDirection...31 DioInpByte...33 DioOutByte...35 DioEchoBackByte...37 DioInpBit...39 DioOutBit...41 DioEchoBackBit...43 DioInp...45 DINP...47 DioOut...48 DOUT...50 DioEchoBack...51 DINP...53 DioBitInp...54 DBINP...56 DioBitOut...57 DBOUT...59 DioBitEchoBack...60 DBINP...62 DioInpBack...63 DINPB...67 DioOutBack...68 DOUTB...72 DioBitInpBack...73 DBINPB...77 DioBitOutBack...78 DBOUTB...82 DioSts...83 DioStop...85 DioPtnSet...86 DPTNSET...88 API-PAC(W32RM/DIO v

DioPtnStart... 89 DioPtnSts... 91 DioTrgSet... 92 DTRGSET... 95 DioTrgStart... 97 DioTrgSts... 99 DioInpBCD...101 DIBCD...103 DioOutBCD...104 DOBCD...106 DioNInpBCD...107 DIBCD...109 DioNOutBCD...110 DOBCD...112 DioEvent...113 DioIntEnable...118 DioIntSence...119 DioEventEx...122 DioIntEnableEx...127 LpByte...129 LpWord...129 LpDWord...129...130 PIO-32DM(PCI 135...135 Windows Me/98/95...135 Windows XP/2000/NT 2...135...136...142...142 DioOpen...143 DioOpenEx...145 DioClose...146 DioDmSetDirection...147 DioDmSetStandAlone...148 DioDmSetSetMasterCfg...149 vi API-PAC(W32RM/DIO

DioDmSetSlaveCfg...152 DioDmSetStartTrg...154 DioDmSetStartPattern...156 DioDmSetClockTrg...158 DioDmSetInternalClock...160 DioDmSetStopTrg...162 DioDmSetStopNum...164 DioDmReset...166 DioDmSetBuff...167 DioDmStart...169 DioDmStop...170 DioDmGetStatus...171 DioDmGetCount...173 DioDmSetStopEvent...175 DioDmSetCountEvent...177 DioDmInpDWord...179 DioDmOutDWord...180 DioEvent...181 DioIntSence...183 DioIntEnable...184 DioEventEx...185 DioIntEnableEx...187...189...191...191 (PIO-32DM(PCI...192 (SC...193 195 API-PAC(W32RM/DIO vii

viii API-PAC(W32RM/DIO

API-DIO(98/PCW95 Microsoft Windows XP/Me/98/95 (VxD DLL Windows 98/95 API-DIO(98/PCNT Microsoft Windows XP/2000/NT (SYS DLL Windows 2000/NT PIO-32DM(PCI API-DIO(98/PCW95 API-DIO(98/PCNT PIO-32DM(PCI 2 3 API-PAC(W32RM/DIO 1

CompactPCI Win32 API CompactPCI 4 PCI Win32 API PCI 4 E Win32 API E 4 2 API-PAC(W32RM/DIO

API-PAC(W32RM/DIO 3 Win32 API 4 Win32 API 4 ( LSIi8255 ( 8255 PIO-32DM(PCI PIO-32DM(PCI ( / 20MHz ( 20MHz ( PIO ( 4 PIO-32DM(PCI I/O API-DIO(98/PCW95 API-DIO(98/PCNT

API-TOOL API-PAC(W32 API-TOOL DIO5TD.HLP API-DIO HWINSTJ.HLP Q&A 4 4 API-PAC(W32RM/DIO

OS Microsoft Windows Me Microsoft Windows 98 Second Edition Microsoft Windows 95 Microsoft Windows XP Professional Microsoft Windows XP Home Edition Microsoft Windows 2000 Professional Microsoft Windows NT Workstation Ver.3.51 Ver.4.0 Microsoft Windows NT Ver.4.0 Terminal Server Edition Microsoft Windows NT Server Ver.3.51 Ver.4.0 ( Visual C++.Net 2002 2003 *1 Visual C++ Visual Basic.Net 2002 2003 *1 Visual Basic (32bit Borland C++ Builder Borland C++ Ver.2.0 Ver.4.x Ver.5.0 Ver.6.0 Ver.4.0 Ver.5.0 Ver.6.0 Ver.5.0 Ver.6.0 Ver.4.5x Ver.5.0 Borland Delphi Ver.3.0 Ver.4.0 Ver.5.0 Ver.6.0 *2 4 1 *3 4 1 IBM PC/AT DOS/V NEC PC98-NX NEC PC-9800 PCI PI-128L(PCI PI-64L(PCIH PI-32L(PCIH PI-64L(PCI PI-32L(PCI PI-32B(PCIH PI-32B(PCI PO-128L(PCI PO-64L(PCIH PO-32L(PCIH PO-64L(PCI PO-32L(PCI PO-32B(PCIH PO-32B(PCI PIO-64/64L(PCI PIO-32/32L(PCIH PIO-32/32L(PCI PIO-32/32B(PCIH PIO-32/32B(PCI PIO-32/32F(PCI PIO-32/32T(PCI PIO-16/16L(PCIH PIO-16/16L(PCI PIO-16/16RY(PCI PIO-16/16B(PCIH PIO-16/16B(PCI PIO-16/16T(PCI PIO-16/16TB(PCI RRY-16C(PCI RRY-32(PCI PIO-48D(PCI PIO-32DM(PCI LowProfile PCI PIO-16/16L(LPCIH PIO-16/16B(LPCIH PIO-16/16T(LPCIH CompactPCI PI-64L(CPCI PO-64L(CPCI PIO-32/32L(CPCI PC PIO-24W(PM PIO-32D(PM PIO-16/16L(PM ISA PI-64L(PC PI-64T(PC PO-64L(PC PO-64T(PC PIO-32/32L(PC PIO-32/32RL(PC PIO-32/32T(PC PI-32L(PCH PI-32L(PCV PI-32B(PC PI-32B(PCH PI-32TB(PC PI-32T(PCH PI-32RL(PC PO-32L(PCH PO-32L(PCV PO-32B(PC PO-32B(PCH PO-32TB(PC PO-32T(PCH PO-32RL(PC RRY-32(PC PRY-32(PC PIO-16/16L(PCH PIO-16/16L(PCV PIO-16/16B(PC PIO-16/16B(PCH PIO-16/16TB(PC PIO-16/16T(PCH PIO-16/16RL(PC PIO-48W(PC PIO-48D(PC PIO-48C(PC PIO-96W(PC PIO-144W(PC PIO-120D(PC API-PAC(W32RM/DIO 5

98(C PI-32(98E PI-32(98E-F PI-32T(98E PI-64(98E PI-64(98E-F PI-64T(98E PO-32(98E PO-32(98E-F PO-32T(98E PO-64(98E PO-64(98E-F PO-64T(98E PIO-16/16(98E PIO-16/16(98E-F PIO-16/16B(98E PIO-16/16TB(98E PIO-16/16T(98E PIO-32/32(98E PIO-32/32(98E-F PIO-32/32B(98E PIO-32/32TB(98E PIO-32/32T(98E PIO-32/32R(98E PI-32(98H PI-32B(98 PI-32T(98 PI-48(98 PI-48B(98 PI-48T(98 PI-96T(98K PO-32(98H PO-32B(98 PO-32T(98 PO-48(98 PO-48B(98 PO-48T(98 PO-96T(98K PIO-16/16(98H PIO-16/16B(98 PIO-16/16T(98 PIO-24/24(98 PIO-24/24A(98 PIO-24/24B(98 PIO-24/24TB(98 PIO-24/24T(98 PIO-48/48T(98K ACI/DCI-8(98 ACO/DCO-8(98 RRY-16(98 WRY-16(98 SSR-16(98 RRY-32(98 PRY-32(98 PIO-48W(98 PIO-48W(98B-01 PIO-48W(98B-02 PIO-96W(98K *1 Visual Basic.NET Visual C++.NET *2 Borland Delphi *3 16 *4 1 6 API-PAC(W32RM/DIO

Visual Basic.NET Visual C++.NET Visual Basic.NET WIN32API Visual Basic.NET [ ] VB Visual Basic 4 5 6 Visual Basic.NET Program Files CONTEC API-PAC(W32 XXX Samples Inc APIXXX.VB (XXX SIO/DIO/AIO/GPIB/CNT/SMC Visual Basic4,5,6 Visual Basic.NET 16Bit Integer Short 32Bit Long Integer 64Bit Long Any Program Files CONTEC API-PAC(W32 XXX Samples VbNet (XXX SIO/DIO/AIO/GPIB/CNT/SMC Visual Basic Visual Basic 6.0 CD-ROM ( VB6 Visual Basic Visual Basic.NET Visual Basic 4 5 MsgEcho.ocx MsgEcho.ocx CMessage.ocx ( CMessage.ocx API-PAC(W32RM/DIO 7

Visual C++.NET WIN32API Visual C++.NET [ ] C Program Files CONTEC API-PAC(W32 XXX Samples VcNet (XXX SIO/DIO/AIO/GPIB/CNT/SMC Visual C++.NET MFC ManagedC++ Viasual C++ Visual C++ 6.0 CD-ROM ( VC2CPP, VC6CPP / Visual C++.NET CWinApp InitInstance //Enable3dControls(; //LoadStdProfileSettings(0; // INI (MRU MFC [Visual C++ ] - [MFC ] 8 API-PAC(W32RM/DIO

Borland Delphi Borland Delphi WIN32API [ ] apixxx.pas (XXX SIO/DIO/AIO/GPIB/CNT/SMC API-PAC(W32RM/DIO 9

API-DIO(98/PCW95 NT API-DIO(98/PCW95 NT Open, Inp, Out, Close API-TOOL API-TOOL CONFIG.EXE API-TOOL TOOL API-TOOL I/O IRQ API-DIO ( PCI E (0 3 (1 16 ( 0 API-TOOL 1 ( 1 4 ( 0 ( API-DIO =0 =1 DIO00 1 PIO-32/32L(PC 0 3 0 3 0 31 0 31 2 PI-64L(PC 4 11 32 95 3 PO-64L(PC 4 11 32 95 4 PIO-16/16L(PCH 12 13 12 13 96 111 96 111 4 10 API-PAC(W32RM/DIO

API-PAC(W32RM/DIO 11 DLL (VXD/SYS Windows Me/98/95 API-TOOL C: CONTECW95 CONFIG.EXE C: CONTECW95 APCFG.DLL C: WINDOWS SYSTEM APCFG.VXD DLL C: WINDOWS SYSTEM APIDIO.DLL VXD C: WINDOWS SYSTEM APIDIO00.VXD C: WINDOWS SYSTEM APIDIO01.VXD C: WINDOWS SYSTEM APIDIO02.VXD C: WINDOWS SYSTEM APIDIO03.VXD C: WINDOWS SYSTEM APIDIO04.VXD Windows XP/2000/NT API-TOOL C: CONTEC CONFIG.EXE C: CONTEC APCFG.DLL C: WINNT SYSTEM32 DRIVERS APCFG.SYS DLL C: WINNT SYSTEM32 APIDIO.DLL SYS C: WINNT SYSTEM32 DRIVERS APIDIO00.SYS C: WINNT SYSTEM32 DRIVERS APIDIO01.SYS C: WINNT SYSTEM32 DRIVERS APIDIO02.SYS C: WINNT SYSTEM32 DRIVERS APIDIO03.SYS C: WINNT SYSTEM32 DRIVERS APIDIO04.SYS DLL VisualC++ (APIDIO.H LIB (APIDIO.LIB VisualBasic (APIDIO.BAS BorlandC (APIDIO.H LIB (APIDIOBC.LIB

12 API-PAC(W32RM/DIO

API-PAC(W32RM/DIO 13 PIO-32DM(PCI 3 < 1 / 2 > DioOpen DioOpenEx ( DioClose DioWait DioWaitEx (1ms DioSFilter DioUseMutex PIO-32D(PM DioSetIoDirection PIO-32D(PM (Dual DioGetIoDirection PIO-32D(PM (Dual 8255 Dio8255Mode 8255 DioGet8255Mode 8255 DioInpByte DioOutByte DioEchoBackByte DioInpBit DioOutBit DioEchoBackBit ( DioInp ( DioOut ( DioEchoBack ( DioBitInp ( DioBitOut ( DioBitEchoBack ( DioInpBack DioOutBack DioBitInpBack DioBitOutBack DioSts DioStop DioEvent DioIntEnable / DioIntSence DioEventEx ( DioIntEnableEx / (

DioPtnSet DioPtnStart DioPtnSts DioTrgSet DioTrgStart DioTrgSts DioInpBCD DioOutBCD DioNInpBCD DioNOutBCD LpByte LpWord LpDWord... < 2 / 2 > BCD BCD BCD ( BCD ( (Visual Basic (Visual Basic (Visual Basic 1 ( 14 API-PAC(W32RM/DIO

DioOpen (C WORD DrvNo; WORD GrpNo; dwret = DioOpen(&hDrv, DrvNo, GrpNo; (Visual Basic Dim hdrv Dim DrvNo As Integer Dim GrpNo As Integer Dim dwret dwret = DioOpen(hDrv, DrvNo, GrpNo hdrv : DioXxxx DrvNo : : 0 DrvNo 3 001h GrpNo : : 1 GrpNo 16 003h dwret : ( : 0 : 0 ( ( ID I/O ID (DioClose API-TOOL (DioOpen (DioClose (DioOpen (DioClose (DioClose 1 16 API-PAC(W32RM/DIO 15

API-TOOL 1 0 C WORD GrpNo, DrvNo; DrvNo = 0; GrpNo = 1; dwret = DioOpen(&hDrv, DrvNo, GrpNo; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim DrvNo As Integer Dim GrpNo As Integer Dim dwret DrvNo = 0 GrpNo = 1 dwret = DioOpen(hDrv, DrvNo, GrpNo ErrChk(dwRet ' 16 API-PAC(W32RM/DIO

DioOpenEx (C char *DeviceName dwret = DioOpenEx(DeviceName, &hdrv; (Visual Basic Dim DeviceName As String Dim hdrv Dim dwret dwret = DioOpenEx(DeviceName, hdrv hdrv : DioXxxx DeviceName : API-TOOL dwret : ( : 0 : 0 ( ( ID I/O ID (DioClose API-TOOL (DioClose (DioClose 1 16 DioOpenEx 1 DioOpenEx DioClose API-PAC(W32RM/DIO 17

API-TOOL DIO00 C dwret = DioOpenEx( DIO00, &hdrv; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwret dwret = DioOpenEx( DIO00, hdrv ErrChk(dwRet ' 18 API-PAC(W32RM/DIO

DioClose (C dwret = DioClose(hDrv; (Visual Basic Dim hdrv Dim dwret dwret = DioClose(hDrv hdrv : DioOpen dwret : ( : 0 : 0 ( (DioOpen, DioOpenEx (DioOpen 'hdrv' : DioClose DioOpen C dwret = DioClose(hDrv; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwret dwret = DioClose(hDrv ErrChk(dwRet ' API-PAC(W32RM/DIO 19

DioWait (C WORD WaitTim; dwret = DioWait(hDrv, WaitTim; (Visual Basic Dim hdrv Dim WaitTim As Integer Dim dwret dwret = DioWait(hDrv, WaitTim hdrv : DioOpen WaitTim : : 1 WaitTim FFFFh [ms] = 10[ms] WaitTim 60Ah dwret : ( : 0 : 0 ( C WORD WaitTim; WaitTim = 10; /* dwret = DioWait(hDrv, WaitTim; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwret Dim WaitTim As Integer WaitTim = 10 ' dwret = DioWait(hDrv, WaitTim ErrChk(dwRet ' 20 API-PAC(W32RM/DIO

DioWaitEx (C DWORD WaitTim; dwret = DioWaitEx(hDrv, WaitTim; (Visual Basic Dim hdrv Dim WaitTim Dim dwret dwret = DioWaitEx(hDrv, WaitTim hdrv : DioOpen WaitTim : : 1 WaitTim FFFFFFFFh [ms] = 1[ms] WaitTim 60Ah dwret : ( : 0 : 0 ( C DWORD WaitTim; WaitTim = 10; /* dwret = DioWaitEx(hDrv, WaitTim; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwret Dim WaitTim WaitTim = 10 ' dwret = DioWaitEx(hDrv, WaitTim ErrChk(dwRet ' API-PAC(W32RM/DIO 21

DioSFilter ( (C WORD TimCode; WORD InpBitNo; dwret = DioSFilter(hDrv, TimCode, InpBitNo; (Visual Basic Dim hdrv Dim TimCode As Integer Dim InpBitNo As Integer Dim dwret dwret = DioSFilter(hDrv, TimCode, InpBitNo hdrv : DioOpen TimCode : : E PCI (PIO-48D(PCI CompactPCI 0 TimCode 20 0, 12 TimCode 20 634h InpBitNo : E PCI CompactPCI 0 : 0 InpBitNo - 1 610h dwret : ( : 0 : 0 ( 22 API-PAC(W32RM/DIO

( DioOpen DioClose 8.192[ms] : = 8.192[ms] : 0 C WORD TimCode; WORD InpBitNo; TimCode = 16; /* InpBitNo = 0; /* 0 dwret = DioSFilter(hDrv, TimCode, InpBitNo; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim Timcode As Integer Dim InpBitNo As Integer Dim dwret TimCode = 16 ' InpBitNo = 0 ' 0 dwret = DioSFilter(hDrv, TimCode, InpBitNo ErrChk(dwRet ' API-PAC(W32RM/DIO 23

DioUseMutex Dio (C WORD wsw; DioUseMutex(wSw; (Visual Basic Dim wsw As Integer DioUseMutex(wSw wsw : Mutex 0 : Mutex 1 : Mutex API-DIO Mutex Mutex Win32API Mutex Mutex C WORD wsw; wsw = 1; /* DioUseMutex(wSw; Visual Basic Dim wsw As Integer wsw = 1 ' DioUseMutex(wSw 24 API-PAC(W32RM/DIO

Dio8255Mode LSIi8255 (C WORD CNx; WORD CtrlWord; dwret = Dio8255Mode(hDrv, CNx, CtrlWord; (Visual Basic Dim hdrv Dim CNx As Integer Dim CtrlWord As Integer Dim dwret dwret = Dio8255Mode(hDrv, CNx, CtrlWord hdrv : DioOpen CNx : LSIi8255 : 0 CNx LSIi8255-1 630h CtrlWord : 8255 dwret : ( : 0 : 0 ( PCI (PIO-48D(PCI CompactPCI E 631h DioOpen ( (DioInp, DioOut API-PAC(W32RM/DIO 25

( 0 5 : 8255 C WORD CNx, CtrlWord; CtrlWord = 0x9B; for(cnx = 0; CNx < 2; CNx++{ dwret = Dio8255Mode(hDrv, CNx, CtrlWord; } ErrChk(dwRet; /* Visual Basic Dim hdrv Dim CtrlWord As Integer Dim CNx As Integer Dim dwret CtrlWord = &H9B For CNx = 0 To 1 dwret = Dio8255Mode(hDrv, CNx, CtrlWord End ErrChk(dwRet ' 26 API-PAC(W32RM/DIO

DioGet8255Mode LSIi8255 (C WORD CNx; WORD CtrlWord; dwret = DioGet8255Mode(hDrv, CNx, &CtrlWord; (Visual Basic Dim hdrv Dim CNx As Integer Dim CtrlWord As Integer Dim dwret dwret = DioGet8255Mode(hDrv, CNx, CtrlWord hdrv : DioOpen CNx : LSIi8255 : LSIi8255 1 630h CtrlWord : 8255 dwret : ( : 0 : 0 ( PCI (PIO-48D(PCI CompactPCI E 631h DioOpen Dio8255Mode Windows98/95 DioOpen Dio8255Mode Windows2000/NT Dio8255Mode API-PAC(W32RM/DIO 27

( 0 2 C WORD CNx, CtrlWord; CNx = 0; dwret = DioGet8255Mode(hDrv, CNx, &CtrlWord; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim CtrlWord As Integer Dim CNx As Integer Dim dwret CNx = 0 dwret = DioGet8255Mode(hDrv, CNx, CtrlWord ErrChk(dwRet ' 28 API-PAC(W32RM/DIO

DioSetIoDirection PIO-32D(PM I/O (C WORD BoardNo; DWORD dwdir; dwret = DioSetIoDirection(hDrv, BoardNo, dwdir; (Visual Basic Dim hdrv Dim BoardNo As Integer Dim dwdir Dim dwret dwret = DioSetIoDirection(hDrv, BoardNo, dwdir hdrv : DioOpen BoardNo : : 0 BoardNo - 1 642h dwdir : : 0 dwdir 0xf =1 =0 642h dwret : ( : 0 : 0 ( PIO-32D(PM(Dual PCI (PIO-48D(PCI PIO-32D(PM (Dual 642h PIO-32D(PM(Dual DioOpen (DioInp, DioOut DioOpen API-PAC(W32RM/DIO 29

0,1 2,3 C WORD BoardNo; DWORD dwdir, dwret; BoardNo = 0; dwdir = 0x3; dwret = DioSetIoDirection(hDrv, BoardNo, dwdir; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim BoardNo As Integer Dim dwdir Dim dwret BoardNo = 0 dwdir = &H3 dwret = DioSetIoDirection(hDrv, BoardNo, dwdir ErrChk(dwRet ' 30 API-PAC(W32RM/DIO

DioGetIoDirection PIO-32D(PM I/O (C WORD BoardNo; DWORD dwdir; dwret = DioGetIoDirection(hDrv, BoardNo, &dwdir; (Visual Basic Dim hdrv Dim BoardNo As Integer Dim dwdir Dim dwret dwret = DioGetIoDirection(hDrv, BoardNo, dwdir hdrv : DioOpen BoardNo : : 0 BoardNo - 1 642h dwdir : =1 =0 642h dwret : ( : 0 : 0 ( PIO-32D(PM(Dual DioOpen API-PAC(W32RM/DIO 31

0 C WORD BoardNo; DWORD dwdir, dwret; BoardNo = 0; dwret = DioGetIoDirection(hDrv, BoardNo, &dwdir; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim BoardNo As Integer Dim dwdir Dim dwret BoardNo = 0 dwret = DioGetIoDirection(hDrv, BoardNo, dwdir ErrChk(dwRet ' 32 API-PAC(W32RM/DIO

DioInpByte 1 (C WORD InpPortNo; BYTE InpBuf; dwret = DioInpByte(hDrv, InpPortNo, &InpBuf; (Visual Basic Dim hdrv Dim InpPortNo As Integer Dim InpBuf As Byte Dim dwret dwret = DioInpByte(hDrv, InpPortNo, InpBuf hdrv : DioOpen InpPortNo : : 0 InpPortNo - 1 606h InpBuf : dwret : ( : 0 : 0 ( (PI PIO (PO 604h DioOpen Dio8255Mode API-PAC(W32RM/DIO 33

0 C WORD InpPortNo; BYTE InpBuf; InpPortNo = 0; /* 0 dwret = DioInpByte(hDrv, InpPortNo, &InpBuf; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim InpPortNo As Integer Dim InpBuf As Byte Dim dwret InpPortNo = 0 ' 0 dwret = DioInpByte(hDrv, InpPortNo, InpBuf ErrChk(dwRet ' 34 API-PAC(W32RM/DIO

DioOutByte (C WORD OutPortNo; BYTE OutBuf; dwret = DioOutByte(hDrv, OutPortNo, OutBuf; (Visual Basic Dim hdrv Dim OutPortNo As Integer Dim OutBuf As Byte Dim dwret dwret = DioOutByte(hDrv, OutPortNo, OutBuf hdrv : DioOpen OutPortNo : : 0 OutPortNo - 1 606h OutBuf : dwret : ( : 0 : 0 ( (PO PIO (PI 605h DioOpen Dio8255Mode API-PAC(W32RM/DIO 35

0 55h C WORD OutPortNo; BYTE OutBuf; OutPortNo = 0; /* OutBuf = 0x55; /* dwret = DioOutByte(hDrv, OutPortNo, OutBuf; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim OutPortNo As Integer Dim OutBuf As Byte Dim dwret OutPortNo = 0 ' OutBuf = &H55 ' dwret = DioOutByte(hDrv, OutPortNo, OutBuf ErrChk(dwRet ' 36 API-PAC(W32RM/DIO

DioEchoBackByte 1 (C WORD OutPortNo; BYTE InpBuf; dwret = DioEchoBackByte(hDrv, OutPortNo, & InpBuf; (Visual Basic Dim hdrv Dim OutPortNo As Integer Dim InpBuf As Byte Dim dwret dwret = DioEchoBackByte(hDrv, OutPortNo, InpBuf hdrv : DioOpen OutPortNo : : 0 OutPortNo - 1 606h InpBuf : dwret : ( : 0 : 0 ( (PO PIO (PI 605h DioOpen Dio8255Mode API-PAC(W32RM/DIO 37

0 C WORD OutPortNo; BYTE InpBuf; OutPortNo = 0; /* 0 dwret = DioEchobackByte(hDrv, OutPortNo, & InpBuf; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim OutPortNo As Integer Dim InpBuf As Byte Dim dwret OutPortNo = 0 ' 0 dwret = DioEchoBackByte(hDrv, OutPortNo, InpBuf ErrChk(dwRet ' 38 API-PAC(W32RM/DIO

DioInpBit 1 (C WORD InpBitNo; BYTE InpBuf; dwret = DioInpBit(hDrv, InpBitNo, &InpBuf; (Visual Basic Dim hdrv Dim InpBitNo As Integer Dim InpBuf As Byte Dim dwret dwret = DioInpBit(hDrv, InpBitNo, InpBuf hdrv : DioOpen InpBitNo : : 0 InpBitNo - 1 610h InpBuf : dwret : ( : 0 : 0 ( (PI PIO (PO 604h DioOpen Dio8255Mode API-PAC(W32RM/DIO 39

0 C WORD InpBitNo; BYTE InpBuf; InpBitNo = 0; /* 0 dwret = DioInpBit(hDrv, InpBitNo, &InpBuf; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim InpBitNo Dim InpBuf Dim dwret InpBitNo = 0 As Integer As Byte ' 0 dwret = DioInpBit(hDrv, InpBitNo, InpBuf ErrChk(dwRet ' 40 API-PAC(W32RM/DIO

DioOutBit 1 (C WORD OutBitNo; BYTE OutBuf; dwret = DioOutBit(hDrv, OutBitNo, OutBuf; (Visual Basic Dim hdrv Dim OutBitNo As Integer Dim OutBuf As Byte Dim dwret dwret = DioOutBit(hDrv, OutBitNo, OutBuf hdrv : DioOpen OutBitNo : : 0 OutBitNo - 1 610h OutBuf : dwret : ( : 0 : 0 ( (PO PIO (PI 605h DioOpen Dio8255Mode API-PAC(W32RM/DIO 41

0 1h C WORD OutBitNo; BYTE OutBuf; OutBitNo = 0; /* 0 OutBuf = 0x1; /* dwret = DioOutBit(hDrv, OutBitNo, OutBuf; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim OutBitNo As Integer Dim OutBuf As Byte Dim dwret OutBitNo = 0 ' 0 OutBuf = &H1 ' dwret = DioOutBit(hDrv, OutBitNo, OutBuf ErrChk(dwRet ' 42 API-PAC(W32RM/DIO

DioEchoBackBit 1 (C WORD OutBitNo; BYTE InpBuf; dwret = DioEchoBackBit(hDrv, OutBitNo, &InpBuf (Visual Basic Dim hdrv Dim OutBitNo As Integer Dim InpBuf As Byte Dim dwret dwret = DioEchoBackBit(hDrv, OutBitNo, InpBuf hdrv : DioOpen OutBitNo : : 0 OutBitNo - 1 610h InpBuf : dwret : ( : 0 : 0 ( (PO PIO (PI 605h DioOpen Dio8255Mode API-PAC(W32RM/DIO 43

0 C WORD OutBitNo; BYTE InpBuf; OutBitNo = 0; /* 0 dwret = DioEchoBackBit(hDrv, OutBitNo, &InpBuf; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim OutBitNo Dim InpBuf Dim dwret OutBitNo = 0 As Integer As Byte ' 0 dwret = DioEchoBackBit(hDrv, OutBitNo, InpBuf ErrChk(dwRet ' 44 API-PAC(W32RM/DIO

DioInp (C DINP lpdinp; dwret = DioInp(hDrv, &lpdinp; (Visual Basic Dim hdrv Dim lpdinp As DINP Dim dwret dwret = DioInp(hDrv, lpdinp hdrv : DioOpen lpdinp : DINP dwret : ( : 0 : 0 ( (PI PIO (PO 604h DioOpen, Dio8255Mode API-PAC(W32RM/DIO 45

0 2 2 : 0 = 2 = 2 C DINP lpdinp; WORD InpPortNo[2]; BYTE InpBuf[2]; InpPortNo[0] = 0; /* 0 InpPortNo[1] = 2; /* 2 lpdinp.inpportno = &InpPortNo[0]; /* InpPortNo lpdinp.portnum = 2; /* lpdinp.buf = &InpBuf[0]; /* InpBuf dwret = DioInp(hDrv, &lpdinp; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim lpdinp As DINP Dim InpPortNo(1 As Integer Dim InpBuf(1 As Byte Dim dwret InpPortNo(0 = 0 InpPortNo(1 = 2 lpdinp.inpportno = LpWord(InpPortNo(0 lpdinp.portnum = 2 lpdinp.buf = LpByte(InpBuf(0 dwret = DioInp(hDrv, lpdinp ErrChk(dwRet ' 0 ' 2 ' InpPortNo ' ' InpBuf ' 46 API-PAC(W32RM/DIO

DINP (C typedef struct tagdinp{ LPWORD InpPortNo; WORD PortNum; LPBYTE Buf; }DINP; (Visual Basic Type DINP InpPortNo PortNum Buf End Type As Integer InpPortNo : : 0 InpPortNo - 1 606h PortNum : : 1 PortNum 607h Buf : InpPortNo PortNum API-PAC(W32RM/DIO 47

DioOut (C DOUT lpdout; dwret = DioOut(hDrv, &lpdout; (Visual Basic Dim hdrv Dim lpdou As DOUT Dim dwret dwret = DioOut(hDrv, &lpdout hdrv : DioOpen lpdout : DOUT dwret : ( : 0 : 0 ( (PO PIO (PI 605h DioOpen, Dio8255Mode 48 API-PAC(W32RM/DIO

1 55h 3 AAh 2 : 1 = 1 3 = 3 C DOUT lpdout; WORD OutPortNo[2]; BYTE OutBuf[2]; OutPortNo[0] = 1; /* 1 OutPortNo[1] = 3; /* 3 OutBuf[0] = 0x55; /* 1 OutBuf[1] = 0xAA; /* 2 lpdout.outportno = &OutPortNo[0]; /* OutPortNo lpdout.portnum = 2; /* lpdout.buf = &OutBuf[0]; /* OutBuf dwret = DioOut(hDrv, &lpdout; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim lpdout As DOUT Dim OutPortNo(1 As Integer Dim OutBuf(1 As Byte Dim dwret OutPortNo(0 = 1 OutPortNo(1 = 3 OutBuf(0 = &H55 OutBuf(1 = &HAA lpdout.outportno = LpWord(OutPortNo(0 lpdout.portnum = 2 lpdout.buf = LpByte(OutBuf(0 dwret = DioOut(hDrv, lpdout ErrChk(dwRet ' 1 ' 3 ' 1 ' 2 ' OutPortNo ' ' OutBuf ' API-PAC(W32RM/DIO 49

DOUT (C typedef struct tagdout{ LPWORD OutPortNo; WORD PortNum; LPBYTE Buf; }DOUT; (Visual Basic Type DOUT OutPortNo PortNum Buf End Type As Integer OutPortNo : : 0 OutPortNo - 1 606h PortNum : : 1 PortNum 607h Buf : OutPortNo PortNum 50 API-PAC(W32RM/DIO

DioEchoBack (C DINP lpdinp; dwret = DioEchoBack(hDrv, &lpdinp; (Visual Basic Dim hdrv Dim lpdinp As DINP Dim dwret dwret = DioEchoBack(hDrv, lpdinp hdrv : DioOpen lpdenp : DINP dwret : ( : 0 : 0 ( API-PAC(W32RM/DIO 51

0 2 2 : 0 = 2 = 2 C DINP lpdinp; WORD InpPortNo[2]; BYTE InpBuf[2]; InpPortNo[0] = 0; /* 0 InpPortNo[1] = 2; /* 2 lpdinp.inpportno = &InpPortNo[0]; /* InpPortNo lpdinp.portnum = 2; /* lpdinp.buf = &InpBuf[0]; /* InpBuf dwret = DioEchoBack(hDrv, &lpdinp; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim lpdinp As DINP Dim InpPortNo(1 As Integer Dim InpBuf(1 As Byte Dim dwret InpPortNo(0 = 0 InpPortNo(1 = 2 lpdinp.inpportno = LpWord(InpPortNo(0 lpdinp.portnum = 2 lpdinp.buf = LpByte(InpBuf(0 dwret = DioEchoBack(hDrv, lpdinp ErrChk(dwRet ' 0 ' 2 ' InpPortNo ' ' InpBuf ' 52 API-PAC(W32RM/DIO

DINP (C typedef struct tagdinp{ LPWORD InpPortNo; WORD PortNum; LPBYTE Buf; }DINP; (Visual Basic Type DINP InpPortNo PortNum Buf End Type As Integer InpPortNo : : 0 InpPortNo - 1 606h PortNum : : 1 PortNum 607h Buf : InpPortNo PortNum API-PAC(W32RM/DIO 53

DioBitInp (C DBINP lpdbinp; dwret = DioBitInp(hDrv, &lpdbinp; (Visual Basic Dim hdrv Dim lpdbinp As DBINP Dim dwret dwret = DioBitInp(hDrv, &lpdbinp hdrv : DioOpen lpdbinp : DBINP dwret : ( : 0 : 0 ( 54 API-PAC(W32RM/DIO

0 2 2 : 0 = 2 = 2 C DBINP lpdbinp; WORD InpBitNo[2]; BYTE InpBuf[2]; InpBitNo[0] = 0; /* 0 InpBitNo[1] = 2; /* 2 lpdbinp.inpbitno = &InpBitNo[0]; /* InpBitNo lpdbinp.bitnum = 2; /* lpdbinp.buf = &InpBuf[0]; /* InpBuf dwret = DioBitInp(hDrv, &lpdbinp; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim lpdbinp As DBINP Dim InpBitNo(1 As Integer Dim InpBuf(1 As Byte Dim dwret InpBitNo(0 = 0 InpBitNo(1 = 2 lpbdbinp.inpbitno = LpWord(InpBitNo(0 lpbdbinp.bitnum = 2 lpbdbinp.buf = LpByte(InpBuf(0 dwret = DioBitInp(hDrv, lpdbinp ErrChk(dwRet ' 0 ' 2 ' InpBitNo ' ' InpBuf ' API-PAC(W32RM/DIO 55

DBINP (C typedef struct tagdbinp{ LPWORD InpBitNo; WORD BitNum; LPBYTE Buf; }DBINP; (Visual Basic Type DBINP InpBitNo BitNum Buf End Type As Integer InpBitNo : : 0 InpBitNo - 1 610h BitNum : : 1 BitNum 611h Buf : InpBitNo BitNum 56 API-PAC(W32RM/DIO

DioBitOut (C DBOUT lpdbout; dwret = DioBitOut(hDrv, &lpdbout; (Visual Basic Dim hdrv Dim lpdbou As DBOUT Dim dwret dwret = DioBitOut(hDrv, lpdbout hdrv : DioOpen lpdbout : DBOUT dwret : ( : 0 : 0 ( API-PAC(W32RM/DIO 57

1 1h 3 1h 2 : 1 = 1 3 = 3 C DBOUT lpdbout; WORD OutBitNo[2]; BYTE OutBuf[2]; OutBitNo[0] = 1; /* 1 OutBitNo[1] = 3; /* 3 OutBuf[0] = 1; /* 1 OutBuf[1] = 1; /* 2 lpdbout.outbitno = &OutBitNo[0]; /* OutBitNo lpdbout.bitnum = 2; /* lpdbout.buf = &OutBuf[0]; /* OutBuf dwret = DioBitOut(hDrv, &lpdbout; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim lpdbout As DBOUT Dim OutBitNo(1 As Integer Dim OutBuf(1 As Byte Dim dwret OutBitNo(0 = 1 OutBitNo(1 = 3 OutBuf(0 = 1 OutBuf(1 = 1 lpdbout.outbitno = LpWord(OutBitNo(0 lpdbout.bitnum = 2 lpdbout.buf = LpByte(OutBuf(0 dwret = DioBitOut(hDrv, lpdbout ErrChk(dwRet ' 1 ' 3 ' 1 ' 2 ' OutBitNo ' ' OutBuf ' 58 API-PAC(W32RM/DIO

DBOUT (C typedef struct tagdbout{ LPWORD OutBitNo; WORD BitNum; LPBYTE Buf; }DBOUT; (Visual Basic Type DBOUT OutBitNo BitNum Buf End Type As Integer OutBitNo : : 0 OutBitNo - 1 610h BitNum : : 1 BitNum 611h Buf : OutBitNo BitNum API-PAC(W32RM/DIO 59

DioBitEchoBack (C DBINP lpdbinp; dwret = DioBitEchoBack(hDrv, &lpdbinp; (Visual Basic Dim hdrv Dim lpdbinp As DBINP Dim dwret dwret = DioBitEchoBack(hDrv, &lpdbinp hdrv : DioOpen lpdbinp : DBINP dwret : ( : 0 : 0 ( 60 API-PAC(W32RM/DIO

0 2 2 : 0 = 2 = 2 C DBINP lpdbinp; WORD InpBitNo[2]; BYTE InpBuf[2]; InpBitNo[0] = 0; /* 0 InpBitNo[1] = 2; /* 2 lpdbinp.inpbitno = &InpBitNo[0]; /* InpBitNo lpdbinp.bitnum = 2; /* lpdbinp.buf = &InpBuf[0]; /* InpBuf dwret = DioBitEchoBack(hDrv, &lpdbinp; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim lpdbinp As DBINP Dim InpBitNo(1 As Integer Dim InpBuf(1 As Byte Dim dwret InpBitNo(0 = 0 InpBitNo(1 = 2 lpbdbinp.inpbitno = LpWord(InpBitNo(0 lpbdbinp.bitnum = 2 lpbdbinp.buf = LpByte(InpBuf(0 dwret = DioBitInp(hDrv, lpdbinp ErrChk(dwRet ' 0 ' 2 ' InpBitNo ' ' InpBuf ' API-PAC(W32RM/DIO 61

DBINP (C typedef struct tagdbinp{ LPWORD InpBitNo; WORD BitNum; LPBYTE Buf; }DBOUT; (Visual Basic Type DBINP OutBitNo BitNum Buf End Type As Integer InpBitNo : : 0 InpBitNo - 1 610h BitNum : : 1 BitNum 611h Buf : InpBitNo BitNum 62 API-PAC(W32RM/DIO

DioInpBack (C DINPB lpdinpb; HANDLE hok; WORD DMegOK; HANDLE hexcp; WORD DMegExcp; dwret = DioInpBack(hDrv, &lpdinpb, hok, DMegOK, hexcp, DMegExcp; (Visual Basic Dim hdrv Dim lpdinpb As DINPB Dim hok Dim DmegOK As Integer Dim hexcp Dim DmegExcp As Integer Dim dwret dwret = DioInpBack(hDrv, lpdinpb, hok, DMegOK, hexp, DMegExcp API-PAC(W32RM/DIO 63

hdrv : DioOpen lpdinpb : DINPB hok : ( DMegOK : 0 : DMegOK = 0h, 400h DMegOK 7FFFh 00Ch hexcp : ( DMegExcp : 0 : DMegExcp = 0h, 400h DMegExcp 7FFFh 00Ch dwret : ( : 0 : 0 ( (PI PIO (PO 604h DioOpen, Dio8255Mode 1 DioSts 64 API-PAC(W32RM/DIO

0 2 2 100[ms] 100 : 0 = 2 = 2 = 100[ms] = 100[ ] C HANDLE hok; WORD wmegok; HANDLE hexcp; WORD wmegexcp; DINPB lpdinpb; WORD InpPortNo[2]; BYTE InpBuf[100][2]; wmegok = 0x470; wmegexcp = 0x480; InpPortNo[0] = 0; /* 0 InpPortNo[1] = 2; /* 2 lpdinpb.inpportno = &InpPortNo[0]; /* InpPortNo lpdinpb.portnum = 2; /* lpdinpb.datanum = 100; /* lpdinpb.buf = &InpBuf[0][0]; /* InpBuf lpdinpb.tim = 10; /* dwret = DioInpBack(hDrv, &lpdinpb, hok, wmegok, hexcp, wmegexcp; ErrChk(dwRet; /* API-PAC(W32RM/DIO 65

Visual Basic Dim hdrv Dim lpdinpb As DINPB Dim InpPortNo(1 As Integer Dim InpBuf(1,99 As Byte Dim dwret MsgOK.Message = &H470 MsgExcp.Message = &H480 InpPortNo(0 = 0 ' 0 InpPortNo(1 = 2 ' 2 lpdinpb.inpportno = LpWord(InpPortNo(0 ' InpPortNo lpdinpb.portnum = 2 ' lpdinpb.datanum = 100 ' lpdinpb.buf = LpByte(InpBuf(0,0 ' InpBuf lpdinpb.tim = 10 ' dwret = DioInpBack(hDrv, 1pDinpB, MsgOK.hWnd, MsgOK.Message, MsgExcp.hWnd, MsgExcp.Message ErrChk(dwRet ' 66 API-PAC(W32RM/DIO

DINPB (C typedef struct tagdinpb{ LPWORD InpPortNo; WORD PortNum; WORD DataNum; LPBYTE Buf; WORD Tim; }DINPB; (Visual Basic Type DINPB InpPortNo PortNum DataNum Buf Tim End Type As Integer As Integer As Integer InpPortNo : : 0 InpPortNo - 1 606h PortNum : : 1 PortNum 607h DataNum : : 1 DataNum FFFFh 609h Buf : Tim : : 1 Tim FFFFh [ms] = 10[ms] Tim( 60Ah InpPortNo PortNum API-PAC(W32RM/DIO 67

DioOutBack (C DOUTB lpdoutb; HANDLE hok; WORD DMegOK; HANDLE hexcp; WORD DMegExcp; dwret = DioOutBack(hDrv, &lpdoutb, hok, DMegOK, hexcp, DMegExcp; (Visual Basic Dim hdrv Dim lpdoutb As DOUTB Dim hok Dim DmegOK As Integer Dim hexcp Dim DmegExcp As Integer Dim dwret dwret = DioOutBack(hDrv, lpdoutb, hok, DMegOK, hexp, DMegExcp 68 API-PAC(W32RM/DIO

hdrv : DioOpen lpdoutb : DOUTB hok : ( 0 DMegOK : : DMegOK = 0h, 400h DMegOK 7FFFh 00Ch hexcp : ( 0 DMegExcp : : DMegExcp = 0h, 400h DMegExcp 7FFFh 00Ch dwret : ( : 0 : 0 ( (PO PIO (PI 605h DioOpen, Dio8255Mode 1 DioSts DioNC_CMRF17 API-PAC(W32RM/DIO 69

1 55h 3 AAh 2 100[ms] 100 : 1 = 1 3 = 3 = 100[ms] = 100[ ] C HANDLE hok; WORD wmegok; HANDLE hexcp; WORD wmegexcp; DOUTB lpdoutb; WORD OutPortNo[2]; BYTE OutBuf[100][2]; wmegok = 0x470; wmegexcp = 0x480; OutPortNo[0] = 1; /* 1 OutPortNo[1] = 3; /* 3 lpdoutb.outportno = &OutPortNo[0]; /* OutPortNo lpdoutb.portnum = 2; /* lpdoutb.datanum = 100; /* OutBuf[0][0] = 0x55; /* 1 OutBuf[0][1] = 0xAA; /* 2 lpdoutb.buf = &OutBuf[0][0]; /* OutBuf lpdoutb.tim = 10; /* dwret = DioOutBack(hDrv, &lpdoutb, hok, wmegok, hexcp, wmegexcp; ErrChk(dwRet; /* 70 API-PAC(W32RM/DIO

Visual Basic Dim hdrv Dim lpdoutb As DOUTB Dim OutPortNo(1 As Integer Dim OutBuf(1,99 As Byte Dim dwret MsgOK.Message = &H470 MsgExcp.Message = &H480 OutPortNo(0 = 1 ' 1 OutPortNo(1 = 3 ' 3 lpdoutb.outportno = LpWord(OutPortNo(0 ' OutPortNo lpdoutb.portnum = 2 ' lpdoutb.datanum = 100 ' OutBuf(0,0 = &H55 ' 1 OutBuf(1,0 = &HAA ' 2 lpdoutb.buf = LpByte(OutBuf(0,0 ' OutBuf lpdoutb.tim = 10 ' dwret = DioOutBack(hDrv, lpdoutb, MsgOK.hWnd, MsgOK.Message, MsgExcp.hWnd, MsgExcp.Message ErrChk(dwRet ' API-PAC(W32RM/DIO 71

DOUTB (C typedef struct tagdoutb{ LPWORD OutPortNo; WORD PortNum; WORD DataNum; LPBYTE Buf; WORD Tim; }DOUTB; (Visual Basic Type DOUTB OutPortNo PortNum DataNum Buf Tim End Type As Integer As Integer As Integer OutPortNo : : 0 OutPortNo - 1 606h PortNum : : 1 PortNum 607h DataNum : : 1 DataNum FFFFh 609h Buf : Tim : : 1 Tim FFFFh [ms] = 10[ms] Tim( 60Ah OutPortNo PortNum 72 API-PAC(W32RM/DIO

DioBitInpBack (C DBINPB lpdbinpb; HANDLE hok; WORD DMegOK; HANDLE hexcp; WORD DMegExcp; dwret = DioBitInpBack(hDrv, &lpdbinpb, hok, DMegOK, hexcp, DMegExcp; (Visual Basic Dim hdrv Dim lpdbinpb As DBINPB Dim hok Dim DmegOK As Integer Dim hexcp Dim DmegExcp As Integer Dim dwret dwret = DioBitInpBack(hDrv, lpdbinpb, hok, DMegOK, hexp, DMegExcp API-PAC(W32RM/DIO 73

hdrv : DioOpen lpdbinpb : DBINPB hok : ( DMegOK : 0 : DMegOK = 0h, 400h DMegOK 7FFFh 00Ch hexcp : ( DMegExcp : 0 : DMegExcp = 0h, 400h DMegExcp 7FFFh 00Ch dwret : ( : 0 : 0 ( 1 DioSts 74 API-PAC(W32RM/DIO

0 2 2 100[ms] 100 : 0 = 2 = 2 = 100[ms] = 100[ ] C HANDLEhDrv; HANDLEhOK; WORD wmegok; HANDLEhExcp; WORD wmegexcp; DBINPB lpdbinpb; WORD InpBitNo[2]; BYTE InpBuf[100][2]; wmegok = 0x470; wmegexcp = 0x480; InpBitNo[0] = 0; /* 0 InpBitNo[1] = 2; /* 2 lpdbinpb.inpbitno = &InpBitNo[0]; /* InpBitNo lpdbinpb.bitnum = 2; /* lpdbinpb.datanum = 100; /* lpdbinpb.buf = &InpBuf[0][0]; /* InpBuf lpdbinpb.tim = 10; /* dwret =DioBitInpBack(hDrv, &lpdbinpb, hok, wmegok, hexcp,wmegexcp; ErrChk(dwRet; /* API-PAC(W32RM/DIO 75

Visual Basic Dim hdrv Dim lpdbinpb As DBINPB Dim InpBitNo(1 As Integer Dim InpBuf(1,99 As Byte Dim dwret MsgOK.Message = &H470 MsgExcp.Message = &H480 InpBitNo(0 = 0 ' 0 InpBitNo(1 = 2 ' 2 lpdbinpb.inpbitno = LpWord(InpBitNo(0 ' InpBitNo lpdbinpb.bitnum = 2 ' lpdbinpb.datanum = 100 ' lpdbinpb.buf = LpByte(InpBuf(0,0 ' InpBuf lpdbinpb.tim = 10 ' dwret = DioBitInpBack(hDrv, lpdbinpb, MsgOK.hWnd, MsgOK.Message, MsgExcp.hWnd,MsgExcp.Message ErrChk(dwRet ' 76 API-PAC(W32RM/DIO

DBINPB (C typedef struct tagdbinpb{ LPWORD InpBitNo; WORD BitNum; WORD DataNum; LPBYTE Buf; WORD Tim; }DBINPB; (Visual Basic Type DBINPB InpBitNo BitNum DataNum Buf Tim End Type As Integer As Integer As Integer InpBitNo : : 0 InpBitNo - 1 610h BitNum : : 1 BitNum 611h DataNum : : 1 DataNum FFFFh 609h Buf : Tim : : 1 Tim FFFFh [ms] = 10[ms] Tim( 60Ah InpBitNo BitNum API-PAC(W32RM/DIO 77

DioBitOutBack (C DBOUTB lpdboutb; HANDLE hok; WORD DMegOK; HANDLE hexcp; WORD DMegExcp; dwret = DioBitOutBack(hDrv, &lpdboutb, hok, DMegOK, hexcp, DMegExcp; (Visual Basic Dim hdrv Dim lpdboutb As DBOUTB Dim hok Dim DmegOK As Integer Dim hexcp Dim DmegExcp As Integer Dim dwret dwret = DioBitOutBack(hDrv, lpdboutb, hok, DMegOK, hexp, DMegExcp 78 API-PAC(W32RM/DIO

hdrv : DioOpen lpdboutb : DBOUTB hok : ( 0 DMegOK : : DMegOK = 0h, 400h DMegOK 7FFFh 00Ch hexcp : ( 0 DMegExcp : : DMegExcp = 0h, 400h DMegExcp 7FFFh 00Ch dwret : ( : 0 : 0 ( 1 DioSts API-PAC(W32RM/DIO 79

1 1h 3 1h 2 100[ms] 100 : 1 = 1 3 = 3 = 100[ms] = 100[ ] C HANDLE hok; WORD wmegok; HANDLE hexcp; WORD wmegexcp; DBOUTB lpdboutb; WORD OutBitNo[2]; BYTE OutBuf[100][2]; wmegok = 0x470; wmegexcp = 0x480; OutBitNo[0] = 1; /* 1 OutBitNo[1] = 3; /* 3 lpdboutb.outbitno = &OutBitNo[0]; /* OutBitNo lpdboutb.bitnum = 2; /* lpdboutb.datanum = 100; /* OutBuf[0][0] = 0x1; /* 1 OutBuf[0][1] = 0x1; /* 2 lpdboutb.buf = &OutBuf[0][0]; /* OutBuf lpdboutb.tim = 10; /* dwret = DioBitOutBack(hDrv, &1pDBOutB, hok, wmegok, hexcp, wmegexcp; ErrChk(dwRet; /* 80 API-PAC(W32RM/DIO

Visual Basic Dim hdrv Dim lpdboutb As DBOUTB Dim OutBitNo(1 As Integer Dim OutBuf(1,99 As Byte Dim dwret MsgOK.Message = &H470 MsgExcp.Message = &H480 OutBitNo(0 = 1 ' 1 OutBitNo(1 = 3 ' 3 lpdboutb.outbitno = LpWord(OutBitNo(0 ' OutBitNo lpdboutb.bitnum = 2 ' lpdboutb.datanum = 100 ' OutBuf(0,0 = &H1 ' 1 OutBuf(1,0 = &H1 ' 2 lpdboutb.buf = LpByte(OutBuf(0,0 ' OutBuf lpdboutb.tim = 10 ' dwret = DioBitOutBack(hDrv, lpdboutb, MsgOK.hWnd, MsgOK.Message, MsgExcp.hWnd, MsgExcp.Message ErrChk(dwRet ' API-PAC(W32RM/DIO 81

DBOUTB (C typedef struct tagdboutb{ LPWORD OutBitNo; WORD BitNum; WORD DataNum; LPBYTE Buf; WORD Tim; }DBOUTB; (Visual Basic Type DBOUTB OutBitNo BitNum DataNum Buf Tim End Type As Integer As Integer As Integer OutBitNo : : 0 OutBitNo - 1 610h BitNum : : 1 BitNum 611h DataNum : : 1 DataNum FFFFh 609h Buf : Tim : : 1 Tim FFFFh [ms] = 10[ms] Tim( 60Ah OutBitNo BitNum 82 API-PAC(W32RM/DIO

DioSts DioInpBack, DioOutBack, DioBitInpBack, DioBitOutBack, DioPtnStart DioTrgStart (C WORD Sts; WORD Cnt; dwret = DioSts(hDrv, &Sts, &Cnt; (Visual Basic Dim hdrv Dim Sts As Integer Dim Cn As Integer Dim dwret dwret = DioSts(hDrv, Sts, Cnt hdrv : DioOpen Sts : DioInpBack, DioOutBack, DioBitInpBack, DioBitOutBack, DioPtnStart DioTrgStart : 0 : 1 : 2 : 3 : Cnt : dwret : ( : 0 : 0 ( DioInpBack, DioBitInpBack, DioOutBack, DioBitOutBack, DioPtnStart DioTrgStart API-PAC(W32RM/DIO 83

: Sts Cnt C WORD Sts; WORD Cnt; dwret = DioSts(hDrv, &Sts, &Cnt; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim Sts As Integer Dim Cnt As Integer Dim dwret dwret = DioSts(hDrv, Sts, Cnt ErrChk(dwRet ' 84 API-PAC(W32RM/DIO

DioStop (C dwret = DioStop(hDrv; (Visual Basic Dim hdrv Dim dwret dwret = DioStop(hDrv hdrv : DioOpen dwret : ( : 0 : 0 ( DioInpBack, DioBitInpBack, DioOutBack, DioBitOutBack, DioPtnStart DioTrgStart C dwret = DioStop(hDrv; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwret dwret = DioStop(hDrv ErrChk(dwRet ' API-PAC(W32RM/DIO 85

DioPtnSet (C DPTNSET lpdptnset; dwret = DioPtnSet(hDrv, &lpdptnset; (Visual Basic Dim hdrv Dim lpdptnset As DPTNSET Dim dwret dwret = DioPtnSet(hDrv, lpdptnset hdrv : DioOpen lpdptnset : DPTNSET dwret : ( : 0 : 0 ( DioPtnStart DioPtnSts Q&A 86 API-PAC(W32RM/DIO

0 100[ms] 22h, 55h 88h : = 0 = 0 : 22h = 1 : 55h = 2 : 88h = 100[ms] C DPTNSET lpdptnset; WORD InpPortNo[1]; DWORD StsBuf[3]; InpPortNo[0] = 0; /* 0 lpdptnset.inpportno = &InpPortNo[0]; /* InpPortNo lpdptnset.portnum = 1; /* StsBuf[0] = 22h; /* 0 StsBuf[1] = 55h; /* 1 StsBuf[2] = 88h; /* 2 lpdptnset.stsbuf = StsBuf[0]; /* StsBuf[0] lpdptnset.stsbufnum = 3; /* lpdptnset.tim = 10; /* dwret = DioPtnSet(hDrv, &lpdptnset; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim lpdptnset As DPTNSET Dim InpPortNo(0 As Integer Dim StsBuf(2 Dim dwret InpPortNo(0 = 0 lpdptnset.inpportno = LpWord(InpPortNo(0 lpdptnset.portnum = 1 StsBuf(0 = &H22 StsBuf(1 = &H55 StsBuf(2 = &H88 lpdptnset.stsbuf = LpDWord(StsBuf(0 lpdptnset.stsbufnum = 3 lpdptnset.tim = 10 dwret = DioPtnSet(hDrv, lpdptnset ErrChk(dwRet ' 0 ' InpPortNo ' ' 0 ' 1 ' 2 ' StsBuf[0] ' ' ' API-PAC(W32RM/DIO 87

DPTNSET (C typedef struct tagdptnset{ LPWORD InpPortNo; WORD PortNum; LPDWORD StsBuf; DWORD StsBufNum; WORD Tim; }DPTNSET; (Visual Basic Type DPTNSET InpPortNo PortNum StsBuf StsBufNum Tim End Type As Integer As Integer InpPortNo : : 0 InpPortNo - 1 606h PortNum : : 1 PortNum 4 635h StsBuf : StsBufNum : : 1 StsBunNum FFFFFFFFh 636h Tim : : 1 Tim FFFFh [ms] = 10[ms] Tim( 60Ah InpPortNo StsBuf StsBuf PortNum StsBufNum 88 API-PAC(W32RM/DIO

DioPtnStart (C HANDLE hok; WORD DMegOK; dwret = DioPtnStart(hDrv, hok, DMegOK; (Visual Basic Dim hdrv Dim hok Dim DmegOK As Integer Dim dwret dwret = DioPtnStart(hDrv, hok, DMegOK hdrv : DioOpen hok : 0 DMegOK : ( : DMegOK = 0h, 400h DMegOK 7FFFh 00Ch dwret : ( : 0 : 0 ( DioSts 1 DioPtnSet DioPtnSts Q&A API-PAC(W32RM/DIO 89

C HANDLE hok; WORD wmegok; wmegok = 0x470; dwret = DioPtnStart(hDrv, hok, wmegok; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwret MsgOK.Message = &H470 dwret = DioPtnStart(hDrv, MsgOK.hWnd, MsgOK.Message ErrChk(dwRet ' 90 API-PAC(W32RM/DIO

DioPtnSts (C DWORD PtnSts; dwret = DioPtnSts(hDrv, &PtnSts; (Visual Basic Dim hdrv Dim PtnSts Dim dwret dwret = DioPtnSts(hDrv, PtnSts hdrv : DioOpen PtnSts : dwret : ( : 0 : 0 ( DioPtnSet DioPtnStart Q&A : PtnSts C DWORD PtnSts; dwret = DioPtnSts(hDrv, &PtnSts; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim PtnSts Dim dwret dwret = DioPtnSts(hDrv, PtnSts ErrChk(dwRet ' API-PAC(W32RM/DIO 91

DioTrgSet (C DTRGSET lpdtrgset; dwret = DioTrgSet(hDrv, &lpdtrgset; (Visual Basic Dim hdrv Dim lpdtrgset As DTRGSET Dim dwret dwret = DioTrgSet(hDrv, lpdtrgset hdrv : DioOpen lpdtrgset : DTRGSET dwret : ( : 0 : 0 ( DioTrgStart DioTrgSts Q&A 92 API-PAC(W32RM/DIO

0, 2 100[ms] 0, 1 2 : = 0 2 = 0, 2 = 0 : 0 : UP 1 : 2 : DOWN = 100[ms] C DTRGSET lpdtrgset; WORD InpBitNo[3]; BYTE InpBuf[3]; WORD TrgBitNo[2]; BYTE TrgKind[2]; InpBitNo[0] = 0; /* 0 InpBitNo[1] = 1; /* 1 InpBitNo[2] = 2; /* 2 LpDTrgSet.InpBitNo = &InpBitNo[0]; /* InpBitNo LpDTrgSet.BitNum = 3; /* LpDTrgSet.Buf = &InpBuf[0]; /* InpBuf TrgBitNo[0] = 0; /* 0 TrgBitNo[1] = 2; /* 2 LpDTrgSet.TrgBitNo = &TrgBitNo[0]; /* TrgBitNo LpDTrgSet.TrgBitNum = 2; /* TrgKind[0] = 2; /* 0 TrgKind[1] = 3; /* 1 LpDTrgSet.TrgKind = &TrgKind[0]; /* TrgKind lpdtrgset.tim = 10; /* dwret = DioTrgSet(hDrv, &lpdtrgset; ErrChk(dwRet; /* API-PAC(W32RM/DIO 93

Visual Basic Dim hdrv Dim lpdtrgset As DPTNSET Dim InpBitNo(2 As Integer Dim InpBuf(2 As Byte Dim TrgBitNo(1 As Integer Dim TrgKind(1 As Byte Dim dwret InpBitNo(0 = 0 ' 0 InpBitNo(1 = 1 ' 1 InpBitNo(2 = 2 ' 2 LpDTrgSet.InpBitNo = LpWord(InpBitNo(0 ' InpBitNo LpDTrgSet.BitNum = 3 ' LpDTrgSet.Buf = LpByte(InpBuf(0 ' InpBuf TrgBitNo(0 = 0 ' 0 TrgBitNo(1 = 2 ' 2 LpDTrgSet.TrgBitNo = LpWord(TrgBitNo(0 ' TrgBitNo LpDTrgSet.TrgBitNum = 2 ' TrgKind(0 = 2 ' 0 TrgKind(1 = 3 ' 1 LpDTrgSet.TrgKind = LpByte(TrgKind(0 ' TrgKind lpdtrgset.tim = 10 ' dwret = DioTrgSet(hDrv, lpdtrgset ErrChk(dwRet ' 94 API-PAC(W32RM/DIO

DTRGSET (C typedef struct tagdtrgset{ LPWORD InpBitNo; WORD BitNum; LPBYTE Buf; LPWORD TrgBitNo; WORD TrgBitNum; LPBYTE TrgKind; WORD Tim; }DTRGSET; (Visual Basic Type DTRGSET InpBitNo BitNum As Integer Buf TrgBitNo TrgBitNum As Integer TrgKind Tim As Integer End Type InpBitNo : : 0 InpBitNo - 1 610h BitNum : : 0 BitNum 611h Buf : TrgBitNo : : 0 TrgBitNo - 1 610h API-PAC(W32RM/DIO 95

TrgBitNum : : 1 TrgBitNum 611h TrgKind : : 0 TrgKind 3 638h Tim : : 1 Tim FFFFh [ms] = 10[ms] Tim( 60Ah InpBitNo TrgBitNo Buf Buf BitNum 96 API-PAC(W32RM/DIO

DioTrgStart (C HANDLE hok; WORD DMegOK; dwret = DioTrgStart(hDrv, hok, DMegOK; (Visual Basic Dim hdrv Dim hok Dim DmegOK As Integer Dim dwret dwret = DioTrgStart(hDrv, hok, DMegOK hdrv : DioOpen hok : 0 DMegOK : ( : DMegOK = 0h, 400h DMegOK 7FFFh 00Ch dwret : ( : 0 : 0 ( DioSts 1 DioTrgSet DioTrgSts Q&A API-PAC(W32RM/DIO 97

C HANDLE hok; WORD wmegok; wmegok = 0x470; dwret = DioTrgStart(hDrv, hok, wmegok; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwret MsgOK.Message = &H470 dwret = DioTrgStart(hDrv, MsgOK.hWnd, MsgOK.Message ErrChk(dwRet ' 98 API-PAC(W32RM/DIO

DioTrgSts (C DWORD TrgSts; dwret = DioTrgSts(hDrv, &TrgSts; (Visual Basic Dim hdrv Dim TrgSts Dim dwre dwret = DioTrgSts(hDrv, TrgSts hdrv : DioOpen TrgSts : dwret : ( : 0 : 0 ( DioTrgSet DioTrgStart Q&A API-PAC(W32RM/DIO 99

: PtnSts lpdtrgset.inpbuf C DWORD TrgSts; dwret = DioTrgSts(hDrv, &TrgSts; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim TrgSts Dim dwret dwret = DioTrgSts(hDrv, TrgSts ErrChk(dwRet ' 100 API-PAC(W32RM/DIO

DioInpBCD 2 BCD (C DIBCD lpdibcd; dwret = DioInpBCD(hDrv, &lpdibcd; (Visual Basic Dim hdrv Dim lpdibcd As DIBCD Dim dwret dwret = DioInpBCD(hDrv, lpdibcd hdrv : DioOpen lpdibcd : BCD DIBCD dwret : ( : 0 : 0 ( (PI PIO (PO 604h DioOpen, Dio8255Mode API-PAC(W32RM/DIO 101

0 BCD : = = 2 (1 C DIBCD lpdibcd; DWORD InpData; LpDIBcd.InpPortNo = 0; /* 0 LpDIBcd.Figure = 2; /* LpDIBcd.Value = &InpData; /* InpData dwret = DioInpBCD(hDrv, &lpdibcd; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim lpdibcd As DIBCD Dim InpData Dim dwret LpDIBcd.InpPortNo = 0 LpDIBcd.Figure = 2 LpDIBcd.Value = LpDWord(InpData dwret = DioInpBCD(hDrv, lpdibcd ErrChk(dwRet ' 0 ' ' InpData ' 102 API-PAC(W32RM/DIO

DIBCD (C typedef struct tagdibcd{ DWORD InpPortNo; WORD Figure; LPDWORD Value; }DIBCD; (Visual Basic Type DIBCD InpPortNo Figure Value End Type As Integer InpPortNo : 2 BCD (LSP : 0 InpPortNo - 1 606h Figure : 2 BCD 4bit(1/2 1 : 1 Figure 8 63Ah Value : 2 BCD Figure (InpPortNo+Figure/2 63Ah Value 16 9 63Bh API-PAC(W32RM/DIO 103

DioOutBCD BCD 2 (C DOBCD lpdobcd; dwret = DioOutBCD(hDrv, &lpdobcd; (Visual Basic Dim hdrv Dim lpdobcd As DOBCD Dim dwret dwret = DioOutBCD(hDrv, lpdobcd hdrv : DioOpen lpdobcd : BCD DOBCD dwret : ( : 0 : 0 ( (PO PIO (PO 605h DioOpen, Dio8255Mode 104 API-PAC(W32RM/DIO

0 BCD 56 : 0 = = 2 (1 = 56 C DOBCD lpdobcd; DWORD OutData; LpDOBcd.OutPortNo = 0; /* 0 LpDOBcd.Figure = 2; /* OutData = 56; /* LpDOBcd.Value = OutData; /* OutData dwret = DioOutBCD(hDrv, &lpdobcd; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim lpdobcd As DOBCD Dim OutData Dim dwret LpDOBcd.OutPortNo = 0 LpDOBcd.Figure = 2 OutData = 56 LpDOBcd.Value = OutData dwret = DioOutBCD(hDrv, lpdobcd ErrChk(dwRet ' 0 ' ' ' OutData ' API-PAC(W32RM/DIO 105

DOBCD (C typedef struct tagdobcd{ DWORD OutPortNo; WORD Figure; DWORD Value; }DOBCD; (Visual Basic Type DOBCD OutPortNo Figure Value End Type As Integer OutPortNo : BCD 2 (LSP : 0 OutPortNo - 1 606h Figure : BCD 2 4bit(1/2 1 : 1 Figure 8 63Ah Value : BCD : 1 Value 99999999 63Bh Figure (OutPortNo+Figure/2 63Bh 106 API-PAC(W32RM/DIO

DioNInpBCD 2 2 BCD (C DIBCD lpdibcd; dwret = DioNInpBCD(hDrv, &lpdibcd; (Visual Basic Dim hdrv Dim lpdibcd As DIBCD Dim dwret dwret = DioNInpBCD(hDrv, lpdibcd hdrv : DioOpen lpdibcd : BCD DIBCD dwret : ( : 0 : 0 ( (PI PIO (PO 604h DioOpen, Dio8255Mode API-PAC(W32RM/DIO 107

0 BCD : 0 = = 2 ( 1 C DIBCD lpdibcd; DWORD InpData; LpDIBcd.InpPortNo = 0; /* 0 LpDIBcd.Figure = 2; /* LpDIBcd.Value = &InpData; /* InpData dwret = DioNInpBCD(hDrv, &lpdibcd; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim lpdibcd As DIBCD Dim InpData Dim dwret LpDIBcd.InpPortNo = 0 LpDIBcd.Figure = 2 LpDIBcd.Value = LpDWord(InpData dwret = DioNInpBCD(hDrv, lpdibcd ErrChk(dwRet ' 0 ' ' InpData ' 108 API-PAC(W32RM/DIO

DIBCD (C typedef struct tagdibcd{ DWORD InpPortNo; WORD Figure; LPDWORD Value; }DIBCD; (Visual Basic Type DIBCD InpPortNo Figure Value End Type As Integer InpPortNo : 2 BCD (LSP : 0 InpPortNo - 1 606h Figure : 2 BCD 4bit(1/2 1 : 1 Figure 8 63Ah Value : 2 BCD Figure (InpPortNo+Figure/2 63Ah Value 16 9 63Bh API-PAC(W32RM/DIO 109

DioNOutBCD BCD 2 (C DOBCD lpdobcd; dwret = DioNOutBCD(hDrv, &lpdobcd; (Visual Basic Dim hdrv Dim lpdobcd As DOBCD Dim dwret dwret = DioNOutBCD(hDrv, lpdobcd hdrv : DioOpen lpdobcd : BCD DOBCD dwret : ( : 0 : 0 ( (PO PIO (PO 605h DioOpen, Dio8255Mode 110 API-PAC(W32RM/DIO

0 BCD 56 ( : 0 = = 2 (1 = 56 C DOBCD lpdobcd; DWORD OutData; LpDOBcd.OutPortNo = 0; /* 0 LpDOBcd.Figure = 2; /* OutData = 56; /* LpDOBcd.Value = OutData; /* OutData dwret = DioNOutBCD(hDrv, &lpdobcd; ErrChk(dwRet; * Visual Basic Dim hdrv Dim lpdobcd As DOBCD Dim OutData Dim dwret LpDOBcd.OutPortNo = 0 LpDOBcd.Figure = 2 OutData = 56 LpDOBcd.Value = OutData dwret = DioNOutBCD(hDrv, lpdobcd ErrChk(dwRet ' 0 ' ' ' OutData ' API-PAC(W32RM/DIO 111

DOBCD (C typedef struct tagdobcd{ DWORD OutPortNo; WORD Figure; DWORD Value; }DOBCD; (Visual Basic Type DOBCD OutPortNo Figure Value End Type As Integer OutPortNo : BCD 2 (LSP : 0 OutPortNo - 1 606h Figure : BCD 2 4bit(1/2 1 : 1 Figure 8 63Ah Value : BCD : 1 Value 99999999 63Bh Figure (OutPortNo+Figure/2 63Bh 112 API-PAC(W32RM/DIO

DioEvent (C WORD SigLog; WORD SigCh; HANDLE hwnd; WORD DMsgNo; dwret = DioEvent(hDrv, SigLog, SigCh, hwnd, DMsgNo; (Visual Basic Dim hdrv Dim SigLog As Integer Dim SigCh As Integer Dim hwnd Dim DmsgNo As Integer Dim dwret dwret = DioEvent(hDrv, SigLog, SigCh, hwnd, DMsgNo API-PAC(W32RM/DIO 113

hdrv : DioOpen SigLog : PCI (PIO-48D(PCI CompactPCI E 0 : 0 SigLog 1 0 : 1 : 622h SigCh : 1 PCI CompactPCI E PIO-96W(PC, PIO-120D(PC PIO-24W(PM 0 : E : 0 SigCh 3 0 : 100 1 : 101 2 : 102 3 : 103 CompactPCI : 0 SigCh Fh PCI (PIO-48D(PCI PI-128L(PCI PIO-64/64L(PCI : 0 SigCh Fh PIO-32/32L(PCIH PI-64L(PCIH PIO-16/16L(PCIH PI-32L(PCIH PIO-16/16RY(PCI 0 7 : I00 I07 8 15 : I10 I17 PIO-48D(PCI : 0 SigCh FFFFh High Byte : MSB LSB 1PB7 1PB6 1PB5 1PB4 1PB3 1PB2 1PB1 1PB0 Low Byte : MSB LSB 1PA7 1PA6 1PA5 1PA4 1PA3 1PA2 1PA1 1PA0 114 API-PAC(W32RM/DIO

PIO-64/64L(PCI PI-128L(PCI : 0 SigCh FFFFh High Byte : MSB LSB I17 I16 I15 I14 I13 I12 I11 I10 Low Byte : MSB LSB I07 I06 I05 I04 I03 I02 I01 I00 PIO-96W(PC : 0 SigCh FFh MSB LSB CN4 CN4 CN3 CN3 CN2 CN2 CN1 CN1 PC4 PC7 PC4 PC7 PC4 PC7 PC4 PC7 PIO-120D(PC : 0 SigCh 3FFh High Byte : Low Byte : PIO-96W(98K : 0 SigCh 3FFh PIO-24W(PM : 0 SigCh 3 PIO-32D(PM PIO-16/16L(PM : 0 SigCh FFFFh High Byte : MSB LSB I17 I16 I15 I14 I13 I12 I11 I10 Low Byte : MSB LSB I07 I06 I05 I04 I03 I02 I01 I00 623h hwnd : API-PAC(W32RM/DIO 115

( DMsgNo : 0 : DMsgNo = 0h, 400h DMsgNo 7FFFh 00Ch dwret : ( : 0 : 0 ( DioOpen Dio8255Mode 1 625h 0 : 1 DioSFilter Q&A SigLog, SigCh DioEventEx ISA/C 2 DioEventEx 116 API-PAC(W32RM/DIO

1 C HANDLE hwnd; WORD DMsgNo; WORD SigLog; WORD SigCh; DMsgNo = 0x470; SigLog = 0; /* 0 SigCh = 0; /* dwret = DioEvent(hDrv, SigLog, SigCh, hwnd, DMsgNo; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim SigLog As Integer Dim SigCh As Integer Dim dwret MsgOK.Message = &H470 SigLog = 0 ' 0 SigCh = 0 ' dwret = DioEvent(hDrv, SigLog, SigCh, MsgOK.hWnd, MsgOK.Message ErrChk(dwRet ' API-PAC(W32RM/DIO 117

DioIntEnable ( (C WORD IntMask; dwret = DioIntEnable(hDrv, IntMask (Visual Basic Dim hdrv Dim IntMask As Integer Dim dwret dwret = DioIntEnable(hDrv, IntMask hdrv : DioOpen IntMask : : 0 IntMask 1 0 : 1 : 624h dwret : ( : 0 : 0 ( DioEvent C WORD IntMask; IntMask = 1; /* / dwret = DioIntEnable(hDrv, IntMask; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim IntMask Dim dwret IntMask = 1 As Integer ' / dwret = DioIntEnable(hDrv, IntMask ErrChk(dwRet ' 118 API-PAC(W32RM/DIO

DioIntSence (C WORD IntSence; dwret = DioIntSence(hDrv, &IntSence; (Visual Basic Dim hdrv Dim IntSence As Integer Dim dwret dwret = DioIntSence(hDrv, IntSence hdrv : DioOpen IntSence : : 0 : 1 : CompactPCI PCI (PIO-48D(PCI PI-128L(PCI PIO-64/64L(PCI : API-PAC(W32RM/DIO 119

PIO-32/32L(PCIH PI-64L(PCIH PIO-16/16L(PCIH PI-32L(PCIH PIO-16/16RY(PCI : 0 7 :I00 I07 8 15 :I10 I17 PIO-48D(PCI : High Byte : MSB LSB 1PB7 1PB6 1PB5 1PB4 1PB3 1PB2 1PB1 1PB0 Low Byte : MSB LSB 1PA7 1PA6 1PA5 1PA4 1PA3 1PA2 1PA1 1PA0 PIO-64/64L(PCI PI-128L(PCI : 0 SigCh FFFFh High Byte : MSB LSB I17 I16 I15 I14 I13 I12 I11 I10 Low Byte : MSB LSB I07 I06 I05 I04 I03 I02 I01 I00 PIO-96W(PC : MSB LSB CN4 CN4 CN3 CN3 CN2 CN2 CN1 CN1 PC4 PC7 PC4 PC7 PC4 PC7 PC4 PC7 PIO-120D(PC : High Byte : Low Byte : PIO-96W(98K : PIO-24W(PM : 120 API-PAC(W32RM/DIO

PIO-32D(PM PIO-16/16L(PM : High Byte : MSB LSB I17 I16 I15 I14 I13 I12 I11 I10 Low Byte : MSB LSB I07 I06 I05 I04 I03 I02 I01 I00 623h dwret : ( : 0 : 0 ( PCI CompactPCI PIO-24W(PM PIO-96W(98K DioEvent PIO-16/16L(PCI, PIO-16/16T(PCI, PIO-32/32B(PCIH, PIO-32/32L(PCI, PIO-32/32T(PCI, PI-64L(PCI, PIO-32/32L(CPCI, PI-64L(CPCI DioEvent 0 : IntSence C WORD Intsence; dwret = DioIntSence(hDrv, &IntSence; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwret Dim IntSence As Integer dwret = DioIntSence(hDrv, IntSence ErrChk(dwRet ' API-PAC(W32RM/DIO 121

DioEventEx 1 ( (C WORD SigLog; WORD SigCh; HANDLE hwnd; WORD DMsgNo; dwret = DioEventEx(hDrv, SigLog, SigCh, hwnd, DMsgNo; (Visual Basic Dim hdrv Dim SigLog As Integer Dim SigCh As Integer Dim hwnd Dim DMsgNo As Integer Dim dwret dwret = DioEventEx(hDrv, SigLog, SigCh, hwnd, DMsgNo 122 API-PAC(W32RM/DIO

hdrv : DioOpen SigLog : PCI (PIO-48D(PCI CompactPCI E 0 : 0 SigLog 1 0 1 622h SigCh : PCI CompactPCI E PIO-96W(PC PIO-120D(PC PIO-24W(PM DioEvent SigCh : : 0 SigCh 3 1 : IRQ 1 : 2ndIRQ 2 : 3ndIRQ 3 : 4thIRQ E : 0 SigCh 3h 0 : I00 1 : I01 2 : I02 3 : I03 CompactPCI : 0 SigCh 3 PCI (PIO-48D(PCI PI-128L(PCI PIO-64/64L(PCI : 0 SigCh 3h 0 : I00 1 : I01 2 : I02 3 : I03 PIO-64/64L(PCI PI-128L(PCI: 0 SigCh Fh 0 7 : I00 I07 8 15 : I10 I17 API-PAC(W32RM/DIO 123

PIO-32/32L(PCIH PI-64L(PCIH PI-32L(PCIH 0 SigCh 31 0 7 : I00 I07 8 15 : I10 I17 16 23 : I20 I27 24 31 : I30 I37 PIO-16/16L(PCIH PIO-16/16RY(PCI 0 SigCh 15 PIO-48D(PCI : 0 SigCh 47 0 7 : I00 I07 8 15 : I10 I17 0 : 1PA0 : 7 : 1PA7 8 : 1PB0 : 15 : 1PB7 16 : 1PC0 : 23 : 1PC7 24 31 : 2PA0 7 32 39 : 2PB0 7 40 47 : 2PC0 7 PIO-96W(PC : 0 SigCh 8 0 : CN1 PC7 1 : CN1 PC4 2 : CN2 PC7 3 : CN2 PC4 4 : CN3 PC7 5 : CN3 PC4 6 : CN4 PC7 7 : CN4 PC4 PIO-120D(PC : 0 SigCh 9 0 : CN1 PC0 1 : CN1 PC3 2 : CN2 PC0 3 : CN2 PC3 4 : CN3 PC0 5 : CN3 PC3 6 : CN4 PC0 7 : CN4 PC3 8 : CN5 PC0 9 : CN5 PC3 124 API-PAC(W32RM/DIO

PIO-24W(PM : 0 SigCh 1 0 : CN1 PC0 1 : CN1 PC3 PIO-32D(PM : 0 SigCh 31 0 7 : I00 I07 8 15 : I10 I17 16 23 : I20 I27 24 31 : I30 I37 PIO-16/16L(PM : 0 SigCh 15 0 7 : I00 I07 8 15 : I10 I17 623h hwnd : ( 0 DMsgNo : DMsgNo = 0h, 400h DMsgNo 7FFFh 00Ch dwret : ( : 0 : 0 ( DioOpen Dio8255Mode 1 625h "0 1" DioSFilter Q&A" " SigLog DioEvent API-PAC(W32RM/DIO 125

1 1 0 C HANDLE hwnd; WORD DMsgNo; WORD SigLog; WORD SigCh; DMsgNo = 0x470; SigLog = 0; /* 0 SigCh = 0; /* dwret = DioEventEx(hDrv, SigLog, SigCh, hwnd, DMsgNo; ErrChk(dwRet; /* DMsgNo = 0x471; SigLog = 0; /* 0 SigCh = 1; /* dwret = DioEventEx(hDrv, SigLog, SigCh, hwnd, DMsgNo; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim SigLog Dim SigCh Dim dwret As Integer As Integer MsgOK0.Message = &H470 SigLog = 0 ' 0 SigCh = 0 ' dwret = DioEventEx(hDrv, SigLog, SigCh, MsgOK0.hWnd, MsgOK0.Message ErrChk(dwRet ' MsgOK1.Message = &H471 SigLog = 0 ' 0 SigCh = 1 ' dwret = DioEventEx(hDrv, SigLog, SigCh, MsgOK1.hWnd, MsgOK1.Message ErrChk(dwRet ' 126 API-PAC(W32RM/DIO

DioIntEnableEx ( ( (C WORD SigCh; WORD IntMask; dwret = DioIntEnableEx(hDrv, SigCh, IntMask (Visual Basic Dim hdrv Dim SigCh As Integer Dim IntMask As Integer Dim dwret dwret = DioIntEnableEx(hDrv, SigCh, IntMask hdrv : DioOpen SigCh : DioEventEx IntMask : : 0 IntMask 1 0 1 624h dwret : ( : 0 : 0 ( DioEventEx API-PAC(W32RM/DIO 127

C WORD SigCh; WORD IntMask; SigCh = 0; /* IntMask = 1; /* / dwret = DioIntEnableEx(hDrv, SigCh, IntMask; ErrChk(dwRet; Visual Basic Dim hdrv Dim SigCh Dim IntMask Dim dwret As Integer As Integer /* SigCh = 0 ' IntMask = 1 ' / dwret = DioIntEnableEx(hDrv, SigCh, IntMask ErrChk(dwRet ' 128 API-PAC(W32RM/DIO

LpByte Visual Basic (8 (C (Visual Basic Dim Data As Byte Dim Param Param = LpByte(Data Data : Param : Data Visual Basic LpWord Visual Basic (16 (C (Visual Basic Dim Data As Integer Dim Param Param = LpWord(Data Data : Param : Data Visual Basic LpDWord Visual Basic (32 (C (Visual Basic Dim Data Dim Param Param = LpDWord(Data Data : Param : Data Visual Basic API-PAC(W32RM/DIO 129

"0" "0" API-TOOL 000h 001h 002h 003h 004h 005h 00Ch 010h 011h : 0 DrvNo 3 : 1 GrpNo 4 : WM_USER = 0h, 400h WM_USER 7FFFh PCI CompactPCI BoardID PCI CompactPCI BoardID CONFIG.EXE BoardID PCI CompactPCI BoardID PCI CompactPCI BoardID 130 API-PAC(W32RM/DIO

API-DIO 600h 601h 602h 603h 604h 605h 606h 607h 608h 609h 60Ah 60Bh 610h : 0 PortNo - 1 : 1 PortNum DioInpBack, DioBitInpBack, DioOutBack, DioBitOutBack, DioPtnStart DioTrgStart : 1 DataNum FFFFh DioInpBack, DioBitInpBack, DioOutBack, DioBitOutBack, DioPtnStart DioTrgStart DioStop : 0 BitNo - 1 API-PAC(W32RM/DIO 131

611h 612h 613h 620h 621h 622h 623h 624h 625h 626h 627h 628h 629h 630h 631h 632h : 1 BitNum : 3 7, 9 12, 14, 15 : 0 SigLog 1 : 0 SigCh 3FFh / / : 0 IntMask 1 DioIntEnable DioEvent DioIntEnable DioEvent DioEvent Dio8255Mode : 0 CNx ( - 1 Dio8255Mode Dio8255Mode : 0 PortNo 2 132 API-PAC(W32RM/DIO

633h 634h 635h 636h 637h 638h 639h 63Ah 63Bh 63Ch 642h E PCI CompactPCI PCI CompactPCI E JP2 2-3 Q&A : E PCI CompactPCI 0 TimCode 20 0, 12 TimCode 20 : 1 PortNum 4 : 1 StsBufNum FFFFFFFFh DioPtnSet DioPtnStart DioPtnStart DioPtnSts : 0 TrgKind 3 DioTrgSet DioTrgStart DioTrgStart DioTrgSts BCD BCD : 1 Figure 8 : (PortNo+Figure/2 BCD BCD : 1 Value 99999999 1 16 : 0 16 9 API-PAC(W32RM/DIO 133

134 API-PAC(W32RM/DIO

PIO-32DM(PCI PIO-32DM(PCI PIO-32DM(PCI API-TOOL API-PAC(W32 ( 1 Windows XP/2000 Windows Me/98/95 OS (HWINST.HLP DLL (VXD/SYS 1 PIO-32DM(PCI 1 1 Windows Me/98/95 API-TOOL C: CONTECW95 CONFIG.EXE C: CONTECW95 APCFG.DLL C: WINDOWS SYSTEM APCFG.VXD DLL VXD Windows XP/2000/NT 2 C: WINDOWS SYSTEM APIDIO.DLL C: WINDOWS SYSTEM APIDIO05.VXD API-TOOL C: CONTEC CONFIG.EXE C: CONTEC APCFG.DLL C: WINNT SYSTEM32 DRIVERS APCFG.SYS DLL SYS C: WINNT SYSTEM32 APIDIO.DLL C: WINNT SYSTEM32 DRIVERS APIDIO05.SYS DLL VisualC++ (APIDIODM.H LIB (APIDIO.LIB VisualBasic (APIDIODM.BAS 2 Windows XP 2000 VB4.0 Windows XP 2000 MFC API-PAC(W32RM/DIO 135

PIO-32DM(PCI PIO-32DM(PCI / ( 3.1 136 API-PAC(W32RM/DIO

PIO-32DM(PCI API-PAC(W32RM/DIO 137 (DioOpen DioOpenEx (DioDmSetDirection 32 32 16 16 / / 1 (DioDmSetStandAlone 1 ( (DioDmSetSetMasterCfg ( (DioDmSetSlaveCfg (SC ( / ( / / / ( (DioDmSetStartTrg ( (DioDmSetClockTrg ( (DioDmSetStopTrg 3 ( /

PIO-32DM(PCI 138 API-PAC(W32RM/DIO / 3.1 / DIODM_START_SOFT DIODM_START_EXT_RISE DIODM_START_EXT_FALL ( DIODM_START_PATTERN SC EXTSIG1 DIODM_START_EXTSIG_1 SC EXTSIG2 DIODM_START_EXTSIG_2 SC EXTSIG3 DIODM_START_EXTSIG_3 DIODM_CLK_CLOCK DIODM_CLK_EXT_TRG DIODM_CLK_HANDSHAKE SC EXTSIG1 DIODM_CLK_EXTSIG_1 SC EXTSIG2 DIODM_CLK_EXTSIG_2 SC EXTSIG3 DIODM_CLK_EXTSIG_3 DIODM_STOP_SOFT DIODM_STOP_EXT_RISE DIODM_STOP_EXT_FALL DIODM_STOP_NUM_1 SC EXTSIG1 DIODM_STOP_EXTSIG_1 SC EXTSIG1 DIODM_STOP_EXTSIG_2 SC EXTSIG1 DIODM_STOP_EXTSIG_3 FIFO (DioDmReset ( (DioDmSetBuff

PIO-32DM(PCI API-PAC(W32RM/DIO 139 PIO-32DM(PCI 64MByte ( FIFO (DioDmSetBuff PIO-32DM(PCI 64MByte / (DioDmStart / / DioDmStart / FIFO FIFO / / (DioDmGetStatus (DioDmSetStopEvent (DioDmGetCount /

PIO-32DM(PCI 140 API-PAC(W32RM/DIO PIO (DioDmInpDWord (DioDmOutDWord PIO 4 (DioEvent, DioIntSence, DioIntEnable, DioEventEx, DioIntEnableEx DIOA00 DIOA03 PIO 2 (SC EXTSIG1 EXTSIG3 DioDmSetSetMasterCfg EXTSIG1 EXTSIG3 DioDmSetSlaveCfg EXTSIG1 EXTSIG3 EXTSIG1 EXTSIG3 (DioDmSetStartTrg (DioDmSetClockTrg (DioDmSetStopTrg 3 EXTSIG1 EXTSIG3

PIO-32DM(PCI API-PAC(W32RM/DIO 141 3.2 / DIODM_EXT_START_SOFT_IN DIODM_EXT_STOP_SOFT_IN DIODM_EXT_CLOCK_IN DIODM_EXT_EXT_TRG_IN DIODM_EXT_START_EXT_RISE_IN DIODM_EXT_START_EXT_FALL_IN DIODM_EXT_START_PATTERN_IN DIODM_EXT_STOP_EXT_RISE_IN DIODM_EXT_STOP_EXT_FALL_IN DIODM_EXT_CLOCK_ERROR_IN DIODM_EXT_HANDSHAKE_IN DIODM_EXT_START_SOFT_OUT DIODM_EXT_STOP_SOFT_OUT DIODM_EXT_CLOCK_OUT DIODM_EXT_EXT_TRG_OUT DIODM_EXT_START_EXT_RISE_OUT DIODM_EXT_START_EXT_FALL_OUT DIODM_EXT_STOP_EXT_RISE_OUT DIODM_EXT_STOP_EXT_FALL_OUT DIODM_EXT_CLOCK_ERROR_OUT DIODM_EXT_HANDSHAKE_OUT (DioClose

PIO-32DM(PCI 142 API-PAC(W32RM/DIO DioOpen DioOpenEx ( DioClose DioDmSetDirection DioDmSetStandAlone DioDmSetSetMasterCfg DioDmSetSlaveCfg / DioDmSetStartTrg DioDmSetStartPattern DioDmSetClockTrg DioDmSetInternalClock DioDmSetStopTrg DioDmSetStopNum DioDmReset FIFO DioDmSetBuff / DioDmStart / DioDmStop / DioDmGetStatus DioDmGetCount DioDmSetStopEvent DioDmSetCountEvent DioDmInpDWord DioDmOutDWord DioEvent DioIntSence DioIntEnable / DioEventEx ( DioIntEnableEx /

PIO-32DM(PCI DioOpen (C WORD DrvNo; WORD GrpNo; dwret = DioOpen(&hDrv, DrvNo, GrpNo; (Visual Basic Dim hdrv Dim DrvNo As Integer Dim GrpNo As Integer Dim dwret dwret = DioOpen(hDrv, DrvNo, GrpNo hdrv : DioDmXxxx DrvNo : : DrvNo=5 001h GrpNo : : 1 GrpNo 16 003h dwret : ( : 0 : 0 ( 1 (DioOpen 1 (DioClose (DioOpen (DioClose (DioClose 1 ( 1 API-PAC(W32RM/DIO 143

PIO-32DM(PCI API-TOOL 1 C WORD GrpNo, DrvNo; DrvNo = 5; GrpNo = 1; dwret = DioOpen(&hDrv, DrvNp, GrpNo; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim DrvNo As Integer Dim GrpNo As Integer Dim dwret DrvNo = 5 GrpNo = 1 dwret = DioOpen(hDrv, DrvNo, GrpNo ErrChk(dwRet ' 144 API-PAC(W32RM/DIO

PIO-32DM(PCI DioOpenEx ( (C char *DeviceName; dwret = DioOpenEx(DeviceName, &hdrv; (Visual Basic Dim hdrv Dim DeviceName As String Dim dwret dwret = DioOpenEx(DeviceName, hdrv hdrv : DioXxxx DeviceName : API-TOOL dwret : ( : 0 : 0 ( (DioClose (DioClose ( DioOpenEx DioOpenEx DioClose API-TOOL "DIO00" C dwret = DioOpenEx("DIO00", &hdrv; ErrChk(dwRet; Visual Basic Dim hdrv Dim dwret dwret = DioOpenEx("DIO00", hdrv ErrChk(dwRet /* ' API-PAC(W32RM/DIO 145

PIO-32DM(PCI DioClose (C dwret = DioClose(hDrv; (Visual Basic Dim hdrv Dim dwret dwret = DioClose(hDrv hdrv : DioOpen dwret : ( : 0 : 0 ( (DioOpen (DioOpen 'hdrv' DioClose DioOpen C dwret = DioClose(hDrv; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwret dwret = DioClose(hDrv ErrChk(dwRet ' 146 API-PAC(W32RM/DIO

PIO-32DM(PCI DioDmSetDirection (C DWORD Directoin; dwret = DioDmSetDirection(hDrv, Direction; (Visual Basic Dim hdrv Dim Direction Dim dwret dwret = DioDmSetDirection(hDrv, Direction hdrv : DioOpen Direction : PI_32 : 32 PO_32 : 32 PIO_1616 : 16 16 dwret : ( : 0 : 0 ( PI-32 32 C DWORD Directoin; Direction = PI_32; dwret = DioDmSetDirection(hDrv, Direction; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim Direction Dim dwret Direction = PI_32; dwret = DioDmSetDirection(hDrv, Direction ErrChk(dwRet ' API-PAC(W32RM/DIO 147

PIO-32DM(PCI DioDmSetStandAlone (C dwret = DioDmSetStandAlone(hDrv; (Visual Basic Dim hdrv Dim dwret dwret = DioDmSetStandAlone(hDrv hdrv : DioOpen dwret : ( : 0 : 0 ( / / / / C dwret = DioDmSetStandAlone(hDrv; ErrChk(dwRet; /* Visual Basic Dim hdrv im dwret dwret = DioDmSetStandAlone(hDrv ErrChk(dwRet ' 148 API-PAC(W32RM/DIO

PIO-32DM(PCI DioDmSetSetMasterCfg (C DWORD ExtSig1; DWORD ExtSig2; DWORD ExtSig3; DWORD MasterHalt; DWORD SlaveHalt; dwret = DioDmSetSetMasterCfg(hDrv, ExtSig1, ExtSig2, ExtSig3, MasterHalt, SlaveHalt; (Visual Basic Dim hdrv Dim ExtSig1 Dim ExtSig2 Dim ExtSig3 Dim MasterHalt Dim SlaveHalt Dim dwret dwret = DioDmSetSetMasterCfg(hDrv, ExtSig1, ExtSig2, ExtSig3, MasterHalt, SlaveHalt hdrv : DioOpen ExtSig1 : ExtSig2 : ExtSig3 : ExtSig1 ExtSig3 0 : DIODM_EXT_START_SOFT_IN : ( DIODM_EXT_STOP_SOFT_IN : ( DIODM_EXT_CLOCK_IN : ( DIODM_EXT_EXT_TRG_IN : ( DIODM_EXT_START_EXT_RISE_IN : ( DIODM_EXT_START_EXT_FALL_IN : ( DIODM_EXT_START_PATTERN_IN : ( API-PAC(W32RM/DIO 149

PIO-32DM(PCI DIODM_EXT_STOP_EXT_RISE_IN : ( DIODM_EXT_STOP_EXT_FALL_IN : ( DIODM_EXT_CLOCK_ERROR_IN : ( DIODM_EXT_HANDSHAKE_IN : ( MasterHalt : DIODM_EXT_START_SOFT_OUT : ( DIODM_EXT_STOP_SOFT_OUT : ( DIODM_EXT_CLOCK_OUT : ( DIODM_EXT_EXT_TRG_OUT : ( DIODM_EXT_START_EXT_RISE_OUT : ( DIODM_EXT_START_EXT_FALL_OUT : ( DIODM_EXT_STOP_EXT_RISE_OUT : ( DIODM_EXT_STOP_EXT_FALL_OUT : ( DIODM_EXT_CLOCK_ERROR_OUT : ( DIODM_EXT_HANDSHAKE_OUT : ( 1 : ( SlaveHalt : 1 : ( dwret : ( : 0 : 0 ( / / / / (SC (SC 150 API-PAC(W32RM/DIO

PIO-32DM(PCI ExtSig2 ExtSig1 ExtSig3 C DWORD ExtSig1, ExtSig2, ExtSig3, MasterHalt, SlaveHalt; ExtSig1 = DIODM_EXT_CLOCK_IN; ExtSig2 = DIODM_EXT_START_SOFT_IN; ExtSig3 = DIODM_EXT_STOP_SOFT_IN; MasterHalt = 1; SlaveHalt = 1; dwret = DioDmSetSetMasterCfg(hDrv, ExtSig1, ExtSig2, ExtSig3, MasterHalt, SlaveHalt; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim ExtSig1 Dim ExtSig2 Dim ExtSig3 Dim MasterHalt Dim SlaveHalt Dim dwret ExtSig1 = DIODM_EXT_CLOCK_IN ExtSig2 = DIODM_EXT_START_SOFT_IN ExtSig3 = DIODM_EXT_STOP_SOFT_IN MasterHalt = 1 SlaveHalt = 1 dwret = DioDmSetSetMasterCfg(hDrv, ExtSig1, ExtSig2, ExtSig3, MasterHalt, SlaveHalt ErrChk(dwRet ' API-PAC(W32RM/DIO 151

PIO-32DM(PCI DioDmSetSlaveCfg (C DWORD ExtSig1; DWORD ExtSig2; DWORD ExtSig3; DWORD MasterHalt; DWORD SlaveHalt; dwret = DioDmSetSlaveCfg(hDrv, ExtSig1, ExtSig2, ExtSig3, MasterHalt, SlaveHalt; (Visual Basic Dim hdrv Dim ExtSig1 Dim ExtSig3 Dim MasterHalt Dim SlaveHalt Dim dwret dwret = DioDmSetSlaveCfg(hDrv, ExtSig1, ExtSig2, ExtSig3, MasterHalt, SlaveHalt hdrv : DioOpen ExtSig1 : ExtSig2 : ExtSig3 : 0 : 1 : MasterHalt : 1 : ( SlaveHalt : 1 : ( dwret : ( : 0 : 0 ( / / / / (SC (SC 152 API-PAC(W32RM/DIO

PIO-32DM(PCI ExtSig1 ExtSig2 ExtSig3 C DWORD ExtSig1, ExtSig2, ExtSig3, MasterHalt, SlaveHalt; ExtSig1 = 1; ExtSig2 = 1; ExtSig3 = 1; MasterHalt = 1; SlaveHalt = 1; dwret = DioDmSetSlaveCfg(hDrv, ExtSig1, ExtSig2, ExtSig3, MasterHalt, SlaveHalt; ErrChk(dwRet; Visual Basic Dim hdrv Dim ExtSig1 Dim ExtSig2 Dim ExtSig3 Dim MasterHalt Dim SlaveHalt Dim dwret /* ExtSig1 = 1 ExtSig2 = 1 ExtSig3 = 1 MasterHalt = 1 SlaveHalt = 1 dwret = DioDmSetSlaveCfg(hDrv, ExtSig1, ExtSig2, ExtSig3, MasterHalt, SlaveHalt ErrChk(dwRet ' API-PAC(W32RM/DIO 153

PIO-32DM(PCI DioDmSetStartTrg (C DWORD Dir; DWORD Start; dwret = DioDmSetStartTrg(hDrv, Dir, Start; (Visual Basic Dim hdrv Dim Dir Dim Start Dim dwret dwret = DioDmSetStartTrg(hDrv, Dir, Start hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : EXTSIG1 EXTSIG3 Start : DIODM_START_SOFT : DIODM_START_EXT_RISE : DIODM_START_EXT_FALL : DIODM_START_PATTERN : ( DIODM_START_EXTSIG_1 : SC EXTSIG1 DIODM_START_EXTSIG_2 : SC EXTSIG2 DIODM_START_EXTSIG_3 : SC EXTSIG3 dwret : ( : 0 : 0 ( DioDmSetStartPattern 154 API-PAC(W32RM/DIO

PIO-32DM(PCI C DWORD Dir; DWORD Start; Dir = DIODM_DIR_IN; Start = DIODM_START_SOFT; dwret = DioDmSetStartTrg(hDrv, Dir, Start; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim Dir Dim Start Dim dwret Dir = DIODM_DIR_IN Start = DIODM_START_SOFT dwret = DioDmSetStartTrg(hDrv, Dir, Start ErrChk(dwRet ' API-PAC(W32RM/DIO 155

PIO-32DM(PCI DioDmSetStartPattern (C DWORD Ptn; DWORD Mask; dwret = DioDmSetStartPattern(hDrv, Ptn, Mask; (Visual Basic Dim hdrv Dim Ptn Dim Mask Dim dwret dwret = DioDmSetStartPattern(hDrv, Ptn, Mask hdrv : DioOpen Ptn : Mask : ( : Bit=0, : Bit=1 dwret : ( : 0 : 0 ( DioDmSetStartTrg DIODM_START_PATTERN 0 7 55h C DWORD Ptn; DWORD Mask; Ptn = 0x00000055; Mask = 0x000000ff; dwret = DioDmSetStartPattern(hDrv, Ptn, Mask; ErrChk(dwRet; /* 156 API-PAC(W32RM/DIO

PIO-32DM(PCI Visual Basic Dim hdrv Dim Ptn Dim Mask Dim dwret Ptn = &H55 Mask = &HFF dwret = DioDmSetStartPattern(hDrv, Ptn, Mask ErrChk(dwRet ' API-PAC(W32RM/DIO 157

PIO-32DM(PCI DioDmSetClockTrg / (C DWORD Dir; DWORD Clock; dwret = DioDmSetClockTrg(hDrv, Dir, Clock; (Visual Basic Dim hdrv Dim Dir Dim Clock Dim dwret dwret = DioDmSetClockTrg(hDrv, Dir, Clock hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : EXTSIG1 EXTSIG3 Clock : DIODM_CLK_CLOCK : ( DIODM_CLK_EXT_TRG : DIODM_CLK_HANDSHAKE : DIODM_CLK_EXTSIG_1 : SC EXTSIG1 DIODM_CLK_EXTSIG_2 : SC EXTSIG2 DIODM_CLK_EXTSIG_3 : SC EXTSIG3 dwret : ( : 0 : 0 ( C DWORD Dir; DWORD Clock; Dir = DIODM_DIR_IN; Clock = DIODM_CLK_CLOCK; dwret = DioDmSetClockTrg(hDrv, Dir, Clock; ErrChk(dwRet; /* 158 API-PAC(W32RM/DIO

PIO-32DM(PCI Visual Basic Dim hdrv Dim Dir Dim Clock Dim dwret Dir = DIODM_DIR_IN; Clock = DIODM_CLK_CLOCK; dwret = DioDmSetClockTrg(hDrv, Dir, Clock ErrChk(dwRet ' API-PAC(W32RM/DIO 159

PIO-32DM(PCI DioDmSetInternalClock (C DWORD Dir; DWORD Clock; DWORD Unit; dwret = DioDmSetInternalClock(hDrv, Dir, Clock, Unit; (Visual Basic Dim hdrv Dim Dir Dim Clock Dim Unit Dim dwret dwret = DioDmSetInternalClock(hDrv, Dir, Clock, Unit hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : Clock : : 50ns Clock 107sec(25ns DWORD Unit; DIODM_TIM_UNIT_S : 1 DIODM_TIM_UNIT_MS : 1ms DIODM_TIM_UNIT_US : 1 s DIODM_TIM_UNIT_NS : 1ns dwret : ( : 0 : 0 ( 1 s ns 25ns SetClock = (Clock/25 160 API-PAC(W32RM/DIO

PIO-32DM(PCI 1MHz(1 s C DWORD Dir; DWORD Clock; DWORD Unit; Dir = DIODM_DIR_IN; Clock = 1; Unit = DIODM_TIM_UNIT_US; dwret = DioDmSetInternalClock(hDrv, Dir, Clock, Unit; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim Dir Dim Clock Dim Unit Dim dwret Dir = DIODM_DIR_IN Clock = 1 Unit = DIODM_TIM_UNIT_US dwret = DioDmSetInternalClock(hDrv, Dir, Clock, Unit ErrChk(dwRet ' API-PAC(W32RM/DIO 161

PIO-32DM(PCI DioDmSetStopTrg / (C DWORD Dir; DWORD Stop; dwret = DioDmSetStopTrg(hDrv, Dir, Stop; (Visual Basic Dim hdrv Dim Dir Dim Stop Dim dwret dwret = DioDmSetStopTrg(hDrv, Dir, Stop hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : EXTSIG1 EXTSIG3 Stop : DIODM_STOP_SOFT : DIODM_STOP_EXT_RISE : DIODM_STOP_EXT_FALL : DIODM_STOP_NUM : DIODM_STOP_EXTSIG_1 : SC EXTSIG1 DIODM_STOP_EXTSIG_2 : SC EXTSIG2 DIODM_STOP_EXTSIG_3 : SC EXTSIG3 dwret : ( : 0 : 0 ( (DioDmStop 162 API-PAC(W32RM/DIO

PIO-32DM(PCI C DWORD Dir; DWORD Stop; Dir = DIODM_DIR_IN; Stop = DIODM_STOP_SOFT; dwret = DioDmSetStopTrg(hDrv, Dir, Stop; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim Dir Dim Stop Dim dwret Dir = DIODM_DIR_IN Stop = DIODM_STOP_SOFT dwret = DioDmSetStopTrg(hDrv, Dir, Stop ErrChk(dwRet ' API-PAC(W32RM/DIO 163

PIO-32DM(PCI DioDmSetStopNum (C DWORD Dir; DWORD StopNum; dwret = DioDmSetStopNum(hDrv, Dir, StopNum; (Visual Basic Dim hdrv Dim Dir Dim StopNum Dim dwret dwret = DioDmSetStopNum(hDrv, Dir, StopNum hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : StopNum : 1 StopNum 16777215(24Bit dwret : ( : 0 : 0 ( 1000 10000 C DWORD Dir; DWORD StopNum; Dir = DIODM_DIR_IN; StopNum = 10000; dwret = DioDmSetStopNum(hDrv, Dir, StopNum; ErrChk(dwRet; /* 164 API-PAC(W32RM/DIO

PIO-32DM(PCI Visual Basic Dim hdrv Dim Dir Dim StopNum Dim dwret Dir = DIODM_DIR_IN StopNum = 10000 dwret = DioDmSetStopNum(hDrv, Dir, StopNum ErrChk(dwRet ' API-PAC(W32RM/DIO 165

PIO-32DM(PCI DioDmReset FIFO (C DWORD Reset; dwret = DioDmReset(hDrv, Reset; (Visual Basic Dim hdrv Dim Reset Dim dwret dwret = DioDmReset(hDrv, Reset hdrv : DioOpen Reset : DIODM_RESET_FIFO_IN : FIFO DIODM_RESET_FIFO_OUT : FIFO dwret : ( : 0 : 0 ( FIFO FIFO FIFO FIFO C DWORD Reset; Reset = DIODM_RESET_FIFO_IN; dwret = DioDmReset(hDrv, Reset; ErrChk(dwRet; Visual Basic Dim hdrv Dim Reset Dim dwret Reset = DIODM_RESET_FIFO_IN dwret = DioDmReset(hDrv, Reset ErrChk(dwRet /* ' 166 API-PAC(W32RM/DIO

PIO-32DM(PCI DioDmSetBuff / (C DWORD Dir; DWORD *Buff; DWORD Len; DWORD IsRing; dwret = DioDmSetBuff(hDrv, Dir, Buff, Len, IsRing; (Visual Basic Dim hdrv Dim Dir Dim Buff Dim Len Dim IsRing Dim dwret dwret = DioDmSetBuff(hDrv, Dir, Buff, Len, IsRing hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : Buff : Len : ( 64MByte IsRing : DIODM_WRITE_ONCE : 1 DIODM_WRITE_RING : dwret : ( : 0 : 0 ( IsRing (1 64Mbyte 64Mbyte API-PAC(W32RM/DIO 167

PIO-32DM(PCI 32 C DWORD Dir; DWORD Buff[1000]; DWORD Len; DWORD IsRing; Dir = DIODM_DIR_IN; Len = 1000; IsRing = DIODM_WRITE_ONCE; dwret = DioDmSetBuff(hDrv, Dir, (void *&Buff[0], Len, IsRing; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim Dir Dim Buff(1000 Dim Len Dim IsRing Dim dwret Dir = DIODM_DIR_IN Len = 1000 IsRing = DIODM_WRITE_ONCE dwret = DioDmSetBuff(hDrv, Dir, Buff(0, Len, IsRing ErrChk(dwRet ' 168 API-PAC(W32RM/DIO

PIO-32DM(PCI DioDmStart / (C DWORD Dir; dwret = DioDmStart(hDrv, Dir; (Visual Basic Dim hdrv Dim Dir Dim dwret dwret = DioDmStart(hDrv, Dir hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : dwret : ( : 0 : 0 ( C DWORD Dir; Dir = DIODM_DIR_IN; wret = DioDmStart(hDrv, Dir; ErrChk(dwRet; Visual Basic Dim hdrv Dim Dir Dim dwret Dir = DIODM_DIR_IN dwret = DioDmStart(hDrv, Dir ErrChk(dwRet /* ' API-PAC(W32RM/DIO 169

PIO-32DM(PCI DioDmStop / (C DWORD Dir; dwret = DioDmStop(hDrv, Dir; (Visual Basic Dim hdrv Dim Dir Dim dwret dwret = DioDmStop(hDrv, Dir hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : dwret : ( : 0 : 0 ( ( C DWORD Dir; Dir = DIODM_DIR_IN; dwret = DioDmStop(hDrv, Dir; ErrChk(dwRet; Visual Basic Dim hdrv Dim dwret /* Dir = DIODM_DIR_IN dwret = DioDmStop(hDrv, Dir ErrChk(dwRet ' 170 API-PAC(W32RM/DIO

PIO-32DM(PCI DioDmGetStatus (C DWORD Status; DWORD Err; dwret = DioDmGetStatus(hDrv, Dir, &Status, &Err; (Visual Basic Dim hdrv Dim Status Dim Err Dim dwret dwret = DioDmGetStatus(hDrv, Dir, Status, Err hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : Status : ( Err : dwret : ( : 0 : 0 ( / C DWORD Dir; DWORD Status; DWORD Err; Dir = DIODM_DIR_IN; dwret = DioDmGetStatus(hDrv, Dir, &Status, &Err; ErrChk(dwRet; /* API-PAC(W32RM/DIO 171

PIO-32DM(PCI Visual Basic Dim hdrv Dim Dir Dim Status Dim Err Dim dwret Dir = DIODM_DIR_IN dwret = DioDmGetStatus(hDrv, Dir, Status, Err ErrChk(dwRet ' 172 API-PAC(W32RM/DIO

PIO-32DM(PCI DioDmGetCount (C DWORD Dir; DWORD Count; DWORD Carry; dwret = DioDmGetCount(hDrv, Dir, &Count, &Carry; (Visual Basic Dim hdrv Dim Dir Dim Count Dim Carry Dim dwret dwret = DioDmGetCount(hDrv, Dir, Count, Carry hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : Count : Carry : dwret : ( : 0 : 0 ( Count Carry 64 Count Carry unsigned VisualBasic Long C DWORD Dir; DWORD Count; DWORD Carry; Dir = DIODM_DIR_IN; dwret = DioDmGetCount(hDrv, Dir, &Count, &Carry; ErrChk(dwRet; /* API-PAC(W32RM/DIO 173

PIO-32DM(PCI Visual Basic Dim hdrv Dim Dir Dim Count Dim Carry Dim dwret Dir = DIODM_DIR_IN dwret = DioDmGetCount(hDrv, Dir, Count, Carry ErrChk(dwRet ' 174 API-PAC(W32RM/DIO

PIO-32DM(PCI DioDmSetStopEvent (C DWORD Dir; HANDLE hwnd; DWORD dwmsg; dwret = DioDmSetStopEvent(hDrv, Dir, hwnd, dwmsg; (Visual Basic Dim hdrv Dim Dir Dim hwnd Dim dwmsg Dim dwret dwret = DioDmSetStopEvent(hDrv, Dir, hwnd, dwmsg hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : hwnd : dwmsg : ( 400h dwmsg 7FFFh 00Ch dwret : ( : 0 : 0 ( / VC VB MESSAGEECHO OCX API-PAC(W32RM/DIO 175

PIO-32DM(PCI 470H C DWORD Dir; HANDLE hwnd; DWORD dwmsg; Dir = DIODM_DIR_IN; dwmsg = 0x470; dwret = DioDmSetStopEvent(hDrv, Dir, hwnd, dwmsg; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim Dir Dim dwret Dir = DIODM_DIR_IN MsgEcho1.Message = &H470 dwret = DioDmSetStopEvent(hDrv, Dir, MsgEcho1.hWnd, MsgEcho1.Message ErrChk(dwRet ' 176 API-PAC(W32RM/DIO

PIO-32DM(PCI DioDmSetCountEvent (C DWORD Dir; DWORD Count; HANDLE hwnd; DWORD dwmsg; dwret = DioDmSetCountEvent(hDrv, Dir, Count, hwnd, dwmsg; (Visual Basic Dim hdrv Dim Dir Dim Count Dim hwnd Dim dwmsg Dim dwret dwret = DioDmSetCountEvent(hDrv, Dir, Count, hwnd, dwmsg hdrv : DioOpen Dir : DIODM_DIR_IN : DIODM_DIR_OUT : Count : : 1 Count 16777215(24Bit hwnd : dwmsg : ( 400h dwmsg 7FFFh 00Ch dwret : ( : 0 : 0 ( / VC VB MESSAGEECHO OCX Count API-PAC(W32RM/DIO 177

PIO-32DM(PCI 1000 470H C DWORD Dir; DWORD Count; HANDLE hwnd; DWORD dwmsg; Dir = DIODM_DIR_IN Count = 1000; dwmsg = 0x470 dwret = DioDmSetCountEvent(hDrv, Dir, Count, hwnd, dwmsg; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim Dir Dim Count Dim dwret Dir = DIODM_DIR_IN Count = 1000 MsgEcho1.Message = &H470 dwret = DioDmSetCountEvent(hDrv, Dir, MsgEcho1.hWnd, MsgEcho1.Message ErrChk(dwRet ' 178 API-PAC(W32RM/DIO

PIO-32DM(PCI DioDmInpDWord (C WORD wport; DWORD dwdata; dwret = DioDmInpDWord(hDrv, wport, &dwdata; (Visual Basic Dim hdrv Dim wport As Integer Dim dwdata Dim dwret dwret = DioDmInpDWord(hDrv, wport, dwdata hdrv : DioOpen wport : 0 ( dwdata : dwret : ( : 0 : 0 ( C DWORD dwdata; dwret = DioDmInpDWord(hDrv, 0, &dwdata; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwdata Dim dwret dwret = DioDmInpDWord(hDrv, 0, dwdata ErrChk(dwRet ' API-PAC(W32RM/DIO 179

PIO-32DM(PCI DioDmOutDWord (C WORD wport; DWORD dwdata; dwret = DioDmOutDWord(hDrv, wport, dwdata; (Visual Basic Dim hdrv Dim wport As Integer Dim dwdata Dim dwret dwret = DioDmOutDWord(hDrv, wport, dwdata hdrv : DioOpen wport : 0 ( dwdata : dwret : ( : 0 : 0 ( 12345678h C DWORD dwdata; dwdata = 0x12345678; dwret = DioDmOutDWord(hDrv, 0, dwdata; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwdata Dim dwret dwdata = &H12345678 dwret = DioDmOutDWord(hDrv, 0, dwdata ErrChk(dwRet ' 180 API-PAC(W32RM/DIO

PIO-32DM(PCI DioEvent (C WORD SigLog; WORD SigCh; HANDLE hwnd; WORD MsgNo; dwret = DioEvent(hDrv, SigLog, SigCh, hwnd, DMsgNo; (Visual Basic Dim hdrv Dim SigLog As Integer Dim SigCh As Integer Dim hwnd Dim MsgNo As Integer Dim dwret dwret = DioEvent(hDrv, SigLog, SigCh, hwnd, DMsgNo hdrv : DioOpen SigLog : 0 622h SigCh : "1" : 0 SigCh Fh 623h MSB LSB 0 0 0 0 DIOA03 DIOA02 DIOA01 DIOA00 hwnd : ( MsgNo : 400h MsgNo 7FFFh 00Ch dwret : ( : 0 : 0 ( DioEventEx API-PAC(W32RM/DIO 181

PIO-32DM(PCI C HANDLE hwnd; WORD DMsgNo; WORD SigLog; WORD SigCh; DMsgNo = 0x470; SigLog = 0; /* 0 SigCh = 0; /* dwret = DioEvent(hDrv, SigLog, SigCh, hwnd, DMsgNo; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim SigLog As Integer Dim SigCh As Integer Dim dwret MsgEcho1.Message = &H470 SigLog = 0 ' 0 SigCh = 0 ' dwret = DioEvent(hDrv, SigLog, SigCh, MsgEcho1.hWnd, MsgEcho1.Message ErrChk(dwRet ' 182 API-PAC(W32RM/DIO

PIO-32DM(PCI DioIntSence (C WORD IntSence; dwret = DioIntSence(hDrv, &IntSence; (Visual Basic Dim hdrv Dim IntSence As Integer Dim dwret dwret = DioIntSence(hDrv, IntSence hdrv : DioOpen IntSence : 0 1 MSB LSB 0 0 0 0 DIOA03 DIOA02 DIOA01 DIOA00 dwret : ( : 0 : 0 ( DioEvent 0 IntSence C dwret = DioIntSence(hDrv, &IntSence; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim dwret dwret = DioIntSence(hDrv, IntSence ErrChk(dwRet ' API-PAC(W32RM/DIO 183

PIO-32DM(PCI DioIntEnable ( (C WORD IntMask; dwret = DioIntEnable(hDrv, IntMask (Visual Basic Dim hdrv Dim IntMask As Integer Dim dwret dwret = DioIntEnable(hDrv, IntMask hdrv : DioOpen IntMask : / : 0 IntMask 1 0 1 624h dwret : ( : 0 : 0 ( DioEvent C WORD IntMask; IntMask = 1; dwret = DioIntEnable(hDrv, IntMask; ErrChk(dwRet; Visual Basic Dim hdrv Dim IntMask As Integer Dim dwret IntMask = 1 dwret = DioIntEnable(hDrv, IntMask ErrChk(dwRet /* / /* ' / ' 184 API-PAC(W32RM/DIO

PIO-32DM(PCI DioEventEx ( (C WORD SigLog; WORD SigCh; HANDLE hwnd; WORD MsgNo; dwret = DioEventEx(hDrv, SigLog, SigCh, hwnd, MsgNo; (Visual Basic Dim hdrv Dim SigLog As Integer Dim SigCh As Integer Dim hwnd Dim MsgNo As Integer Dim dwret dwret = DioEventEx(hDrv, SigLog, SigCh, hwnd, MsgNo hdrv : DioOpen SigLog : 0 SigCh : : 0 SigCh 3 0 : DIOA00 1 : DIOA01 2 : DIOA02 3 : DIOA03 623h hwnd : ( MsgNo : 400h DMsgNo 7FFFh 00Ch dwret : ( : 0 : 0 ( DioEvent API-PAC(W32RM/DIO 185

PIO-32DM(PCI 1 1 0 C HANDLE hwnd; WORD DMsgNo; WORD SigLog; WORD SigCh; DMsgNo = 0x470; SigLog = 0; /* 0 SigCh = 0; /* dwret = DioEventEx(hDrv, SigLog, SigCh, hwnd, DMsgNo; ErrChk(dwRet; /* DMsgNo = 0x471; SigLog = 0; /* 0 SigCh = 1; /* dwret = DioEventEx(hDrv, SigLog, SigCh, hwnd, DMsgNo; ErrChk(dwRet; /* Visual Basic Dim hdrv Dim SigLog As Integer Dim SigCh As Integer Dim dwret MsgEcho1.Message = &H470 SigLog = 0 ' 0 SigCh = 0 ' dwret = DioEventEx(hDrv, SigLog, SigCh, MsgEcho1.hWnd, sgecho1.message ErrChk(dwRet ' MsgEcho2.Message = &H471 SigLog = 0 ' 0 SigCh = 1 ' dwret = DioEventEx(hDrv, SigLog, SigCh, MsgEcho2.hWnd, MsgEcho2.Message ErrChk(dwRet ' 186 API-PAC(W32RM/DIO

PIO-32DM(PCI DioIntEnableEx ( ( (C WORD SigCh; WORD IntMask; dwret = DioIntEnableEx(hDrv, SigCh, IntMask (Visual Basic Dim hdrv Dim SigCh As Integer Dim IntMask As Integer Dim dwret dwret = DioIntEnableEx(hDrv, SigCh, IntMask hdrv : DioOpen SigCh : DioEventEx IntMask : / : 0 IntMask 1 0 1 624h dwret : ( : 0 : 0 ( DioEventEx DioEvent API-PAC(W32RM/DIO 187

PIO-32DM(PCI C WORD SigCh; WORD IntMask; SigCh = 0; /* IntMask = 1; /* / dwret = DioIntEnableEx(hDrv, SigCh, IntMask; ErrChk(dwRet; /* Visual Basic Dim hdrv } Dim SigCh As Integer Dim IntMask As Integer Dim dwret SigCh = 0 ' IntMask = 1 ' / dwret = DioIntEnableEx(hDrv, SigCh, IntMask ErrChk(dwRet ' 188 API-PAC(W32RM/DIO

PIO-32DM(PCI API-PAC(W32RM/DIO 189 ( 1 DIODM_WRITE_ONCE DIODM_STOP_NUM DioDmSetStopNum DIODM_STATUS_BMSTOP Sleep Win32API 1 DIODM_WRITE_ONCE DIODM_STOP_NUM DioDmSetStopNum (DioDmGetCount Sleep Win32API

PIO-32DM(PCI 190 API-PAC(W32RM/DIO / 0 API 32 0 ( = 32 32 2 0001111111 16 0x03ff (32 ( = 0x03ff 0x03ff 0 0x03ff

PIO-32DM(PCI (DioDmGetStatus 3.3 DIODM_STATUS_BMSTOP DIODM_STATUS_PIOSTART DIODM_STATUS_PIOSTOP DIODM_STATUS_TRGIN DIODM_STATUS_OVERRUN 00000001h / 00000002h / PIO 00000004h / PIO 00000008h / 00000010h / (DioDmGetStatus 3.4 FIFO DIODM_STATUS_FIFOEMPTY 00000001h DIODM_STATUS_FIFOFULL 00000002h FIFO DIODM_STATUS_SGOVERIN 00000004h DIODM_STATUS_TRGERR 00000008h / DIODM_STATUS_CLKERR 00000010h / API-PAC(W32RM/DIO 191

PIO-32DM(PCI (PIO-32DM(PCI "0" 2 650h 651h 652h 653h 654h 655h 656h PIO-32DM(PCI DioDmXX Windows 2000/NT 192 API-PAC(W32RM/DIO

PIO-32DM(PCI (SC (SC ( I/O I/O EXTSIG1 EXTSIG3 EXTSIG1 EXTSIG3 DioDmSetSetMasterCfg EXTSIG1 EXTSIG3 CN2,CN3 API-PAC(W32RM/DIO 193

PIO-32DM(PCI 194 API-PAC(W32RM/DIO

8225 0 1 2 LSIi8255 BCD(Binary Coded Decimal 2 10 4 16 1 10 CompactPCI ErrChk(dwRet; ErrChk(dwRet PI-64L(CPCI, PO-64L(CPCI, PIO-32/32L(CPCI ErrChk (DWORD dwret { } if (dwret == 0 { } else { } Sub ErrChk (dwret End Sub If dwret = 0 Then Else End If /* /* ' ' API-PAC(W32RM/DIO 195

196 API-PAC(W32RM/DIO E ( (JP2 (JP2 1-2 (JP2 2-3 PIO-32D(PM PIO-16/16L(PM <ISA > PI-64L(PC PI-64T(PC PO-64L(PC PO-64T(PC PIO-32/32L(PC PIO-32/32RL(PC PIO-32/32T(PC <98(C > PI-32(98E PI-32(98E-F PI-32T(98E PI-64(98E PI-64(98E-F PI-64T(98E PO-32(98E PO-32(98E-F PO-32T(98E PO-64(98E PO-64(98E-F PO-64T(98E PIO-16/16(98E PIO-16/16(98E-F PIO-16/16B(98E PIO-16/16TB(98E PIO-16/16T(98E PIO-32/32(98E PIO-32/32(98E-F PIO-32/32B(98E PIO-32/32TB(98E PIO-32/32T(98E PIO-32/32R(98E <PC > PIO-32D(PM PIO-16/16L(PM E ( (JP2 (JP2 2-3 <ISA > PI-64L(PC PI-64T(PC PO-64L(PC PO-64T(PC PIO-32/32L(PC PIO-32/32RL(PC PIO-32/32L(PC <98(C > PI-32(98E PI-32(98E-F PI-32T(98E PI-64(98E PI-64(98E-F PI-64T(98E PO-32(98E PO-32(98E-F PO-32E-F PO-32T(98E PO-64(98E PO-64(98E-F PO-64T(98E PIO-16/16(98E PIO-16/16(98E-F PIO-16/16B(98E PIO-16/16TB(98E PIO-16/16T(98E PIO-32/32(98E PIO-32/32(98E-F PIO-32/32B(98E PIO-32/32TB(98E PIO-32/32T(98E PIO-32/32R(98E LSP(Least Significant Port

API-PAC(W32RM/DIO 197 PCI PIO-32/32L(PCIH PI-64L(PCIH PO-64L(PCIH PIO-16/16L(PCIH PI-32L(PCIH PO-32L(PCIH PIO-16/16B(PCIH PI-32B(PCIH PO-32B(PCIH PIO-16/16RY(PCI PI-64L(PCI PO-64L(PCI PI-32L(PCI PI-32B(PCI PO-32L(PCI PO-32B(PCI PIO-16/16L(PCI PIO-16/16B(PCI PIO-16/16T(PCI PIO-16/16TB(PCI PIO-32/32B(PCI PIO-32/32B(PCIH PIO-32/32L(PCI PIO-32/32T(PCI PIO-32/32F(PCI RRY-16C(PCI RRY-32(PCI PIO-48D(PCI PIO-32DM(PCI PI-128L(PCI PO-128L(PCI PIO-64/64L(PCI PIO-16/16L(LPCIH PIO-16/16B(LPCIH PIO-16/16T(LPCIH E PCI CompactPCI E (JP2 (JP2 1-2 (DioSFilter CompactPCI PIO-32/32L(CPCI PI-64L(CPCI PO-64L(CPCI PCI PIO-32/32L(PCIH PI-64L(PCIH PIO-16/16L(PCIH PI-128L(PCI PIO-64/64L(PCI PI-32L(PCIH PIO-16/16B(PCIH PI-32B(PCIH PIO-16/16RY(PCI PIO-16/16L(PCI PIO-16/16B(PCI PIO-16/16T(PCI PIO-16/16TB(PCI PIO-32/32B(PCI PIO-32/32B(PCIH PIO-32/32L(PCI PIO-32/32T(PCI PIO-32/32F(PCI PI-64L(PCI PI-32L(PCI PI-32B(PCI PIO-16/16L(LPCIH PIO-16/16B(LPCIH PIO-16/16T(LPCIH E PI-64L(PC PI-64T(PC PO-64L(PC PO-64T(PC PIO-32/32L(PC PIO-32/32RL(PC PIO-32/32T(PC PI-32(98E PI-32(98E-F PI-32T(98E PI-64(98E PI-64(98E-F PI-64T(98E PO-32(98E PO-32(98E-F PO-32T(98E PO-64(98E PO-64(98E-F PO-64T(98E PIO-16/16(98E PIO-16/16(98E-F PIO-16/16B(98E PIO-16/16TB(98E PIO-16/16T(98E PIO-32/32(98E PIO-32/32(98E-F PIO-32/32B(98E PIO-32/32TB(98E PIO-32/32T(98E PIO-32/32R(98E

198 API-PAC(W32RM/DIO PIO-32DM(PCI PIO-32DM(PCI PIO-32DM(PCI API-TOOL (I/O 1 4 1 16 API-TOOL API-TOOL / 1 1 ( I/O 0 n

Timcode = 0 ISA C PIO-32/32L(PCIH PI-64L(PCIH PIO-16/16L(PCIH PI-32L(PCIH PIO-16/16RY(PCIH PIO-32D(PM PIO-16/16L(PM PI-128L(PCI PIO-64/64L(PCI TimCode TimCode 1 0.25 [ s] 11 256 [ s] 2 0.50 [ s] 12 512 [ s] 3 1.0 [ s] 13 1.024 [ms] 4 2.0 [ s] 14 2.048 [ms] 5 4.0 [ s] 15 4.096 [ms] 6 8.0 [ s] 16 8.192 [ms] 7 16 [ s] 17 16.384 [ms] 6 32 [ s] 18 32.768 [ms] 9 64 [ s] 19 65.536 [ms] 10 128 [ s] 20 131.072 [ms] PCI (PIO-48D(PCI PIO-32/32L(PCIH PI-64L(PCIH PIO- 16/16L(PCIH PI-32L(PCIH PIO-16/16RY(PCIH PI-128L(PCI PIO-64/64L(PCI TimCode TimCode 1 0.125 [ s] 11 128 [ s] 2 0.25 [ s] 12 256 [ s] 3 0.50 [ s] 13 512 [ s] 4 1.0 [ s] 14 1.024 [ms] 5 2.0 [ s] 15 2.048 [ms] 6 4.0 [ s] 16 4.096 [ms] 7 8.0 [ s] 17 8.192 [ms] 6 16 [ s] 18 16.384 [ms] 9 32 [ s] 19 32.768 [ms] 10 64 [ s] 20 65.536 [ms] / (SC API-PAC(W32RM/DIO 199

LSI(i8255 Low/High Low = 0, High = 1 ( 1 : 1 PIO-48W(PC 0 1 (Low = 0, High = 1 2 PIO-96W(PC 2 5 2 : 1 PIO-48W(PC 0 1 (Low = 0, High = 1 2 PIO-48W(PC 2 3 API-TOOL DioOpenEx PCI CompactPCI E 0 ApiDio00.*** E ( 1 ApiDio01.*** 2 ApiDio02.*** PCI CompactPCI 3 ApiDio03.*** E ( 4 ApiDio04.*** 5 ApiDio05.*** *** : Windows 95 VXD Windows NT SYS 200 API-PAC(W32RM/DIO

Level Trigger High : 0 Low : 1 Edge Trigger Up : 2 Down : 3 PIO-32DM(PCI <ISA > PI-32L(PCH PI-32L(PCV PI-32B(PC PI-32B(PCH PI-32TB(PC PI-32T(PCH PI-32RL(PC PO-32L(PCH PO-32L(PCV PO-32B(PC PO-32B(PCH PO-32TB(PC PO-32T(PCH PO-32RL(PC PIO-16/16L(PCH PIO-16/16L(PCV PIO-16/16B(PC PIO-16/16B(PCH PIO-16/16TB(PC PIO-16/16T(PCH PIO-16/16RL(PC RRY-32(PC PRY-32(PC <98(C > PI-32(98H PI-32B(98 PI-32T(98 PI-48(98 PI-48B(98 PI-48T(98 PI-96T(98K PO-32(98H PO-32B(98 PO-32T(98 PO-48(98 PO-48B(98 PO-48T(98 PO-96T(98K RRY-16(98 WRY-16(98 SSR-16(98 RRY-32(98 PRY-32(98 PIO-16/16(98H PIO-16/16B(98 PIO-16/16T(98 PIO-24/24(98 PIO-24/24A(98 PIO-24/24B(98 PIO-24/24TB(98 PIO-24/24T(98 PIO-48/48T(98K ACI/DCI-8(98 ACO/DCO-8(98 API-PAC(W32RM/DIO 201

202 API-PAC(W32RM/DIO PCI DMA CPU PIO- 32DM(PCI CPU PIO-32DM(PCI <PCI > PIO-48D(PCI <PC > PIO-24W(PM <ISA > PIO-48W(PC PIO-48D(PC PIO-48C(PC PIO-96W(PC PIO-144W(PC, PIO-120D(PC, <98(C > PIO-48W(98 PIO-48W(98B-01 PIO-48W(98B-02 PIO-96W(98K (SC ( DioOpen DioClose

0 0 ( 0, 2, 3 1 : 1 PIO-32/32L(PC 0 31 0 31 0 31 2 PI-64L(PC 0 63 32 95 -------- 3 PO-64L(PC 0 63 -------- 32 95 2 : 1 PIO-32/32L(PC 0 31 0 31 0 31 2 PIO-32/32L(PC 0 31 32 63 32 63 ABC 0 1 1 : 1 PIO-48W(PC 0 1 2 PIO-48W(PC 2 3 0 : A, B, C 1 : A, B, C 2 : A, B, C 3 : A, B, C 0 0 7 (A 8 15 (B, 16 23 (C 1 32 39 (B, 40 47 (C 24 31 (A 2 48 55 (A 56 63 (B, 64 71 (C 3 80 87 (B, 88 95 (C 72 79 (A API-PAC(W32RM/DIO 203

2 : 1 PIO-48W(PC 0 1 2 PIO-48W(PC 0 3 0 : A, B, C 1 : A, B, C 2 : A, B, C 3 : A, B, C 0 8 15 (B, 16 23 (C 0 7 (A 1 24 31 (A 32 39 (B, 40 47 (C 2 56 63 (B, 64 71 (C 48 55 (A 3 72 79 (A 80 87 (B, 88 95 (C 0 0 ( 0, 2, 3 1 : 1 PIO-16/16L(PCH 0 1 0 1 0 1 2 PI-32L(PCH 0 3 2 5 ------ 3 PO-32L(PCH 0 3 ------ 2 5 2 : 1 PIO-16/16L(PCH 0 1 0 1 0 1 2 PIO-16/16L(PCH 0 1 2 3 2 3 ABC 0 1 204 API-PAC(W32RM/DIO

1 : 1 PIO-48W(PC 0 1 2 PIO-48W(PC 2 3 0 : A, B, C 1 : A, B, C 2 : A, B, C 3 : A, B, C 0 0 (A 1 (B, 2 (C 1 4 (B, 5 (C 3 (A 2 6 (A 7 (B, 8 (C 3 10 (B, 11 (C 9 (A 2 : 1 PIO-48W(PC 0 1 2 PIO-48W(PC 0 3 0 : A, B, C 1 : A, B, C 2 : A, B, C 3 : A, B, C 0 1 (B, 2 (C 0 (A 1 3 (A 4 (B, 5 (C 2 7 (B, 8 (C 6 (A 3 9 (A 10 (B, 11 (C 4 1 4 IRQ 3 7, 9 12, 14, 15 API-PAC(W32RM/DIO 205

3-9-31 555-0025 http://www.contec.co.jp/ http://www.contec.com/ http://www.contec.com.cn/ API-PAC(W32RM/DIO 2003 10 [06051998] A-41-922 [10232003_rev11] LZF8311