D2XX by FTDI with Purebasic 5.60+
Posted: Tue Dec 19, 2017 3:59 pm
Hi there,
I'm trying to use a driver on my PC (WinXP + Purebasic x86) and start with the following code :
Unfortunately, when I try to compile it, I've got an ASM error :
Could someone help me ?
Thanks
Edit : by the way, source for my code is http://forums.purebasic.com/german/view ... 64#p294455
I'm trying to use a driver on my PC (WinXP + Purebasic x86) and start with the following code :
Code: Select all
Enumeration
#FT_OK
#FT_INVALID_HANDLE
#FT_DEVICE_NOT_FOUND
#FT_DEVICE_NOT_OPENED
#FT_IO_ERROR
#FT_INSUFFICIENT_RESOURCES
#FT_INVALID_PARAMETER
#FT_INVALID_BAUD_RATE
#FT_DEVICE_NOT_OPENED_FOR_ERASE
#FT_DEVICE_NOT_OPENED_FOR_WRITE
#FT_FAILED_TO_WRITE_DEVICE
#FT_EEPROM_READ_FAILED
#FT_EEPROM_WRITE_FAILED
#FT_EEPROM_ERASE_FAILED
#FT_EEPROM_NOT_PRESENT
#FT_EEPROM_NOT_PROGRAMMED
#FT_INVALID_ARGS
#FT_NOT_SUPPORTED
#FT_OTHER_ERROR
EndEnumeration
#FT_OPEN_BY_SERIAL_NUMBER = 1
#FT_OPEN_BY_DESCRIPTION = 2
#FT_OPEN_BY_LOCATION = 4
Import "ftd2xx.lib"
FT_Close (al) As "_FT_Close @ 4"
FT_ClrDtr (al) As "_FT_ClrDtr @ 4"
FT_ClrRts (al) As "_FT_ClrRts @ 4"
FT_CreateDeviceInfoList (al) As "_FT_CreateDeviceInfoList @ 4"
FT_CyclePort (al) As "_FT_CyclePort @ 4"
FT_EE_Program (al, bl) As "_FT_EE_Program @ 8"
FT_EE_ProgramEx (al, bl, cl, dl, el, fl) As "_FT_EE_ProgramEx @ 24"
FT_EE_Read (al, bl) As "_FT_EE_Read @ 8"
FT_EE_ReadConfig (al, bl, cl) As "_FT_EE_ReadConfig @ 12"
FT_EE_ReadEcc (al, bl, cl) As "_FT_EE_ReadEcc @ 12"
FT_EE_ReadEx (al, bl, cl, dl, el, fl) As "_FT_EE_ReadEx @ 24"
FT_EE_UARead (al, bl, cl, dl) As "_FT_EE_UARead @ 16"
FT_EE_UASize (al, bl) As "_FT_EE_UASize @ 8"
FT_EE_UAWrite (al, bl, cl) As "_FT_EE_UAWrite @ 12"
FT_EE_WriteConfig (al, bl, cl) As "_FT_EE_WriteConfig @ 12"
FT_EraseEE (al) As "_FT_EraseEE @ 4"
FT_GetBitMode (al, bl) As "_FT_GetBitMode @ 8"
FT_GetComPortNumber (al, bl) As "_FT_GetComPortNumber @ 8"
FT_GetDeviceInfo (al, bl, cl, dl, el, fl) As "_FT_GetDeviceInfo @ 24"
FT_GetDeviceInfoDetail (al, bl, cl, dl, el, fl, gl, hl) As "_FT_GetDeviceInfoDetail @ 32"
FT_GetDeviceInfoList (al, bl) As "_FT_GetDeviceInfoList @ 8"
FT_GetDriverVersion (al, bl) As "_FT_GetDriverVersion @ 8"
FT_GetEventStatus (al, bl) As "_FT_GetEventStatus @ 8"
FT_GetLatencyTimer (al, bl) As "_FT_GetLatencyTimer @ 8"
FT_GetLibraryVersion (al) As "_FT_GetLibraryVersion @ 4"
FT_GetModemStatus (al, bl) As "_FT_GetModemStatus @ 8"
FT_GetQueueStatus (al, bl) As "_FT_GetQueueStatus @ 8"
FT_GetQueueStatusEx (al, bl) As "_FT_GetQueueStatusEx @ 8"
FT_GetStatus (al, bl, cl, dl) As "_FT_GetStatus @ 16"
FT_IoCtl (al, bl, cl, dl, el, fl, gl, hl) As "_FT_IoCtl @ 32"
FT_ListDevices (al, bl, cl) As "_FT_ListDevices @ 12"
FT_Open (al, bl) As "_FT_Open @ 8"
FT_OpenEx (al, bl, cl) As "_FT_OpenEx @ 12"
FT_Purge (al, bl) As "_FT_Purge @ 8"
FT_Read (al, bl, cl, dl) As "_FT_Read @ 16"
FT_ReadEE (al, bl, cl) As "_FT_ReadEE @ 12"
FT_Reload (al, bl) As "_FT_Reload @ 8"
FT_Rescan () As "_FT_Rescan @ 0"
FT_ResetDevice (al) As "_FT_ResetDevice @ 4"
FT_ResetPort (al) As "_FT_ResetPort @ 4"
FT_RestartInTask (al) As "_FT_RestartInTask @ 4"
FT_SetBaudRate (al, bl) As "_FT_SetBaudRate @ 8"
FT_SetBitMode (al, bl, cl) As "_FT_SetBitMode @ 12"
FT_SetBreakOff (al) As "_FT_SetBreakOff @ 4"
FT_SetBreakOn (al) As "_FT_SetBreakOn @ 4"
FT_SetChars (al, bl, cl, dl, el) As "_FT_SetChars @ 20"
FT_SetDataCharacteristics (al, bl, cl, dl) As "_FT_SetDataCharacteristics @ 16"
FT_SetDeadmanTimeout (al, bl) As "_FT_SetDeadmanTimeout @ 8"
FT_SetDivisor (al, bl) As "_FT_SetDivisor @ 8"
FT_SetDtr (al) As "_FT_SetDtr @ 4"
FT_SetEventNotification (al, bl, cl) As "_FT_SetEventNotification @ 12"
FT_SetFlowControl (al, bl, cl, dl) As "_FT_SetFlowControl @ 16"
FT_SetLatencyTimer (al, bl) As "_FT_SetLatencyTimer @ 8"
FT_SetResetPipeRetryCount (al, bl) As "_FT_SetResetPipeRetryCount @ 8"
FT_SetRts (al) As "_FT_SetRts @ 4"
FT_SetTimeouts (al, bl, cl) As "_FT_SetTimeouts @ 12"
FT_SetUSBParameters (al, bl, cl) As "_FT_SetUSBParameters @ 12"
FT_SetWaitMask (al, bl) As "_FT_SetWaitMask @ 8"
FT_StopInTask (al) As "_FT_StopInTask @ 4"
FT_W32_CancelIo (al) As "_FT_W32_CancelIo @ 4"
FT_W32_ClearCommBreak (al) As "_FT_W32_ClearCommBreak @ 4"
FT_W32_ClearCommError (al, bl, cl) As "_FT_W32_ClearCommError @ 12"
FT_W32_CloseHandle (al) As "_FT_W32_CloseHandle @ 4"
FT_W32_CreateFile (al, bl, cl, dl, el, fl, gl) As "_FT_W32_CreateFile @ 28"
FT_W32_EscapeCommFunction (al, bl) As "_FT_W32_EscapeCommFunction @ 8"
FT_W32_GetCommMask (al, bl) As "_FT_W32_GetCommMask @ 8"
FT_W32_GetCommModemStatus (al, bl) As "_FT_W32_GetCommModemStatus @ 8"
FT_W32_GetCommState (al, bl) As "_FT_W32_GetCommState @ 8"
FT_W32_GetCommTimeouts (al, bl) As "_FT_W32_GetCommTimeouts @ 8"
FT_W32_GetLastError (al) As "_FT_W32_GetLastError @ 4"
FT_W32_GetOverlappedResult (al, bl, cl, dl) As "_FT_W32_GetOverlappedResult @ 16"
FT_W32_PurgeComm (al, bl) As "_FT_W32_PurgeComm @ 8"
FT_W32_ReadFile (al, bl, cl, dl, el) As "_FT_W32_ReadFile @ 20"
FT_W32_SetCommBreak (al) As "_FT_W32_SetCommBreak @ 4"
FT_W32_SetCommMask (al, bl) As "_FT_W32_SetCommMask @ 8"
FT_W32_SetCommState (al, bl) As "_FT_W32_SetCommState @ 8"
FT_W32_SetCommTimeouts (al, bl) As "_FT_W32_SetCommTimeouts @ 8"
FT_W32_SetupComm (al, bl, cl) As "_FT_W32_SetupComm @ 12"
FT_W32_WaitCommEvent (al, bl, cl) As "_FT_W32_WaitCommEvent @ 12"
FT_W32_WriteFile (al, bl, cl, dl, el) As "_FT_W32_WriteFile @ 20"
FT_WaitOnMask (al, bl) As "_FT_WaitOnMask @ 8"
FT_Write (al, bl, cl, dl) As "_FT_Write @ 16"
FT_WriteEE (al, bl, cl) As "_FT_WriteEE @ 12"
EndImport
Define LibraryVer.l
Define Result.i
Define FT_Handle.i
Define ComPort.i
OpenConsole("FTDI driver Test")
Result = FT_GetLibraryVersion (@LibraryVer)
PrintN("Result = "+Str(Result) + " Version "+Hex(LibraryVer))
Result = FT_OpenEx ("Interface USB -> Compteur", #FT_OPEN_BY_DESCRIPTION, @FT_Handle)
Result = FT_GetComPortNumber (FT_Handle, @ComPort)
Result = FT_Close(FT_Handle)
PrintN("Port = COM"+Str(ComPort))
p$=Input()
I'm unable to understand what it means and how to correct it. I've tried to comment each lines containing FT_Close, then the same message occurs with _FT_GetComPortNumber @ 8Purebasic.asm [18]:
extrn _FT_Close @ 4
error: extra characters on line.
Could someone help me ?
Thanks

Edit : by the way, source for my code is http://forums.purebasic.com/german/view ... 64#p294455