سؤال

لدي مشروع مكتوب بلغة BASIC.لست متأكدًا من السبب الدقيق، لكن التطبيق لن يعمل إلا عند تشغيله من نظام الملفات FAT-16.

أفضل أن أحاول الإعداد والبيئة التي تدعم هذا التطبيق في نظام تشغيل حديث (Vista/XP) بدلاً من إعادة كتابته.

هل يعرف أحد كيفية تشغيل تطبيق مثل هذا على XP/Vista من خلال نوع ما من تغيير التعليمات البرمجية (إلى الكود الأساسي) أو "محاكي" FAT-16 (في حالة وجود شيء من هذا القبيل)؟

هل كانت مفيدة؟

المحلول

يمكنك محاولة تشغيله عبر ملف دوسبوكس:

يحاكي Dosbox جهاز كمبيوتر Intel X86 ، مع استكمال الصوت والرسومات والماوس ووجه التحكم والمودم وما إلى ذلك ، ضروري لتشغيل العديد من تطبيقات MS-DOS القديمة التي لا يمكن تشغيلها ببساطة على أجهزة الكمبيوتر الشخصية وأنظمة التشغيل ، مثل Microsoft Windows XP ، Windows Vista و Linux و FreeBSD

(من الآخرين ويكي)

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

نصائح أخرى

بخلاف مجرد إبقاء التطبيق على قيد الحياة في بيئة افتراضية، كما تم اقتراحه بالفعل، فإن أول شيء يجب فعله هو معرفة لماذا يبدو أن الكود يتطلب FAT-16.

إذا كان التطبيق (أو وقت تشغيله) سيئًا بشكل خاص، فقد ينبع متطلب FAT-16 من حقيقة أنه يحاول إجراء إدخال/إخراج مباشر للقرص، متجاوزًا نظام التشغيل.إذا كان الكود الأساسي نفسه يحاول تنفيذ هذه المهمة المعينة، فيجب أن ترى الكثير من المكالمات أو النظرات الخاطفة أو النخزات أو حتى عبارات الدخول والخروج العرضية في إجراءات الإدخال/الإخراج.يعد تحديد ما يصل إليه وقت التشغيل أكثر صعوبة:إذا كان من Microsoft، أو مستندًا إلى DOS وليس قديمًا جدًا (على سبيل المثال.GWBASIC أو QuickBASIC/PDS)، أو المستند إلى نظام التشغيل Windows، يجب أن يكون على ما يرام.

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

إذا كان التطبيق يستخدم المرافق الأساسية العادية للإدخال والإخراج (على سبيل المثال.افتح "ملفًا" لأي شيء AS # 1)، ويستخدم وقت التشغيل أيضًا واجهات نظام التشغيل العادية، والسبب الأكثر ترجيحًا لأنه يعمل فقط على FAT-16 هو أنه يتم الخلط بينه وبين أسماء الملفات الطويلة.

أول شيء يجب تجربته هو وضع التطبيق في دليل باسم قصير (على سبيل المثال.c:\myapp)، ورؤية ما سيحدث بعد ذلك.ربما يعمل فقط:بخلاف ذلك، يجب أن تكون قادرًا على معرفة ما يحدث من خلال التنقل عبر التعليمات البرمجية الأساسية (على افتراض أن مصحح الأخطاء هو جزء من بيئة التشغيل الخاصة به).

بدون مزيد من المعلومات حول المترجم/المترجم الدقيق الذي يعمل به تطبيقك، فمن المستحيل الإجابة على سؤالك بمزيد من التفاصيل.إذا لم تكن الإجابات مفيدة حتى الآن، فقد تحتاج إلى تعديل سؤالك ليشمل هذه المعلومات.

قم بتشغيل إصدار أقدم من Windows في جهاز VMWare الظاهري، الذي يعمل في نظام تشغيل حديث.

قم بتشغيله من فلاش أو محرك أقراص مضغوط أو أي وسائط قابلة للإزالة لديك.
قام نظام التشغيل Windows XP بتنسيق محرك أقراص USB محمول سعة 1 جيجابايت بتنسيق FAT دون أي مشاكل، ولم تكن هناك حاجة إلى أدوات إضافية.
الى جانب ذلك، إذا كان التطبيق حقا شر, ومن ثم، نأمل أن تقيد شرها بحدود محرك الأقراص.

اعتمادا على البيئة:لا يزال من الممكن إنشاء أنظمة ملفات Fat-16 على نظام تشغيل حديث، وقد تحتاج فقط إلى أدوات إضافية مثل Acronis DiskDirector أو حتى لبعض متغيرات fdisk الخاصة بنظام التشغيل Linux.

فقط ضع في اعتبارك أن FAT-16 يقتصر على حجم قسم يبلغ 2 جيجابايت.

ولكن كما قيل من قبل:من الأفضل معرفة السبب.يبدو وكأنه نوع من حماية النسخ WTF.

أؤيد اقتراح @ eugensk00، لدينا بعض برامج الأدوات الغريبة بعض الشيء والتي لن يتم حفظها على قرص ثابت NTFS ولكنها ستحفظ على شريحة ذاكرة صغيرة (1 جيجابايت)...

قد تتمكن من استيراد التعليمات البرمجية مباشرة إلى VB.NET (على الرغم من أنها ستتطلب بالتأكيد بعض التعديلات).يمكنك بعد ذلك استبدال استدعاءات الإدخال/الإخراج لملف التطبيق الأصلي (والتي هي مشكلتك بالتأكيد) باستدعاءات VB.NET، مما يخرجك من مشكلة FAT16.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top