INT 13H
يُعدّ INT 13h اختصارًا لـ "استدعاء مقاطعة BIOS رقم 13 سداسي عشري" ، وهو متجه المقاطعة رقم 20 في نظام حاسوب قائم على معالج x86 (مشتق من IBM PC). عادةً ما يُهيئ BIOS معالج مقاطعة في الوضع الحقيقي عند هذا المتجه، والذي يوفر خدمات قراءة وكتابة الأقراص الصلبة والمرنة باستخدام عنونة رأس-قطاع الأسطوانة (CHS). تتضمن أنظمة BIOS الحديثة لأجهزة الكمبيوتر الشخصية أيضًا وظائف امتداد INT 13h، التي طورتها IBM ومايكروسوفت عام 1992، والتي توفر خدمات الوصول إلى القرص نفسها باستخدام عنونة LBA 64 بت ؛ مع إضافات طفيفة، تم توحيد هذه الوظائف بشكل شبه قياسي من قِبل Phoenix Technologies وغيرها تحت مسمى امتدادات EDD ( محرك الأقراص المحسّن ) لـ BIOS.
INT هي تعليمة x86 تقوم بتشغيل مقاطعة برمجية ، و 13 hex هو رقم المقاطعة ( كقيمة سداسية عشرية ) التي يتم استدعاؤها.
تأتي الحواسيب الحديثة مزودةً بوظائف BIOS INT 13h و UEFI التي توفر نفس الخدمات وأكثر، باستثناء UEFI Class 3 الذي يُلغي CSM تمامًا ، وبالتالي يفتقر إلى INT 13h ومقاطعات أخرى. عادةً، تستخدم برامج تشغيل UEFI عناوين LBA بدلاً من عناوين CHS.
ملخص
في أنظمة التشغيل ذات الوضع الحقيقي ، مثل DOS ، يؤدي استدعاء المقاطعة INT 13h إلى الانتقال إلى كود ROM-BIOS الخاص بالحاسوب لتنفيذ خدمات القرص منخفضة المستوى ، والتي بدورها تُجري عمليات قراءة أو كتابة القرص على مستوى القطاعات الفعلية للبرنامج. في DOS، تعمل هذه المقاطعة كواجهة منخفضة المستوى لبرامج تشغيل أجهزة الكتل المدمجة للأقراص الصلبة والمرنة . وهذا يسمح للمقاطعتين INT 25h وINT 26h بتوفير وظائف قراءة/كتابة مطلقة للقطاعات المنطقية لبرنامج تشغيل نظام ملفات FAT في نواة DOS، والذي بدوره يتعامل مع طلبات الملفات من خلال وظائف واجهة برمجة تطبيقات DOS ( المقاطعة INT 21h ).
في أنظمة التشغيل ذات الوضع المحمي ، مثل مشتقات مايكروسوفت ويندوز NT (مثل NT4 و2000 وXP وServer 2003) ولينكس مع dosemu ، يعترض نظام التشغيل الاستدعاء ويمرره إلى آلية إدخال/إخراج القرص الأصلية لنظام التشغيل. كما يتجاوز ويندوز 9x وويندوز لمجموعات العمل 3.11 إجراءات BIOS عند استخدام الوصول إلى القرص 32 بت . بالإضافة إلى إجراء الوصول إلى القرص على مستوى منخفض، توفر استدعاءات INT 13h وهياكل بيانات BIOS ذات الصلة معلومات حول أنواع وسعات الأقراص (أو أجهزة DASD الأخرى ) المتصلة بالنظام؛ عند بدء تشغيل نظام التشغيل في الوضع المحمي، قد يستخدم هذه المعلومات من BIOS لحصر مكونات القرص حتى يتمكن (نظام التشغيل) من تحميل وتكوين برامج تشغيل إدخال/إخراج القرص المناسبة.
تدعم واجهة INT 13h الأصلية في نظام BIOS محركات أقراص بسعة تصل إلى 8 جيجابايت تقريبًا، باستخدام ما يُعرف عادةً بعنونة CHS الفيزيائية . ينشأ هذا الحد من واجهة الأجهزة الخاصة بقرص IBM PC/XT . كان نظام BIOS يستخدم عنوان رأس الأسطوانة والقطاع (CHS) المُعطى في استدعاء INT 13h، وينقله مباشرةً إلى واجهة الأجهزة. وقد فُرض حد أدنى، حوالي 504 ميجابايت، نتيجةً لاختلاف حدود عنونة CHS المستخدمة في نظام BIOS عن تلك المستخدمة في أقراص ATA الصلبة. عند دمج حدود عنونة CHS لكل من نظام BIOS وATA (أي عند تطبيقها في آنٍ واحد)، فإن عدد القطاعات التي يبلغ حجم كل منها 512 بايت والتي يمكن عنونتها يُمثل إجماليًا حوالي 504 ميجابايت.
تم تجاوز حد 504 ميجابايت باستخدام ترجمة CHS ، وهي تقنية يقوم من خلالها نظام الإدخال والإخراج الأساسي (BIOS) بمحاكاة هندسة CHS وهمية عند واجهة INT 13h، مع التواصل مع محرك أقراص ATA باستخدام هندسة CHS المنطقية الأصلية. (عندما اقتربنا من حاجز 504 ميجابايت، كانت أقراص ATA قد توقفت منذ فترة طويلة عن عرض معلمات هندستها الفيزيائية الحقيقية عند واجهة ATA الخارجية). تسمح الترجمة لنظام BIOS، الذي لا يزال يستخدم عنونة CHS، بعنونة أقراص ATA التي تصل سعتها إلى 8064 ميجابايت، وهي السعة الأصلية لواجهة CHS الخاصة بنظام BIOS فقط. (تتمتع واجهة ATA بسعة عنونة CHS أصلية أكبر بكثير، لذلك بمجرد حل "تداخل" حدود CHS بين نظام BIOS وATA من خلال العنونة، لم يتبق سوى القيد الأصغر لنظام BIOS). يُشار أحيانًا إلى ترجمة CHS باسم عنونة CHS المنطقية ، ولكن هذا في الواقع تسمية خاطئة، لأنه بحلول وقت تطوير نظام BIOS هذا، كانت عناوين CHS الخاصة بـ ATA منطقية وليست فيزيائية. ينشأ حد 8064 ميجابايت من مزيج من اصطلاح استدعاء القيم المسجلة المستخدم في واجهة INT 13h، وهدف الحفاظ على التوافق مع الإصدارات السابقة ، مما يفرض عدم إمكانية تغيير تنسيق أو حجم عناوين CHS المُمررة إلى INT 13h لإضافة المزيد من البتات إلى أحد الحقول، مثل حقل رقم الأسطوانة. يستخدم هذا الحد 1024 أسطوانة، و256 رأسًا، و63 قطاعًا، و512 كتلة بايت، مما يسمح بالضبط بـ 7.875 جيجابايت من العنونة (1024 × 256 × 63 × 1024) .512 بايت ). كان هناك لفترة وجيزة عدد من أنظمة BIOS التي قدمت إصدارات غير متوافقة من هذه الواجهة - على سبيل المثال، تم توسيع AWARD AT BIOS و AMI 386sx BIOS للتعامل مع ما يصل إلى 4096 أسطوانة عن طريق وضع البتات 10 و 11 من رقم الأسطوانة في البتات 6 و 7 من السجل DH.
تحتوي جميع إصدارات نظام التشغيل MS-DOS (بما في ذلك MS-DOS 7 و Windows 95 ) على خلل يمنع تشغيل محركات الأقراص ذات 256 رأسًا (قيمة السجل 0xFF)، لذا توفر العديد من أنظمة BIOS الحديثة خرائط ترجمة CHS بحد أقصى 255 رأسًا (0xFE) ، [ 1 ] [ 2 ] مما يقلل إجمالي المساحة القابلة للعنونة إلى 8032.5 ميجابايت بالضبط (حوالي 7.844 جيجابايت). [ 3 ]
لدعم معالجة الأقراص ذات الأحجام الأكبر، قدمت شركتا IBM ومايكروسوفت واجهة تُعرف باسم INT 13h Extensions ، ثم أعادت Phoenix Technologies نشرها لاحقًا مع توسيعها بشكل طفيف كجزء من خدمات محركات الأقراص المحسّنة لنظام BIOS (EDD). [ 4 ] [ 5 ] تُعرّف هذه الواجهة وظائف جديدة ضمن خدمة INT 13h، جميعها تحمل أرقام وظائف أكبر من 40h، وتستخدم عنونة الكتل المنطقية (LBA) ذات 64 بت، مما يسمح بمعالجة ما يصل إلى 8 زيتابايت . (يمكن لمحرك أقراص ATA أيضًا دعم عنونة الكتل المنطقية ذات 28 بت أو 48 بت، مما يسمح بمعالجة ما يصل إلى 128 جيجابايت أو 128 بيتابايت على التوالي، بافتراض حجم قطاع/كتلة 512 بايت). تُعد هذه واجهة "حزم"، لأنها تستخدم مؤشرًا إلى حزمة معلومات بدلًا من اصطلاح الاستدعاء القائم على السجلات في واجهة INT 13h الأصلية. تتكون هذه الحزمة من بنية بيانات بسيطة للغاية تحتوي على إصدار الواجهة وحجم البيانات وعناوين الكتل المنطقية. لضمان التوافق مع الإصدارات السابقة من البرامج، يتم تنفيذ الوظائف الموسعة جنبًا إلى جنب مع وظائف CHS الأصلية، ويمكن دمج استدعاءات الوظائف من كلا المجموعتين، حتى بالنسبة لنفس محرك الأقراص، مع التحذير من أن وظائف CHS لا يمكنها الوصول إلى ما بعد أول 8064 ميجابايت من القرص.
تقوم بعض برامج تشغيل ذاكرة التخزين المؤقت بتفريغ مخازنها المؤقتة عند اكتشاف تجاوز نظام DOS عن طريق إصدار أمر INT 13h مباشرةً من التطبيقات. ويمكن استخدام قراءة وهمية عبر أمر INT 13h كإحدى الطرق العديدة لإجبار تفريغ ذاكرة التخزين المؤقت للذاكرات غير المعروفة (مثلاً قبل إعادة التشغيل). [ 1 ] [ 2 ]
تتسبب أنظمة BIOS من AMI، التي صدرت في الفترة ما بين عامي 1990 و1991 تقريبًا، في تلف مخازن البيانات غير المتوافقة. تقوم بعض برامج DOS وبرامج الإنهاء والبقاء في الذاكرة بتعطيل تمكين المقاطعات والسجلات، لذا يقوم نظاما PC DOS و MS-DOS بتثبيت مرشحات خاصة بهما لمنع حدوث ذلك. [ 6 ]
قائمة خدمات INT 13h
| DL = 00h | القرص المرن الأول ( "محرك الأقراص أ: " ) |
| DL = 01h | القرص المرن الثاني ( "محرك الأقراص B: " ) |
| DL = 02h | القرص المرن الثالث ( "محرك الأقراص C: " ) |
| ... | |
| DL = 7Fh | القرص المرن رقم 128 |
| DL = 80 ساعة | القرص الصلب الأول |
| DL = 81 ساعة | القرص الصلب الثاني |
| DL = 82 ساعة | القرص الصلب الثالث |
| ... | |
| DL = E0h | قرص مضغوط/قرص DVD ، أو القرص الصلب رقم 97 |
| ... | |
| DL = FFh | القرص الصلب رقم 128 |
| AH = 00h | إعادة ضبط نظام القرص | |
| AH = 01h | الحصول على حالة عملية القيادة الأخيرة | |
| AH = 02h | قراءة القطاعات من محرك الأقراص | |
| AH = 03h | اكتب عن القطاعات التي ستدفع عجلة النمو | |
| AH = 04h | التحقق من القطاعات | |
| AH = 05h | مسار التنسيق | |
| AH = 06h | تهيئة المسار، تعيين علامات القطاعات التالفة | |
| AH = 07h | بدء تشغيل محرك الأقراص في المسار | |
| AH = 08h | قراءة معلمات محرك الأقراص | |
| AH = 09h | جودة عالية | تهيئة وحدة تحكم القرص |
| AH = 0Ah | جودة عالية | قراءة القطاعات الطويلة من محرك الأقراص |
| AH = 0Bh | جودة عالية | اكتب قطاعات طويلة لتحقيق الدفع |
| AH = 0Ch | جودة عالية | حرك رأس المحرك إلى الأسطوانة |
| AH = 0Dh | جودة عالية | إعادة ضبط محركات الأقراص |
| AH = 0Eh | PS/2 | اختبار قراءة وحدة التحكم |
| AH = 0Fh | PS/2 | اختبار كتابة وحدة التحكم |
| AH = 10 ساعات | جودة عالية | اختبار جاهزية محرك الأقراص |
| AH = 11 ساعة | جودة عالية | إعادة معايرة محرك الأقراص |
| AH = 12 ساعة | PS/2 | اختبار ذاكرة الوصول العشوائي لوحدة التحكم |
| AH = 13 ساعة | PS/2 | اختبار القيادة |
| AH = 14 ساعة | جودة عالية | تشخيص وحدة التحكم |
| AH = 15 ساعة | نوع محرك الأقراص المقروء | |
| AH = 16 ساعة | إف دي | اكتشاف تغيير الوسائط |
| AH = 17 ساعة | إف دي | تحديد نوع الوسائط للتنسيق (يستخدم بواسطة إصدارات DOS < = 3.1) |
| AH = 18 ساعة | إف دي | تحديد نوع الوسائط للتنسيق (يستخدم بواسطة إصدارات DOS > = 3.2) |
| AH = 19 ساعة | بارك هيدز | |
| AH = 41 ساعة | خارجي | اختبر ما إذا كانت الإضافات متاحة |
| AH = 42 ساعة | خارجي | قراءة القطاعات من محرك الأقراص |
| AH = 43 ساعة | خارجي | اكتب عن القطاعات التي ستدفع عجلة النمو |
| AH = 44 ساعة | خارجي | التحقق من القطاعات |
| AH = 45 ساعة | خارجي | قفل/فتح محرك الأقراص |
| AH = 46 ساعة | خارجي | محرك طرد |
| AH = 47 ساعة | خارجي | انقل رأس محرك الأقراص إلى القطاع |
| AH = 48 ساعة | خارجي | قراءة معلمات محرك الأقراص |
| AH = 49 ساعة | خارجي | اكتشاف تغيير الوسائط |
| AH = 4Bh | خارجي | نوع محاكاة محرك الأقراص |
إذا كان العمود الثاني فارغًا، فيمكن استخدام الدالة لكل من القرص المرن والقرص الصلب.
- FD: للأقراص المرنة فقط.
- HD: للقرص الصلب فقط.
- PS/2: مخصص للقرص الصلب على نظام PS/2 فقط.
- EXT: جزء من ملحقات INT 13h التي تمت كتابتها في التسعينيات لدعم محركات الأقراص الصلبة التي تزيد سعتها عن 8 جيجابايت .
INT 13h AH=00h : إعادة ضبط نظام القرص
| أه | ٠٠ ساعة |
| DL | محرك الأقراص (تعيين البت 7 يعني إعادة ضبط كل من القرص الصلب والقرص المرن) |
| التليف الكيسي | تم ضبطه على خطأ |
| أه | رمز الإرجاع |
INT 13h AH=01h : الحصول على حالة عملية القيادة الأخيرة
| أه | 01 ساعة |
| DL | يقود |
البت 7=0 لمحرك الأقراص المرنة، والبت 7=1 لمحرك الأقراص الثابتة
| أه |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
INT 13h AH=02h : قراءة القطاعات من محرك الأقراص
| أه | 02 ساعة |
| الألف | عدد القطاعات التي يجب قراءتها |
| CH | أسطوانة |
| سي إل | قطاع |
| DH | رأس |
| DL | يقود |
| ES:BX | مؤشر عنوان المخزن المؤقت |
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
| الألف | عدد قراءات القطاعات الفعلية |
ملاحظات
يمكن لـ BIOS INT 13h قراءة ما يصل إلى 18 قطاعًا بشكل عام.
يحتوي السجل CX على رقم الأسطوانة (10 بتات ، القيم الممكنة من 0 إلى 1023) ورقم القطاع (6 بتات، القيم الممكنة من 1 إلى 63). فيما يلي ترقيم بتات الأسطوانة والقطاع:
CX = ---CH--- ---CL--- الأسطوانة: 76543210 98 القطاع: 543210
أمثلة على الترجمة
CX := ( ( cylinder and 255 ) shl 8 ) or ( ( cylinder and 768 ) shr 2 ) or sector ; cylinder := ( ( CX and $FF00 ) shr 8 ) or ( ( CX and $C0 ) shl 2 ) sector := CX and 63 ;نظرًا لأن جهاز IBM PC الأصلي كان يستخدم وحدة تحكم DMA من نوع Intel 8237 ذات 16 بت ، فإن عمليات نقل DMA المستخدمة لنقل البيانات من وإلى نظام القرص لا يمكنها تجاوز حد عنوان فعلي يبلغ 64 كيلوبايت. بعض إصدارات BIOS لا تأخذ هذا الأمر في الحسبان. لذا، يجب ألا تتجاوز المخازن المؤقتة المُمررة إلى هذه الوظيفة هذا الحد. ينطبق هذا القيد على العنوان بعد حسابه من القطاع والإزاحة. على سبيل المثال، قراءة 4 قطاعات عند العنوان المُجزأ 0fc0h:0000hتُخالف هذا القيد. فعلى الرغم من أن نطاق الإزاحات في القطاع هو 0000hمن 0 إلى 1 0800h، إلا أن عملية النقل ستكتب إلى نطاق العنوان 0fc00hمن 0 إلى 1 10400h، وهو ما يتجاوز حد 64 كيلوبايت عند 10000h1. ينطبق هذا القيد أيضًا على وظيفة المقاطعة 13h، 03h، لكتابة القطاعات.
قد لا تتمكن الدالة 02h من المقاطعة 13h من قراءة سوى أول 16,450,560 قطاعًا من القرص الصلب. لقراءة قطاعات تتجاوز حد 8 جيجابايت، استخدم الدالة 42h من المقاطعة 13h ( الامتدادات). كما يمكنك استخدام مقاطعة DOS 25h التي تقرأ القطاعات داخل القسم.
مثال برمجي
[ ORG 7c00h ] ؛ يبدأ الكود من 7c00h xor ax , ax ؛ تأكد من ضبط ds على 0 mov ds , ax cld ؛ ابدأ بإدخال القيم: mov ah , 2h ؛ int13h الدالة 2 mov al , 63 ؛ نريد قراءة 63 قطاعًا mov ch , 0 ؛ من الأسطوانة رقم 0 mov cl , 2 ؛ رقم القطاع 2 - القطاع الثاني (يبدأ من 1، وليس 0) mov dh , 0 ؛ رقم الرأس 0 xor bx , bx mov es , bx ؛ يجب أن تكون es تساوي 0 mov bx , 7e00h ؛ 512 بايت من عنوان الأصل 7c00h int 13h jmp 7e00h ؛ انتقل إلى القطاع التالي ؛ لملء هذا القطاع وجعله قابلاً للتشغيل: مضروبًا في 510 - ( $ - $$ ) db 0 dw 0AA55hبعد قسم التعليمات البرمجية هذا (الذي يجب أن يبدأ به ملف asm)، يمكنك كتابة التعليمات البرمجية وسيتم تحميلها إلى الذاكرة وتنفيذها.
لاحظ أننا لم نغير قيمة dl (القرص). ذلك لأن قيمة dl تُضبط تلقائيًا عند تشغيل الكمبيوتر لأول مرة على رقم القرص الذي تم الإقلاع منه، لذا، بافتراض أننا نريد القراءة من القرص الذي أقلعنا منه، فلا حاجة لتغيير قيمة dl، باستثناء بعض برامج المحاكاة مثل qemu التي تتطلب منك تحديد قيمة dl للقرص الذي تريد القراءة منه.
INT 13h AH=03h : كتابة القطاعات إلى محرك الأقراص
| أه | 03 ساعة |
| الألف | عدد القطاعات المطلوب كتابتها |
| CH | مسار |
| سي إل | قطاع |
| DH | رأس |
| DL | يقود |
| ES:BX | مؤشر عنوان المخزن المؤقت |
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
| الألف | عدد القطاعات الفعلي المكتوب |
INT 13h AH=04h : التحقق من القطاعات من محرك الأقراص
| أه | 04 ساعة |
| الألف | القطاعات المراد التحقق من عددها |
| CH | مسار |
| سي إل | قطاع |
| DH | رأس |
| DL | يقود |
| ES:BX | مؤشر عنوان المخزن المؤقت |
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
| الألف | عدد القطاعات الفعلية التي تم التحقق منها |
INT 13h AH=05h : تهيئة المسار
| أه | 05 ساعة |
| الألف | عدد القطاعات المراد تنسيقها |
| CH | مسار |
| سي إل | قطاع |
| DH | رأس |
| DL | يقود |
| ES:BX | مؤشر عنوان المخزن المؤقت |
| بايت | معنى | القيم المسموح بها |
|---|---|---|
| 1 | مسار | |
| 2 | رأس | |
| 3 | قطاع | |
| 4 | بايت/قطاع | 0=128، 1=256، 2=512، 3=1024 |
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
INT 13h AH=06h : تهيئة المسار، تعيين علامات القطاعات التالفة
| أه | 06 ساعة |
| الألف | متداخل |
| CH | مسار |
| سي إل | قطاع |
| DH | رأس |
| DL | يقود |
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
INT 13h AH=07h : بدء تهيئة القرص من المسار
| أه | 07h |
| الألف | متداخل |
| CH | مسار |
| سي إل | قطاع |
| DH | رأس |
| DL | يقود |
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
INT 13h AH=08h : قراءة معلمات محرك الأقراص
| السجلات | |
|---|---|
| أه | 08h = رقم الدالة لقراءة معلمات محرك الأقراص |
| DL | فهرس محرك الأقراص (على سبيل المثال، القرص الصلب الأول = 80h) |
| ES:DI [ 7 ] | تم ضبطه على 0000h:0000h للتغلب على بعض مشاكل BIOS |
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
| DL | عدد محركات الأقراص الصلبة |
| DH [ 7 ] | الفهرس المنطقي الأخير للرؤوس = عدد الرؤوس - 1 (لأن الفهرس يبدأ من 0) |
| تجربة العملاء | [7:6] [15:8] [ 7 ] الفهرس المنطقي الأخير للأسطوانات = عدد_الأسطوانات - 1 (لأن الفهرس يبدأ من 0 ) [5:0] [ 7 ] الفهرس المنطقي الأخير للقطاعات لكل مسار = عدد_القطاعات (لأن الفهرس يبدأ من 1) |
| BL [ 7 ] | نوع محرك الأقراص (أقراص مرنة AT/PS2 فقط) |
| ES:DI [ 7 ] | مؤشر إلى جدول معلمات محرك الأقراص (للأقراص المرنة فقط) |
ملاحظات
- قد تختلف القيم المنطقية للوظيفة 08h عن القيم الفيزيائية للوظيفة 48h.
- يحتوي سجل النتائج CX على كل من قيم الأسطوانات والقطاعات/المسارات، انظر ملاحظة الوظيفة 02h.
INT 13h AH=09h : تهيئة خصائص زوج محرك الأقراص
| أه | 09h |
| DL | يقود |
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
INT 13h AH=0Ah: قراءة قطاعات طويلة من محرك الأقراص
الفرق الوحيد بين هذه الوظيفة والوظيفة 02h (انظر أعلاه) هو أن الوظيفة 0Ah تقرأ 516 بايت لكل قطاع بدلاً من 512 بايت فقط. تحتوي البايتات الأربعة الأخيرة على رمز تصحيح الأخطاء (ECC)، وهو مجموع اختباري لبيانات القطاع.
INT 13h AH=41h : تحقق من وجود ملحقات
| السجلات | وصف |
|---|---|
| أه | 41h = رقم الدالة للتحقق من الامتدادات [ 8 ] |
| DL | فهرس محرك الأقراص (على سبيل المثال، القرص الصلب الأول = 80h) |
| BX | 55AAh |
| السجلات | وصف |
|---|---|
| التليف الكيسي | اضبط على "غير موجود"، وامسح في حالة "موجود". |
| أه | رمز الخطأ أو رقم الإصدار الرئيسي |
| BX | AA55h |
| تجربة العملاء | دعم واجهة القناع الثنائي:
|
INT 13h AH=42h : قطاعات قراءة موسعة من محرك الأقراص
| السجلات | وصف | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| أه | 42h = رقم الوظيفة للقراءة الممتدة | ||||||||||||||||||
| DL | فهرس محرك الأقراص (على سبيل المثال، القرص الصلب الأول = 80h) | ||||||||||||||||||
| DS:SI | segment:offset مؤشر إلى DAP، انظر أدناه
|
| السجلات | وصف |
|---|---|
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
كما ذُكر سابقًا بخصوص int 13h AH=02h، يجب الحرص على التأكد من أن المخزن المؤقت بالكامل موجود داخل الجزء المحدد ، أي (BX + حجم_المخزن_المؤقت) <= 10000h
INT 13h AH=43h : قطاعات كتابة موسعة لمحرك الأقراص
| السجلات | وصف |
|---|---|
| أه | 43h = رقم الوظيفة للكتابة الموسعة |
| الألف |
|
| DL | فهرس محرك الأقراص (على سبيل المثال، القرص الصلب الأول = 80h) |
| DS:SI | segment:offset مؤشر إلى DAP |
| السجلات | وصف |
|---|---|
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
INT 13h AH=48h : معلمات محرك القراءة الموسعة
| السجلات | وصف | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| أه | 48 ساعة = رقم الدالة لـ extended_read_drive_parameters | |||||||||||||||||||||||||||
| DL | فهرس محرك الأقراص (على سبيل المثال، القرص الصلب الأول = 80h) | |||||||||||||||||||||||||||
| DS:SI | segment:offset مؤشر إلى مخزن النتائج، انظر أدناه
|
| السجلات | وصف |
|---|---|
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. |
| أه | رمز الإرجاع |
ملاحظة
قد تختلف قيم CHS الفيزيائية للوظيفة 48h عن القيم المنطقية للوظيفة 08h.
INT 13h AH=4Bh: الحصول على نوع محاكاة محرك الأقراص
| المسجلين | وصف |
|---|---|
| أه | 4Bh = الحصول على نوع محاكاة محرك الأقراص |
| الألف | 01 |
| DL | فهرس محرك الأقراص (على سبيل المثال، القرص الصلب الأول = 80h) |
| DS:SI | يشير إلى بنية فارغة للنتيجة. يجب أن يكون حجمها 13h |
| السجلات | وصف | |||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| التليف الكيسي | يتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ. | |||||||||||||||||||||||||||||||||||||||||||||||||
| الفأس | رمز الإرجاع | |||||||||||||||||||||||||||||||||||||||||||||||||
| DS:SI | يشير إلى بنية المواصفات
|
انظر أيضاً
- INT 10H
- استدعاء مقاطعة BIOS
- قطاع رأس الأسطوانة
- INT (تعليمات x86)
- DPMI (واجهة الوضع المحمي لنظام DOS)
- قائمة مقاطعة رالف براون
- مواصفات محرك الأقراص المحسّنة لنظام BIOS
مراجع
- 1 2 براون، رالف د. (16-07-2000). "قائمة مقاطعات رالف براون (الإصدار 61 بصيغة HTML)" . تم الاسترجاع في 03-11-2016 .
- 1 2 براون، رالف د. (16-07-2000). "أرشيف قائمة المقاطعات x86 (الإصدار 61، النص الأصلي): "inter61a.zip"، الملف الفرعي: "INTERRUP.B"، العنوان: "B-1302" (INT13، قراءة 02)، ملاحظات" . تم الاسترجاع في 03-11-2016 .
- ↑ قيود حجم القرص، حد 8.4 جيجابايت (وغيرها)
- ↑ ستيفنز، كورتيس (26 يناير 1995). "مواصفات محرك الأقراص المحسّنة 1.1 - مسودة - شركة فينيكس تكنولوجيز، انظر 3.0 ملحقات BIOS (التسجيل مطلوب)" (ملف PDF) . تم الاطلاع عليه بتاريخ 3 نوفمبر 2016 .
- ↑ لانديس، هيل (11 فبراير 1995). "أنواع BIOS، ترجمة CHS، LBA وميزات أخرى مفيدة، انظر نوع BIOS 6: مواصفات محرك الأقراص المحسّن Phoenix. (التسجيل مطلوب)" (ملف PDF) . تم الاطلاع عليه بتاريخ 3 نوفمبر 2016 .
- ↑ ctyme.com - قائمة مقاطعات رالف براونز، فهرسة HTML، القرص - قراءة قطاع (قطاعات) إلى الذاكرة
- 1 2 3 4 5 6 ctyme.com - القرص - الحصول على معلمات محرك الأقراص (PC,XT286,CONV,PS,ESDI,SCSI)
- ↑ ctyme.com - ملحقات IBM/MS INT 13 - فحص التثبيت
- ↑ - LBA في الوضع الموسع
روابط خارجية
- تمت أرشفة امتدادات مقاطعة BIOS 13h في 6 فبراير 2006 على موقع Wayback Machine.
- قائمة المقاطعات الشاملة لرالف براون
- دليل نورتون حول int 13h, ah = 00h .. 1ah مؤرشف بتاريخ 27-06-2008 في أرشيف الإنترنت (Wayback Machine).
- أجهزة الكمبيوتر الشخصية المتوافقة مع IBM
- نظام الإدخال والإخراج الأساسي (BIOS)
- المقاطعات
