WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  ASM
  int 13h

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   int 13h
7in опубликован 27-12-2001 23:13 MSK   Click Here to See the Profile for 7in   Click Here to Email 7in  
Люди! Кто-нибудь знает, как через int 13h обращаться к диску, у которого > 1024 циллиндров? (для благих намерений).
И если есть доки/примеры для работы с дисками через порты (IDE,SCSI и др), буду очень рад. Так же неплохо бы "заиметь" описание разных файловых систем (NTFS, например). И узнать, чем отличается FAT32 от FAT16 (кроме битности).
- Спасибо!

eujin@mailru.com

upaul опубликован 28-12-2001 02:23 MSK     Click Here to See the Profile for upaul  Click Here to Email upaul     
Если память мне не изменяет, то поддержка больших дисков есть в INT 25h/26h. Про INT 13h ничего не слышал.
Описание есть в xview.
devilray опубликован 28-12-2001 18:48 MSK     Click Here to See the Profile for devilray  Click Here to Email devilray     
У меня есть крохотная утиля , с пом. которой я вручную разбивал большие диски (такой гемморой). Намылю в субботу (ее еще найти надо). Если хочешь сам узнать, как через int 13h работать с большими хардами, продизасми (я так и сделал :))) ) виндовый bootsector (то есть первый из трех) - там есть алгоритм (смысл в том, что используешь как параметры не CHS харда, а абсолютный сектор !!!!!!!!)
devilray опубликован 28-12-2001 19:04 MSK     Click Here to See the Profile for devilray  Click Here to Email devilray     
Упс, поправочка, дизасмить надо Master boot record :)
7in опубликован 28-12-2001 22:54 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
2 devilray: А мысль ведь неплохая :) . Хотя я уже нашёл. Для LBA есть функции 4xh / int 13h. Но утилитку всё-равно пришли :)

2 upaul: int 25h/26h поддерживает партишаны для 2Gb. К тому же, int 25h/26h - это не int 13h :))) . Для больших дисков есть ax=7305h/cx=0ffffh/int 21h

Хотелось бы ещё описание систем и работы через порты.

rivitna опубликован 28-12-2001 23:51 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
Высылаю тебе свою простенькую программку определения параметров устройств IDE/ATAPI, а также любопытную информацию по CD/ATAPI.
Может пригодится!?

Вообще же рекомендую скачать спецификацию по IDE.
Она валяется на сайте
http://www.halyava.ru/document/

rivitna опубликован 28-12-2001 23:59 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
Боюсь, что затея дизассемблировать MBR окажется бесполезной, так как партиция, начало которой располагается дальше 1023-го цилиндра не грузится.

Попробуй в Partition Magic'е создать такую партицию, он тебе напишет что-то в таком духе

devilray опубликован 29-12-2001 10:06 MSK     Click Here to See the Profile for devilray  Click Here to Email devilray     
Вобщем утилиту я не на нашел (диск 60 Гб - я там однажды HalfLife потерял :))) ). Но я вспомнил как это (в смысле по int 13h лазить по большим хардам, не подумайте чего другого)делается:

; make command: "ml.exe s.asm /AT"
.model tiny
.386
.code
org 100h
sst:

; Read from absolute sector - <=> function 2 (absolute sector 0 <=> C=0, H=0, S=1)

push 0 ; HZ
push 0 ; HZ
push 0 ; Low 16 bit of absolute sector
push 0 ; High 16 bit of absolute sector
push ds ; Segment to read from
push offset data ; Offset to read from
push 1 ; Number of sectors to from
push 10h ; HZ
mov ah,42h ; Function number
mov dl,80h ; HDD C:
mov si,sp ; HZ
int 13h
popa ; ballance stack

; Write to absolute sector - <=> function 3

push 0
push 0
push 131h
push 0AE1Fh
push ds
push offset data
push 1
push 10h
mov ah,43h
mov dl,80h
mov si,sp
;int 13h ; Commented to prevent disaster :-)
popa

mov ax,4C00h
int 21h

data db 1024 dup(0)
last db '$'
end sst

devilray опубликован 29-12-2001 10:13 MSK     Click Here to See the Profile for devilray  Click Here to Email devilray     
И еще на счет всяктх там int 24h, 25h, 21h - все это, на сколько я помню, интерфейсы к int 13h (то есть в конце концов используют для физ. доступа к диску int 13h), т.к. int 20h - 30h - ДОСОВЫЕ прерывания, а int 13h - биос.
7in опубликован 29-12-2001 23:10 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
2 devilray: You're quite right!!!

2 ritina: Посмотрел я сегодня MBR. Есть там 41h/42h int 13h, значит грузиться должен. Там ещё прикол такой, что если этот сервис (42h) не поддерживается, то используется функция 2 (для чтения). А т.к. загрузочный раздел обычно первый, то грузиться должен и такой :)

2 devilray: Не знаю, откуда ты (и, кстати, по-моему ещё кто-то говорил) взял 3 сектора (MBR+2), я нашёл только один. У меня хоть винт и < 8Gb, но, думаю, разницы не должно быть.

А в общем, всем спасибо и с наступающим!...

Но если найдёте ещё - буду очень рад!!!

devilray опубликован 03-01-2001 11:35 MSK     Click Here to See the Profile for devilray  Click Here to Email devilray     
3 сектора - это в Win98 за место одного bootsectora.
7in опубликован 03-01-2001 21:13 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
2 devilray: Всё, нашёл (на диске с FAT32). Только второй сектор почти пустой :)
Ritchie опубликован 06-02-2001 20:43 MSK     Click Here to See the Profile for Ritchie  Click Here to Email Ritchie     
Народ, а может, кто знает, как из-под 9х прочитать сектор, а? Стандартный VxDшный интерфейс винды этого не делает, если кто не знает :-) Зато требует (вроде) чтоб все только им и пользовались. Если кто подскажет, как это обойти, буду очень благодарен.
rivitna опубликован 06-02-2001 22:45 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
Читай напрямую через порты, команды 20h и 21h (если не путаю)
В чем собственно проблема?
Ritchie опубликован 07-02-2001 04:42 MSK     Click Here to See the Profile for Ritchie  Click Here to Email Ritchie     
Sorry, не понял. Наверно, тормоз.
Команды 20h 21h чего? Номера портов, досовские команды, или еще что?
rivitna опубликован 07-02-2001 07:23 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
Я имел в виду команды 20h (или 21h), посылаемые в порт 1F7h (для контроллера Primergy).

Ты вообще-то какое приложение пишешь DOS или Win?

rivitna опубликован 07-02-2001 07:26 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
Что-то с утра я торможу - написал вместо Primary название нашего сервера Primergy от фирмы Siemens

Если DOS-приложение, просто используй int 13h, и все

Ritchie опубликован 07-02-2001 13:11 MSK     Click Here to See the Profile for Ritchie  Click Here to Email Ritchie     
Если б под DOS, никаких проблем не было бы. В том то и дело, что под винды, мало того, под 9х-серию :-(
Так что винда, скорее всего, просто так в порт контроллера не пустит, хотя пока не пробовал, сегодня посмотрим.
rivitna опубликован 07-02-2001 15:18 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
> Если б под DOS, никаких проблем не было
> бы. В том то и дело, что под винды, мало
> того, под 9х-серию :-(

Я задал корректный вопрос про тип приложения.
Под понятием DOS-приложения я имел ввиду формат исполняемого файла (com или mz exe). В этом случае int 13h - простой и эффективный способ.
Если же ты пишешь приложение Win32 (PE формат), то это другой фопрос.

> Так что винда, скорее всего, просто так в
> порт контроллера не пустит, хотя пока не
> пробовал, сегодня посмотрим.

Конечно, не пустит - ясный перец! Это привилегированные операции. В качестве примера я специально выложил исходник программы DevId на этом сайте, пользуй ее, там также работа идет через порты

Ritchie опубликован 08-02-2001 11:33 MSK     Click Here to See the Profile for Ritchie  Click Here to Email Ritchie     
Thanks.
А с типом приложения - просто в моем первом же письме было сказано, что я хочу читать секторы под 9х. :-)
7in опубликован 08-02-2001 21:44 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
Дай ссылку на DevId, plzzzz
rivitna опубликован 08-02-2001 21:52 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
http://www.sources.ru/asm/devid32.shtml
7in опубликован 08-02-2001 22:24 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
Thanx

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.