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 = 0EhPS/2اختبار قراءة وحدة التحكم
AH = 0FhPS/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 لمحرك الأقراص الثابتة

نتائج
أه
رمز الإرجاع
٠٠ ساعةنجاح
01 ساعةأمر غير صالح
02 ساعةتعذر العثور على علامة العنوان
03 ساعةمحاولة الكتابة على قرص محمي ضد الكتابة
04 ساعةالقطاع غير موجود
05 ساعةفشلت إعادة الضبط
06 ساعةتغيير القرص - الخط "نشط"
07hفشلت عملية معلمات محرك الأقراص
08 ساعةتجاوز DMA
09hمحاولة الوصول المباشر إلى الذاكرة (DMA) عبر حد 64 كيلوبايت
0Ahتم اكتشاف قطاع معيب
0Bhتم اكتشاف أسطوانة (مسار) تالفة
0Chلم يتم العثور على نوع الوسائط
0 درهمعدد القطاعات غير صالح
0Ehتم اكتشاف علامة عنوان بيانات التحكم
0FhDMA خارج النطاق
10 ساعاتخطأ في بيانات CRC/ECC
11 ساعةتصحيح خطأ البيانات بواسطة نظام تصحيح الأخطاء (ECC)
20 ساعةفشل وحدة التحكم
40 ساعةابحث عن الفشل
80 ساعةانتهت مهلة القيادة، يُفترض أنها غير جاهزة
آهالقيادة غير جاهزة
BBhخطأ غير محدد
سي تشخطأ في الكتابة
E0hخطأ في الحالة
FFhفشلت عملية الاستشعار
التليف الكيسييتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ.

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مؤشر عنوان المخزن المؤقت
حقل عنوان مكون من 4 بايت (ينطبق على PC/XT 286 وAT وPS/1 وPS/2)
بايتمعنىالقيم المسموح بها
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)
BX55AAh
نتائج
السجلاتوصف
التليف الكيسياضبط على "غير موجود"، وامسح في حالة "موجود".
أهرمز الخطأ أو رقم الإصدار الرئيسي
BXAA55h
تجربة العملاءدعم واجهة القناع الثنائي:
  • 1- الوصول إلى الجهاز باستخدام بنية الحزمة
  • 2- قفل وإخراج القرص الصلب
  • 4- دعم مُحسَّن لمحركات الأقراص (EDD)

INT 13h AH=42h : قطاعات قراءة موسعة من محرك الأقراص

حدود
السجلاتوصف
أه42h = رقم الوظيفة للقراءة الممتدة
DLفهرس محرك الأقراص (على سبيل المثال، القرص الصلب الأول = 80h)
DS:SIsegment:offset مؤشر إلى DAP، انظر أدناه
DAP  : حزمة عنوان القرص
نطاق الإزاحةمقاسوصف
٠٠ ساعة1 بايتحجم جهاز DAP (اضبط هذا على 10 ساعات)
01 ساعة1 بايتغير مستخدم، يجب أن يكون صفرًا
02h ..03h2 بايتعدد القطاعات المراد قراءتها، (بعض أنظمة BIOS من نوع Phoenix محدودة بحد أقصى 127 قطاعًا)
04:00 - 07:004 بايتsegment:offset مؤشر إلى مخزن الذاكرة الذي سيتم نقل القطاعات إليه (لاحظ أن x86 هو little-endian : إذا تم تعريف المقطع والإزاحة بشكل منفصل، فيجب تعريف الإزاحة قبل المقطع).
08h..0Fh8 بايتالرقم المطلق لبداية القطاعات المراد قراءتها (القطاع الأول من محرك الأقراص يحمل الرقم 0) باستخدام عنونة الكتلة المنطقية (لاحظ أن النصف السفلي يأتي قبل النصف العلوي) [ 9 ]
نتائج
السجلاتوصف
التليف الكيسييتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ.
أهرمز الإرجاع

كما ذُكر سابقًا بخصوص int 13h AH=02h، يجب الحرص على التأكد من أن المخزن المؤقت بالكامل موجود داخل الجزء المحدد ، أي (BX + حجم_المخزن_المؤقت) <= 10000h

INT 13h AH=43h : قطاعات كتابة موسعة لمحرك الأقراص

حدود
السجلاتوصف
أه43h = رقم الوظيفة للكتابة الموسعة
الألف
  • البت 0 = 0: إغلاق فحص الكتابة،
  • البت 0 = 1: فحص الكتابة المفتوحة،
  • البتات من 1 إلى 7: محجوزة، يتم ضبطها على 0
DLفهرس محرك الأقراص (على سبيل المثال، القرص الصلب الأول = 80h)
DS:SIsegment:offset مؤشر إلى DAP
نتائج
السجلاتوصف
التليف الكيسييتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ.
أهرمز الإرجاع

INT 13h AH=48h : معلمات محرك القراءة الموسعة

حدود
السجلاتوصف
أه48 ساعة = رقم الدالة لـ extended_read_drive_parameters
DLفهرس محرك الأقراص (على سبيل المثال، القرص الصلب الأول = 80h)
DS:SIsegment:offset مؤشر إلى مخزن النتائج، انظر أدناه
مخزن النتائج
نطاق الإزاحةمقاسوصف
00:00 .. 01:002 بايتحجم مخزن النتائج (اضبط هذا على 1Eh)
02h ..03h2 بايتأعلام المعلومات
04:00 - 07:004 بايتالعدد الفعلي للأسطوانات = الفهرس الأخير + 1 (لأن الفهرس يبدأ من 0)
08h..0Bh4 بايتعدد مرات ظهور الصورة = الفهرس الأخير + 1 (لأن الفهرس يبدأ من 0)
0Ch..0Fh4 بايتعدد القطاعات الفعلي لكل مسار = الفهرس الأخير (لأن الفهرس يبدأ من 1)
10:00 صباحًا - 17:00 مساءً8 بايتالعدد المطلق للقطاعات = الفهرس الأخير + 1 (لأن الفهرس يبدأ من 0)
18:00 - 19:002 بايتبايت لكل قطاع
1Ah..1Dh4 بايتمؤشر اختياري إلى معلمات تكوين محرك الأقراص المحسن (EDD) والتي يمكن استخدامها لمكالمات التمديد اللاحقة للمقاطعة 13 ساعة (إذا كانت مدعومة)
نتائج
السجلاتوصف
التليف الكيسييتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ.
أهرمز الإرجاع

ملاحظة

قد تختلف قيم CHS الفيزيائية للوظيفة 48h عن القيم المنطقية للوظيفة 08h.

INT 13h AH=4Bh: الحصول على نوع محاكاة محرك الأقراص

حدود
المسجلينوصف
أه4Bh = الحصول على نوع محاكاة محرك الأقراص
الألف01
DLفهرس محرك الأقراص (على سبيل المثال، القرص الصلب الأول = 80h)
DS:SIيشير إلى بنية فارغة للنتيجة. يجب أن يكون حجمها 13h
نتائج
السجلاتوصف
التليف الكيسييتم التعيين عند حدوث خطأ، ويتم المسح في حالة عدم وجود خطأ.
الفأسرمز الإرجاع
DS:SIيشير إلى بنية المواصفات
هيكل المواصفات
إزاحةالحجم (بايت)وصف
٠٠ ساعة1حجم الحزم بالبايت (13 ساعة)
01 ساعة1نوع وسائط التمهيد  :
أجزاء
0 - 30000b: لا يوجد محاكاة

0001b: قرص مرن 1.2 ميجابايت

0010b: قرص مرن 1.44 ميجابايت

0011b: قرص مرن 2.88 ميجابايت

0100b: القرص الصلب

4-5محجوز
6تحتوي الصورة على برنامج تشغيل ATAPI
7تحتوي الصورة على برنامج تشغيل SCSI
02 ساعة1رقم محرك الأقراص (فهرس محرك الأقراص)
03 ساعة1رقم وحدة تحكم القرص المضغوط
04 ساعة4عنوان الكتلة المنطقية (LBA) لصورة القرص المراد محاكاتها
08 ساعة2مواصفات الجهاز:

البت 0: محرك الأقراص تابع وليس رئيسيًا

البتات 7-0: LUN و PUN

0Ah2جزء من مخزن مؤقت بحجم 3 كيلوبايت لتخزين قراءات أقراص CD-ROM مؤقتًا
0Ch2مقطع صورة التمهيد الأولي بدءًا من المقطع 7c0h
0Eh2عدد القطاعات (بطول 512 بايت) المراد تحميلها
10 ساعات1عدد الأسطوانات - بايت منخفض (من int 8h)
11 ساعة1عدد القطاعات (من int 8h)
12 ساعة1عدد الأفراد (من الساعة 8 صباحًا)

انظر أيضاً

مراجع

  1. 1 2 براون، رالف د. (16-07-2000). "قائمة مقاطعات رالف براون (الإصدار 61 بصيغة HTML)" . تم الاسترجاع في 03-11-2016 .
  2. 1 2 براون، رالف د. (16-07-2000). "أرشيف قائمة المقاطعات x86 (الإصدار 61، النص الأصلي): "inter61a.zip"، الملف الفرعي: "INTERRUP.B"، العنوان: "B-1302" (INT13، قراءة 02)، ملاحظات" . تم الاسترجاع في 03-11-2016 .
  3. قيود حجم القرص، حد 8.4 جيجابايت (وغيرها)
  4. ستيفنز، كورتيس (26 يناير 1995). "مواصفات محرك الأقراص المحسّنة 1.1 - مسودة - شركة فينيكس تكنولوجيز، انظر 3.0 ملحقات BIOS (التسجيل مطلوب)" (ملف PDF) . تم الاطلاع عليه بتاريخ 3 نوفمبر 2016 .
  5. لانديس، هيل (11 فبراير 1995). "أنواع BIOS، ترجمة CHS، LBA وميزات أخرى مفيدة، انظر نوع BIOS 6: مواصفات محرك الأقراص المحسّن Phoenix. (التسجيل مطلوب)" (ملف PDF) . تم الاطلاع عليه بتاريخ 3 نوفمبر 2016 .
  6. ctyme.com - قائمة مقاطعات رالف براونز، فهرسة HTML، القرص - قراءة قطاع (قطاعات) إلى الذاكرة
  7. 1 2 3 4 5 6 ctyme.com - القرص - الحصول على معلمات محرك الأقراص (PC,XT286,CONV,PS,ESDI,SCSI)
  8. ctyme.com - ملحقات IBM/MS INT 13 - فحص التثبيت
  9. - LBA في الوضع الموسع