INT 13H - INT 13H

INT 13 soat stenografiya BIOS qo'ng'iroqni to'xtatadi 13olti burchak, 20-chi uzilish vektori ichida x86 asoslangan (IBM PC-pastga asoslangan) kompyuter tizimi. The BIOS odatda a ni o'rnatadi haqiqiy rejim interrupt ishlovchisi sektorga asoslangan qattiq disk va floppi o'qish va yozish xizmatlaridan foydalangan holda ushbu vektorda silindr-bosh sektori (CHS) murojaat qilish. Kompyuterning zamonaviy BIOS-lari, shuningdek, IBM va Microsoft tomonidan 1992 yilda ishlab chiqarilgan, xuddi shu diskka kirish xizmatlarini 64-bit yordamida ta'minlaydigan INT 13h kengaytma funktsiyalarini o'z ichiga oladi. LBA murojaat qilish; kichik qo'shimchalar bilan, ular Phoenix Technologies va boshqalar tomonidan EDD sifatida kvazi-standartlashtirilgan (Kengaytirilgan disk drayveri ) BIOS kengaytmalari.

INT bu x86 ko'rsatma bu esa dasturiy ta'minot uzilishi va 13olti burchak uzilish raqami (a sifatida o'n oltinchi qiymati) chaqirilmoqda.

Zamonaviy kompyuterlar BIOS INT 13h va UEFI to'liq o'chiradigan UEFI Class 3 bundan mustasno, bir xil xizmatlarni va boshqalarni taqdim etadigan funksionallik CSM shu sababli INT 13h va boshqa uzilishlar mavjud emas. Odatda, UEFI drayverlari foydalanadi LBA - CHS-adreslash o'rniga adres.

Umumiy nuqtai

Ostida haqiqiy rejim kabi operatsion tizimlar DOS, INT 13h ga qo'ng'iroq qilish kompyuterning ROM-BIOS kodiga o'tib ketadi past darajadagi disk xizmatlari, bu dastur uchun fizik sektorga asoslangan disk o'qish yoki yozish operatsiyalarini bajaradi. DOS-da u o'rnatilgan blok qurilmasi drayverlari uchun past darajadagi interfeys bo'lib xizmat qiladi qattiq disklar va floppi. Bu INT 25h va INT 26h ga mantiqiy tarmoqlar uchun diskni o'qish / yozishning mutlaqo funktsiyalarini ta'minlashga imkon beradi Yog ' fayl tizimi faylga oid so'rovlarni bajaradigan DOS yadrosidagi drayver DOS API (21 soat ) funktsiyalari.

Ostida himoyalangan rejim kabi operatsion tizimlar Microsoft Windows NT hosilalari (masalan, NT4, 2000, XP va Server 2003) va Linux bilan dosemu, OS qo'ng'iroqni to'xtatib, uni operatsion tizimning mahalliy disk kiritish-chiqarish mexanizmiga uzatadi. Windows 9x va Ishchi guruhlar uchun Windows 3.11 shuningdek, foydalanishda BIOS tartiblarini chetlab o'tish 32-bitli diskka kirish. Diskdan past darajadagi kirishni amalga oshirishdan tashqari, INT 13h qo'ng'iroqlari va tegishli BIOS ma'lumotlar tuzilmalari disklarning turlari va imkoniyatlari (yoki boshqa) haqida ma'lumot beradi DASD qurilmalar) tizimga biriktirilgan; himoyalangan rejimdagi OS ishga tushirilganda, u (OS) tegishli disk kiritish-chiqarish drayverlarini yuklashi va sozlashi uchun BIOS-dan diskdagi apparatni sanab chiqish uchun foydalanishi mumkin.

Original BIOS haqiqiy rejimdagi 13 soatlik interfeysi odatda 8 gigabaytgacha bo'lgan disklarni qo'llab-quvvatlaydi. jismoniy CHS manzili. Ushbu chegara. Ning apparat interfeysidan kelib chiqadi IBM PC / XT disk uskunasi. BIOS-dan foydalanilgan silindr-bosh sektori (CHS) manzili INT 13 soatlik qo'ng'iroqda berilgan va uni to'g'ridan-to'g'ri apparat interfeysiga o'tkazgan. BIOS tomonidan ishlatiladigan va bir-biriga o'xshamaydigan ATA qattiq disklari tomonidan qo'llaniladigan CHS-adreslash chegaralarining birlashishi bilan 504 Mb gacha bo'lgan kamroq chegara o'rnatildi. BIOS va ATA-larning CHS manzillash chegaralari birlashtirilganda (ya'ni, ular bir vaqtning o'zida qo'llanilganda), murojaat qilish mumkin bo'lgan 512 baytli sektorlar soni jami taxminan 504 MB ni tashkil qiladi.

504 MB chegara yordamida engib chiqildi CHS tarjimasi, BIOS INT 13h interfeysida xayoliy CHS geometriyasini simulyatsiya qilishi va shu bilan ATA drayveri bilan o'zining mantiqiy CHS geometriyasi yordamida aloqa qilish uslubi. (504 MB to'siqqa yaqinlashganda, ATA disklari ancha oldin tashqi ATA interfeysida haqiqiy fizik geometriya parametrlarini taqdim etishni to'xtatgan edi.) Tarjima BIOS-ga, hanuzgacha CHS-adreslashdan foydalanib, ATA disklarini kattaligi bilan samarali tarzda hal qilishga imkon beradi. faqat BIOS CHS interfeysining asl hajmi 8064 MB ga teng. (ATA interfeysi juda katta mahalliy CHS adreslash imkoniyatiga ega, shuning uchun BIOS va ATA ning CHS chegaralarining "aralashuvi" adreslash yo'li bilan hal qilingandan so'ng, faqat BIOSning kichik chegarasi muhim ahamiyatga ega edi.) CHS tarjimasi ba'zan deb nomlanadi mantiqiy CHS manzili, lekin bu aslida bu noto'g'ri ma'lumot, chunki ushbu BIOS-ni ishlab chiqish vaqtida ATA CHS manzillari allaqachon jismoniy emas, mantiqiy edi. 8064 MB chegarasi INT 13h interfeysida ishlatiladigan registrga asoslangan qo'ng'iroq konvensiyasining kombinatsiyasidan kelib chiqadi va orqaga qarab muvofiqlikni ta'minlashdan iborat - INT 13h ga uzatilgan CHS manzillarining formatini yoki hajmini o'zgartirib bo'lmaydi, chunki u yana bit qo'shadi. maydonlardan biriga, masalan Shiling raqami maydoni. Ushbu chegara 1024 tsilindrni, 256 kallakni, 63 sektorni va 512 bayt blokni ishlatadi, bu aniq 7.875 Gbayt manzilga (1024 * 256 * 63 * 512 bayt) imkon beradi. Ushbu interfeysning mos kelmaydigan versiyalarini taklif qilgan bir qancha BIOS-lar bor edi, masalan, AWARD AT BIOS va AMI 386sx BIOS 4096 tsilindrgacha silindr sonining 10 va 11-bitlarini 6 va 7-bitlarga joylashtirish orqali kengaytirildi. DHni ro'yxatdan o'tkazing - lekin oxir-oqibat 1989 yilda Microid Research ("MR BIOS") da ishlab chiqilgan interfeys asosida standartlashtirilgan kompyuter sanoati.[iqtibos kerak ]

Ning barcha versiyalari MS-DOS, (shu jumladan MS-DOS 7 va Windows 95 ) 256 boshli disk drayverlarini yuklashga xalaqit beradigan xato mavjud (ro'yxatdan o'tish qiymati 0xFF), shuning uchun ko'plab zamonaviy BIOS-lar CHS-ning tarjima xaritalarini ko'pi bilan 255 (0xFE) bilan ta'minlaydi. boshlar,[1][2] Shunday qilib, umumiy manzil maydonini to'liq 8032,5 MiB (taxminan 7,844 GiB) ga kamaytirish.[3]

Keyinchalik kattaroq disklarning manzilini qo'llab-quvvatlash uchun interfeys sifatida tanilgan INT 13 soat kengaytmalari IBM va Microsoft tomonidan taqdim etilgan, keyinroq qayta nashr etilgan va biroz kengaytirilgan Feniks Texnologiyalari qismi sifatida BIOS-ning kengaytirilgan disk xizmatlari (EDD).[4][5] U INT 13h xizmatida yangi funktsiyalarni belgilaydi, ularning barchasi 40 soatdan katta, 64-bitdan foydalanadigan raqamlar mantiqiy blokirovkalash (LBA), bu 8 tagacha manzilga murojaat qilishga imkon beradi ZiB. (ATA drayveri 28 bitli yoki 48 bitli LBA-ni qo'llab-quvvatlaydi, bu esa 128 gacha GiB yoki 128 PiB mos ravishda, 512 baytli sektor / blok hajmini nazarda tutgan holda). Bu "paket" interfeysi, chunki u a uchun ko'rsatgichdan foydalanadi paket asl INT 13h interfeysining qo'ng'iroq konvensiyasi emas, balki reestrga asoslangan ma'lumot. Ushbu paket interfeys versiyasi, ma'lumotlar hajmi va LBA-larni o'z ichiga olgan juda oddiy ma'lumotlar tuzilmasi. Dasturiy ta'minotning orqaga qarab muvofiqligi uchun kengaytirilgan funktsiyalar asl CHS funktsiyalari bilan bir qatorda amalga oshiriladi va har ikkala to'plamdagi funktsiyalarga qo'ng'iroqlar, hattoki bir xil disk uchun ham aralashtiriladi, chunki CHS funktsiyalari birinchi 8064 MB dan o'tib keta olmaydi. disk.

Ba'zi kesh drayverlari buni aniqlaganda buferlarini yuvishadi DOS dasturlardan to'g'ridan-to'g'ri INT 13h berish orqali chetlab o'tiladi. INT 13h orqali o'qilgan qo'g'irchoq noma'lum keshlar uchun keshni tozalashga majbur qilishning bir necha usullaridan biri sifatida foydalanish mumkin (masalan, qayta yuklashdan oldin).[1][2]

AMI BIOSes taxminan 1990-1991 yillarda axlat so'zlari hizalanmagan buferlar. Ba'zi DOS va TSR dasturlarni to'xtatib qo'yishni to'xtatadi va ro'yxatdan o'tkazadi Kompyuter DOS va MS-DOS bunga yo'l qo'ymaslik uchun o'zlarining filtrlarini o'rnating.[6]

Ro'yxati INT 13 soat xizmatlar

Drayv stoli
DL = 00 soat1-disketka ("diskka A:")
DL = 01 soat2-disketa ("disk B:")
DL = 02 soat3-disketa ("diskka B:")
. . .
DL = 7Fh128-chi floppi)
DL = 80 soat1-chi qattiq disk
DL = 81 soat2-chi qattiq disk
DL = 82 soat3-qattiq disk
. . .
DL = E0 soatCD / DVD[iqtibos kerak ]yoki 97-chi qattiq disk
. . .
DL = FFh128-chi qattiq disk
Funktsiyalar jadvali
AH = 00 soat Disk tizimini qayta tiklash
AH = 01 soat Oxirgi diskda ishlash holatini oling
AH = 02 soat Diskdan sektorlarni o'qing
AH = 03 soat Haydash uchun sektorlarni yozing
AH = 04 soat Sektorlarni tasdiqlang
AH = 05 soat Trekni formatlash
AH = 06 soat Formatni izlash yomon sektor bayroqlarini o'rnatdi
AH = 07 soat Trekdan boshlab diskni formatlash
AH = 08 soat Drayv parametrlarini o'qing
AH = 09 soatHDDisk tekshirgichini ishga tushiring
AH = 0AhHDDiskdan uzoq tarmoqlarni o'qing
AH = 0BhHDHaydash uchun uzoq sektorlarni yozing
AH = 0ChHDDrayv boshini silindrga siljiting
AH = 0DhHDDisk drayverlarini tiklash
AH = 0EhPS / 2Nazoratchi o'qish testi
AH = 0FhPS / 2Nazoratchi yozish testi
AH = 10 soatHDDrayv tayyorligini tekshirib ko'ring
AH = 11 soatHDDrayvni qayta sozlang
AH = 12 soatPS / 2Nazoratchi RAM sinovi
AH = 13 soatPS / 2Drayv sinovi
AH = 14 soatHDTekshirgich diagnostikasi
AH = 15 soat Disk turini o'qing
AH = 16 soatFDMedia o'zgarishini aniqlang
AH = 17 soatFDMedia Type for Format (DOS versiyalari tomonidan ishlatiladigan <= 3.1)
AH = 18 soatFDFormat uchun media turini o'rnating (DOS versiyalari> = 3.2 tomonidan ishlatiladi)
AH = 19 soat Park boshlari
AH = 41 soatEXTKengaytmalar mavjudligini tekshiring
AH = 42 soatEXTDiskdan sektorlarni o'qing
AH = 43 soatEXTHaydash uchun sektorlarni yozing
AH = 44 soatEXTSektorlarni tasdiqlang
AH = 45 soatEXTDiskni qulflash / ochish
AH = 46 soatEXTDrayvni chiqarib oling
AH = 47 soatEXTDrayv boshini sektorga o'tkazing
AH = 48 soatEXTDrayv parametrlarini o'qing
AH = 49 soatEXTMedia o'zgarishini aniqlang
AH = 4BhEXTDrive Emulation Type-ni oling

Agar ikkinchi ustun bo'sh bo'lsa, u holda bu funktsiya floppi va qattiq disk uchun ishlatilishi mumkin.

  • FD: faqat floppi uchun.
  • HD: faqat qattiq disk uchun.
  • PS / 2: faqat PS / 2 tizimidagi qattiq disk uchun.
  • EXT: qismining INT 13 soat 8-dan ortiq qattiq disklarni qo'llab-quvvatlash uchun 1990-yillarda yozilgan kengaytmalar GB.

INT 13 soat AH = 00 soat: Disk tizimini tiklash

Parametrlar
AH00 soat
DLDrayv (bit 7 to'plami ham qattiq, ham floppi tiklashni anglatadi)
Natijalar
CFXatoga sozlang
AHQaytish kodi

INT 13 soat AH = 01 soat: Oxirgi diskda ishlash holatini oling

Parametrlar
AH01 soat
DLHaydash

Disketka uchun 7 = 0 bit, qattiq diskka 7 = 1

Natijalar
AH
Qaytish kodi
00 soatMuvaffaqiyat
01 soatBuyruq yaroqsiz
02 soatManzil belgisini topib bo'lmadi
03 soatYozishdan himoyalangan diskka yozishga harakat qilindi
04 soatSektor topilmadi
05 soatQayta tiklash muvaffaqiyatsiz tugadi
06 soatDiskni o'zgartirish liniyasi "faol"
07 soatDrayv parametr parametrlari bajarilmadi
08 soatDMA bekor qilindi
09 soat64 kg chegaradan ortiq DMA ga urinish
0AhNoto'g'ri sektor aniqlandi
0BhYomon silindr (yo'l) aniqlandi
0ChMedia turi topilmadi
0DhSektorlar soni noto‘g‘ri
0EhMa'lumotlarni boshqarish manzili belgisi aniqlandi
0FhDMA diapazondan tashqarida
10 soatCRC / ECC ma'lumotlar xatosi
11 soatECC ma'lumotlar xatosini to'g'irladi
20 soatNazoratchi ishlamayapti
40 soatMuvaffaqiyatsizlikni qidiring
80 soatHaydovchi tayyor emas deb taxmin qilish muddati tugadi
AAhHaydovchi tayyor emas
BBhAniqlanmagan xato
CChXato yozing
E0hHolat xatosi
FFhSezish jarayoni amalga oshmadi
CFXato o'rnating, Xato bo'lmasa o'chiring

INT 13 soat AH = 02 soat: Diskdan sektorlarni o'qing

Parametrlar
AH02 soat
ALO'qishni hisoblash sohalari
CHSilindr
CLSektor
DHBosh
DLHaydash
ES: BXBufer manzili ko'rsatgichi
Natijalar
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi
ALHaqiqiy sektorlar soni

Izohlar

CX-ni ro'yxatdan o'tkazing silindrning ikkala raqamini ham o'z ichiga oladi (10 bitlar, mumkin bo'lgan qiymatlar 0 dan 1023 gacha) va sektor raqami (6 bit, mumkin bo'lgan qiymatlar 1 dan 63 gacha). Shiling va Sektor bitlari quyida raqamlangan:

CX = --- CH --- --- CL --- silindr: 76543210 98sektor: 543210

Tarjima namunalari:

CX: = ((silindr va 255) shl 8) yoki ((silindr va 768) shr 2) yoki sektor; silindr: = ((CX va 0xFF00) shr 8) yoki ((CX va 0xC0) shl 2) sektor: = CX va 63;

Buferning manzili bunga kafolat berishi kerak to'liq bufer bu berilgan segment ichida, ya'ni. (BX + size_of_buffer) <= 10000 soatAks holda, ba'zi BIOS yoki apparat versiyalarida uzilish muvaffaqiyatsiz bo'lishi mumkin.

Misol

Siz 16 sektorni o'qishni xohlaysiz (= 2000 soat) bayt ) va buferingiz 4FF00h xotira manzilini boshlaydi. Foydalanish xotira segmentatsiyasi, registr qiymatlarini hisoblashning turli usullari mavjud, masalan:

ES = segment = 4F00hBX = ofset = 0F00hsum = xotira manzili = 4FF00 yaxshi tanlov bo'lishi mumkin, chunki 0F00h + 2000h = 2F00h <= 10000hES = segment = 4000hBX = ofset = FF00hsum = xotira manzili = 4FF00hwould emas yaxshi tanlov bo'ling, chunki FF00h + 2000h = 11F00h> 10000h

13 soatlik uzilishning 02h funktsiyasi faqat qattiq diskning dastlabki 16.450.560 sektorini o'qishi mumkin, 8 Gb chegaradan yuqori bo'lgan sektorlarni o'qish uchun 42hof funktsiyasidan foydalanish kerak. INT 13 soat Kengaytmalar. Boshqa bir alternativa sektorlarni o'qiydigan 25 soatlik DOS uzilishi bo'lishi mumkinichida bo'lim.

INT 13 soat AH = 03 soat: Haydash uchun sektorlarni yozing

Parametrlar
AH03 soat
ALSanoqni yozish uchun sektorlar
CHTrek
CLSektor
DHBosh
DLHaydash
ES: BXBufer manzili ko'rsatgichi
Natijalar
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi
ALHaqiqiy sektorlar Yozma hisob

INT 13 soat AH = 04 soat: Diskdagi tarmoqlarni tekshiring

Parametrlar
AH04 soat
ALSanoqni tasdiqlovchi tarmoqlar
CHTrek
CLSektor
DHBosh
DLHaydash
ES: BXBufer manzili ko'rsatgichi
Natijalar
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi
ALHaqiqiy sektorlar tomonidan tasdiqlangan hisoblash

INT 13h hijriy = 05h: Track formatini

Parametrlar
AH05 soat
ALSanoqni formatlash uchun sektorlar
CHTrek
CLSektor
DHBosh
DLHaydash
ES: BXBufer manzili ko'rsatgichi
4 baytli manzil maydoni
(PC / XT 286, AT, PS / 1 va PS / 2 uchun amal qiladi)
BaytMa'nosiRuxsat berilgan qiymatlar
1Trek
2Bosh
3Sektor
4Bayt / sektor0=128, 1-256, 2-512, 3-1024
Natijalar
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi

INT 13 soat AH = 06 soat: Format Track yomon tarmoq bayroqlarini o'rnatdi

Parametrlar
AH06 soat
ALInterleave
CHTrek
CLSektor
DHBosh
DLHaydash
Natijalar
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi

INT 13 soat AH = 07 soat: Diskni trekdan boshlab formatlash

Parametrlar
AH07 soat
ALInterleave
CHTrek
CLSektor
DHBosh
DLHaydash
Natijalar
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi

INT 13 soat AH = 08 soat: Disk parametrlarini o'qing

Parametrlar
Ro'yxatdan o'tish kitoblari
AH08h = read_drive_parametrlari uchun funktsiya raqami
DLdisk indekslari (masalan, 1-chi HDD = 80 soat)
ES: DI[7]ba'zi buggy BIOS-larda ishlash uchun 0000h: 0000h-ga o'rnatildi
Natijalar
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi
DLqattiq disk drayverlari soni
DH[7]boshlarning mantiqiy oxirgi ko'rsatkichi = number_of - 1 (chunki indeks 0dan boshlanadi)
CX[7:6] [15:8][7] silindrlarning mantiqiy oxirgi ko'rsatkichi = number_of - 1 (chunki indeks boshlanadi 0 bilan)

[5:0][7] trek bo'yicha tarmoqlarning mantiqiy oxirgi ko'rsatkichi = number_of (chunki indeks 1dan boshlanadi)

BL[7]disk turi (faqat AT / PS2 disketalari)
ES: DI[7]parametrlar jadvalini boshqarish uchun ko'rsatgich (faqat disketalar uchun)

Izohlar

  • 08h funktsiyasining mantiqiy qiymatlari 48h funktsiyasining jismoniy CHS qiymatlaridan farq qilishi mumkin / bo'lishi kerak.
  • Natija reestri CX ikkala tsilindrni ham, sektor / trek qiymatlarini ham o'z ichiga oladi, 02h funktsiya eslatmasiga qarang

INT 13 soat AH = 09 soat: Init Drive Pair Xususiyatlari

Parametrlar
AH09 soat
DLHaydash
Natijalar
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi

INT 13 soat AH = 0Ah: Diskdan uzoq sektorlarni o'qing

Ushbu funktsiya va funktsiya 02h o'rtasidagi yagona farq (yuqoriga qarang) - 0Ah funktsiyasi har bir sektor uchun 516 baytni o'qiydi, faqat 512 o'rniga. Oxirgi 4 baytda xatolar tuzatish kodi (ECC) mavjud, bu tarmoq ma'lumotlarining checksumi.

INT 13 soat AH = 41 soat: Kengaytmalar mavjudligini tekshiring

Parametrlar
Ro'yxatdan o'tish kitoblariTavsif
AH41 soat = kengaytmalarni tekshirish uchun funktsiya raqami[8]
DLdisk indekslari (masalan, 1-chi HDD = 80 soat)
BX55AAh
Natijalar
Ro'yxatdan o'tish kitoblariTavsif
CFHozirda emas, mavjud bo'lsa, o'chirib qo'ying
AHXato kodi yoki asosiy versiya raqami
BXAA55 soat
CXInterfeysni qo'llab-quvvatlash bitmaskasi:
  • 1 - Paket tuzilmasi yordamida qurilmaga kirish
  • 2 - diskni blokirovka qilish va chiqarib tashlash
  • 4 - Kengaytirilgan disk drayverini qo'llab-quvvatlash (EDD)

INT 13 soat AH = 42 soat: Diskdan kengaytirilgan o'qish sektorlari

Parametrlar
Ro'yxatdan o'tish kitoblariTavsif
AH42 soat = kengaytirilgan o'qish uchun funktsiya raqami
DLdisk indekslari (masalan, 1-chi HDD = 80 soat)
DS: SIsegment: DAP-ga ofset ko'rsatkichi, pastga qarang
DAP: disk manzili to'plami
ofset oralig'ihajmitavsif
00 soat1 baytDAP hajmi (buni 10 soatga sozlang)
01 soat1 baytishlatilmagan, nol bo'lishi kerak
02 soat..03 soat2 bayto'qiladigan sektorlar soni, (ba'zi Feniks BIOS-lari maksimal 127 ta sektor bilan cheklangan)
04 soat..07 soat4 baytsegment: ofset ko'rsatkichi, tarmoqlar uzatiladigan xotira buferiga (x86 ekanligini unutmang ozgina endian: agar segmentni va ofsetni alohida e'lon qilsa, ofset segmentdan oldin e'lon qilinishi kerak)
08h..0Fh8 bayto'qiladigan sektorlarning boshlanishining mutloq soni (diskning 1-sektori 0 raqamiga ega) mantiqiy blokirovkalash (pastki yarmi yuqori yarmidan oldin kelishini unutmang)[9]
Natijalar
Ro'yxatdan o'tish kitoblariTavsif
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi

Int 13h AH = 02h bilan allaqachon aytib o'tilganidek, buni ta'minlash uchun ehtiyot bo'lish kerak to'liq bufer berilgan segment ichida, ya'ni (BX + size_of_buffer) <= 10000 soat

INT 13 soat AH = 43 soat: Haydash uchun kengaytirilgan yozish sektorlari

Parametrlar
Ro'yxatdan o'tish kitoblariTavsif
AH43 soat = kengaytirilgan yozish uchun funktsiya raqami
AL
  • bit 0 = 0: yozishni tekshirishni yoping,
  • bit 0 = 1: ochiq yozishni tekshirish,
  • bit 1-7: himoyalangan, 0 ga o'rnatildi
DLdisk indekslari (masalan, 1-chi HDD = 80 soat)
DS: SIsegment: DAP-ga ofset ko'rsatkichi
Natijalar
Ro'yxatdan o'tish kitoblariTavsif
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi

INT 13 soat AH = 48 soat: Kengaytirilgan o'qish parametrlari

Parametrlar
Ro'yxatdan o'tish kitoblariTavsif
AH48 soat = kengaytirilgan_read_drive_parametrlari uchun funktsiya raqami
DLdisk indekslari (masalan, 1-chi HDD = 80 soat)
DS: SIsegment: ofset ko'rsatkichi natijasi buferiga, pastga qarang
Natija buferi
ofset oralig'ihajmitavsif
00 soat..01 soat2 baytnatija buferining hajmi (buni 1Eh ga sozlang)
02 soat..03 soat2 baytma'lumot bayroqlari
04 soat..07 soat4 bayttsilindrlarning fizik soni = oxirgi indeks + 1
(chunki indeks 0 bilan boshlanadi)
08h..0Bh4 baytboshlarning jismoniy soni = oxirgi indeks + 1
(chunki indeks 0 bilan boshlanadi)
0Ch..0Fh4 baytbir trekka to'g'ri keladigan sektorlar soni = oxirgi indeks
(chunki indeks 1dan boshlanadi)
10 soat..17 soat8 baytsektorlarning mutlaq soni = oxirgi indeks + 1
(chunki indeks 0 bilan boshlanadi)
18 soat..19 soat2 baythar bir tarmoq uchun bayt
1Ah..1Dh4 baytKeyingi uzilish uchun ishlatilishi mumkin bo'lgan Kengaytirilgan Disk Drive (EDD) konfiguratsiya parametrlariga ixtiyoriy ko'rsatgich 13 soat kengaytma qo'ng'iroqlari (agar qo'llab-quvvatlansa)
Natijalar
Ro'yxatdan o'tish kitoblariTavsif
CFXato o'rnating, Xato bo'lmasa o'chiring
AHQaytish kodi

Izoh

48h funktsiyasining jismoniy CHS qiymatlari 08h funktsiyasining mantiqiy qiymatlaridan farq qilishi mumkin / bo'lishi kerak.

INT 13h AH = 4Bh: diskni emulyatsiya turini oling

Parametrlar
Ro'yxatdan o'tganlarTavsif
AH4Bh = diskka o'xshatish turini oling
AL01
DLdisk indekslari (masalan, 1-chi HDD = 80 soat)
DS: SInatija uchun bo'sh tuzilishga ishora qiladi. hajmi 13 soat bo'lishi kerak
Natijalar
Ro'yxatdan o'tish kitoblariTavsif
CFXato o'rnating, Xato bo'lmasa o'chiring
AXQaytish kodi
DS: SISpetsifikatsiya tuzilishiga ishora qiladi
Shartnoma tuzilishi
OfsetHajmi (bayt)Tavsif
00 soat1Paket hajmi baytda (13 soat)
01 soat1Yuklash vositasi turi:
Bitlar
0 - 30000b: Hech qanday taqlid qilish mumkin emas

0001b: 1,2 million floppi-disk

0010b: 1,44M disketa

0011b: 2.88M floppi-disk

0100b: Qattiq disk

4-5Himoyalangan
6Rasmda ATAPI drayveri mavjud
7Rasmda SCSI drayveri mavjud
02 soat1Drayv raqami (disk indekslari)
03 soat1CD-ROM tekshiruvi raqami
04 soat4Taqlid qilish uchun disk tasvirining mantiqiy blok manzili (LBA)
08 soat2Qurilmaning spetsifikatsiyasi:

bit 0: Drayv master o'rniga qul

7-0 bitlar: LUN va PUN

0Ah2CD-ROMlarni o'qishni keshlash uchun 3K bufer segmenti
0Ch2Dastlabki yuklash tasviri segmenti 7c0h segmentidan boshlanadi
0Eh2Yuklash uchun sektorlar soni (uzunligi 512 bayt)
10 soat1Shiling soni past bayt (int 8h dan)
11 soat1Sektor soni (int 8h dan)
12 soat1Bosh soni (int 8h dan)

Shuningdek qarang

Adabiyotlar

  1. ^ a b Jigarrang, Ralf D. (2000-07-16). "Ralf Brownsning uzilishlar ro'yxati (v61 html)". Olingan 2016-11-03.
  2. ^ a b Jigarrang, Ralf D. (2000-07-16). "X86 uzilishlar ro'yxati (v61 asl matn) arxivi:" inter61a.zip ", pastki fayl:" INTERRUP.B ", sarlavha:" B-1302 "(INT13, 02 o'qish), eslatmalar". Olingan 2016-11-03.
  3. ^ Disk hajmi cheklovlari, 8,4 Gb chegarasi (va boshqalar)
  4. ^ Stivens, Kertis (1995-01-26). "Kengaytirilgan disk drayveri 1.1 -DRAFT- Phoenix Technologies, qarang 3.0 BIOS kengaytmalari (ro'yxatdan o'tish talab qilinadi)" (PDF). Olingan 2016-11-03.
  5. ^ Landis, Xeyl (1995-02-11). "BIOS turlari, CHS tarjimasi, LBA va boshqa yaxshi narsalar, qarang BIOS turi 6 Feniks kengaytirilgan disk drayveri. (Ro'yxatdan o'tish zarur)" (PDF). Olingan 2016-11-03.
  6. ^ ctyme.com - Ralf Braunsning uzilishlar ro'yxati, indekslangan html, DISK - XOTIRADA Sektor (lar) ni o'qing
  7. ^ a b v d e f ctyme.com - DISK - DRAM PARAMETRALARINI OLING (PC, XT286, CONV, PS, ESDI, SCSI)
  8. ^ ctyme.com - IBM / MS INT 13 kengaytmalari - O'RNATISHNI CHEKLASH
  9. ^ - kengaytirilgan rejimda LBA

Tashqi havolalar