سينكلير بيسك

لغة سينكلير بيسك هي لهجة من لغة البرمجة بيسك المستخدمة في أجهزة الكمبيوتر المنزلية ذات 8 بت من شركات سينكلير ريسيرش ، وتيمكس سينكلير، وأمستراد . وقد طُوِّر مُفسِّر لغة سينكلير بيسك بواسطة شركة ناين تايلز نتوركس المحدودة . [ 1 ]

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

كانت النسخة الأصلية من ZX80 تدعم العمليات الحسابية للأعداد الصحيحة فقط ، مما عوض جزئيًا عن بعض ملاحظات التصميم المتعلقة بتوفير الذاكرة والتي كان لها تأثير سلبي على الأداء. عند نقل النظام إلى ZX81 عام 1981، أُضيفت إليه إمكانية تنفيذ العمليات الحسابية للأعداد العشرية بالكامل . كانت هذه النسخة بطيئة للغاية، ومن بين أبطأ لغات BASIC المتوفرة في السوق آنذاك، ولكن نظرًا للإمكانيات المحدودة للجهاز، لم يكن هذا الأمر مصدر قلق كبير. لم يكن انخفاض السرعة ناتجًا بشكل أساسي عن مُفسِّر غير فعال، بل كان نتيجة استهلاك 70-80% من دورات الجهاز بواسطة وحدة معالجة الفيديو. لذا، كان معالج Z80 في ZX81، الذي يعمل بتردد 3.25 ميجاهرتز، يعمل "فعليًا" بتردد أقل بكثير من 1 ميجاهرتز من منظور نظام BASIC.

أصبحت مشكلة الأداء أكثر إلحاحًا مع إصدار جهاز ZX Spectrum عام 1982، حيث كان أداؤه بطيئًا للغاية بحيث لم يتمكن من الاستفادة الكاملة من ميزاته الجديدة. أدى ذلك إلى تطوير لغة BASIC جديدة كليًا لجهاز Sinclair QL اللاحق ، بالإضافة إلى عدد من لغات BASIC المطورة من جهات خارجية لجهاز Spectrum ومختلف نسخه المقلدة. واستمر تعديل النسخة الأصلية ونقلها إلى أنظمة أخرى في حقبة ما بعد Sinclair.

تاريخ

التقى كلايف سنكلير لأول مرة بجون غرانت، مالك شركة ناين تايلز، في أبريل 1979 لمناقشة لغة بيسك (BASIC) لمفهوم سنكلير الجديد للحاسوب. [ 2 ] استلهم سنكلير فكرة صنع جهاز جديد بعد أن شاهد ابنه يستمتع بجهاز TRS-80 الخاص بهم ، لكن سعر ذلك الجهاز البالغ 500 جنيه إسترليني بدا عائقًا كبيرًا أمام انتشاره. أراد سنكلير مجموعة جديدة تُطوّر جهاز MK14 السابق وتتضمن لغة بيسك مدمجة بسعر مستهدف قدره 79.95 جنيهًا إسترلينيًا. ولتحقيق هذا السعر، كان من المقرر أن يُشحن الجهاز بذاكرة وصول عشوائي  (RAM) سعتها 1 كيلوبايت فقط وذاكرة  قراءة فقط (ROM) سعتها 4 كيلوبايت. اقترح غرانت استخدام لغة فورث (Forth) بدلًا من ذلك، لكن الميزانية لم تسمح بذلك. كتب غرانت مترجم لغة بيسك بين يونيو ويوليو 1979، لكن حجم الكود الأولي كان 5  كيلوبايت، وقضى الشهر التالي في تقليصه. كانت في البداية تطبيقًا غير مكتمل لمعيار BASIC الأدنى الصادر عن المعهد الوطني الأمريكي للمعايير (ANSI) لعام 1978 والذي يقتصر على العمليات الحسابية الصحيحة فقط، والذي أطلق عليه اسم 4K BASIC . [ 3 ]

حتى قبل طرح جهاز ZX80 في فبراير 1980، كان الضغط المستمر لانخفاض الأسعار في الصناعة يسمح بتقليل تعقيد وتكلفة التصميم الرخيص أصلاً. على وجه الخصوص، أُعيد تنفيذ العديد من الدوائر المنفصلة في ZX80 في مصفوفة منطقية واحدة غير مُخصصة من شركة فيرانتي ، مما سمح بخفض السعر إلى 49.95 جنيهًا إسترلينيًا فقط مع زيادة حجم ذاكرة القراءة فقط (ROM) إلى 8  كيلوبايت. أُسند هذا العمل إلى ستيف فيكرز ، الذي انضم إلى شركة ناين تايلز في يناير 1980. وبينما عمل غرانت على الكود الذي يتفاعل مع الأجهزة، استخدم فيكرز المساحة الأكبر لإدخال العمليات الحسابية ذات الفاصلة العائمة ومجموعة من الدوال المثلثية ، والتي كانت متوقعة في أي لغة BASIC من تلك الحقبة، مما أنتج لغة 8K BASIC . [ 4 ] لم يدعم الإصدار الأولي طابعة ZX وكان به خطأ في دالة الجذر التربيعي . قدمت شركة ناين تايلز إصدارًا جديدًا لمعالجة هذه المشاكل، لكن شركة سنكلير تأخرت في تضمين الإصدار الجديد في ذاكرة القراءة فقط (ROM). تم تقديم ذاكرة القراءة فقط الجديدة في النهاية إلى مالكي جهاز ZX80 السابق أيضًا. [ 5 ]

عندما خسر سنكلير مسابقة تصميم حاسوب BBC ، مضى قدمًا في خططه لإنتاج جهاز منخفض التكلفة يدعم الألوان، والذي ظهر لاحقًا باسم ZX Spectrum في أبريل 1982. تمت زيادة سعة ذاكرة القراءة فقط (ROM) مرة أخرى، هذه المرة إلى 16  كيلوبايت. وتماشيًا مع فلسفته في تصميم أنظمة بأقل تكلفة ممكنة، أراد سنكلير إجراء الحد الأدنى من التغييرات على لغة BASIC الموجودة بسعة 8 كيلوبايت. على الرغم من أن شركة Nine Tiles رأت أن الجهاز الجديد يحتاج إلى شيء أفضل بكثير، إلا أن ضيق الوقت لم يسمح بذلك، فتم إنتاج نسخة موسعة أخرى من الكود الأصلي. ونظرًا لزيادة سعة ذاكرة الوصول العشوائي (RAM) أيضًا إلى 48  كيلوبايت، عُرفت هذه النسخة باسم 48K BASIC، ثم أصبحت تُعرف باسم 48 BASIC مع طرح ZX Spectrum 128، حيث  توقف بيع جهاز Spectrum بسعة 16 كيلوبايت، وتم ترقية معظم الأجهزة الموجودة إلى 48  كيلوبايت. [ 6 ] [ 7 ] توفر الإصدار الجديد قرب نهاية عام 1981، لكنه كان "بطيئًا للغاية" و"بطيئًا كالحلزون". إضافةً إلى ذلك، ولأنه لم تكن هناك نماذج أولية متاحة حتى نهاية العام، فقد افتقر إلى دعم خط الأجهزة الطرفية الجديد الذي كانت شركة سنكلير تخطط له. [ 8 ]

في فبراير 1982، بدأت الخلافات بين شركتي ناين تايلز وسينكلير حول حقوق الملكية المستحقة عن الكتيبات المختلفة التي أنتجتها ناين تايلز. في نفس الفترة تقريبًا، غادر فيكرز ونظيره في سينكلير، ريتشارد ألتواسير، شركتيهما لبدء مشروع جوبيتر إيس . [ 9 ] عند إطلاق جهاز سبيكتروم، لم تكن ذاكرة القراءة فقط (ROM) مكتملة بعد، وعلى الرغم من استمرار ناين تايلز في العمل عليها حتى أبريل 1982، إلا أنه بحلول ذلك الوقت كان قد تم بيع 75,000 جهاز سبيكتروم، وتم إلغاء المشروع. أُضيفت الوظائف المفقودة لاحقًا عبر إضافة شفرة برمجية في واجهة ZX 1. بعد انفصال ناين تايلز وسينكلير، تم إنشاء عدة إصدارات جديدة من لغة 48 BASIC.

في عام 1983، وكجزء من طرح جهاز سبيكتروم في السوق الأمريكية تحت اسم TS2068، قامت شركة تايمكس بتعديله ليصبح T/S 2000 BASIC . لم يكن الإصدار الجديد قادرًا على تشغيل العديد من برامج سبيكتروم بسبب تغيير موقع ذاكرة وظائف الجهاز. تم طرح إصدار مشابه، ولكنه أكثر توافقًا إلى حد ما، كجزء من جهاز سبيكتروم 128 الإسباني لعام 1985، 128 BASIC . [ 7 ]

استحوذت شركة أمستراد على شركة سينكلير ريسيرش عام ١٩٨٦. ولأن سينكلير لم تكن تمتلك حقوق الطبع والنشر للغة، اضطرت أمستراد إلى إبرام اتفاقية ترخيص جديدة مع شركة ناين تايلز. وظهرت عدة إصدارات أخرى خلال هذه الفترة مع طرح العديد من الإضافات والنسخ المقلدة لجهاز سبكتروم. وشملت هذه الإصدارات +3 BASIC و BASIC64 و Timex Extended Basic . [ ٧ ] [ ٦ ]

اعتبارًا من عام 2015، توجد مترجمات لأنظمة التشغيل الحديثة ، [ 10 ] والأنظمة القديمة، [ 11 ] مما يسمح باستخدام Sinclair Basic بسهولة.

وصف

تحرير البرامج

كغيرها من برامج BASIC المستخدمة في الحواسيب المنزلية، يرتكز برنامج Sinclair BASIC على محرر الأسطر . عند تشغيل الجهاز، يُشغّل البرنامج لغة BASIC ويعرض رمز "K" معكوسًا أسفل الشاشة للإشارة إلى نقطة الإدخال. عند إدخال سطر NEW LINEوالضغط على مفتاح معين، يُنفّذ البرنامج إما فورًا إذا لم يسبقه رقم سطر ، أو يُمسح الشاشة ويُنفّذ ما يُعادل الأمر LIST، واضعًا مؤشرًا ">" بعد رقم السطر في آخر سطر تم إدخاله.

على عكس معظم أجهزة تلك الحقبة، لا يسمح هذا المحرر بالتحرير الحر في أي مكان على الشاشة. فعند الضغط على زر معين ، يُنسخ سطر الكود الحالي إلى أسفل الشاشة. ويمكن للمستخدم التنقل أفقيًا عبر هذا السطر باستخدام مفاتيح الأسهم ، ثم يحفظ التغييرات بالضغط على زر آخر. في المقابل، في أجهزة مثل كومودور 64 أو أتاري 8 بت ، يمكن استخدام مفتاحي السهمين لأعلى ولأسفل للتنقل بين أسطر البرنامج وتعديلها مباشرةً.EDITNEW LINE

أبرز ما يُميز هذا المُحرر هو إمكانية إدخال الكلمات المفتاحية بضغطة زر واحدة. على سبيل المثال، في جهاز ZX81، يؤدي الضغط على مفتاح معين في لوحة المفاتيح إلى إدخال الكلمة المفتاحية كاملةً في سطر التحرير الحالي. بمجرد إدخال الكلمة المفتاحية، يتغير شكل المؤشر إلى حرف "L" للدلالة على أن النص التالي سيُفسر كنص عادي. على سبيل المثال، الضغط مرة أخرى في هذه المرحلة يُدخل حرف "P" فقط.PPRINTP

كانت المفاتيح تُخصص لها كلمتان مفتاحيتان منفصلتان - واحدة فوقها والأخرى تحتها. الضغط على المفتاح في وضع "K" يُدخل الكلمة المفتاحية الموجودة فوقه، كما في حالة . إذا كان النظام في وضع "L"، يُمكن العودة إلى وضع "K" بالضغط على مفتاح Shift - لم تكن الأنظمة تدعم الأحرف الصغيرة في البداية ، لذا لم يكن مفتاح Shift ضروريًا. تتطلب الكلمات المفتاحية الموجودة أسفل المفاتيح ضغطة مفتاح ثانية، + ، والتي تُدخل المحرر في "وضع الوظائف"، مُغيرةً المؤشر إلى "F". غالبًا ما كان إدخال التعليمات البرمجية الشائعة يتطلب عددًا كبيرًا من ضغطات المفاتيح. PRINTP ⇧ ShiftNEW LINE

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

مع تطور الأنظمة وإضافة كلمات مفتاحية جديدة، أصبح نظام الإدخال أكثر صعوبة.  في جهاز Spectrum، كان يتطلب إدخال 48 كلمة مفتاحية في لغة BASIC أن يستوعب كل مفتاح ما يصل إلى أربع كلمات مفتاحية. وكان إدخال الكلمات المفتاحية عملية تستغرق وقتًا طويلاً، حيث كان المستخدم يبحث بين الأحرف الصغيرة نسبيًا على لوحة المفاتيح عن المفتاح المناسب، ثم يُدخل ضغطات المفاتيح المتعددة اللازمة لإدخال الكلمة بشكل صحيح. على سبيل المثال، كان إدخال BEEPكلمة يتطلب الضغط على زر + للوصول إلى الوضع الموسع (تتضمن الطرازات الأحدث زرًا منفصلاً)، ثم الضغط باستمرار على زر +، ثم الضغط على زر + . ولتحسين عملية الإدخال المعقدة في جهاز Spectrum، تم ترميز الكلمات المفتاحية بالألوان للإشارة إلى الوضع المطلوب: [ 12 ]CAPS SHIFTSYMBOL SHIFTEXTENDED MODESYMBOL SHIFTZ

  • أبيض : مفتاح فقط
  • اللون الأحمر على المفتاح نفسه: بالإضافة إلى المفتاحSYMBOL SHIFT
  • اللون الأخضر فوق المفتاح: متبوعًا بالمفتاحEXTENDED MODE
  • اللون الأحمر أسفل المفتاح: متبوعًا بعلامة زائد المفتاحEXTENDED MODESYMBOL SHIFT

استُنفد هذا المفهوم، وتميزت الأجهزة اللاحقة التي تعمل بنظام 128 BASIC (مثل ZX Spectrum 128 و+2 و+3 و+2A و+2B) بمحرر أكثر تقليدية حيث كان المستخدم يُدخل الكلمة المفتاحية كأحرف منفصلة، ​​على غرار أجهزة الكمبيوتر المنزلية الأخرى في ذلك الوقت. وقد استلزم ذلك مُجزئًا جديدًا لتحويل السطر إلى تنسيق داخلي مماثل.

كان تخزين البرنامج في الذاكرة مشابهًا إلى حد كبير لـ Microsoft BASIC ، حيث تُعرض الكلمات المفتاحية فقط كرموز، بينما تُترك العناصر الأخرى - مثل الثوابت النصية والرقمية وأسماء المتغيرات - بتنسيقها الأصلي. مع ذلك، لم يكن هذا التنسيق ASCII ، بل كان رمزًا داخليًا يحتوي على كلٍ من الأحرف القابلة للطباعة ورموز الكلمات المفتاحية. على الرغم من أن بعض أجزاء الجدول، كالأحرف الكبيرة من A إلى Z على سبيل المثال، مرتبة بنفس ترتيب ASCII، إلا أن رموزها تُقابل قيمًا رقمية مختلفة، أي أن إزاحة نقاطها من الصفر تختلف عن إزاحة ASCII البالغة 65. وقد تكون بعض الأحرف الأخرى، كعلامات الترقيم، قد أُعيد ترتيبها بشكل أكبر. تُعد مجموعة أحرف ZX Spectrum أبرز مثال على هذا النوع من الرموز. استخدمت أجهزة الكمبيوتر ذات الصلة التي تعمل بنظام Sinclair BASIC متغيرات مشابهة، مثل مجموعتي أحرف ZX80 و ZX81 . جميع مجموعات الأحرف المختلفة والمتشابهة هذه تضمنت رموز Sinclair BASIC.  

أنواع البيانات

إحدى السمات غير الشائعة في لغة Sinclair BASIC هي طريقة تخزين المتغيرات في الذاكرة. عادةً، تستخدم المفسرات مدخلات ثابتة الحجم لحفظ البيانات، مما يُسهّل مسح جدول المتغيرات. ونظرًا لمحدودية ذاكرة سلسلة ZX، كان لا بد من تجنب أي مساحة مهدرة، مما أدى إلى استخدام تنسيق متغير الطول. شملت أنواع البيانات أرقامًا مخزنة في قيم من 5 بايت، وسلاسل نصية ذات طول متبوع بالأحرف، ومصفوفات من كلا النوعين. تم تخزين البيانات في الجدول نفسه، وهو ما يتناقض مع معظم لغات BASIC في ذلك الوقت، حيث كانت السلاسل النصية ومدخلات المصفوفات تُخزن في كومة منفصلة .

كان البايت الأول لمدخل المتغير يحتوي دائمًا على نوع المتغير في البتات الثلاث الأولى، والحرف الأول من اسمه في البتات الخمس التالية. وكما هو الحال في معظم لغات الحواسيب الصغيرة، كانت المتغيرات A`x` A$و`y` A()و` A$()z` متغيرات مختلفة، ويمكنها تخزين قيم مختلفة. معظم المتغيرات لا يمكن أن يكون لها اسم إلا من حرف واحد؛ باستثناء المتغيرات العددية (ليست المصفوفات)، حيث كان هناك تنسيق بديل يحتوي على الحرف الأول من الاسم في البتات الخمس نفسها، متبوعًا بأحرف إضافية تنتهي برقم واحد مع ضبط بتّه الأعلى. أسماء المتغيرات الطويلة لم تكن تعتمد على المسافات البيضاء، ولم تكن حساسة لحالة الأحرف في الإصدارات اللاحقة، لذا فإن `x` هو نفسه `y` الذي يشير إلى المتغير نفسه.LETNumberOfApples=5LETnumberofapples=5

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

من السمات الفريدة نوع البيانات "العدد العشري القصير"، أو نوع البيانات الصحيح. يمكن لأي متغير عددي تخزين أي من النوعين، ولم يتغير حجم التخزين نفسه، حيث كان يشغل 5  بايتات في كلتا الحالتين. يُشار إلى الأعداد الصحيحة بتعيين بايت الأس إلى الصفر، بينما تُخزن قيم الفاصلة العائمة باستخدام تنسيق أس زائد 128. هذا يعني أنه لا يمكن تخزين الصفر كعدد عشري، وبالتالي فقدان قيمة أسية واحدة. كما أنه لا يستهلك ذاكرة أقل، لأن القيم لا تزال تشغل 5 بايتات في الذاكرة. تكمن ميزة هذا التنسيق في الأداء؛ إذ تتضمن مكتبة الرياضيات اختبارات للبحث عن الأس الصفري، وإذا تم رصده، فلن تحاول إجراء عمليات حسابية مختلفة على  البايتات الثلاثة المتبقية في ظروف معينة.

تفاصيل الكلمات المفتاحية

استخدمت لغة BASIC الخاصة بجهاز ZX81 8K الصيغ المختصرة GOTOو GOSUBو CONTو RAND، بينما استخدمت لغة BASIC الخاصة بجهاز Spectrum 48 الصيغ الأطول و و و . كما استخدمت لغة BASIC الخاصة بجهاز ZX80 4K هذه الصيغ الأطول، ولكنها اختلفت في استخدام التهجئة . وكانت لغة BASIC الخاصة بجهاز ZX81 8K هي الإصدار الوحيد الذي استخدم و و و . وامتلكت لغة BASIC الخاصة بجهاز ZX80 4K الدالة الحصرية ؛ والتي كانت مكافئة لمعامل السلسلة في الإصدارات اللاحقة.GO TOGO SUBCONTINUERANDOMIZERANDOMISEFASTSCROLLSLOWUNPLOTTL$()(2 TO )

تُخصص نقاط ترميز فريدة في مجموعات أحرف ZX80 و ZX81 و ZX Spectrum لكل كلمة مفتاحية أو عامل متعدد الأحرف، مثل <=, , , , (مُجزأة إلى رموز في ZX81 فقط)، (مُستبدلة بـ في Spectrum). ويتم توسيع هذه النقاط بالرجوع إلى جدول الرموز في ذاكرة القراءة فقط (ROM). وبالتالي، تستخدم الكلمة المفتاحية بايتًا واحدًا فقط من الذاكرة، مما يوفر مساحة كبيرة مقارنةً بالتخزين التقليدي حرفًا حرفًا. هذا يعني أيضًا أن مُفسِّر BASIC يستطيع تحديد أي أمر أو دالة بسرعة من خلال تقييم بايت واحد، وأن الكلمات المفتاحية ليست بالضرورة كلمات محجوزة كما هو الحال في لهجات BASIC الأخرى أو لغات البرمجة الأخرى، على سبيل المثال، يُسمح بتعريف متغير باسم وإخراج قيمته باستخدام . يرتبط هذا أيضًا بمتطلبات بناء الجملة التي تنص على أن يبدأ كل سطر بكلمة مفتاحية للأمر، وأن الضغط على مفتاح واحد لهذا الأمر في بداية السطر يُغير وضع المُحرر من وضع الأوامر إلى وضع الأحرف. وبالتالي، يتطلب تعيين المتغيرات (أي ليس فقط ). هذه الممارسة تختلف أيضًا عن لهجات BASIC الأخرى. علاوة على ذلك، كان هذا يعني أنه على عكس لهجات BASIC الأخرى، لم يكن المفسر بحاجة إلى أقواس لتحديد الدوال؛ كان ذلك كافيًا، وليس ضروريًا (مع أن الأخير كان مسموحًا به). احتوت ذاكرة القراءة فقط (ROM) الخاصة بلغة BASIC بحجم 4 كيلوبايت لجهاز ZX80 على قائمة قصيرة من الاستثناءات: لم تكن الدوال ، ، ، ، ، ، و ذات رموز من بايت واحد، بل كانت تُكتب حرفًا حرفًا، مما استلزم استخدام الأقواس. وقد تم إدراجها تحت مسمى "الدوال التكاملية" على ملصق أعلى لوحة المفاتيح وإلى يمينها. [ 13 ]>=<>""**PRINTPRINT PRINTLETLETA=1A=1SIN xSIN(x)CHR$()STR$()TL$()PEEK()CODE()RND()USR()ABS()

كانت لغة BASIC 128 ، الموجودة على أجهزة ZX Spectrum 128 و+2 و+3 و+2A و+2B، تخزن الكلمات المفتاحية داخليًا في نقاط رمزية أحادية البايت، ولكنها استخدمت نظام إدخال BASIC تقليديًا حرفًا بحرف. كما قدمت أمرين جديدين:

تضمنت النسخة الإسبانية الأصلية من جهاز ZX Spectrum 128 أربعة أوامر إضافية لمحرر BASIC باللغة الإسبانية، [ 14 ] [ 15 ] أحدها غير موثق:

  • EDITAR(لتحرير رقم سطر أو استدعاء محرر النصوص بملء الشاشة)
  • NUMERO(لإعادة ترقيم أسطر البرنامج)
  • BORRAR(لحذف أسطر البرنامج)
  • ANCHO(لضبط عرض عمود جهاز RS-232 ، ولكن لم يتم توثيق ذلك لأن الكود كان معطلاً)

LEFT$()على عكس MID$()الدوال RIGHT$()المستخدمة في لغات مايكروسوفت بيسك الشائعة لأجهزة الكمبيوتر المنزلية، يتم الوصول إلى أجزاء السلاسل النصية في سينكلير بيسك باستخدام نطاق رقمي. على سبيل المثال، A$(5 TO 10)تُعطي الدالة `f` سلسلة فرعية تبدأ من الحرف الخامس وتنتهي بالحرف العاشر من المتغير `x` a$. بالتالي، يمكن استبدال الأمرَين ` LEFT$()f` و`f` RIGHT$()ببساطة عن طريق حذف موضع المصفوفة الأيسر أو الأيمن على التوالي؛ على سبيل المثال، ` a$( TO 5)f` تُكافئ `f` LEFT$(A$,5). علاوة على ذلك، a$(5)يكفي استخدام `f` وحدها لاستبدال `f` MID$(A$,5,1).

بناء الجملة

الكلمات المفتاحية

في جهاز ZX Spectrum 16K/48K ( 48 BASIC) ، يوجد 88 كلمة مفتاحية في لغة Sinclair BASIC، تشير إلى الأوامر (التي يبلغ عددها 50)، والوظائف والمعاملات المنطقية (31)، وكلمات مفتاحية أخرى (16، بما في ذلك 9 منها عبارة عن أوامر أو وظائف أيضًا):

الكلمة المفتاحيةالمعلمات [ ملاحظة 1 ]تم إدخالها باستخدام [ ملاحظة 2 ]يكتبملخص
ABSnumberEXTENDED MODEثمGوظيفةيُعيد القيمة المطلقة لـ number[ 16 ]
ACSnumberEXTENDED MODEثم +SYMBOL SHIFTWوظيفةيُعيد قيمة جيب التمام العكسي لـ number[ 17 ]
ANDSYMBOL SHIFT+Yعامل منطقيتُرجع القيمة "صحيح" إذا كان كلا الشرطين على جانبي الكلمة ANDالمفتاحية صحيحين، وإلا تُرجع القيمة "خطأ" [ ملاحظة 3 ] [ 18 ]
ASNnumberEXTENDED MODEثم +SYMBOL SHIFTQوظيفةتُرجع دالة الجيب العكسي لـ number[ 19 ]
ATline, column;SYMBOL SHIFT+Iآخريُستخدم في PRINTعبارة للطباعة في السطر والعمود المحددين؛ [ 20 ] على سبيل المثال، يضع نجمة في العمود 10 من السطر 5.PRINT AT 5,10;"*"
ATNnumberEXTENDED MODEثم +SYMBOL SHIFTEوظيفةيُعيد دالة الظل العكسي لـ number[ 17 ]
ATTR(line, column)EXTENDED MODEثم +SYMBOL SHIFTLوظيفةتُرجع بايتًا يحتوي على معلومات حول ألوان خلية النص على الشاشة، بما يتوافق مع القيم المحددة line؛ columnلاحظ أنه على عكس معظم كلمات Sinclair BASIC الرئيسية، فإن الأقواس مطلوبة؛ تشير البتات الثلاثة الأولى إلى لون الحبر (اللون الأمامي)، والبتات الرابعة والخامسة والسادسة إلى لون الورق (الخلفية)، والبت السابع إلى ما إذا كانت الألوان ساطعة أم لا، والبت الثامن إلى ما إذا كانت تومض [ 21 ].
BEEPduration, pitchEXTENDED MODEثم +SYMBOL SHIFTZيأمريصدر صوتًا من مكبر صوت الكمبيوتر؛ durationبالثواني، درجة الصوت بنصف نغمة أعلى (قيمة موجبة) أو أسفل (قيمة سالبة) من نغمة دو الوسطى [ 22 ]
BINnumberEXTENDED MODEثمBآخريشير numberإلى أنه مكتوب بالترميز الثنائي [ 23 ]
BORDERnumberBيأمريضبط حدود الشاشة على اللون المحدد بواسطة number[ الملاحظة 4 ] [ 24 ]
BRIGHTnumberEXTENDED MODEثم +SYMBOL SHIFTBأمر/أخرىيجعل جميع الألوان التالية أكثر سطوعًا إذا numberكانت القيمة 1، أو لونها الطبيعي إذا كانت القيمة 0 [ ملاحظة 5 ] [ 25 ]
CATnumberEXTENDED MODEثم +SYMBOL SHIFT9يأمريعرض محتويات محرك الأقراص الصغير ZX المحدد بواسطة number[ ملاحظة 6 ] [ 26 ]
CHR$numberEXTENDED MODEثمUوظيفةيُعيد الحرف المقابل للرقم العشري في مجموعة أحرفnumber الكمبيوتر [ 27 ]
CIRCLEx, y, rEXTENDED MODEثم +SYMBOL SHIFTHيأمريرسم دائرة مركزها عند الإحداثيات ( x, y) ونصف قطرها r[ 28 ]
CLEARaddressXيأمريمسح الشاشة، [ 29 ] وجميع المتغيرات والمكدس ، [ 30 ] ويحدد اختياريًا الحد الأقصى لعنوان ذاكرة الوصول العشوائي الذي سيتم استخدامه بواسطة BASIC [ 31 ]GO SUB
CLOSE #numberEXTENDED MODEثم +SYMBOL SHIFT5يأمريغلق رقم التدفق المحدد للوصول [ ملاحظة 6 ]
CLSVيأمريزيل جميع النصوص والرسومات من الشاشة [ 29 ]
CODEstringEXTENDED MODEثمIالوظيفة/أخرىيُعيد هذا الأمر الرقم المُطابق لأول حرف في مجموعة أحرفstring الحاسوب ؛ [ 27 ] كما يُستخدم لحفظ أجزاء مُحددة من الذاكرة على شريط أو قرص، وما إلى ذلك، ثم تحميلها مرة أخرى - انظر [27] لمزيد من التفاصيل.LOADSAVEVERIFY
CONTINUECيأمريعيد تشغيل البرنامج بعد توقفه بسبب خطأ أو ضغط المستخدم على مفتاحي + أو [ 32 ]CAPS SHIFTSPACEBREAK
COPYZيأمريرسل الشاشة المعروضة حاليًا إلى الطابعة [ 33 ]
COSnumberEXTENDED MODEثمWوظيفةيُعيد جيب تمام الزاوية number[ 34 ]
DATAcomma-separated valuesEXTENDED MODEثمDأمر/أخرىيوفر أرقامًا و/أو سلاسل نصية لاستخدامها مع READالأمر [ 35 ] ويسمح بحفظ محتويات مصفوفة على شريط عند استخدامه مع SAVEالأمر [ 36 ] (كما SAVE filename DATA array name())
DEF FNname(variable) = operationEXTENDED MODEثم1يأمريُعرّف دالة مخصصة يمكن استخدامها مع FNالأمر؛ يجب أن تكون تعريفات الدالة على الشكل f(x)=operations، على سبيل المثال f(x)=x*2، ولا يجوز أن يتكون اسم الدالة من أكثر من حرف واحد، بالإضافة إلى رمز $ إذا كانت الدالة تُرجع سلسلة نصية [ 37 ]
DIMvariable(dimensions)Dيأمريُعلن عن مصفوفة بالقيم المحددة dimensions، والتي قد تكون متعددة الأبعاد (على سبيل المثال، DIM a(10,10)؛ إذا تم استخدامها مع السلاسل النصية، فإن البعد الأخير يشير إلى طول كل سلسلة نصية (وبالتالي، DIM A$(2,5)هي مصفوفة من سلسلتين نصيتين، كل منهما بطول خمسة أحرف، و DIM B$(5)هي سلسلة نصية واحدة بطول خمسة أحرف) [ 38 ]
DRAWx, y [, r]Wيأمريرسم خطًا باللون الحالي INKإلى الإحداثيات ( x, y) من الإحداثيات المستخدمة بواسطة الأمر السابق PLOTأو DRAW؛ إذا تم توفير الخيار r، فإنه يشير إلى زاوية قطعة الدائرة المراد رسمها ، بالراديان [ 39 ]
ERASEdrive;"filename"EXTENDED MODEثم +SYMBOL SHIFT7يأمريحذف الملف المحدد من محرك الأقراص ZX Microdrive [ ملاحظة 6 ] [ 40 ]
EXPnumberEXTENDED MODEثمXوظيفةيعيد e إلى القوة number[ 41 ]
FLASHnumberEXTENDED MODEثم +SYMBOL SHIFTVأمر/أخرىيجعل جميع النصوص التالية تتناوب بين ألوان المقدمة ( INK) والخلفية ( ) [ ملاحظة 5 ]PAPER
FNfunction(value)EXTENDED MODEثم +SYMBOL SHIFT2وظيفةيستدعي ما functionتم تعريفه سابقًا في البرنامج باستخدام [ 37 ]DEF FN
FORMATdrive;"name"EXTENDED MODEثم +SYMBOL SHIFT0يأمريقوم بتهيئة الخرطوشة في محرك الأقراص الصغير المشار إليه ويخصص لها المعرف name[ ملاحظة 6 ] [ 42 ]
FORvariable = start TO endFيأمريبدأ حلقة FORتكرار NEXT؛ [ 43 ] يجب ألا يتجاوز طول اسم المتغير حرفًا واحدًا [ 44 ]
GO SUBnumberHيأمريجعل البرنامج ينتقل إلى سطر BASIC المحدد بواسطة number؛ عندما يصادف البرنامج الأمر RETURN، فإنه سيعود إلى العبارة التي تلي [ 45 ]GO SUB
GO TOnumberGيأمريجعل البرنامج ينتقل إلى سطر BASIC المحدد بواسطةnumber
IF condition THENUيأمريقوم بتقييم condition، وإذا كان صحيحًا، فإنه ينفذ العبارة التي تلي الكلمة الرئيسية THENالتي يجب أن تأتي بعد الشرط، [ 46 ] على سبيل المثال [ ملاحظة 7 ]IFA=1THENLETB=2
INaddressEXTENDED MODEثم +SYMBOL SHIFTIوظيفةيُعيد بايتًا مقروءًا من منفذ الإدخال/الإخراج الخاص بالأجهزة والذي يتوافق مع address[ 47 ]
INKnumberEXTENDED MODEثم +SYMBOL SHIFTXأمر/أخرىيحدد لون المقدمة للنصوص والرسومات [ ملاحظة 4 ] [ ملاحظة 5 ] [ 48 ]
INKEY$EXTENDED MODEثم +SYMBOL SHIFTZوظيفةتُعيد هذه الدالة سلسلة نصية تُمثل المفتاح المضغوط على لوحة المفاتيح لحظة استدعائها، أو سلسلة نصية فارغة في حال عدم وجود مفتاح مضغوط، [ 49 ] ولكنها لا تنتظر ضغط أي مفتاح.
INPUT[prompt,] variableIيأمريوقف تنفيذ البرنامج حتى يقوم المستخدم بكتابة شيء ما على لوحة المفاتيح ويضغط على Enterالمفتاح، ثم يخزن القيمة المدخلة في المتغير المحدد variable؛ إذا تم توفير قيمة اختيارية prompt، فسيتم عرضها على الشاشة [ 50 ].
INTnumberEXTENDED MODEثمRوظيفةتُرجع القيمة الصحيحة لـ number، مع تقريبها إلى أقرب عدد صحيح [ 16 ] (وبالتالي، INT -1.1تُرجع −2، وليس −1)
INVERSEnumberEXTENDED MODEثم +SYMBOL SHIFTMأمر/أخرىيعكس الألوان على جميع النصوص التالية إذا numberكانت القيمة 1، بحيث يستخدم لون الحبر الحالي للخلفية ولون الورق الحالي للنص، أو يعيدها إلى وضعها الطبيعي إذا numberكانت القيمة 0 [ ملاحظة 5 ] [ 51 ]
LENstringEXTENDED MODEثمKوظيفةيُرجع عدد الأحرف (البايتات) في string[ 52 ]
LETvariable=valueLيأمريُسند valueإلى المتغير المسمى [ 53 ]
LINEEXTENDED MODEثم +SYMBOL SHIFT3آخر
  • عند استخدامها في INPUTعبارة قبل متغير نصي، لن يتم وضع علامات اقتباس ( " " ) حول الموجه الخاص بها، [ 20 ] على سبيل المثالINPUT"Name: ";LINEn$
  • عند استخدامها في SAVEعبارة بحيث عند إعادة تحميل برنامج BASIC الذي يتم حفظه، يبدأ تلقائيًا عند رقم السطر المشار إليه [ 54 ]
LIST[number]Kيأمريعرض برنامج BASIC الحالي على الشاشة؛ إذا numberتم توفير الخيار الاختياري، فإنه يحذف جميع الأسطر ذات الرقم الأقل [ 55 ]
LLIST[number]EXTENDED MODEثم +SYMBOL SHIFTVيأمرباستثناء أن LISTالقائمة تُطبع على الطابعة [ 33 ]
LNnumberEXTENDED MODEثم +SYMBOL SHIFTZوظيفةيُعيد اللوغاريتم الطبيعي لـ number[ 56 ]
LOAD"filename" DATA variable() | [CODE [start[, length]]] | SCREEN$Jيأمريقوم بتحميل الملفات من شريط أو جهاز تخزين آخر، مع تحديد الملف، أو الملف الأول الذي تم العثور عليه إذا تم توفير filenameسلسلة فارغة ( ).""
  • بشكل افتراضي، يقوم بتحميل برنامج BASIC، مما يؤدي إلى مسح أي برنامج BASIC ومتغيراته الموجودة بالفعل في الذاكرة. [ 50 ]
  • إذا DATAتم استخدامها، فإنها تقوم بتحميل البيانات في المصفوفة المسماة variable(). [ 36 ]
  • باستخدام CODE، يتم تحميل البيانات في عنوان الذاكرة الذي تم حفظها منه، أو موقع الذاكرة المحدد ( lengthيقصد به إجراء أمان، لمحاولة تحميل البرنامج الصحيح في حالة وجود برامج متعددة على الشريط تحمل الاسم الصحيح ولكن بأطوال مختلفة).
  • SCREEN$وهو ما يعادل CODE 16384,6912، وذلك لتحميل صورة على الشاشة.
LPRINTtextEXTENDED MODEثم +SYMBOL SHIFTCيأمرباستثناء أن PRINTالمخرجات تُرسل إلى الطابعة [ 33 ]
MERGE"[filename]"EXTENDED MODEثم +SYMBOL SHIFTTيأمركما هو الحال LOADمع ، باستثناء أنه لا يحذف البرنامج الحالي والمتغيرات؛ فإذا كان رقم السطر موجودًا في كليهما، فإن رقم السطر في البرنامج المُحمّل حديثًا يحل محل الرقم الموجود. MERGEيمنع استخدام من تشغيل برنامج تم حفظه باستخدام LINEمن التشغيل التلقائي بمجرد تحميله [ 57 ].
MOVEstream1 TO stream2EXTENDED MODEثم +SYMBOL SHIFT6يأمرينقل البيانات من دفق واحد (لوحة المفاتيح، الشاشة، الملف، الطابعة، الشبكة، إلخ) إلى آخر [ ملاحظة 6 ] [ 58 ]
NEWAيأمريمسح برنامج BASIC الحالي وجميع المتغيرات [ 50 ]
NEXTvariableNيأمريُغلق حلقة FORتكرار NEXT؛ يجب أن يتطابق المتغير مع FORمتغير الأمر المقابل [ 59 ] – لا يُسمح باستخدام "فارغة" NEXTللإشارة إلى الأمر السابق مباشرةً FORفي البرنامج
NOTconditionSYMBOL SHIFT+Sعامل منطقيتُرجع القيمة "صحيح" إذا conditionكانت القيمة "خطأ"، وإلا تُرجع القيمة "خطأ" [ ملاحظة 3 ] [ 18 ]
OPEN #streamEXTENDED MODEثم +SYMBOL SHIFT4يأمريفتح دفقًا للقراءة منه و/أو الكتابة إليه [ ملاحظة 6 ] [ 60 ]
ORSYMBOL SHIFT+Yعامل منطقيتُرجع القيمة "صحيح" إذا كان أي من الشرطين على جانبي الكلمة ORالمفتاحية صحيحًا، وإلا تُرجع القيمة "خطأ" [ ملاحظة 3 ] [ 18 ]
OUTaddress, valueEXTENDED MODEثم +SYMBOL SHIFTOيأمريرسل value( بايت ) إلى منفذ الإدخال/الإخراج الخاص بالأجهزة المقابل لـ address. [ 47 ]
OVERnumberEXTENDED MODEثم +SYMBOL SHIFTNأمر/أخرىسيتم طباعة النص التالي فوق النص الموجود بالفعل على الشاشة باستخدام عملية XOR إذا numberكانت القيمة 1، بدلاً من مسحه، أو مسحه إذا numberكانت القيمة 0 [ ملاحظة 5 ] [ 51 ]
PAPERnumberEXTENDED MODEثم +SYMBOL SHIFTCأمر/أخرىيحدد لون الخلفية للنصوص والرسومات [ ملاحظة 4 ] [ ملاحظة 5 ] [ 48 ]
PAUSEdelayMيأمريوقف تنفيذ البرنامج لفترة التأخير المحددة، في150{\displaystyle {\tfrac {1}{50}}}من الثانية في أوروبا أو160{\displaystyle {\tfrac {1}{60}}}في أمريكا الشمالية [ 61 ] (وبالتالي، PAUSE 50يتوقف لمدة ثانية واحدة في أوروبا). ويستمر أيضًا بعد الضغط على مفتاح رئيسي.
PEEKaddressEXTENDED MODEثمOوظيفةيُرجع بايتًا يمثل محتويات موقع الذاكرة المشار إليه بواسطة address[ 62 ]
PIEXTENDED MODEثمMوظيفةيُعيد قيمة باي [ 56 ]
PLOTx, yQيأمريرسم بكسلًا باللون الحالي INKعلى الشاشة عند الإحداثيات ( x, y) [ 63 ]
POINT(x,y)EXTENDED MODEثم +SYMBOL SHIFT8وظيفةتُرجع القيمة 1 إذا كانت البكسل المشار إليها في الإحداثيات الرسومية ( x, y) موجودة حاليًا بلون الحبر (اللون الأمامي)، وإلا تُرجع القيمة 0 [ 28 ]
POKEaddress, valueOيأمريضبط محتويات addressالذاكرة العشوائية إلى value[ 64 ]
PRINT[AT x,y;] textPيأمريطبع text(والذي يجب أن يكون سلسلة نصية واحدة أو أكثر أو أرقامًا مفصولة بفواصل منقوطة) على الشاشة. [ 53 ] إذا تم استخدامه مع #0 أو #1، فإنه يطبع في السطرين السفليين (سطر الإدخال) من الشاشة؛ إذا تم استخدامه مع AT، فإنه يطبع عند إحداثيات النص المحددة؛ وإلا، فإنه يطبع إما مباشرة بعد مخرجات أي PRINTعبارة سابقة (إذا انتهت العبارة السابقة بفاصلة منقوطة)، أو في العمود الأول من السطر أسفل PRINTالمخرجات السابقة، [ 20 ] مع القيمة الافتراضية 0,0.
RANDOMIZE[number]Tيأمريقوم بتهيئة مولد الأرقام العشوائية ؛ إذا تم استخدامه بدون number(أو مع 0)، فإنه يقوم بذلك بناءً على الساعة الداخلية للكمبيوتر، وإلا فإنه يستخدم القيمة numberالمقدمة، والتي يجب أن تكون في النطاق [1,65535] [ 65 ]
READvariableEXTENDED MODEثمAيأمريأخذ قيمة من DATAعبارة ويخزنها في المتغير المسمى variable: في المرة الأولى READالتي يتم استخدامها، يحصل على القيمة الأولى بعد الأولى DATA، وفي المرة الثانية يحصل على القيمة التالية، وهكذا [ 35 ]
REMنصEيأمريبدأ تعليقًا في الكود المصدري، مما يعني أنه REMيتم تجاهل كل شيء بعد العبارة، حتى نهاية السطر [ 50 ] - لاحظ أن هذا يشمل كل شيء بعد النقطتين، والتي تبدأ عادةً مقطعًا جديدًا: لن ينتج أي مخرجات، على سبيل المثال.10REM Nothing to see here: PRINT "Unprintable"
RESTORE[number]EXTENDED MODEثمSيأمرإعادة تعيين مكان READبحث الأوامر عن القيم في DATAالعبارات: إذا تم استخدامها بدون رقم، READفسيتم استخدام القيمة الأولى DATAفي البرنامج، ومع رقم سيتم استخدام القيمة الأولى DATAفي السطر الذي تم تحديد رقمه أو بعده [ 66 ]
RETURNYيأمريعيد التنفيذ إلى العبارة الأولى التي تلي الأمر الأخير الذي تم تنفيذه [ 45 ]GO SUB
RNDEXTENDED MODEثمTوظيفةتُرجع رقمًا شبه عشوائي بثمانية أرقام معنوية في النطاق [0,1) [ 67 ]
RUN[number]Rيأمريبدأ برنامج BASIC الحالي، من سطره الأول إذا لم numberيتم تحديد رقم، وإلا من السطر الذي يحمل هذا الرقم (أو السطر الأول بعده، إذا لم يكن موجودًا) [ 68 ]
SAVE"filename" [DATA variable() | LINE number | CODE start, length | SCREEN$]Sيأمريتم الحفظ على شريط أو جهاز تخزين آخر، وفقًا لما filenameهو محدد.
  • يحفظ البرنامج برنامج BASIC الحالي افتراضيًا. إذا LINEتم استخدام الخيار متبوعًا برقم السطر، فسيبدأ البرنامج تلقائيًا من رقم السطر المحدد عند LOADإعادة تشغيله.
  • إذا DATAتم استخدامها، فإنها تحفظ محتويات المصفوفة المسماة بالمتغير. [ 36 ]
  • باستخدام CODE، يتم حفظ نطاق البايتات المحدد من الذاكرة.
  • SCREEN$وهو ما يعادل CODE 16384,6912، وذلك لحفظ لقطة شاشة.
SCREEN$[(line, column)]EXTENDED MODEثم +SYMBOL SHIFTالوظيفة/أخرىتُحدد هذه الدالة الحرف الموجود في السطر والعمود المحددين على الشاشة. [ 20 ] عند استخدامها بعد اسم الملف في أمر LOADأو SAVE، فإنها تشير إلى أنه يجب تحميل محتويات ذاكرة العرض أو حفظها؛ وهذا يجعلها اختصارًا لـ CODE 16384,6912[ ملاحظة 8 لكنها لا تعمل مع VERIFYلأن محتويات ذاكرة العرض ستكون مختلفة بحلول الوقت الذي يقرأ فيه هذا الأمر البيانات المحفوظة؛ [ 69 ]
SGNnumberEXTENDED MODEثمFوظيفةتُرجع 1 إذا numberكانت القيمة موجبة، و0 إذا كانت 0، و-1 إذا كانت سالبة [ 16 ]
SINnumberEXTENDED MODEثمQوظيفةيُعيد جيب الزاوية number[ 34 ]
STEPnumberSYMBOL SHIFT+Dآخريشير هذا إلى الفاصل الزمني المستخدم في FORالعبارة، على سبيل المثال ، [ 44 ] سيتخطى في الحلقةFORn=2TO6STEP2n=3n=5
STOPSYMBOL SHIFT+Aيأمريُنهي تنفيذ البرنامج الحالي، ويخرج إلى محرر لغة BASIC؛ ويمكن استخدامه أيضًا عندما ينتظر الحاسوب إدخالًا باستخدام INPUTالأمر؛ [ 68 ] بمجرد إيقاف البرنامج، يمكن استئنافه باستخدامCONTINUE
SQRnumberEXTENDED MODEثمHوظيفةيُعيد الجذر التربيعي لـ number[ 37 ]
STR$numberEXTENDED MODEثمYوظيفةيحوّل رقمًا إلى سلسلة نصية.
TABcolumnEXTENDED MODEثمPآخرفي PRINTالبيان، تأكد من أن النص المراد إخراجه يبدأ في العمود المحدد، مع الانتقال إلى السطر التالي حسب الضرورة، ولكن ليس أكثر من سطر واحد [ 29 ]
TANnumberEXTENDED MODEثمEوظيفةيُعيد ظل الزاوية number[ 70 ]
THENstatementSYMBOL SHIFT+Gآخريتبع الشرط في IFالعبارة للإشارة إلى ما يجب أن يحدث عندما يكون الشرط صحيحًا [ ملاحظة 7 ] [ 46 ]
TOSYMBOL SHIFT+Fآخريشير إلى نطاق من الرقم الموجود على يسار الرقم TOإلى الرقم الموجود على يمينه، شاملًا الرقمين؛ [ 71 ] عند استخدامه مع FORكلا الرقمين، يجب تحديد الرقم، بينما إذا تم استخدامه لتقطيع السلاسل، فيمكن حذف أي منهما للإشارة إلى بداية السلسلة أو نهايتها.
USRstring or addressEXTENDED MODEثمLوظيفةعند استدعاء هذه الدالة بسلسلة نصية مكونة من حرف واحد، فإنها تُعيد عنوان الذاكرة الذي يُعرَّف فيه رمز الحرف الرسومي المُعرَّف من قِبل المستخدم والمُطابق لذلك الحرف. [ 23 ] أما عند استدعائها بعنوان، فإنها تبدأ تنفيذ كود الآلة عند ذلك العنوان (مما يجعلها إحدى دوال Sinclair BASIC القليلة التي لها تأثير جانبي ) وتُعيد محتويات زوج سجلات BC الخاص بمعالج Z80 . [ 72 ]
VALstringEXTENDED MODEثمJوظيفةيُقيّم هذا stringالتابع القيمة كرقم ويعيد النتيجة؛ [ 73 ] يمكنه إجراء عمليات حسابية: يُعيد 3، على سبيل المثال، كما يُقيّم المتغيرات وحتى العبارات الأخرى: [ ملاحظة 9 ] يُعيد أيضًا 3VAL "1+2"VALLETA=1:VAL"A+VAL ""2"""
VAL$stringEXTENDED MODEثم +SYMBOL SHIFTJوظيفةمشابه لـ [16] VALولكنه يقيم السلسلة كسلسلة [ 16 ]
VERIFY"[filename]"EXTENDED MODEثم +SYMBOL SHIFTRيأمريقرأ هذا الأمر برنامجًا أو بيانات من شريط أو وحدة تخزين أخرى، تمامًا مثل الأمر السابق LOAD، ولكن بدلًا من تحميلها في الذاكرة، يقارنها بالبرنامج أو البيانات الموجودة بالفعل في الذاكرة. يُقصد بهذا استخدامه مباشرةً بعد SAVEتنفيذ أمر ما، للتأكد من حفظ البرنامج أو البيانات دون تلف. [ 74 ]
زد إكس سبكتروم
ZX Spectrum+

النسخ الرسمية

أساسيات 4K

تم تطوير لغة 4K BASIC لجهاز ZX80 [ 75 ] (سميت بهذا الاسم لأنها موجودة في ذاكرة القراءة فقط (ROM) بحجم 4 كيلوبايت )، بواسطة جون جرانت من شركة Nine Tiles لجهاز ZX80. وهي تحتوي على عمليات حسابية للأعداد الصحيحة فقط. 

  • أوامر النظام:NEWRUNLISTLOADSAVE
  • عبارات التحكم:GOTOIFTHENGOSUBSTOPRETURNFORTONEXTCONTINUE
  • عبارات الإدخال/الإخراج:PRINTINPUT
  • بيان التكليف:LET
  • بيانات أخرى:CLEARCLSDIMREMRANDOMIZEPOKE
  • الوظائف:ABSCHR$CODEPEEKRNDSTR$TL$USR

8K أساسي

8K BASIC هو ZX81 BASIC (متوفر أيضًا كترقية لـ ZX80 [ 5 ] )، تم تحديثه بحساب الفاصلة العائمة بواسطة ستيف فيكرز ، وقد سمي بذلك لأنه موجود في  ذاكرة ROM بحجم 8 كيلوبايت.

  • البيانات:PRINTRANDLETCLEARRUNLISTGOTOCONTINPUTNEWREMPRINTSTOPBREAKIFSTOPFORNEXTTOSTEPSLOWFASTGOSUBRETURNSAVELOADCLSSCROLLPLOTUNPLOTPAUSELPRINTLLISTCOPYDIMPOKENEW
  • الوظائف:ABSSGNSINCOSTANASNACSATNLNEXPSQRINTPIRNDFUNCTIONLENVALSTR$NOTCODECHR$INKEY$ATTABINKEY$PEEKUSR

48 أساسي

لغة 48 BASIC هي لغة BASIC المستخدمة في جهاز ZX Spectrum الأصلي (والأجهزة المقلدة) بذاكرة وصول عشوائي (RAM  ) سعة 16/48 كيلوبايت ، مع إضافة الألوان والمزيد من الملحقات بواسطة ستيف فيكرز وجون غرانت. تُخزَّن هذه اللغة في ذاكرة قراءة فقط (ROM) سعة 16 كيلوبايت، وبدأ استخدامها تحت اسم 48 BASIC مع طرح جهاز ZX Spectrum 128، حيث توقف بيع جهاز Spectrum ذي ذاكرة الوصول العشوائي سعة 16 كيلوبايت، وتم تحديث معظم الأجهزة الموجودة آنذاك إلى ذاكرة وصول عشوائي سعة 48 كيلوبايت. [ 6 ]   

128 أساسي

128 BASIC هو لغة BASIC الخاصة بجهاز ZX Spectrum 128. [ 7 ] وهو يوفر أوامر إضافية ويستخدم الإدخال حرفًا بحرف.

  • أوامر جديدة:LOAD !SAVE !MERGE !ERASE !PLAYSPECTRUM

+3 أساسي

+3 BASIC هو برنامج BASIC مع دعم القرص لجهاز ZX Spectrum +3 و +2A. [ 6 ]

  • أوامر جديدة:FORMATCOPY

تي/إس 2000 بيسك

يتم استخدام لغة T/S 2000 BASIC على جهاز Timex Sinclair 2068 المتوافق مع Spectrum (T/S 2068) وتضيف الكلمات الرئيسية الست الجديدة التالية:

  • DELETEيحذف نطاقات أسطر برنامج BASIC.
  • FREEهي دالة تُعطي مقدار ذاكرة الوصول العشوائي (RAM) المتاحة. PRINT FREEستُظهر مقدار ذاكرة الوصول العشوائي المتاحة.
  • ON ERRهي دالة لمعالجة الأخطاء تُستخدم في الغالب كـ ON ERR GO TOأو ON ERR CONT.
  • RESETيمكن استخدامه لإعادة ضبط سلوك ON ERR. وكان الغرض منه أيضاً إعادة ضبط الأجهزة الطرفية.
  • SOUNDيتحكم في شريحة الصوت AY-3-8192 .
  • STICKهي وظيفة تعطي موضع عصا التحكم الداخلية (Timex Sinclair 2090).

BASIC64

BASIC64 من شركة Timex البرتغالية ، هو امتداد برمجي [ 76 ] [ 77 ] يُتيح برمجةً أفضل بلغة Basic مع أوضاع العرض الرسومية 512×192 وشاشات العرض المزدوجة المتوفرة حصريًا على أجهزة Timex Sinclair . يُضيف هذا الامتداد أوامر جديدة ويُعيد تعيين الذاكرة بالكامل لتجنب الكتابة فوق منطقة ذاكرة الشاشة المُوسّعة. يتوفر إصداران منه نظرًا لاختلاف خرائط الذاكرة: إصدار خاص بجهاز TC 2048 ، وإصدار خاص بجهازي T/S 2068 و TC 2068. [ 76 ] [ 78 ]

  • PRINT #يطبع على قناة إخراج محددة.
  • LIST #يقوم بإدراج البرنامج إلى قناة إخراج محددة.
  • CLS*يمسح كلا منطقتي العرض.
  • INK*يحدد لون الحبر لكلا منطقتي العرض
  • PAPER*قم بتلوين منطقتي العرض
  • SCREEN$يختار وضع الدقة العالية / العادية.
  • PLOT*يرسم بكسلًا ويحدث موضع الرسم.
  • LINEيرسم خطًا من موضع الرسم التخطيطي السابق، ويدعم رسم القوس
  • CIRCLE*يرسم دائرة أو شكل بيضاوي، حسب وضع الشاشة.

تايمكس إكستندد بيسك

تُستخدم لغة Timex Extended Basic من شركة Timex البرتغالية في جهاز Timex Computer 3256 ، حيث تضيف أوامر TEC - أوامر Timex الموسعة - التي تدعم شريحة الصوت AY-3-8912، وشبكة RS-232، ووضع الرسومات عالي الدقة 512×192 بكسل. [ 79 ] [ 80 ]

  • أوامر محرك أقراص ذاكرة الوصول العشوائي (RAM):LOAD!SAVE!CAT!MERGE!ERASE!CLEAR!
  • أوامر RS-232:FORMAT!LPRINTLLIST
  • أوامر AY-3-8912:BEEP!
  • أوامر دقة العرض 512 × 192:SCREEN$DRAW!PLOT!CIRCLE!

إصدارات أخرى، وامتدادات، ومشتقات، وخلفاء

مترجمون لعائلة ZX Spectrum

توجد العديد من برامج الترجمة الخاصة بجهاز ZX Spectrum. [ 81 ]

  • كانت لغة بيتا بيسك، التي طورها الدكتور آندي رايت، في الأصل امتدادًا للغة بيسك ، ولكنها أصبحت مترجمًا كاملاً. [ 82 ]
  • YS MegaBasic بواسطة مايك ليمان. [ 81 ] [ 83 ]
  • نظام التشغيل ZebraOS من شركة Zebra Systems في نيويورك، وهو نسخة خرطوشة من لغة T/S 2000 BASIC التي استخدمت وضع الشاشة 512×192. [ 84 ]
  • Sea Change ROM من تصميم ستيف فيكرز وإيان لوجان، تم تعديله بواسطة جيف ويرموث، وهو عبارة عن ROM بديل مع Sinclair BASIC محسّن. [ 85 ]
  • Gosh Wonderful من تطوير جيف ويرموث، وهو نظام تشغيل بديل يُصلح الأخطاء ويضيف مُجزئ الكلمات، ومُستعرض البيانات، وأوامر الحذف وإعادة الترقيم. [ 81 ] [ 86 ]
  • OpenSE BASIC (المعروف سابقًا باسم SE BASIC) بواسطة أندرو أوين، وهو ROM بديل مع إصلاحات للأخطاء والعديد من التحسينات بما في ذلك دعم ULAplus [ 87 ] ، تم نشره كمصدر مفتوح في عام 2011 [ 88 ] [ 89 ] [ 90 ]

برامج تجميعية لعائلة ZX Spectrum

توجد العديد من برامج تجميع برامج ZX Spectrum . [ 81 ]

  • مُجمِّع HiSoft COLT (المعروف أيضًا باسم مُجمِّع HiSoft COLT للأعداد الصحيحة) [ 91 ] [ 92 ]
  • HiSoft BASIC (المعروف أيضًا باسم HiSoft BASIC Compiler)، وهو مترجم قادر على التعامل مع الأعداد الصحيحة والأعداد العشرية [ 93 ] [ 94 ]
  • مُجمِّع الليزر [ 95 ] [ 96 ]
  • مُجمِّع الأعداد الصحيحة Softek 'IS' [ 97 ] [ 98 ] (الخليفة لمُجمِّع الأعداد الصحيحة Softek [ 99 ] )
  • برنامج Softek 'FP' الكامل [ 100 ] [ 101 ]
  • مُجمِّع ملفات ZIP [ 102 ] [ 103 ]

مشتقات وخلفاء لأجهزة الكمبيوتر الأخرى

  • SuperBASIC ، وهي لهجة BASIC أكثر تقدمًا تم تقديمها مع جهاز الكمبيوتر الشخصي Sinclair QL ، مع بعض أوجه التشابه مع لغات BASIC السابقة من Sinclair [ 104 ].
  • SAM Basic ، لغة BASIC الموجودة على جهاز SAM Coupé ، والتي تعتبر عمومًا نسخة مقلدة من ZX Spectrum [ 105 ]
  • ROMU6 من تأليف سيزار وخوان هيرنانديز – MSX [ 81 ]
  • Spectrum 48 من شركة Whitby Computers – Commodore 64 [ 81 ]
  • Sparky eSinclair BASIC بواسطة ريتشارد كيلش، وهو نظام تشغيل يعتمد بشكل فضفاض على ZX Spectrum BASIC – Zilog eZ80 [ 106 ]
  • سينباس بواسطة بافيل نابرافنيك – MS-DOS [ 81 ]
  • Basic [ 107 ] (وCheckBasic [ 108 ] ) من تأليف فيليب كيندال - يونكس
  • BINSIC [ 109 ] من تأليف أدريان ماكمينامين، وهو إعادة تنفيذ بلغة Groovy مصممة بشكل وثيق على ZX81 BASIC – Java
  • BASin [ 110 ] من تطوير بول دان، بيئة تطوير متكاملة (IDE) كاملة للغة Sinclair BASIC تعتمد على محاكي ZX Spectrum [ 81 ] – ويندوز
  • SpecBAS [ 111 ] (المعروف أيضًا باسم SpecOS) من تطوير بول دان، بيئة تطوير متكاملة (IDE) توفر مجموعة محسّنة من لغة Sinclair BASIC - لأنظمة Windows و Linux و Pandora و Raspberry Pi
  • ZX-Basic [ 112 ] – مُترجم مُحسّن ومتوافق مع الإصدارات السابقة لبرامج Sinclair BASIC الخاصة بجهاز ZX Spectrum، مكتوب بلغة Python ، ومتاح مجانًا لأنظمة Windows وLinux و Mac OS
  • ZX-Basicus [ 113 ] من تأليف خوان أنطونيو فرنانديز مادريغال، وهو برنامج توليف وتحليل وتحسين وتفسير وتصحيح أخطاء لغة Sinclair BASIC 48K لأجهزة الكمبيوتر الشخصية، ويمكن تنزيله مجانًا لأنظمة Linux وWindows.

انظر أيضاً

ملحوظات

  1. يتم وضع المعلمات الاختيارية بين [أقواس مربعة]
  2. تفترض هذه التعليمات أن الكمبيوتر في وضع الكلمات المفتاحية ( K )، وهو الوضع الذي يكون عليه عادةً في بداية السطر عند إدخال لغة BASIC. في جهازي Spectrum 16K و48K، يتم الدخول إلى الوضع الموسع بالضغط على مفتاحيوفي آنٍ واحد، بدلاً منالمفتاح الموجود في جهاز Spectrum+ والطرازات الأحدث.CAPS SHIFTSYMBOL SHIFTEXTENDED MODE
  3. في لغة Sinclair BASIC ، يُعادل الرمز " False " القيمة صفر (0)، بينما تُعادل جميع القيم الأخرى القيمة "true". وبالتالي، فإن الدوال التي تُرجع قيمًا صحيحة أو خاطئة تُرجع في الواقع صفرًا للقيمة الخاطئة وواحدًا للقيمة الصحيحة، بينماANDتُرجع الدالة عادةً الشرط الأول المُعطى للقيمة الصحيحة، أو واحدًا إذا لم تُعطَ أي قيم عددية. على سبيل المثال،6 AND 7تُرجع الدالة 6، بينماNOT 6=7تُرجع الدالة 1.
  4. 1 2 3 الأرقام المتاحة للألوان هي:
    12345670
    أزرقأحمرأرجوانيأخضرسماويأصفرأبيضأسود
    في جميع الأوامر المتعلقة بالألوان، يمكن استخدام الرقم 8 للإشارة إلى "الشفافية" أثناء التشغيل، ويمكن INKأيضًا PAPERتعيينه إلى 9 من أجل "التباين" - أي لوضع لون داكن على خلفية فاتحة أو العكس تلقائيًا.
  5. ١ ٢ ٣ ٤ ٥ ٦INK ،PAPER،FLASH،BRIGHT،OVERوتعيينINVERSEخصائص إخراج النصوص والرسومات على الشاشة. يمكن استخدامها إما كأوامر، لتطبيقها على جميع المخرجات اللاحقة حتى يتم تعيينها مرة أخرى، أو ضمنPRINTعبارة، لتطبيقها فقط من تلك النقطة حتى نهاية العبارة.
  6. صُممت الأرقام 1 و2 و3 و 4 و 5 و 6 فيالأصل للاستخدام مع الأجهزة الطرفية، ولكن عند إطلاق جهاز ZX Spectrum، لم تكن قد نُفذت بالكامل، مما أدى إلى ظهور رسالة خطأ (تدفق غير صالح) عند استخدامها. لاحقًا، وبمساعدة ذاكرة القراءة فقط الظلية (shadow ROM) الخاصة بواجهة ZX 1، استُخدمت هذه الأرقام مع جهاز ZX Microdrive . (كانت ذاكرة القراءة فقط الظلية تُفتح عند اكتشاف مُفسِّر لغة BASIC خطأً في بناء الجملة، ولهذا السبب تستخدم معظم أوامر ZX Microdrive فاصلة).CATERASEFORMATMOVE"*"
  7. 1 2 على عكس العديد من لهجات BASIC الأخرى، لم تتضمن Sinclair BasicELSEعامل التشغيل فيIFTHEN[–ELSE]. يتمثل الحل البديل في استخدامIFTHEN–بدلاً من ذلك، متجاوزًا الأسطر التي كانت ستكون فيعبارة معGO TOELSEGO TO
  8. تبدأ ذاكرة العرض الخاصة بجهاز Spectrum من العنوان 16384 ويبلغ طولها 6912 بايت.
  9. يجب مضاعفة علامات الاقتباس الخاصة بالسلسلة النصية الموجودة داخل سلسلة نصية أخرى في لغة Sinclair BASIC.

مراجع

  1. غارفيلد، سيمون (28 فبراير 2010). "السير كلايف سنكلير: "أنا لا أستخدم جهاز كمبيوتر على الإطلاق"" . صحيفة الغارديان . تم الاطلاع عليه بتاريخ 23 مايو 2011. وهو حريص على أن ينسب الفضل إلى [...]، ولا سيما شركة ناين تايلز، الشركة التي صنعت برنامج التشغيل بيسك.
  2. آدمسون وكينيدي ، ص 63. خطأ في رقم المرجع: لا يوجد هدف: CITEREFAdamsonKennedy ( مساعدة )
  3. آدمسون وكينيدي 1986 ، ص 64.
  4. آدمسون وكينيدي 1986 ، ص 70.
  5. 1 2 "ترقية ذاكرة القراءة فقط الأساسية ZX80 - 8K" . www.fruitcake.plus.com .
  6. 1 2 3 4 "عالم الطيف - الوثائق - ZX Spectrum +3 - الفصل 7" . worldofspectrum.org .
  7. 1 2 3 4 "عالم الطيف - الوثائق - دليل ZX Spectrum 128 الصفحة 6" . worldofspectrum.org .
  8. سميث، توني (23 أبريل 2012). "عيد ميلاد سعيد الثلاثين، سينكلير زد إكس سبكتروم" . ذا ريجستر .
  9. آدمسون وكينيدي 1986 ، ص 88.
  10. دان، بول (7 ديسمبر 2022)، SpecBAS ، تم الاطلاع عليه في 12 ديسمبر 2022
  11. "CSDb" . قاعدة بيانات مشاهد كومودور 64. تم الاسترجاع في 12 ديسمبر 2022 .
  12. فيكرز 1983 ، ص 7-8.
  13. "صورة ZX80" .
  14. " فك شفرة ذاكرة القراءة فقط لجهاز Spectrum 128 - جهاز Spectrum 128 الإسباني" . www.fruitcake.plus.com
  15. ^ سنكلير (1985). ZX Spectrum 128 مقدمة ودليل الوظائف . Sinclair Research Ltd وInvestronica, SA ص. 9. 
  16. 1 2 3 4 فيكرز 1983 ، ص 59.
  17. 1 2 فيكرز 1983 ، ص. 70.
  18. 1 2 3 فيكرز 1983 ، ص 85.
  19. فيكرز 1983 ، ص 69-70.
  20. 1 2 3 4 فيكرز 1983 ، ص 101.
  21. فيكرز 1983 ، ص 116.
  22. فيكرز 1983 ، ص 135.
  23. 1 2 فيكرز 1983 ، ص. 93.
  24. فيكرز 1983 ، ص 113.
  25. فيكرز 1983 ، ص 110-111.
  26. كامبريدج كوميونيكيشن 1983 ، ص 15.
  27. 1 2 فيكرز 1983 ، ص. 91.
  28. 1 2 فيكرز 1983 ، ص. 123.
  29. 1 2 3 فيكرز 1983 ، ص 103.
  30. "عالم الطيف - الوثائق - دليل ZX Spectrum - الفصل 24" . worldofspectrum.org .
  31. فيكرز 1983 ، ص 168.
  32. فيكرز 1983 ، ص 19.
  33. 1 2 3 فيكرز 1983 ، ص 151.
  34. 1 2 فيكرز 1983 ، ص. 68.
  35. 1 2 فيكرز 1983 ، ص. 41.
  36. 1 2 3 فيكرز 1983 ، ص 142.
  37. 1 2 3 فيكرز 1983 ، ص. 60.
  38. فيكرز 1983 ، ص 79-81.
  39. فيكرز 1983 ، ص 11-123.
  40. كامبريدج كوميونيكيشن 1983 ، ص 18.
  41. فيكرز 1983 ، ص 66.
  42. كامبريدج كوميونيكيشن 1983 ، ص 19.
  43. فيكرز 1983 ، ص 31.
  44. 1 2 فيكرز 1983 ، ص 32.
  45. 1 2 فيكرز 1983 ، ص 37.
  46. 1 2 فيكرز 1983 ، ص. 25.
  47. 1 2 فيكرز 1983 ، ص. 159.
  48. 1 2 فيكرز 1983 ، ص. 110.
  49. فيكرز 1983 ، ص 131.
  50. 1 2 3 4 فيكرز 1983 ، ص 16.
  51. 1 2 فيكرز 1983 ، ص. 112.
  52. فيكرز 1983 ، ص 57.
  53. 1 2 فيكرز 1983 ، ص. 13.
  54. فيكرز 1983 ، ص 144.
  55. فيكرز 1983 ، ص 15.
  56. 1 2 فيكرز 1983 ، ص. 67.
  57. فيكرز 1983 ، ص 147.
  58. كامبريدج للاتصالات 1983 ، ص 39.
  59. فيكرز 1983 ، ص 31-32.
  60. كامبريدج كوميونيكيشن 1983 ، ص 22.
  61. فيكرز 1983 ، ص 129.
  62. فيكرز 1983 ، ص 130.
  63. فيكرز 1983 ، ص 121.
  64. فيكرز 1983 ، ص 163.
  65. فيكرز 1983 ، ص 74.
  66. فيكرز 1983 ، ص 42.
  67. فيكرز 1983 ، ص 73.
  68. 1 2 فيكرز 1983 ، ص. 14.
  69. فيكرز 1983 ، ص 143.
  70. فيكرز 1983 ، ص 69.
  71. فيكرز 1983 ، ص 32، 51.
  72. فيكرز 1983 ، ص 180.
  73. فيكرز 1983 .
  74. فيكرز 1983 ، ص 141.
  75. فيس، بيتر ج. "دليل مستخدم سينكلير ZX80 الأساسي بدقة 4K لجهاز ZX80" . بيترفيس، الأرشيف الكمي .
  76. 1 2 "دليل المستخدم الإلكتروني 2048" . تحميل ZX - عالم أجهزة الكمبيوتر TIMEX . تم الاطلاع عليه بتاريخ 25 يونيو 2026 .
  77. "برنامج تجريبي بلغة BASIC 64" . شركة Spectrum Computing . 1985.
  78. "دليل المستخدم 2068 عبر الإنترنت" . تحميل ZX - عالم أجهزة الكمبيوتر TIMEX . تم الاطلاع عليه بتاريخ 25 يونيو 2026 .
  79. ^ “Microsete N.°46، Maio 1987” (PDF) . تحميلx.com .
  80. "Timex Computer 3256, Timex Portugal" . k1.spdns.de .
  81. 1 2 3 4 5 6 7 8 "Sinclair BASIC" . عالم Spectrum Classic . تم الاطلاع عليه بتاريخ 18 أبريل 2025 .
  82. "Beta Basic at Spectrum Computing – Sinclair ZX Spectrum games, software and hardware" . Spectrum Computing . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  83. "YS MegaBasic في Spectrum Computing - ألعاب وبرامج وأجهزة Sinclair ZX Spectrum" . Spectrum Computing . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  84. "نظام التشغيل Zebra OS64 في Spectrum Computing - ألعاب وبرامج وأجهزة Sinclair ZX Spectrum" . Spectrum Computing . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  85. "تاريخ لغة سينكلير بيسك - ويكي سينكلير" . sinclair.wiki.zxnet.co.uk .
  86. "تجميع ذاكرة القراءة فقط غير المكتملة لـ Spectrum" . مؤرشف من الأصل في 1 سبتمبر 2015.
  87. "ULAplus" . sites.google.com . مؤرشف من الأصل بتاريخ 25 مايو 2013. تم الاطلاع عليه بتاريخ 21 مارس 2016 .
  88. "ZX Interface 2 - SE BASIC (خرطوشة ROM من طرف ثالث)" . www.fruitcake.plus.com . مؤرشف من الأصل بتاريخ 25 مارس 2015. تم الاطلاع عليه بتاريخ 23 مارس 2016 .
  89. "OpenSE BASIC" . SourceForge . 16 أبريل 2013.
  90. "OpenSE BASIC في Spectrum Computing - ألعاب وبرامج وأجهزة Sinclair ZX Spectrum" . Spectrum Computing . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  91. "عالم الطيف - مُجمِّع HiSoft COLT" . عالم الطيف .
  92. "مُجمِّع HiSoft COLT في Spectrum Computing - ألعاب وبرامج وأجهزة Sinclair ZX Spectrum" . Spectrum Computing . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  93. "عالم سبكتروم - هاي سوفت بيسك" . عالم سبكتروم .
  94. "HiSoft BASIC في Spectrum Computing - ألعاب وبرامج وأجهزة Sinclair ZX Spectrum" . Spectrum Computing . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  95. "عالم الطيف - مُجمِّع الليزر" . عالم الطيف .
  96. "مُجمِّع الليزر في شركة سبكتروم للحوسبة - ألعاب وبرامج وأجهزة سينكلير زد إكس سبكتروم" . سبكتروم للحوسبة . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  97. "عالم الطيف - مُجمِّع لغة بيسك 'IS' من سوفتيك" . عالم الطيف .
  98. "مترجم الأعداد الصحيحة في شركة سبكتروم للحوسبة - ألعاب وبرامج وأجهزة سينكلير زد إكس سبكتروم" . سبكتروم للحوسبة . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  99. "مترجم الأعداد الصحيحة من عالم سبكتروم" . عالم سبكتروم .
  100. "World of Spectrum - Softek 'FP' Full Compiler" . World of Spectrum .
  101. "مترجم Softek 'FP' الكامل في Spectrum Computing - ألعاب وبرامج وأجهزة Sinclair ZX Spectrum" . Spectrum Computing . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  102. "World of Spectrum - ZIP Compiler" . World of Spectrum .
  103. "مُجمِّع ملفات ZIP في شركة Spectrum Computing - ألعاب وبرامج وأجهزة Sinclair ZX Spectrum" . Spectrum Computing . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  104. بيري، ستيفن (1984). "كلمات مفتاحية QL" . مؤرشف من الأصل في 22 فبراير 2017. تم الاسترجاع في 27 يونيو 2023 .
  105. "ألبوم صور سام كوبيه: سام بيسك" . www.mono.org . تم الاطلاع عليه بتاريخ 13 ديسمبر 2022 .
  106. "مشروع Sparky eZX BASIC" . rk-internet.com .
  107. "فيليب كيندال - أساسيات" . www.shadowmagic.org.uk .
  108. "فيليب كيندال - تشيك بيسك" . www.shadowmagic.org.uk .
  109. "Binsic ليس رمز تعليمات Sinclair" . 25 يونيو 2012.
  110. "ZX Spin and BASin - ULAplus" . sites.google.com .
  111. ^ "ZXDunny/SpecBAS" . 5 يونيو 2021 عبر جيثب.
  112. "ZX-Basic: مترجم متوافق مع الإصدارات السابقة، ولكنه مُحسَّن لبرامج Sinclair BASIC" .
  113. "ZX-Basicus: محلل/مُركِّب/مُحسِّن/مُفسِّر لبرامج Sinclair BASIC لجهاز ZX Spectrum 48K" . jafma.net .

فهرس

  • آدمسون، إيان؛ كينيدي، ريتشارد (1986). سنكلير وتكنولوجيا "الشروق" . دار بنغوين للنشر.
  • أردلي، نيل (1984). دليل مستخدم سينكلير زد إكس سبكتروم+ . دار نشر دورلينج كيندرسلي بالتعاون مع سينكلير ريسيرش. رقم ISBN 0-86318-080-9.
  • فيكرز، ستيفن (1982). برمجة BASIC لجهاز Sinclair ZX Spectrum . أبحاث سينكلير.
  • فيكرز، ستيفن (1983). برمجة لغة بيسك لجهاز سينكلير زد إكس سبكتروم (  الطبعة الثانية). أبحاث سينكلير.
  • كامبريدج كوميونيكيشن (1983). دليل استخدام محرك الأقراص المصغر وواجهة سينكلير زد إكس سبكتروم 1. سينكلير ريسيرش.