48,6 → 48,7 |
REPORT_DESCR_TYPE = 22h |
PHYSICAL_DESCR_TYPE = 23h |
|
|
; LibUSB constatnts |
LIBUSB_REQUEST_TYPE_STANDARD = (0x00 shl 5) |
LIBUSB_REQUEST_TYPE_CLASS = (0x01 shl 5) |
291,7 → 292,7 |
align 4 |
proc service_proc stdcall uses ebx esi edi, ioctl:DWORD |
locals |
ConfPacket rb 10 |
ConfPacket rb 8 |
EventData rd 3 |
endl |
mov edi, [ioctl] |
395,10 → 396,9 |
.version: |
jmp .endswitch |
.error: |
DEBUGF 1, 'K : FTDI error occured! %d\n', eax |
;mov esi, [edi+output] |
;mov [esi], dword 'ERR0' |
;or [esi], eax |
mov esi, [edi+output] |
mov [esi], dword 'ERR0' |
or [esi], eax |
ret |
.endswitch: |
xor eax, eax |
437,10 → 437,7 |
mov eax, [EventData] |
mov ebx, [EventData+4] |
call WaitEvent |
mov eax, [EventData+8] |
test eax, eax |
jz .endswitch |
jmp .error |
jmp .endswitch |
|
.ftdi_setrtshigh: |
;DEBUGF 1,'K : FTDI Setting RTS pin HIGH\n' |
506,7 → 503,7 |
jmp .own_index |
|
.ftdi_read_pins: |
mov ebx, [edi+4] |
mov ebx, [edi] |
mov dword[ConfPacket], FTDI_DEVICE_IN_REQTYPE + (SIO_READ_PINS_REQUEST shl 8) + (0 shl 16) |
mov ecx, [ebx + ftdi_context.index] |
mov word[ConfPacket+4], cx |
513,22 → 510,13 |
mov word[ConfPacket+6], 1 |
lea esi, [ConfPacket] |
lea edi, [EventData] |
mov ecx, esi |
add ecx, 8 |
mov word[ConfPacket+8], 0 |
mov ecx, [ioctl] |
mov ecx, [ecx+output] |
stdcall USBControlTransferAsync, [ebx + ftdi_context.nullP], esi, ecx, 1, control_callback, edi, 0 |
mov eax, [EventData] |
mov ebx, [EventData+4] |
call WaitEvent |
xor ebx, ebx |
mov bx, word[ConfPacket+8] |
mov ecx, [ioctl] |
mov ecx, [ecx+output] |
mov [ecx], ebx |
mov eax, [EventData+8] |
test eax, eax |
jz .endswitch |
jmp .error |
jmp .endswitch |
|
.ftdi_set_wchunksize: |
mov ebx, [edi+4] |
577,11 → 565,10 |
@@: |
mov dword[ConfPacket], eax |
mov ecx, [edi+8] |
push edi |
push edi esi |
mov edi, eax |
rep movsb |
pop edi |
mov esi, dword[ConfPacket] |
pop esi edi |
;---Dirty hack end |
xor ecx, ecx ; ecx - offset |
.write_loop: |
598,6 → 585,9 |
mov eax, [EventData] |
mov ebx, [EventData+4] |
call WaitEvent |
mov eax, [EventData] |
mov ebx, [EventData+4] |
call ClearEvent |
pop edi esi ebx ecx |
cmp [EventData+8], -1 |
jz .error |
645,6 → 635,9 |
mov eax, [EventData] |
mov ebx, [EventData+4] |
call WaitEvent |
mov eax, [EventData] |
mov ebx, [EventData+4] |
call ClearEvent |
pop ebx ecx edi esi |
cmp [EventData+8], -1 |
jz .error |