Subversion Repositories Kolibri OS

Rev

Rev 143 | Rev 161 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 143 Rev 160
Line 359... Line 359...
359
; test_kbd:
359
; test_kbd:
360
;       in       al,64h    ;÷èòàåì ñîñòîÿíèå êëàâèàòóðû
360
;       in       al,64h    ;÷èòàåì ñîñòîÿíèå êëàâèàòóðû
361
;       test     al,2      ;ïðîâåðêà áèòà ãîòîâíîñòè
361
;       test     al,2      ;ïðîâåðêà áèòà ãîòîâíîñòè
362
;       loopnz   test_kbd
362
;       loopnz   test_kbd
Line -... Line 363...
-
 
363
 
-
 
364
        push    0
-
 
365
        pop     es
-
 
366
        and     word [es:0x9031], 0
-
 
367
; check for PCI BIOS
-
 
368
        mov     ax, 0xB101
-
 
369
        int     0x1A
-
 
370
        jc      .nopci
-
 
371
        cmp     edx, 'PCI '
-
 
372
        jnz     .nopci
-
 
373
; find PCI class code
-
 
374
; class 1 = mass storage
-
 
375
; subclass 1 = IDE controller
-
 
376
; a) class 1, subclass 1, programming interface 0x80
-
 
377
        mov     ax, 0xB103
-
 
378
        mov     ecx, 1*10000h + 1*100h + 0x80
-
 
379
        mov     si, 0   ; device index = 0
-
 
380
        int     0x1A
-
 
381
        jnc     .found
-
 
382
; b) class 1, subclass 1, programming interface 0x85
-
 
383
        mov     ax, 0xB103
-
 
384
        mov     ecx, 1*10000h + 1*100h + 0x85
-
 
385
        mov     si, 0   ; device index = 0
-
 
386
        int     0x1A
-
 
387
        jnc     .found
-
 
388
; c) class 1, subclass 1, programming interface 0x8A
-
 
389
        mov     ax, 0xB103
-
 
390
        mov     ecx, 1*10000h + 1*100h + 0x8A
-
 
391
        mov     si, 0
-
 
392
        int     0x1A
-
 
393
        jc      .nopci
-
 
394
.found:
-
 
395
; get memory base
-
 
396
        mov     ax, 0xB10A
-
 
397
        mov     di, 0x20        ; memory base is config register at 0x20
-
 
398
        int     0x1A
-
 
399
        jc      .nopci
-
 
400
        and     cx, 0xFFF0      ; clear address decode type
-
 
401
        mov     [es:0x9031], cx
-
 
402
.nopci:
363
 
403
 
364
    mov   al,0xf6         ; Ñáðîñ êëàâèàòóðû, ðàçðåøèòü ñêàíèðîâàíèå
404
    mov   al,0xf6         ; Ñáðîñ êëàâèàòóðû, ðàçðåøèòü ñêàíèðîâàíèå
365
    out   0x60,al
405
    out   0x60,al
366
    xor   cx,cx
406
    xor   cx,cx
367
wait_loop:       ; variant 2
407
wait_loop:       ; variant 2