في الجزء الأول من المقالة ، قمنا بفرز أداة تحميل الإقلاع من الإصدار الأصلي واكتشف أين يتم تحميل رمز اللعبة وكيف يبدأ. أنت الآن بحاجة إلى نقل الملفات إلى القرص.

يتم ذلك عادة عن طريق نسخ الملفات ، لكن هناك مشكلة واحدة. والحقيقة هي أن الملف الأصلي يحتوي على الصورة ورمز اللعبة في قطعة كاملة ، وبالتالي ، يحل محل منطقة المتغيرات الأساسية والنظام ، والتي تقع مباشرة خلف منطقة الشاشة. يمكن تنزيل هذا الملف من الشريط ، ولكن لا يمكن تنزيله من قرص مرن. تحتفظ TR-DOS بمنطقة ذاكرة معينة لاحتياجاتك ، وإذا قمت بتحميل البيانات هناك ، فسيتم كسر كل شيء أثناء عملية التنزيل.
لحسن الحظ ، لدينا ذاكرة كافية لا تشغلها اللعبة. لذلك ، يمكن تنزيل اللعبة إلى مكان آخر ، وفي نهاية التنزيل ، انتقل إلى المكان الذي تريده وتشغيله. في هذه الحالة ، أود أن أعرض الصورة قبل نهاية التنزيل - لأنه قابل للتمهيد أيضًا. للقيام بذلك ، سنقوم بتقطيع ملف متجانسة إلى بيانات منطقة الشاشة وبيانات اللعبة:
$ head -c 6912 headless.bin > screen.bin $ tail -c +6913 headless.bin > data.bin
سيقوم ملف بيانات اللعبة بترجمة تنسيق hobeta على الفور. في وقت لاحق سنحتاجه للتسجيل في الصورة النهائية. لتحويل التنسيقات ، سنستخدم zxspectrum-utils و trd2hob
:
$ binto0 data.bin 3 $ 0tohob data.000 # data.$C

بالنسبة إلى شاشة التمهيد ، قم بإنفاق 6.75 كيلو بايت على هذه الصورة البسيطة - مضيعة. يمكن ضغطه بشكل صحيح باستخدام ضاغط شاشة ، على سبيل المثال ، Laser Compact 5.2 . للقيام بذلك ، تحتاج أولاً إلى كتابة ملف الصورة على صورة قرص مرن مؤقت:
$ binto0 screen.bin 3 $ 0tohob screen.000 $ createtrd tmp.trd $ hobeta2trd screen.\$C tmp.trd
بعد ذلك ، قم بتشغيل Laser Compact في المحاكي وحفظ الصورة المضغوطة على نفس القرص المرن (حزمة الشاشة ← حفظ باستخدام depacker). عند الحفظ ، حدد screenz.C
ملف screenz.C
. بعد ذلك ، تحتاج إلى نسخ الصورة المضغوطة من صورة القرص المرن مرة أخرى إلى القرص. لسوء الحظ ، لم أتمكن من العثور على مصدر trd2hob
أي مكان ، لذلك يجب علي تشغيل dos ثنائي من تحت DosBox:
$ dosbox -c "mount C $PWD" -c "C:" -c "trd2hob.exe screen.trd" -c exit
نتيجة لذلك ، حصلنا على ملف hobeta من screenz.$
مع صورة مضغوطة.
بالإضافة إلى الأدوات المساعدة Spectrum الأصلية لضغط الشاشة ، هناك أدوات مساعدة لأجهزة الكمبيوتر ، على سبيل المثال ، zx7b
و zxsc
. على الرغم من أنه من الأسهل أتمتة العمل معهم ، فإن كلاهما لهما عيوب قبل Laser Compact:
- كلاهما يفقد في جودة الضغط.
- عند تفريغ الصورة ، تكون بعض الأعمال الفنية مرئية عندما يقوم "ضغط الليزر" بملء مساحة الشاشة على الفور تقريبًا.
- لا يدعم
zx7b
إنشاء محفوظات الاستخراج الذاتي - يجب عليك أيضًا تجميع برنامج إلغاء الضغط.
أخيرًا ، اكتشفنا حجم الملف المضغوط. سنحتاجها لاحقًا لكتابة أداة تحميل التشغيل.
$ lstrd tmp.trd 80 Tracks, Double Side, capacity 640kB Number of files/deleted: 2/0 Free sectors/bytes: 2509/642304 First free sector/track: 3/3 FILENAME TYPE SECTORS ADDRESS LENGTH TRACK SECTOR -------------------------------------------------------------- screen <C> CODE (BYTES) 27 16384 6912 1 0 screenz <C> CODE (BYTES) 8 40000 1812 2 11
كما ترون ، تم ضغط الملف أكثر من ثلاثة أضعاف ويشغل 8 قطاعات على القرص.
في الجزء التالي ، سنذهب مباشرةً إلى أداة تحميل التشغيل.
روابط ذات صلة:
- "تكييف البرامج مع نظام TR-DOS" بقلم نيكولاي روديونوف.