تحويل BBC Micro Computer (1981) إلى كاتب قرص آمن بقيمة 40.000 دولار



المقدمة



واحدة من أشهر قصص أمان الأقراص المرنة تأتي من Dungeon Master . هذه اللعبة ، التي تم إصدارها في ديسمبر 1987 ، جمعت بين تنسيق القرص المادي المعقد (بتات غامضة) مع فحوصات أمنية سرية مضمنة في طريقة اللعب نفسها.



أوصي بقراءة هذه المقالة ، التي تقدم نظرة عامة ممتازة على الأقراص المرنة ، متبوعة بنظرة عامة مفصلة للغاية عن حماية البت الضبابي لـ Dungeon Master لـ Atari ST. يوجد أيضًا هذا المقال الرائع الذي يتناول المزيد من التفاصيل حول القصص المحيطة بالدفاع عن Dungeon Master. يحتوي على اقتباس من أحد مؤلفي Dungeon Master:



« , , 40 . , ».


كان سبب هذا السعر المرتفع على الأرجح يرجع إلى دقة التوقيت المطلوبة لإنشاء بتات غامضة بشكل موثوق. في الأيام التي قاس فيها معظم العالم الأداء بالميكروثانية ، تم قياس الدقة المطلوبة بالنانو ثانية.



كان لدى BBC Micro معالج 6502 بتردد 2 ميغاهرتز واستغرق دورتين على مدار الساعة ، أو 1 ميكرو ثانية ، لتنفيذ أبسط تعليماته. هل هناك أي أمل في إمكانية كتابة أجزاء غامضة في ظل هذه القيود؟ دعونا نرى إلى أي مدى يمكننا الذهاب. سيشار إلى هذا العمل باسم "مشروع قضاعة الزيت".



لإعطائك فكرة عن روح العصر ، إليك صورة لماكينة نسخ قرص مرن مقاس 3.5 بوصة. إنه لأمر مدهش مدى تشابهها مع آلة التصوير ، باستثناء أنك تقوم بإدخال أقراص في الوعاء بدلاً من الورق! يبدو أن Advanced World Products قد باعت لك مثل هذه الآلة .





منفذ بي بي سي مايكرو المخصص



اشتهرت BBC Micro بقابليتها الممتازة للتوسع ، بما في ذلك استخدام ما يسمى بـ "منفذ المستخدم". يتم التحكم في هذا المنفذ بواسطة محول الواجهة متعدد الاستخدامات 6522 الذي يعمل بسرعة 1 ميجاهرتز. يحتوي المنفذ نفسه على 8 دبابيس بيانات و 2 دبابيس تحكم. وفرت هذه الاتصالات درجة عالية جدًا من السيطرة. يمكن تكوين دبابيس البيانات بشكل فردي كمدخلات ومخرجات ، ويمكن ضبط مستويات دبوس المنطق على مرتفع أو منخفض.



لماذا يعتبر منفذ المستخدم مهمًا بالنسبة لنا؟ سنحاول التحكم في محرك الأقراص مباشرة من خلاله. من خلال إزالة وحدة التحكم في القرص المرن من المعادلة ، قد نتمكن من التخلص منها والحصول على مزيد من التحكم المباشر في محرك الأقراص وتدفق البيانات التي يتم نقلها.





منفذ المستخدم إلى محرك الأقراص



توضح الصورة أعلاه الكابل الخاص بي الذي يربط منفذ المستخدم بمحرك الأقراص. الموصلات قياسية ، والأسلاك التي تربطها ليست سوى وصلات توصيل. أسعى بصدق لإنشاء شيء يمكن صنعه "في تلك الأيام" ، لذلك لا أستخدم أي أجهزة إلكترونية إضافية.



يتم ترتيب الكابل على النحو التالي:





الخلاصة الرئيسية من هذا الرسم البياني هي أن واجهة محرك الأقراص ربما تكون أبسط مما قد يعتقده المرء. يمكننا التحكم في محرك الأقراص والاستعلام عن حالته المهمة من خلال 8 دبابيس فقط. كل شيء بسيط للغاية. لنفترض أننا بحاجة إلى تدوير محرك الأقراص ، فهذا يكفي لإعطاء إشارة منخفضة إلى PB0 و PB1. إذا كنت تريد الانتظار حتى يدور القرص إلى بداية المسار ، فأنت بحاجة إلى الاستعلام عن المستوى المنطقي على PB6 حتى نرى تغيير مستوى الإشارة من الأعلى إلى الأدنى. بالنسبة للحركة خطوة بخطوة ، يكفي ضبط مستوى المنطق "خطوة إلى الداخل" مقابل "خطوة للخارج" ، ثم تنفيذ نبضة إشارة منخفضة على "خطوة" جهة الاتصال.



حتى الآن جيد جدًا ، لدينا سيطرة أساسية على محرك الأقراص ، لكننا لم نسجل أي شيء بعد.



مشاكل كهربائية



إن الاستطراد القصير في المشاكل الكهربائية أمر حتمي ، لأنني واجهتهم. يمكن أن يؤدي توصيل أزواج عشوائية من المكونات إلى جعلها تعمل ، ولكن في بعض الأحيان يلزم إجراء تعديلات. فيما يلي نطاق الجهد الذي لوحظ في البداية عند دبوس W / DATA لمحرك الأقراص:





نحن نحاول كتابة نبضات على محرك بتردد FM يبلغ 250 كيلو هرتز



، ويكون الجهد المنطقي 1 حوالي 3.4 فولت ، والجهد المنطقي 0 هو حوالي 1.5 فولت ، وهذه مشكلة خطيرة! مستويات الجهد TTL المقبولة محددة جيدًا:



"تعتبر إشارة الإدخال TTL" منخفضة "إذا كان لديها جهد بين 0V و 0.8V بالنسبة للدبوس الأرضي ، و" عالي "عندما تكون بين 2V و VCC (5V). إذا تم تطبيق إشارة جهد في النطاق من 0.8 فولت إلى 2.0 فولت على إدخال عنصر TTL ، فإن العنصر لا يعطي إجابة محددة ، وبالتالي تعتبر الإشارة "غير محددة".


يعتبر الجهد المنطقي 0 1.5 فولت "غير محدد" ولن يتسبب في أي عمل. في الواقع ، لم تكن قيادتي تسجل أي شيء بهذه الإشارة.



تم حل المشكلة عن طريق إزالة كبل محرك الأقراص المرنة EOL من محرك الأقراص . هذه صورة لمحركتي مع مجموعة موسوعة الحياة الموضحة باللون الأحمر:





هذا يحل مشكلة مستويات الجهد بشكل جيد ، وبعد ذلك يعمل كل شيء. يبدو أن العديد من منافذ BBC Micro بخلاف منفذ القرص لا تملك طاقة كافية لتشغيل كابل EOL. لكن انتظر - ربما كان هناك سبب ما لتثبيت هذا المقاوم؟ نعم. لإزالته حيلتان:



  • انتبه لطول الكابلات. بدون مقاومة موسوعة الحياة ، تكون الكابلات الطويلة عرضة لتشويه الإشارة.
  • راقب مستويات الجهد على الأسلاك غير الموصلة. لقد لاحظت وجود جهد 1.32 فولت على دبوس المشغل S / SEL (تحديد جانبي). هذا ليس طبيعيًا لأن هذه القيمة تقع أيضًا في نطاق عدم اليقين TTL. أين سيكتب محرك الأقراص البيانات؟ ربما في الجانب العلوي ، ربما في الأسفل. أو ربما لا أحد منهم على الإطلاق! تم حل المشكلة عن طريق توصيل كل كابل مهم وتطبيق إشارة عالية أو منخفضة عليهم.


تحتاج إلى زيادة عرض النطاق الترددي



المشكلة التي تجاوزناها حتى الآن: كيف نرسل إشارة إلى دبوس W / DATA؟ هذا اتصال "صعب". لديها عرض النطاق الترددي العالي ومتطلبات دقيقة للتوقيت. دعنا نتوقف عن الحلم بالبتات الضبابية بدقة نانوثانية لثانية واحدة ونحاول كتابة نبضات FM بسيطة على محرك الأقراص.



معظم أقراص BBC Micro موجودة في FM (المعروف أيضًا باسم DFM ، المعروف أيضًا باسم الكثافة الفردية) بترميز 250 كيلو هرتز. تسجيل مسار FM بسيط للغاية في الواقع. من الضروري التحقق مما إذا كان محرك الأقراص يدور وما إذا كانت لوحة التسجيل مفتوحة. بعد ذلك ، كل 4 ميكروثانية ، إما أن نؤدي تموج W / DATA إلى مستوى منخفض ، ثم نعود إلى الإشارة العالية (بت 1) ، أو لا نقوم بذلك (بت 0). في أغلب الأحيان يجب أن تكون كل بت ثانية واحدة (بت المزامنة للحفاظ على التوقيت والمزامنة).



يعد التحكم في W / DATA من خلال المعالج مهمة يائسة. 4 ميكروثانية هي 8 دورات ساعة المعالج ؛ هذا بالتأكيد لا يكفي لتحميل بايت ، وتحويله ، وكتابة 0 ، ثم 1 إلى المستويات المنطقية لمنفذ المستخدم. من المحتمل أن تستغرق الحلقة البسيطة أكثر من 12 ميكروثانية ، وهذا كثير جدًا. لذا ، لكتابة W / DATA بسرعة كافية ، سيتعين علينا استخدام إمكانيات شريحة 6522 VIA.



سجل التحول 6522 VIA



المرشح الأكثر وضوحًا لمهمتنا هو سجل المناوبة. سجل التحول هو سجل 8 بت. في الوضع المقابل ، سيؤدي تحميل سجل الإزاحة إلى إجبار الشريحة على إرسال 8 بت بالتتابع على أحد دبابيس منفذ المستخدم. هذا رائع - تتم معالجة البتات بالتوازي مع المعالج الرئيسي ، لذلك يمكن للمعالج قضاء الوقت بأمان في إنشاء مجموعة جديدة من البتات لبدء التحويل.



لسوء الحظ ، لم أتمكن من تشغيل هذه الدائرة. وضع التحول الوحيد الذي لديه القدرة على العمل بسرعة معقولة هو "تغيير ساعة النظام". في مركز التصميم الغربية 6522 المواصفات لديها مخطط لطيفة:





تبلغ ساعة نظام VIA 1 ميجاهرتز ، لذا ستكون ساعة الإزاحة 500 كيلو هرتز ودقة بت الإخراج هي 250 كيلو هرتز. هذا يكفي. ومع ذلك ، لم أفهم كيفية جعل ساعة المناوبة تعمل بشكل مستمر وسلس. حتى بعد محاولة التوقيت الدقيق لإعادة تحميل سجل الإزاحة ، كان الفاصل الزمني لساعة التحول دائمًا يبدو كما يلي:





اتضح أنه في وضع التحول الفردي بالسرعة الكافية لإجراء تجاربنا ، تؤدي إعادة تحميل سجل التحول إلى تأخير قبل الاستمرار في التحول. لا يناسبنا.



6522 VIA Pulse Output Mode



الميزة غير المعروفة لـ 6522 هي "وضع إخراج النبض". لم يتم وصفه في مواصفات جميع المتغيرات البالغ عددها 6522 ، ولكن هنا إدخال صغير عنها في مواصفات تقنية MOS :





لقد وجدنا أخيرًا مواصفة تصف سلوكها بدقة. هذا الوضع ممتع للغاية بالنسبة لنا ، لأن عملية كتابة واحدة في VIA تعد بأن تؤدي إلى إجراءين منفصلين: يتم تطبيق إشارة منطقية منخفضة على دبوس الإخراج ، وبعد ساعة واحدة (1 ميكرو ثانية) تعود إلى إشارة عالية دون أي جهد من جانبنا. وهذا يسمح لنا ل استخدامها لدفع إشارة خرج 250 كيلو هرتز. موارد المعالج محدودة للغاية - لن تحل الحلقة المشكلة بأي شكل من الأشكال ، لكن كتلة الشفرة الخطية 6502 ستكون قادرة على التعامل ، على سبيل المثال:



        \ &70 points to &FE60, aka. user 6522 VIA ORB register.
        STA (&70),Y        \ 8 cycles, pulse output
        STA (&70),Y        \ 8 cycles, pulse output
        STA (&70),Y        \ 8 cycles, pulse output
        LDA (&70),Y        \ 8 cycles, do not pulse output
        STA (&70),Y        \ 8 cycles, pulse output
        ...


سوف تعمل. المعالج لديه ما يكفي من القوة لهذا الغرض. 8 دورات على مدار الساعة هي 4 ميكروثانية ، وهو أقصر وقت بين نبضات القرص.



لسوء الحظ ، مثل هذه العملية للغايةيستخدم الذاكرة بنشاط. تتطلب كل بت FM مشفر 2 بايت من رمز سطر 6502. كل بتة بيانات مهمة هي بتتين FM لأن كل بت أخرى تتم مزامنتها. يبلغ طول المسار 3125 بايت ، لذا يلزم 3125 * 8 * 2 * 2 == 100 كيلو بايت من كود السطر. يحتوي BBC Micro على ذاكرة وصول عشوائي (RAM) بسعة 32 كيلوبايت ، لذا لم يحالفنا الحظ هنا. يمكن كتابة قطاعات مفردة (صغيرة) ، بما في ذلك آليات حماية القرص الجديدة القوية. لكننا لن نتمكن من كتابة مقاطع كبيرة (1024 بايت) أو مسارات كاملة. كلتا العمليتين مطلوبتين لكتابة أعداد كبيرة من الأقراص بشكل صحيح. علاوة على ذلك ، تبلغ دقة التوقيت 1 ميكرو ثانية ، وهو ما لا يكفي لتسجيل العديد من وسائل الحماية المعقدة وأسطح الأقراص.



يمكننا أن نكون سعداء لأننا نجحنا في الحصول على شيء ما على الأقل للعمل ، في ظل هذه القيود ، لكن هذا الحل لا يناسبنا تمامًا.



مساعدة من منفذ إخراج غير واعد



لحسن الحظ ، أتحدث إلى أشخاص أذكياء مثل Bitshifters Collective . (اذهب للتحقق من أحدث العروض التوضيحية ، Evil Influences !) في محادثة على Slack ، اقترح Tom Seddon (مؤلف محاكي b2 ) ... استخدام



كبل محول الفيديو إلى القرص (؟) كبل محول الفيديو إلى القرص ... لا ترى ذلك على Amazon كل يوم.



في البداية ضحكت من هذه الفكرة ، لكن كلما فكرت فيها أكثر ، بدا لي على الأرجح أكثر. يستخدم بي بي سي مايكرو شريحة الفيديو 6845 للتوقيت . مثل 6522 ، إنه معالج متقلب المزاج ، ولكن على الأقل يتم فك رموز ميزاته جيدًا بفضل عرض Bitshifters التجريبي الذي يستغل 6845 بلا رحمة. أنا أيضًا عكسي هندسي لفرض محاكي jsbeebمحاكاة Hitachi 6845 بشكل صحيح. دعنا نلقي نظرة على عمل Oiled Otter في هذا الفيديو ، ثم أخبرنا بما رأيناه:





كل شيء يعمل بفضل التكوين غير العادي لشريحة 6845. يعمل 6845 بتردد 1 ميجاهرتز ، ويتم ضبط توقيت الإطار على خط نقطي واحد عند 32 ميكروثانية / 32 بايت لكل "إطار". في كل إخراج إطار ، يتم الكتابة فوق سجلات ذاكرة الفيديو 6845 لاسترداد الـ 32 بايت التالية من موقع مختلف محتمل. أي أنه يتم تحديد نمط إخراج مختلف من جدول نمط الإخراج كل 32 ميكروثانية. قمنا بتكوين دبابيس RGB لنقل 8 بكسل لكل ميكروثانية ، وهو 256 لكل نمط إخراج. هذا يعطينا عددًا كبيرًا من أنماط الإنتاج المختلفة الممكنة. ولكن نظرًا لأننا نسجل 32 جزءًا ميكروثانيًا من ترميزات أقراص FM ، فإن عددًا قليلاً فقط من الأنماط المناسبة لنا. في 32 ميكروثانية ، يمكننا تركيب 8 نبضات FM / بت. ستتم مزامنة 4 بتات ، وعادة ما تكون جميعها 1.4 بتات ستكون بتات بيانات ولا يوجد سوى 16 مجموعة منها.



على سبيل المثال ، إذا كتبنا nibble من البيانات 0x5 ، فيجب أن يبدو إخراج 32 ميكرو ثانية كما يلي:





ستكون بيانات الفيديو بالشكل 00FFFFFFFFFFFFFF00FFFFFF00FFFFFF00FFFFFFFFFFFFF00FFFFFF00FFFFFF. الأول والثاني والرابع والخامس 00 هي بتات متزامنة. بين بتات المزامنة يوجد نمط بت البيانات 0101 أو 0x5.



إن قيود وحدة المعالجة المركزية والذاكرة متوازنة بشكل جيد. في النهاية ، تشبه هذه الدائرة الدائرة التي سنحاول استخدامها مع سجل الإزاحة VIA إذا نجحت: بعض المعالجات الصغيرة (شريحة الفيديو) تتعامل مع نقل مجموعة بت FM ، والمعالج المركزي مجاني في التحميل وتوفير النمط التالي. متطلبات الذاكرة معقولة جدا. جدول أجزاء الإخراج المطلوبة لمدة 32 ميكروثانية ، بفضل وضع العنونة الخطي الخاص ، يتناسب جيدًا مع 1024 بايت. يبلغ حجم قائمة فهارس البحث للمسار بأكمله حوالي 12 كيلوبايت ، مما يعني أن كل شيء يتناسب تمامًا مع 32 كيلوبايت من ذاكرة الوصول العشوائي BBC Micro RAM.



ميزات بي بي سي مايكرو / 6845



آخر حرف / عمود 6845



بالطبع ، لكي يعمل هذا ، عليك أن تصطدم ببعض الميزات "الممتعة". الأول هو ميزة 6845 التي تجعله ينتج الأسود للحرف الأخير من كل سطر نقطي. هذه لعنة المطورين التجريبيين ، والآن يبدو ، باحثو القرص أيضًا. إليكم شريحة من حديث حديث عرضت فيه هذه المشكلة:





يوجد على اليسار تأثير من العرض التوضيحي ، تم إتلافه بواسطة أشرطة سوداء عمودية ناتجة عن مشكلة "آخر حرف أسود / عمود". تتلاءم خطوط المسح النقطية المتعددة 6845 في مسار نقطي واحد ، ولسوء الحظ تظهر خطوط سوداء بدون قصد. مع التحكم في القرص ، يكون التأثير أسوأ بكثير: يتم استبدال الأشرطة السوداء بنبضات غير مرغوب فيها ، تتم كتابتها على القرص.



تظهر صورة الحل على اليمين: الموجة المنقولة إلى القرص مقلوبة ببساطة. من الطبيعي الآن أن يكون العمود الأخير دائمًا باللون الأسود (يظهر بمخطط برتقالي) ، لأن الصفر مطلوب دائمًا هناك. بالمعنى الدقيق للكلمة ، هذا ينتهك متطلبات التوقيت لبعض محركات الأقراص لنقل إشارات W / DATA منخفضة. فيما يلي رسم تخطيطي لتوقيت القيادة من تلك الحقبة ، Mitsubishi M4852 / M4853 :





وفقًا لهذا المخطط ، يجب الاحتفاظ بالمنطق 0 حتى 2100 نانوثانية. مع شكل موجة مقلوب ، توقع 3000 نانوثانية أو أكثر. ومع ذلك ، فإن محركات الأقراص التي أهتم بها فقط هي نبضات البيانات المتساقطة ، وليس مدتها. هذا ليس مفاجئا. كانت هناك بعض الحيل التي كان بإمكاني القيام بها لتجنب المراوغات 6845 وضمان المدة الزمنية وفقًا للمواصفات ، ولكن تبين أن هذا اختياري ، لذلك لم أفعل ذلك.



DRAM



الفساد DRAM الاضمحلال هو كابوس. يحدث ذلك عندما نفشل في تحديث الذاكرة الحيوية في الوقت المناسب. نقلا عن مقال ويكيبيديا حول تحديث الذاكرة :



"يتم تنفيذ هذه العملية تلقائيًا في الخلفية بواسطة دائرة ذاكرة إلكترونية وغير مرئية للمستخدم."


هذا صحيح بالنسبة للأنظمة الحديثة ، ولكن ليس بالنسبة لـ BBC Micro. في BBC Micro ، تعد ترقية DRAM أحد الآثار الجانبية لنظام الفيديو الفرعي. يستفيد من خاصية أن أوضاع الشاشة القياسية تجتاز بشكل متكرر جميع خطوط DRAM في فترة زمنية قصيرة. ربما تكون قد خمنت بالفعل إلى أين يتجه ذلك - وضع الفيديو الخاص بنا ، المستخدم لعرض الإطارات عند 32 ميكروثانية ، ليس هو وضع الشاشة القياسي. لا يضمن أنه سيتجاوز جميع خطوط DRAM ، لذلك يحدث تلف في DRAM! الفساد DRAM ليس مزحة. بسبب تلف DRAM غير المخطط له ، كنت أفقد العديد من البرامج ومحتوى القرص. سأريكم ، على سبيل الضحك ، برنامجًا أساسيًا يتسبب في تلف ذاكرة DRAM لنفسه في جزء من الثانية:





الشيء المحزن في تلف DRAM هو أنه إذا أصابك ، يمكنك بسهولة فقدان البيانات.



من ناحية أخرى ، إذا كنت تتوقع تلفًا في الذاكرة الحيوية ، يمكنك عادةً تجاوزه بسهولة. في حالة قضاعة الزيت ، هناك العديد من الدورات الحرجة حيث يكون 6845 في حالة غير عادية. لحفظ تحديث DRAM في كل دورة من هذه الدورات ، تعمل الزيادة اليدوية في استقبال البيانات من الذاكرة.



الفرص المفتوحة



الآن بعد أن أصبح لدينا نظام كتابة على قرص يعمل يتخطى وحدة التحكم المرنة ، ماذا يمكننا أن نفعل به؟ في الفيديو أعلاه ، أظهرنا بالفعل قدرته على كتابة أقراص FM مشفرة عشوائية.



لكن في هذه الدراسة كنا محظوظين للغاية. نظرًا لأوجه القصور في سجل تحويل VIA ، كان علينا البحث عن حل باستخدام دبابيس إخراج الفيديو وتمكننا من الوصول إلى دقة توقيت أكثر دقة على دبوس W / DATA . نحن نستخدم MODE4 لجهاز كمبيوتر BBC Micro باستخدام ساعة 8 ميجا هرتز. هذا يعني أنه يمكنك إخراج بكسلات سوداء أو بيضاء كل 125 نانوثانية عن طريق تبديل نبضات الكتابة بدقة 125 نانوثانية... إذا أردنا إنفاق المزيد من الذاكرة الإضافية (التي لدينا) على طاولات أكبر ، فيمكننا استخدام MODE0 ، الذي يستخدم ساعة 16 ميجاهرتز بكسل ، والتي توفر دقة 62.5 نانوثانية. لقد تأكدت من أن 125ns جيدة بما يكفي لجميع وسائل حماية القرص التي تم اختبارها ، ولكن من الرائع أنه لا يزال لدينا بعض المساحة للمناورة.



حماية طويلة المسار حماية



القرص المفضلة لدي هي حماية طويلة المسار. كانت مشهورة خلال أميجا... لا أعتقد أنه تم استخدامه من قبل على بي بي سي مايكرو. أحب حماية المسار الطويل لأنها أساسية للغاية: تتمتع وحدة التحكم في القرص المرن بقدر كبير من التسامح مع سرعات الكتابة المختلفة (لأن محركات الأقراص تدور بسرعات مختلفة) ، ولكنها تكتب فقط بسرعة واحدة صحيحة.



الحماية الأكثر تعقيدًا مع المسارات الطويلة هي كتابة قطاعين على مسار واحد ، حيث تتم كتابة أحد القطاعات بسرعة أعلى. فحص حماية النسخ هو الوقت المستغرق لقراءة هذين القطاعين. يجب قراءة القطاع المكتوب بسرعة أعلى بشكل أسرع.



هل يستطيع قضاعة الزيت تسجيل مثل هذا المسار؟ نعم ، وسهل جدا. بالنظر إلى دقة الإخراج 125 نانوثانية ، فمن السهل إنشاء إدخالات متعددة لجدول الإخراج مماثلة للعادي ، ولكن مع قطع 125 نانوثانية من كل 1 ميكرو ثانية. إليك مقطع فيديو لإنشاء حماية طويلة المسار وفحص قراءات القرص:







الحماية بالقطع الغامضة



ربما حان الوقت للعودة إلى حيث بدأنا: الحماية باستخدام الأجزاء غير الواضحة. هل يستطيع Oiled Otter إنشاء أجزاء ضبابية على أجهزة 1981؟ لنجرب. فيما يلي صورة لنتائج قراءات زوج من القطاعات بعد كتابتها بواسطة أمر FUZZ لنظام Oiled Otter.





تكتب تعليمات FUZZ nibble 0x8 ويتم وضع بت البيانات جانباً تدريجياً بزيادات قدرها 125 نانوثانية. هذا مشابه لوصف كيفية تسجيل الأجزاء الغامضة لـ Dungeon Master. كما ترى من لقطة الشاشة ، سرعان ما تبدأ وحدات بايت البيانات 0x88 في القراءة بطريقة غير صحيحة وغير حتمية. لكن التباين ليس عشوائيًا بنسبة 100٪ مثل البتات الضعيفة - فالتباين هو ما إذا كان يتم كتابة بتات 0x8 في وقت متأخر بما يكفي ليكون لديك فرصة للفقد. إذا تم حذفه ، فلا يزال بإمكاننا رؤية أن هناك أنماطًا ومنطقًا في هذا الجنون.



النتائج المعروضة أعلاه هي تطبيق لمبادئ البتات الضبابية على البيانات المشفرة FM. في ترميز FM ، يتم تشذير كل بتة مع بت مزامنة. يؤدي هذا إلى حقيقة أن بتات الساعة تتسلل أحيانًا إلى دفق البيانات (انظر البايتات 0xFF في التشغيل الأول - على الأرجح أنها بتات على مدار الساعة). يستخدم دفاع Dungeon Master بتات غامضة بالتزامن مع MFM. يؤدي هذا إلى وضع أبسط حيث تنتقل البتات غير الواضحة بين ترميزين صالحين لتشفير البيانات ولا تلمس بتات المزامنة! بالطبع ، يمكن لـ Oiled Otter كتابة MFM و GCR وأي تشفير آخر يمكنك التفكير فيه. كل هذه مجرد بروتوكولات مختلفة لبدائية أساسية واحدة - القدرة على نقل نبضة إلى محرك الأقراص في أي وقت بدقة جيدة.



لتقييمه بشكل صحيح ، سنقدم عرضًا للبتات الضبابية على القرص من الذبذبات. الحد الأقصى غير متساوٍ نوعًا ما ، وعندما يكون النبضان قريبين جدًا من بعضهما البعض (1 ميكرو ثانية أو نحو ذلك ، قريب جدًا من أي تشفير قياسي) ، فإن قوة انعكاس المغنطة التي يتعرف عليها محرك الأقراص تبدأ في التلاشي.





تم إنجاز المهمة



حصلنا على القدرة على تسجيل نبضات القرص بدقة 125 نانوثانية. هذا كافٍ تمامًا لإنشاء عمليات حماية معقدة للقرص ، بما في ذلك المسارات الطويلة والقطع الضعيفة والقطع غير الواضحة. ليس سيئًا بالنسبة لأجهزة 1981 التي تتميز بأسرع سرعة تنفيذ أوامر تبلغ 1 ميكرو ثانية!



أنظر أيضا:






All Articles