Короткий доступ к сектору
От: inquiring  
Дата: 22.11.04 13:57
Оценка: :)
Здравствуйте!
Какие существуют короткие способы доступа (не ПДП) к секторам НГМД?
Спасибо за внимание
Re: Короткий доступ к сектору
От: MShura  
Дата: 22.11.04 14:23
Оценка:
Здравствуйте, inquiring, Вы писали:

I>Здравствуйте!

I>Какие существуют короткие способы доступа (не ПДП) к секторам НГМД?
I>Спасибо за внимание


?????
Re[2]: Короткий доступ к сектору
От: inquiring  
Дата: 22.11.04 21:27
Оценка:
Здравствуйте, MShura, Вы писали:

MS>Здравствуйте, inquiring, Вы писали:


I>>Здравствуйте!

I>>Какие существуют короткие способы доступа (не ПДП) к секторам НГМД?
I>>Спасибо за внимание


MS>?????


Короткий доступ- это не прямой доступ к памяти. Есть ли такой, и если есть, то как он действует?
Спасибо за внимание
Re[3]: Короткий доступ к сектору
От: Stanky  
Дата: 22.11.04 21:54
Оценка:
> Короткий доступ- это не прямой доступ к памяти. Есть ли такой, и если
> есть, то как он действует?
>
PIO!!!

Вот кусок кода считывающий 20-й сектор Primary канала Master устройства:
;Базовый адрес 1F0h, канал 1 - Primary
;Ожидание готовности HDD к приему команды
    ;Регистр номера головки/номера диска
    mov dx,1F6h
    ;        1   0                0     1
    ;1, LBA/CHS, 1, Master/Slave, LBA(27-24)
    mov al,11100000b
    out dx,al
;Ожидать, пока диск не будет готов
    ;Регистр состояния/команд
    mov dx,1F7h
@@WaitHDReady:
    ;Прочитать регистр состояния
    in al,dx
    ;Проверить состояние сигнала BSY
    test al,80h
    jnz @@WaitHDReady
    ;Проверить состояние сигнала DRQ
    test al,08h
    jnz @@WaitHDReady

;Загрузить команду в регистры контроллера
    ;Регистр количества секторов
    mov dx,1F2h
    mov al,1
    out dx,al

    ;Регистр LBA(7-0)
    mov dx,1F3h
    ;Нужно считать 20-й сектор
    mov al,20
    out dx,al

    ;Регистр LBA(15-8)
    mov dx,1F4h
    mov ax,0
    out dx,al

    ;Регистр LBA(23-16)
    mov dx,1F5h
    mov al,0
    out dx,al

    ;Регистр номера головки/номера диска
    mov dx,1F6h
    ;        1   0                0     1
    ;1, LBA/CHS, 1, Master/Slave, LBA(27-24)
    mov al,11100000b
    out dx,al

;Послать команду в контроллер
    ;Регистр состояния/команд
    mov dx,1F7h
    ;Комманда ATA 20h - прочитать сектор в режиме PIO
    mov al,20h
    out dx,al

;Ожидать готовность данных HDD
    ;Регистр состояния/команд
    mov dx,1F7h
@@WaitCompleet:
    ;Проверить готовность
    in al,dx
    ;Состояние сигнала BSY
    test al,80h
    jnz @@WaitCompleet
    ;Состояние сигнала DRQ
    test al,08h
    jz @@WaitCompleet

;Принять сектор
    ;Настраиваем буфер приёма данных на 0000:7C00 (es:di)
    xor ax,ax
    mov es,ax
    mov di,7C00h
    ;Регистр данных
    mov dx,1F0h
    ;Число считываемых слов
    mov cx,256
    ;Считываем сектор
    rep insw
Posted via RSDN NNTP Server 1.9 gamma
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[4]: Короткий доступ к сектору
От: Stanky  
Дата: 22.11.04 21:58
Оценка:
Сорри, что тут всё уехало, должно быть так (я надеюсь):
1 0 0 1
1, LBA/CHS, 1, Master/Slave, LBA(27-24)
Posted via RSDN NNTP Server 1.9 gamma
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[5]: Короткий доступ к сектору
От: Stanky  
Дата: 22.11.04 22:01
Оценка:
Простите меня в последний раз:
;    1   0         0     1
;1, LBA/CHS, 1, Master/Slave, LBA(27-24)
Posted via RSDN NNTP Server 1.9 gamma
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[6]: Короткий доступ к сектору
От: inquiring  
Дата: 23.11.04 08:41
Оценка:
Здравствуйте, Stanky, Вы писали:

S>Простите меня в последний раз:

S>
S>;    1   0         0     1
S>;1, LBA/CHS, 1, Master/Slave, LBA(27-24)
S>


Спасибо за код. Я просто хотела узнать, что называется, на пальцах, какие бывают способы доступа.
Примерно так: есть два режима: DMA и PIO.
PIO же в свою очередь бывает:1)...2)... etc.
Вот что-то вроде этого я хотела услышать.
Спасибо за внимание
Re[7]: Короткий доступ к сектору
От: Stanky  
Дата: 23.11.04 08:55
Оценка:
> PIO же в свою очередь бывает:1)...2)... etc.
>
Кстати, может объяснишь мне идиоту существование различных PIO!!! От чего это зависит? Если только от переферии (ну винт например медленный), то тогда всё понятно, а если нет, то я даже и не знаю о чём думать!!!
Posted via RSDN NNTP Server 1.9 gamma
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[8]: Короткий доступ к сектору
От: Andrew S Россия http://alchemy-lab.com
Дата: 23.11.04 09:02
Оценка:
>> PIO же в свою очередь бывает:1)...2)... etc.
>>
S>Кстати, может объяснишь мне идиоту существование различных PIO!!! От чего это зависит? Если только от переферии (ну винт например медленный), то тогда всё понятно, а если нет, то я даже и не знаю о чём думать!!!

В случае ATA — просто объективное развитие интерфейса, насколько я помню. Подробнее можно на t13 посмотреть.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[8]: Короткий доступ к сектору
От: inquiring  
Дата: 23.11.04 09:13
Оценка:
Здравствуйте, Stanky, Вы писали:

>> PIO же в свою очередь бывает:1)...2)... etc.

>>
S>Кстати, может объяснишь мне идиоту существование различных PIO!!! От чего это зависит? Если только от переферии (ну винт например медленный), то тогда всё понятно, а если нет, то я даже и не знаю о чём думать!!!

Ну почему же сразу идиот? Я же четко написала, что хочу узнать на пальцах. То есть прошу умных мальчиков-программистов объяснить девочке ху из ху. Дело в том, что мне нужно найти информацию и позже претворить в жизнь, читай в код, плоды информации.
Попробую поставить задачу иначе: поделитесь, кто что думает о коротких способах доступа к секторам НГМД, не через DMA.
Повторяю, я ничего не утверждаю, я просто не знаю что это такое, какое бывает, с чем есть. Пример же лично Вам привела для того, чтобы Вы поняли, в каком примерно виде я хочу услышать ответ.
Спасибо за внимание
Re[9]: Короткий доступ к сектору
От: Stanky  
Дата: 23.11.04 09:27
Оценка:
> Ну почему же сразу идиот?
>
Ну эт я утрирую!!!

> Попробую поставить задачу иначе: поделитесь, кто что думает о

> коротких способах доступа к секторам НГМД, не через DMA.
>
Тогда мне задача опять не совсем ясна!!!
В каком смысле "кто, что думает"?

PIO — програмный ввод-вывод, процессор занимается обменом с устройством (вот почему есть разные скорости мне не совсем понятно)!!!
DMA — прямой доступ к памяти, устройство само занимается обменом данными, имеет смысл только в многозадачной среде!!!
Posted via RSDN NNTP Server 1.9 gamma
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[10]: Короткий доступ к сектору
От: inquiring  
Дата: 23.11.04 09:45
Оценка:
Здравствуйте, Stanky, Вы писали:

>> Попробую поставить задачу иначе: поделитесь, кто что думает о

>> коротких способах доступа к секторам НГМД, не через DMA.
>>
S>Тогда мне задача опять не совсем ясна!!!
S>В каком смысле "кто, что думает"?

S>PIO — програмный ввод-вывод, процессор занимается обменом с устройством (вот почему есть разные скорости мне не совсем понятно)!!!

S>DMA — прямой доступ к памяти, устройство само занимается обменом данными, имеет смысл только в многозадачной среде!!!

Последняя попытка объяснить свой вопрос: Какие есть короткие способы доступа (PIO) к сектору НГМД, не используя ПДП?
Re[11]: Короткий доступ к сектору
От: Stanky  
Дата: 23.11.04 11:27
Оценка:
> Последняя попытка объяснить свой вопрос: Какие есть короткие способы
> доступа (PIO) к сектору НГМД, не используя ПДП?
>
Тот код, что я приводил — считывание одного сектора в PIO режиме!!!

Есть PIO0 -PIO5!!! Кроме PIO и DMA больше ничего нет!!! Это?
Posted via RSDN NNTP Server 1.9 gamma
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re: Короткий доступ к сектору
От: Privalov  
Дата: 23.11.04 12:48
Оценка:
Здравствуйте, inquiring, Вы писали:

I>Здравствуйте!

I>Какие существуют короткие способы доступа (не ПДП) к секторам НГМД?
I>Спасибо за внимание

На самом низком уровне — через порты ввода-вавода. Занятие довольно муторное, но и позволяет многое, например, форматировать дорожку дискеты с нестандартным размером сектора.

Уровень чуть повыше — использование функций int 13h BIOS.

Что-то там еще было на уровне MS DOS — IOCTL, кажется.

Более развернутую информацию можно получить в литературе, вышедшей в начале 90-х. Рекомендую поискать по сайтам, посвященным программированию в MS DOS. Их довольно много в сети. Что-то было у братьев Фроловых.

Желаю удачи.
Re: Короткий доступ к сектору
От: TarasCo  
Дата: 23.11.04 14:00
Оценка:
Здравствуйте, inquiring, Вы писали:

I>Здравствуйте!

I>Какие существуют короткие способы доступа (не ПДП) к секторам НГМД?
I>Спасибо за внимание

Не хочу лезть в верхнюю ветку. Там stanky все толково написал, только он что то зациклился на ата жестких дисках (PIO0-PIO5 имеет смысл для ATA интерфейса, от режима грубо говоря будет завиеть, сколько будет выполняться команда ввода/вывода и задает длительность сигналов на шине. По-моему так?)
С дисководом можно рабоатть как через DMA, так и через PIO (хотя не уверен, что ЛЮБАЯ модель контроллера это позволит). В DDK есть исходник стандартного драйвера контроллера дисковода. Хотя, конечно, код веьма объемный, но я думаю, потраченное на изучение время окупиться
Да пребудет с тобою сила
Re: Короткий доступ к сектору
От: Serjio Россия  
Дата: 23.11.04 14:40
Оценка:
кто знает url-и, посвященные программированию контроллера винта,
напишите пожайлуста.

с уважением, Сергей.
Posted via RSDN NNTP Server 1.9 gamma
Только на РСДН помимо ответа на вопрос, можно получить еще список орфографических ошибок и узнать что-то новое из грамматики английского языка (c) http://www.rsdn.ru/forum/cpp/4720035.1.aspx
Автор: ZOI4
Дата: 28.04.12
Re[2]: Короткий доступ к сектору
От: Stanky  
Дата: 23.11.04 23:58
Оценка:
> Не хочу лезть в верхнюю ветку. Там stanky все толково написал,
> только он что то зациклился на ата жестких дисках
>
Действительно — в вопросе-то звучал НГМД, а я как-то это проморгал, СОРРИ!!!

> (PIO0-PIO5 имеет смысл для ATA интерфейса, от режима грубо говоря будет

> завиеть, сколько будет выполняться команда ввода/вывода и задает
> длительность сигналов на шине. По-моему так?)
>
Кстати, опять-таки прошу прощения: PIO5 не существует!!!
Posted via RSDN NNTP Server 1.9 gamma
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re: Короткий доступ к сектору
От: inquiring  
Дата: 24.11.04 21:31
Оценка:
Всем большое спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.