OSDev

для всех
Текущее время: 22 ноя 2017, 23:09

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: identify packet device - ошибка непонятная
СообщениеДобавлено: 17 окт 2013, 18:51 

Зарегистрирован: 17 окт 2013, 18:45
Сообщения: 23
Код:
    xor eax, eax
    mov dx, 1F7h
@@:
    in al, dx
    test al, 80h
    jnz @b
   
    mov al, 1010000b
    dec dx
    out dx, al
    mov al, 0A1h
    inc dx
    out dx, al
    nop
    nop
    mov cx, 4
@@:
    dec cx
    jz .error
    in al, dx             ;al=0 O_O
    test al, 80h
    jnz @b
    test al, 40h
    jz @b   
    ;mov ecx, 256
    ;mov edi, .buf
    ;rep insw
    ;mov eax, [.buf]
    ;mov eax, [.buf+24]
   
.error:
    sub dx, 6
    in al, dx        ;al=1 - ошибка носителя
    jmp $
.buf dd 128 dup (0)

в коментах все отражено. как так то? что я не так делаю? через Device reset смотрел возвращаемую инфу - ATAPI-идентификатор присутствует.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 окт 2013, 19:15 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1056
Если шина PATA. И на ней два девайса один ATA, а другой ATAPI, то ошибка может быть в виду того что identify packet device не чувствительно к выбору устройства (master, host)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 окт 2013, 19:21 

Зарегистрирован: 17 окт 2013, 18:45
Сообщения: 23
запускаю через bochs, там только ATAPI, жестких дисков нету


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 окт 2013, 20:55 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1056
А ATAPI устройство ведущий или ведомый? Если к примеру в запросе ведущий а подключено как ведомый то тут тоже может быть ошибка.
А вообще возьми спецификацию и посмотри что там пишут. А то я на память не очень помню в каких вариантах identify packet device возвращает ошибку.
Учтите что identify packet device специальная команда и её поведения отличается от большинства.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 окт 2013, 21:54 

Зарегистрирован: 17 окт 2013, 18:45
Сообщения: 23
Код:
;mov dx, 1F6h
   ;mov al, 10100000b
   ;out dx, al
   ;mov al, 08h
   ;inc dx
   ;out dx, al
   ;nop
   ;nop
;@@:
   ;in al, dx
   ;test al, 80h
   ;jnz @b
;   
;   xor eax, eax
;   mov dx, 1F2h
;   in al, dx
;   inc dx
;   rol eax, 8
;   in al, dx
;   rol eax, 8
;   inc dx
;   in al, 8
;   rol eax, 8
;   in al, dx
;   rol eax, 8
;   inc dx
;   in al, dx
;   mov ebx, eax
;   int 0FFh
   xor eax, eax
   mov al, 10100000b
   mov dx, 1F6h
   out dx, al
   inc dx
   mov al, 0A1h
   out dx, al
   nop
   nop
   nop
@@:
   in al, dx
   test al, 80h
   jnz @b
   test al, 40h
   jz @b
   
   mov dx, 1F0h
   mov esi, .buf
   mov edi, esi
   mov cx, 256
   rep insw

переписал код с нуля - все норм О_О только есть один нюанс... первое слово в .buf должно выдавать характеристики устройства. а у меня по битам вообще не атапи девайс О_О


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 окт 2013, 21:56 

Зарегистрирован: 17 окт 2013, 18:45
Сообщения: 23
ну да, я посылку в хер знает какой девайс делал в первый раз. mov al, 1010000b было, а надо 10100000b. от и все


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 дек 2013, 23:05 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 274
а дайте структуру этого IDENTIFY PACKET DEVICE.
и есть ли там информация по размеру жёсткого диска и CHS(то есть количество головок и т.д.).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 дек 2013, 23:34 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 208
> CHS > 2013
Физические параметры в CHS никто давным-давно не отдаёт, а от логических толку 0, один вред.

Насчёт структуры - http://wiki.osdev.org/ATA_PIO_Mode#Inte ... y_IDENTIFY , там не всё, но если сильно надо - по ссылкам внизу страницы можно найти наверняка полное описание.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB