Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 3520 → Rev 3539

/kernel/trunk/drivers/apm.asm
297,7 → 297,7
ret
 
 
; „€›… Žƒ€ŒŒ›
; ДАННЫЕ ПРОГРАММЫ
title db '',0
flags dw 0
 
/kernel/trunk/drivers/com_mouse.asm
174,68 → 174,68
 
align 4
MSMouseSearch:
; ÏÎÈÑÊ ÌÛØÈ ×ÅÐÅÇ COM-ÏÎÐÒÛ
; ПОИСК МЫШИ ЧЕРЕЗ COM-ПОРТЫ
MouseSearch:
; Óñòàíàâëèâàåì ñêîðîñòü
; ïðèåìà/ïåðåäà÷è 1200 áîä
; Устанавливаем скорость
; приема/передачи 1200 бод
; in bx COM Port Base Address
mov DX, bx
add DX, 3
in AL, DX
or AL, 80h ;óñòàíîâèòü áèò DLAB
or AL, 80h ;установить бит DLAB
out DX, AL
mov DX, bx
mov AL, 60h ;1200 áîä
mov AL, 60h ;1200 бод
out DX, AL
inc DX
mov AL, 0
out DX, AL
; Óñòàíîâèòü äëèíó ñëîâà 7 áèò, 1 ñòîïîâûé áèò,
; ÷åòíîñòü íå êîíòðîëèðîâàòü
; Установить длину слова 7 бит, 1 стоповый бит,
; четность не контролировать
mov DX, bx
add DX, 3
mov AL, 00000010b
out DX, AL
; Çàïðåòèòü âñå ïðåðûâàíè
; Запретить все прерывани
mov dx, bx
inc dx
mov AL, 0
out DX, AL
; Ïðîâåðèòü, ÷òî óñòðîéñòâî ïîäêëþ÷åíî è ÿâëÿåòñ
; ìûøüþ òèïà MSMouse
; Îòêëþ÷èòü ïèòàíèå ìûøè è ïðåðûâàíè
; Проверить, что устройство подключено и являетс
; мышью типа MSMouse
; Отключить питание мыши и прерывани
mov DX, bx
add EDX, 4 ;ðåãèñòð óïðàâëåíèÿ ìîäåìîì
mov AL, 0 ;ñáðîñèòü DTR, RTS è OUT2
add EDX, 4 ;регистр управления модемом
mov AL, 0 ;сбросить DTR, RTS и OUT2
out DX, AL
; Îæèäàòü 5 "òèêîâ" (0,2 ñ)
; Ожидать 5 "тиков" (0,2 с)
mov ecx, 0xFFFF
loop $
; Âêëþ÷èòü ïèòàíèå ìûøè
; Включить питание мыши
mov al, 1
out dx, al
mov ecx, 0xFFFF
loop $
; Î÷èñòèòü ðåãèñòð äàííûõ
; Очистить регистр данных
mov dx, bx
in AL, DX
add edx, 4
mov AL, 1011b ;óñòàíîâèòü DTR è RTS è OUT2
mov AL, 1011b ;установить DTR и RTS и OUT2
out DX, AL
mov ecx, 0x1FFFF
; Öèêë îïðîñà ïîðòà
; Цикл опроса порта
WaitData:
; Îæèäàòü åùå 10 "òèêîâ"
; Ожидать еще 10 "тиков"
dec ecx
; cmp ecx,0
jz NoMouse
; Ïðîâåðèòü íàëè÷èå èäåíòèôèêàöèîííîãî áàéòà
; Проверить наличие идентификационного байта
mov DX, bx
add DX, 5
in AL, DX
test AL, 1 ;Äàííûå ãîòîâû?
test AL, 1 ;Данные готовы?
jz WaitData
; Ââåñòè äàííûå
; Ввести данные
mov DX, bx
in AL, DX
NoMouse:
257,27 → 257,27
; in: esi -> COM_MOUSE_DATA struc, dx = base port (xF8h)
add edx, 5 ; xFDh
in al, dx
test al, 1 ; Äàííûå ãîòîâû?
test al, 1 ; Данные готовы?
jz .Error
; Ââåñòè äàííûå
; Ввести данные
sub edx, 5
in al, dx
; Ñáðîñèòü ñòàðøèé íåçíà÷àùèé áèò
; Сбросить старший незначащий бит
and al, 01111111b
 
; Îïðåäåëèòü ïîðÿäêîâûé íîìåð ïðèíèìàåìîãî áàéòà
; Определить порядковый номер принимаемого байта
cmp [esi+COM_MOUSE_DATA.MouseByteNumber], 2
ja .Error
jz .ThirdByte
jp .SecondByte
; Ñîõðàíèòü ïåðâûé áàéò äàííûõ
; Сохранить первый байт данных
.FirstByte:
test al, 1000000b ; Ïåðâûé áàéò ïîñûëêè?
test al, 1000000b ; Первый байт посылки?
jz .Error
mov [esi+COM_MOUSE_DATA.FirstByte], al
inc [esi+COM_MOUSE_DATA.MouseByteNumber]
jmp .EndMouseInterrupt
; Ñîõðàíèòü âòîðîé áàéò äàííûõ
; Сохранить второй байт данных
.SecondByte:
test al, 1000000b
jnz .Error
284,14 → 284,14
mov [esi+COM_MOUSE_DATA.SecondByte], al
inc [esi+COM_MOUSE_DATA.MouseByteNumber]
jmp .EndMouseInterrupt
; Ñîõðàíèòü òðåòèé áàéò äàííûõ
; Сохранить третий байт данных
.ThirdByte:
test al, 1000000b
jnz .Error
mov [esi+COM_MOUSE_DATA.ThirdByte], al
mov [esi+COM_MOUSE_DATA.MouseByteNumber], 0
; (Ïàêåò äàííûõ îò ìûøè ïðèíÿò ïîëíîñòüþ).
; Çàïèñàòü íîâîå çíà÷åíèå ñîñòîÿíèÿ êíîïîê ìûøè
; (Пакет данных от мыши принят полностью).
; Записать новое значение состояния кнопок мыши
mov al, [esi+COM_MOUSE_DATA.FirstByte]
mov ah, al
shr al, 3
302,7 → 302,7
movzx eax, al
mov [BTN_DOWN], eax
 
; Ïðèáàâèòü ïåðåìåùåíèå ïî X ê êîîðäèíàòå X
; Прибавить перемещение по X к координате X
mov al, [esi+COM_MOUSE_DATA.FirstByte]
shl al, 6
or al, [esi+COM_MOUSE_DATA.SecondByte]
311,7 → 311,7
movzx eax, ax
mov [MOUSE_X], eax
 
; Ïðèáàâèòü ïåðåìåùåíèå ïî Y ê êîîðäèíàòå Y
; Прибавить перемещение по Y к координате Y
mov al, [esi+COM_MOUSE_DATA.FirstByte]
and al, 00001100b
shl al, 4
327,8 → 327,8
jmp .EndMouseInterrupt
 
.Error:
; Ïðîèçîøåë ñáîé â ïîðÿäêå ïåðåäà÷è èíôîðìàöèè îò
; ìûøè, îáíóëèòü ñ÷åò÷èê áàéòîâ ïàêåòà äàííûõ
; Произошел сбой в порядке передачи информации от
; мыши, обнулить счетчик байтов пакета данных
 
mov [esi+COM_MOUSE_DATA.MouseByteNumber], 0
.EndMouseInterrupt:
340,9 → 340,9
align 4
 
struc COM_MOUSE_DATA {
; Íîìåð ïðèíèìàåìîãî îò ìûøè áàéòà
; Номер принимаемого от мыши байта
.MouseByteNumber db ?
; Òðåõáàéòîâàÿ ñòðóêòóðà äàííûõ, ïåðåäàâàåìàÿ ìûøüþ
; Трехбайтовая структура данных, передаваемая мышью
.FirstByte db ?
.SecondByte db ?
.ThirdByte db ?
/kernel/trunk/drivers/emu10k1x.asm
19,7 → 19,7
IRQ_LINE equ 0
 
 
;irq 0,1,2,8,12,13 ­¥¤®áâ㯭ë
;irq 0,1,2,8,12,13 недоступны
; FEDCBA9876543210
VALID_IRQ equ 1100111011111000b
ATTCH_IRQ equ 0000111010100000b
/kernel/trunk/drivers/ensoniq.asm
17,7 → 17,7
 
REMAP_IRQ equ 0
 
;irq 0,1,2,8,12,13 íåäîñòóïíû
;irq 0,1,2,8,12,13 недоступны
; FEDCBA9876543210
VALID_IRQ equ 1100111011111000b
ATTCH_IRQ equ 0000111010101000b
/kernel/trunk/drivers/fm801.asm
17,7 → 17,7
 
USE_COM_IRQ equ 0 ;make irq 3 and irq 4 available for PCI devices
 
;irq 0,1,2,8,12,13 íåäîñòóïíû
;irq 0,1,2,8,12,13 недоступны
; FEDCBA9876543210
VALID_IRQ equ 1100111011111000b
ATTCH_IRQ equ 0000111010100000b
/kernel/trunk/drivers/intelac97.asm
21,7 → 21,7
IRQ_LINE equ 0
 
 
;irq 0,1,2,8,12,13 íåäîñòóïíû
;irq 0,1,2,8,12,13 недоступны
; FEDCBA9876543210
VALID_IRQ equ 1100111011111000b
ATTCH_IRQ equ 0000111010100000b
/kernel/trunk/drivers/sis.asm
21,7 → 21,7
IRQ_LINE equ 0
 
 
;irq 0,1,2,8,12,13 íåäîñòóïíû
;irq 0,1,2,8,12,13 недоступны
; FEDCBA9876543210
VALID_IRQ equ 1100111011111000b
ATTCH_IRQ equ 0000111010100000b
/kernel/trunk/drivers/vt823x.asm
19,7 → 19,7
IRQ_LINE equ 0
 
 
;irq 0,1,2,8,12,13 ­¥¤®áâ㯭ë
;irq 0,1,2,8,12,13 недоступны
; FEDCBA9876543210
VALID_IRQ equ 1100111011111000b
ATTCH_IRQ equ 0000111010100000b