من فضلك تسجيل الدخول أو تسجيل لتفعل ذلك.

هذا منفذ جافا سكريبت الخاص بي”https://github.com/nanochess/transputer”> محاكي Transputer مكتوب أصلاً في C. لسلسلة من المقالات الخاصة بي حول معالج Transputer. في العصور القديمة ، كانت JavaScript لغة تفسير ، ولكن منذ عدة سنوات يتم تنفيذها كمترجم JIT (في الوقت المناسب) ، حتى يتمكن من الاقتراب من السرعات القريبة من لغة C.

تحذير التنفيذ الآخر هنا هو أن JavaScript يعامل مشغلات bitwise على أنهم يولدون أعداد صحيحة موقعة 32 بت. تم تجنب هذا باستخدام

>>> 0

المشغل (التحول الأيمن المنطقي) لأنه يولد 32 بت غير موقعة عدد صحيح. يمكنك المحاولة

0x80000000>> 0

وانظر كيف يعيد رقم سلبي ، بينما

0x80000000>>> 0

يحافظ على القيمة غير الموقعة.

آخر “new” الشيء في جافا سكريبت”https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array”> uint8array، إنها أسرع من صفيف طبيعي و ينقذ الذاكرة ، حيث يوجد العديد من هذه المصفوفات (بما في ذلك واحدة من 40 ميغابايت لعقد محرك الأقراص الصلبة بأكمله!). بالنسبة لصور محرك الأقراص ، حاولت استخدام صفيف تهيئة ولكن الكود المصدري يستخدم 20 ميغابايت لثنائي 3 ميغابايت. اعتقدت خدعة جيدة لتقليل حجم رمز مصدر JavaScript باستخدام”https://github.com/nanochess/transputer/blob/master/os/bin2c.c”> BASE64 في أداة BIN2.C الخاصة بي لتشفير 3 ميجابايت من بيانات محرك الأقراص الثابتة ، و window.atob يحصل على سلسلة فك تشفير يتم نسخها مباشرة إلى Uint8array من Disk Drive.

لم أتوقع أن يكون لدي محاكاة عائمة ، لكنني اكتشفت”https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array”> float32array وأنواع Float64array (المضافة في عام 2010) وكيف يمكن تظليلها باستخدام UINT32Array ، بحيث يمكن للمحاكي العمل مع رياضيات نقطة عائمة حقيقية ، ويستخدم UINT32Array للحصول على البيانات الثنائية النقطة العائمة لتكرارها في الذاكرة الداخلية الفرعية.

أخيرًا ، بالنسبة للعرض ، كنت محظوظًا جدًا للعثور عليه”https://github.com/pnitsch/jsTerm”> Jsterm by Peter Nitsch مع ترخيص متوافق. أزلت جزء telnet و sockets. وبينما استخدمت صورة نقطية للخط ، تمكنت من استبداله بخطتي الأصلية من عام 1996 واستخدامه ، حتى تتمكن من رؤية حدود الخط الواحد لنوافذ النص ، وغيرها من الأحرف الخاصة. استند خط My إلى ECMA-94 (Charset 1) ، والمعروف أيضًا باسم ISO-8859-1 ، مع أحرف 00 دولار و 80 دولارًا إلى 9 دولارات مملوءة بالرسومات. يعتمد على خط VGA BIOS ، وأعتقد أنني قمت بتحسين بعض الرسائل ، لكنني لا أتذكر أيها. حاول تشغيل

C: Concunto

أمر لرؤية جميع الحروف والرموز.

يمكنك إلقاء نظرة على رمز مصدر JavaScript لهذا المحاكي على”https://github.com/nanochess/transputer/tree/master/js”> https://github.com/nanochess/transputer/tree/master/js

ماذا لدينا هنا؟

هذا المحاكي ليس لديه خيارات لتشغيلها”http://nanochess.org/pascal.html”> مترجم باسكال المبكر أو”http://nanochess.org/bootstrapping_c_os_transputer.html”> مترجم صغير C.، بدلاً من ذلك ، يتم تحميله مسبقًا”http://nanochess.org/transputer_operating_system.html”> نظام التشغيل الكامل (ربيع 1996) ، يتضمن الكثير من الميزات مثل محركات الأقراص المتعددة (A: هو مرنة 1.44 ميجابايت ، B: هو قرص ذاكرة الوصول العشوائي 512K ، C: هو محرك أقراص ثابت 40 ميجابايت ، D: هو قرص مضغوط بتنسيق ISO-9660 ولكن لا يمكن تحميل صورة).

يدعم برنامج التحويل البرمجي C بناء جملة K&R الكامل (باستثناء ثابت و خارجي، لأنه لا يوجد رابط).

بعض الأوامر التي يمكنك اختبارها داخل نظام التشغيل:

        DIR A:        DIR C:        AYUDA        MEM        C:EDITOR        

استخدم F1 (أو FN+F1 في MacOS) للوصول إلى مربع المساعدة لمحرر النص المرئي ، واكتب F4 (أو FN+F4 في MacOS) لفتح تصفح الدليل لقراءة الملفات النصية.

يستخدم

C: CC

لاستدعاء المترجم C ،

C: ENS

لاستدعاء المجمع ،

ج: ejecutable

لبناء إخراج المجمع في العمل القابل للتنفيذ. هناك تعليمات لتجميع البرامج في

C: /documentos/programas.doc

ملف (يمكنك محاولة التوفيق بين برنامج التحويل البرمجي C!)

هذا مثال على تجميع البرنامج:

        C:CC        N        N        C:/C/Hora.c        B:Hora.len                C:ENS        B:Hora.len        C:/Lib/stdio.len        [empty line]        B:Hora.e                C:EJECUTABLE        B:Hora.e        512        0        C:Hora.p        

يعد محاكي My in C أسرع من هذا العرض التوضيحي ، ولكن إذا كان لديك جهاز كمبيوتر سريع ومتصفح جيد ، فقد تكون نسخة JavaScript هذه ممتعة للغاية.

3D مصمم

يمكنك تشغيل المصمم ثلاثي الأبعاد باستخدام هذا:

            c:modela            c:dibujo_3d/escena_tetera        

حدد وضعًا ، واضغط على Enter ، ثم اضغط على Enter مرة أخرى للبدء في العرض. هناك المزيد من المشاهد في

C:/Dibujo_3d

دليل ، كل واحد يبدأ بالاسم escena_. يمكنك سرد المشاهد باستخدام هذا الأمر:

            dir c:/dibujo_3d/escena*        

راي تتبع

يمكنك تشغيل Ray Tracer باستخدام هذا:

            c:m3d            c:dibujo_3d/prueba        

تتوفر ملفان M3D فقط في

C:/Dibujo_3d

دليل. يجب عليك إدخال الأسماء بدون امتداد.

تعدد المهام

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

            @c:/Desarrollo/Reloj        

رمز المصدر

استمتع بها! هل أعجبك هذا؟”https://ko-fi.com/nanochess”> دعاني قهوة على Ko-Fi!

الروابط ذات الصلة

  • الكود المصدري لمحاكي Transputer الخاص بي ، ومجمع ، ومترجم Pascal.”https://github.com/nanochess/transputer”> https://github.com/nanochess/transputer
  • سلسلة المادة (1 من 3):”http://nanochess.org/pascal.html”> تاريخ مترجم باسكال الخاص بي لبرنامج Transputer.
  • سلسلة المادة (2 من 3):”http://nanochess.org/bootstrapping_c_os_transputer.html”> كيف قمت بنقل Small-C إلى Transputer ، وإنشاء نظام التشغيل الخاص بي.
  • سلسلة المادة (3 من 3):”http://nanochess.org/transputer_operating_system.html”> كيف تطورت نظام تشغيل Transputer الكامل مع برنامج التحويل البرمجي K&R.

آخر تعديل: أبريل/02/2025

اقرأ المزيد

المتسللين الكوريين الشماليين الذين يتظاهرون بينما يوسع Devs العمليات في أوروبا
يسمح القاضي الفيدرالي بدعوى EFF ضد Doge و Elon Musk للمضي قدمًا

Reactions

0
0
0
0
0
0
بالفعل كان رد فعل لهذا المنصب.

ردود الفعل