Subversion Repositories Kolibri OS

Rev

Rev 2434 | Rev 3555 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;                                                              ;;
  3. ;; Copyright (C) KolibriOS team 2008-2011. All rights reserved. ;;
  4. ;; Distributed under terms of the GNU General Public License    ;;
  5. ;;                                                              ;;
  6. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  7.  
  8. ; Detect all BIOS hard drives.
  9. ; diamond, 2008
  10.  
  11.         xor     cx, cx
  12.         mov     es, cx
  13.         mov     di, 0x9080
  14.         mov     byte [es:di-1], cl
  15.         cmp     [preboot_biosdisk], 1
  16.         jnz     bdde
  17.         mov     dl, 80h
  18. bdds:
  19.         mov     ah, 15h
  20.         push    cx dx di
  21.         int     13h
  22.         pop     di dx cx
  23.         jc      bddc
  24.         test    ah, ah
  25.         jz      bddc
  26.         inc     cx
  27.         mov     ah, 48h
  28.         push    ds
  29.         push    es
  30.         pop     ds
  31.         mov     si, 0xA000
  32.         mov     word [si], 1Eh
  33.         mov     ah, 48h
  34.         int     13h
  35.         pop     ds
  36.         jc      bddc2
  37.         inc     byte [es:0x907F]
  38.         cmp     word [es:si], 1Eh
  39.         jb      bddl
  40.         cmp     word [es:si+1Ah], 0xFFFF
  41.         jz      bddl
  42.         mov     al, dl
  43.         stosb
  44.         push    ds
  45.         lds     si, [es:si+1Ah]
  46.         mov     al, [si+6]
  47.         and     al, 0xF
  48.         stosb
  49.         mov     al, byte [si+4]
  50.         shr     al, 4
  51.         and     ax, 1
  52.         cmp     word [si], 1F0h
  53.         jz      @f
  54.         inc     ax
  55.         inc     ax
  56.         cmp     word [si], 170h
  57.         jz      @f
  58.         or      ax, -1
  59. ;        mov     ax, -1
  60. @@:
  61.         stosw
  62.         pop     ds
  63.         jmp     bddc2
  64. bddl:
  65.         mov     al, dl
  66.         stosb
  67.         xor     ax, ax
  68.         stosb
  69.         dec     ax
  70.         stosw
  71. ;        mov     al, 0
  72. ;        stosb
  73. ;        mov     ax, -1
  74. ;        stosw
  75. bddc2:
  76.         cmp     cl, [es:0x475]
  77.         jae     bdde
  78. bddc:
  79.         inc     dl
  80.         jnz     bdds
  81. bdde:
  82.