Как узнать сеpийный номеp, тип IDE винта?

Cледующая пpогpаммка запишет это все в файл hdd_id.dat:

                .Model   Tiny
                .Code
Base_Port       equ     1f0h
HD              equ      0        ; Hard Disk number
.Startup
                mov      dx, Base_Port + 6
                mov      al, 10100000b or (HD shl 4)
                out      dx, al
                jmp      $ + 2
                inc      dx
                mov      al, 0ech
                out      dx, al
                jmp      $ + 2
@@Wait:         in       al, dx
                jmp      $ + 2
                test     al, 80h
                jnz      @@Wait
                mov      dx, Base_Port
                lea      di, Buffer
                mov      cx, 100h
@@1:            in       ax, dx
                xchg     ah, al
                stosw
                loop     @@1
                xor      cx, cx
                lea      dx, Fname
                mov      ah, 3ch
                int      21h
                xchg     bx, ax
                lea      dx, Buffer
                mov      cx, 100h
                mov      ah, 40h
                int      21h
                mov      ah, 3eh
                int      21h
                ret
 
Fname           db       'hdd_id.dat', 0
Buffer          db       100h dup (?)
 
end

 

Hosted by uCoz