لغة IBM BASIC

لغة IBM Personal Computer BASIC ، أو اختصارًا IBM BASIC ، هي لغة برمجة أطلقتها شركة IBM لأول مرة مع جهاز IBM Personal Computer، طراز 5150 (IBM PC) عام 1981. أصدرت IBM أربعة إصدارات مختلفة من مترجم لغة Microsoft BASIC ، المرخص من Microsoft لأجهزة PC و PCjr . وهي: Cassette BASIC، وDisk BASIC، وAdvanced BASIC (BASICA)، وCartridge BASIC. تم تضمين إصدارات Disk BASIC وAdvanced BASIC مع نظام التشغيل IBM PC DOS حتى الإصدار 4. إضافةً إلى ميزات معيار ANSI للغة BASIC ، وفرت إصدارات IBM دعمًا لأجهزة الرسومات والصوت في سلسلة أجهزة IBM PC. كان بالإمكان إدخال شفرة المصدر باستخدام محرر ملء الشاشة، ووُفرت إمكانيات محدودة لتصحيح أخطاء البرامج الأساسية . أصدرت شركة IBM أيضًا نسخة من مترجم Microsoft BASIC لأجهزة الكمبيوتر الشخصية بالتزامن مع إصدار نظام التشغيل PC DOS 1.10 في عام 1982.
خلفية
منحت شركة IBM ترخيص استخدام لغة Microsoft BASIC لأجهزة الكمبيوتر الشخصية التابعة لها، على الرغم من امتلاكها بالفعل نسخة خاصة بها من لغة BASIC لأجهزة الكمبيوتر المركزية الخاصة بها. قال دون إستريدج : "كان لدى Microsoft BASIC مئات الآلاف من المستخدمين حول العالم. كيف يُمكن لأحد أن يُجادل في ذلك؟" [ 1 ]
IBM Cassette BASIC
كانت لغة IBM Cassette BASIC تأتي بذاكرة قراءة فقط (ROM) سعتها 32 كيلوبايت ، منفصلة عن ذاكرة BIOS ROM الخاصة بجهاز IBM PC الأصلي (سعتها 8 كيلوبايت) ، ولم تكن تتطلب نظام تشغيل . كانت Cassette BASIC توفر واجهة المستخدم الافتراضية التي يستدعيها BIOS عبر INT 18h في حال عدم وجود محرك أقراص مرنة مثبت أو إذا لم يعثر رمز الإقلاع على قرص مرن قابل للإقلاع عند بدء التشغيل. استمدت Cassette BASIC اسمها من استخدامها لأشرطة الكاسيت بدلاً من الأقراص المرنة لتخزين البرامج والبيانات. تم دمج Cassette BASIC في ذاكرة ROM الخاصة بجهاز PC و XT الأصليين ، وفي الطرازات الأولى من سلسلة PS/2 . تدعم هذه اللغة تحميل البرامج وحفظها فقط على واجهة شريط الكاسيت من IBM ، وهي غير متوفرة في الطرازات الأحدث من الطراز 5150 الأصلي. كان الإصدار الأساسي من 5150 مزودًا بذاكرة وصول عشوائي (RAM) سعتها 16 كيلوبايت فقط ، وهي كافية لتشغيل Cassette BASIC. مع ذلك، نادراً ما استُخدمت لغة Cassette BASIC لأن عدداً قليلاً من أجهزة الكمبيوتر الشخصية كان يُباع بدون محرك أقراص، ومعظمها كان يُباع بنظام التشغيل PC DOS وذاكرة وصول عشوائي كافية لتشغيل Disk BASIC على الأقل، بل إن العديد منها كان يُشغل Advanced BASIC أيضاً. توجد ثلاثة إصدارات من Cassette BASIC: C1.00 (الموجودة في أجهزة IBM PC المبكرة ذات اللوحات الأم بسعة 16-64 كيلوبايت)، وC1.10 (الموجودة في جميع أجهزة IBM PC اللاحقة، وXTs، وATs، وPS/2s)، وC1.20 (الموجودة في PCjr).
IBM Disk BASIC
تم تضمين برنامج IBM Disk BASIC (BASIC.COM) في نظام التشغيل IBM PC DOS الأصلي . ونظرًا لاستخدامه ذاكرة القراءة فقط (ROM) الخاصة ببرنامج BASIC على أشرطة الكاسيت بسعة 32 كيلوبايت، [ 2 ] لم يكن برنامج BASIC.COM يعمل حتى على أجهزة الكمبيوتر الشخصية المتوافقة للغاية ، مثل جهاز Compaq Portable . [ 3 ] وقد اشتق اسم Disk BASIC من استخدامه للأقراص المرنة وأشرطة الكاسيت لتخزين البرامج والبيانات. وقد صحح الكود المُعتمد على القرص الأخطاء في الكود الموجود في ذاكرة القراءة فقط، وأضاف دعمًا للأقراص المرنة والمنفذ التسلسلي .
يمكن تمييز لغة Disk BASIC من خلال استخدام الحرف D قبل رقم الإصدار. فهي تُضيف دعمًا للأقراص وبعض الميزات غير الموجودة في Cassette BASIC، ولكنها لا تتضمن وظائف الصوت أو الرسومات المُوسّعة الموجودة في BASICA. كان الغرض الأساسي من Disk BASIC هو توفير نسخة "خفيفة" لأجهزة IBM PC ذات ذاكرة 48 كيلوبايت فقط: حيث كان ملف BASIC.COM يحتوي على حوالي 23 كيلوبايت من الذاكرة الحرة لبرامج المستخدم، بينما كان ملف BASICA يحتوي على حوالي 17 كيلوبايت فقط. بحلول عام 1986، كانت جميع أجهزة الكمبيوتر الشخصية الجديدة تُشحن بذاكرة لا تقل عن 256 كيلوبايت، وقامت إصدارات DOS اللاحقة للإصدار 3.00 بتقليص Disk BASIC إلى مجرد برنامج صغير يستدعي BASICA.COM للتوافق مع ملفات الدفعات. حتى مع كل هذه الذاكرة العشوائية الزائدة، كانت BASIC لا تزال تُخصّص وتُدير حوالي 61 كيلوبايت فقط لبرامج المستخدم، سواء كانت Cassette BASIC أو BASIC.COM أو BASICA.
لغة IBM Advanced BASIC
تم تضمين لغة IBM Advanced BASIC (BASICA.COM) أيضًا في نظام التشغيل IBM PC DOS الأصلي، وهي تتطلب وجود كود Cassette BASIC في ذاكرة القراءة فقط (ROM). [ 2 ] أضافت هذه اللغة وظائف مثل الوصول إلى ملفات الأقراص المرنة، وتخزين البرامج على القرص، وتشغيل الصوت أحادي القناة باستخدام مكبر الصوت المدمج في الكمبيوتر، ووظائف رسومية لضبط ومسح وحدات البكسل ، ووظائف مشابهة لرسم الخطوط والدوائر وتحديد الألوان، بالإضافة إلى معالجة الأحداث للاتصالات وضغطات عصا التحكم. لا تعمل لغة BASICA على أجهزة الكمبيوتر غير التابعة لشركة IBM (حتى تلك التي تُسمى "متوافقة بنسبة 100%") أو على طرازات IBM الأحدث، لأنها تفتقر إلى كود ROM BASIC اللازم.
تتطابق إصدارات BASICA مع إصدارات أنظمة DOS المقابلة لها، بدءًا من الإصدار 1.00 وانتهاءً بالإصدار 3.30. لا تدعم الإصدارات الأولى من BASICA المجلدات الفرعية، وتعمل بعض أوامر الرسومات بشكل مختلف قليلاً. على سبيل المثال، عند LINEاستخدام الأمر لرسم خطوط تمتد خارج الشاشة، يقوم BASIC ببساطة بتقاطعها مع أقرب خط مجاور، بينما في BASIC 2.x والإصدارات الأحدث، تمتد الخطوط خارج الشاشة دون تقاطع. PAINTيبدأ الأمر في BASIC 1.x بالتعبئة عند الإحداثيات المحددة ويتوسع للخارج في اتجاهين متناوبين لأعلى ولأسفل، بينما في BASIC 2.x يملأ كل شيء أسفل إحداثيات البداية، ثم بعد الانتهاء، يملأ كل شيء أعلاها. PAINTيستخدم أمر BASIC 1.x أيضًا مكدس النظام للتخزين، وقد ينتج عنه OVERFLOWخطأ عند تعبئة مناطق معقدة. ولحل هذه المشكلة، CLEARيمكن استخدام الأمر لتوسيع مكدس BASIC (الحجم الافتراضي 128 بايت). لا يستخدم BASIC 2.x المكدس عند الرسم وبالتالي فهو خالٍ من هذه المشكلة.
كان Compaq BASIC 1.13 أول إصدار مستقل (لا يتطلب Cassette BASIC) من BASIC لأجهزة الكمبيوتر الشخصية، بالإضافة إلى كونه الإصدار الوحيد من BASIC إلى جانب IBM BASICA 1.00 و 1.10 الذي يستخدم FCBs ويتضمن عبارة LINE الأصلية مع الخطوط المتقاطعة ( PAINTتعمل العبارة في Compaq BASIC 1.13 كما هو الحال في جميع الإصدارات اللاحقة من BASICA/GW-BASIC: فهي تستخدم خوارزمية التعبئة الجديدة ولا تستخدم المكدس).
تتضمن الإصدارات المبكرة من نظام التشغيل PC DOS العديد من برامج BASIC التجريبية التي أظهرت قدرات الكمبيوتر الشخصي، بما في ذلك لعبة BASICA DONKEY.BAS .
برنامج Microsoft GW-BASIC مطابق لبرنامج BASICA، [ 4 ] باستثناء تضمين كود Cassette BASIC في البرنامج، لذلك يعمل على أجهزة الكمبيوتر غير التابعة لشركة IBM ونماذج IBM اللاحقة التي تفتقر إلى Cassette BASIC في ذاكرة القراءة فقط (ROM).
خرطوشة IBM PCjr BASIC
كانت نسخة خرطوشة ROM من لغة BASIC متوفرة فقط على جهاز IBM PCjr ، الذي تم شحنه عام 1984، ودعمت أوضاع الرسومات الإضافية وإمكانيات الصوت المتاحة على ذلك الجهاز. [ 5 ] وهي نسخة محسّنة من لغة BASIC المتقدمة. [ 6 ] كانت لغة BASIC الموجودة على الخرطوشة تعمل فقط ضمن أول 128 كيلوبايت من ذاكرة جهاز PCjr، ولم تكن متوافقة مع ذاكرة الوصول العشوائي القابلة للتوسيع، أي أنه لا يمكن استخدام وظيفة DEF SEG للإشارة إلى مقاطع الذاكرة التي تقع فوق &H1FF0.
كان يتم تفعيل برنامج Cartridge BASIC بكتابة BASICA في موجه أوامر DOS. في المقابل، كانت إصدارات IBM BASICA 2.1 وما فوق ترفض التشغيل إذا اكتشفت جهاز PCjr، ولكن كان من الممكن تعديلها لتجاوز هذا القيد.
عملية
يتم تحميل لغة BASIC من شريط الكاسيت عند تشغيل جهاز كمبيوتر شخصي أو كمبيوتر صغير بدون قرص أو خرطوشة قابلة للتشغيل. يتم تحميل لغتي BASIC من القرص وBASIC المتقدمة عند كتابة اسم الأمر الخاص بهما (BASIC وBASICA على التوالي) في موجه أوامر DOS (باستثناء كمبيوتر PCjr، الذي يُفعّل لغة BASIC من الخرطوشة بدلاً من ذلك)، مع بعض المعلمات الاختيارية للتحكم في تخصيص الذاكرة. عند التحميل، تظهر رسالة تعريف تسجيل الدخول مع رقم إصدار البرنامج، ويبدأ محرر نصوص بملء الشاشة (انظر الصور على اليمين). تُخصص مفاتيح الوظائف لأوامر شائعة، والتي تظهر أسفل الشاشة. يمكن كتابة الأوامر لتحميل البرامج أو حفظها، كما يمكن كتابة التعبيرات وتنفيذها في الوضع المباشر (الفوري) . إذا بدأ سطر الإدخال برقم، يخزن نظام اللغة سطر النص التالي كجزء من مصدر البرنامج، مما يسمح للمبرمج بإدخال البرنامج بالكامل سطرًا بسطر، مع ترقيم الأسطر قبل كل عبارة. عند عرضها على الشاشة، تُعرض الأسطر بترتيب تصاعدي لرقم السطر. يمكن إجراء تغييرات على سطر معروض من شفرة البرنامج المصدرية بتحريك المؤشر إلى السطر باستخدام مفاتيح الأسهم، ثم الكتابة فوق النص الظاهر على الشاشة. تُخزَّن شفرة البرنامج المصدرية داخليًا بصيغة مُجزَّأة ، حيث تُستبدل الكلمات المحجوزة برمز أحادي البايت لتوفير المساحة وتقليل وقت التنفيذ. يمكن حفظ البرامج بصيغة مُجزَّأة مُضغوطة، أو اختياريًا كملفات نصية ASCII لنظام DOS [ 7 ] ، والتي يمكن عرضها وتعديلها باستخدام برامج أخرى. ومثل معظم تطبيقات DOS الأخرى، فإن IBM BASIC برنامج نصي ، ولا يحتوي على ميزات خاصة بالنوافذ أو الأيقونات أو دعم الماوس أو التحرير بالقص واللصق .
إرث
GW-BASIC ، الذي تم إطلاقه في عام 1983، هو منتج مايكروسوفت قائم على الأقراص تم توزيعه مع أجهزة الكمبيوتر غير التابعة لشركة IBM MS-DOS ويدعم جميع أوضاع وميزات الرسومات الخاصة بـ BASICA على أجهزة الكمبيوتر التي لا تحتوي على IBM Cassette BASIC.
يُعدّ برنامج QBasic ، الذي أُطلق عام 1991 ، خليفةً لبرنامج BASICA لأنظمة MS-DOS وPC DOS، والذي توقف تطويره الآن. وهو نسخة مُبسّطة من مُجمّع Microsoft QuickBASIC : QBasic مُفسّر ولا يُمكنه تجميع ملفات المصدر، بينما يُمكن لـ QuickBASIC تجميع البرامج وحفظها بصيغة ملف EXE التنفيذي. كما يتضمن QuickBASIC بعض عبارات ووظائف اللغة المُتقدّمة (معظمها يتعلق بالتفاعل مع نظام التشغيل وبرمجة لغة الآلة منخفضة المستوى )، ويدعم البرامج متعددة الوحدات، ويتضمن ميزات مُتقدّمة لتصحيح الأخطاء، وكلها غير موجودة في QBASIC.
مراجع
- ↑ كوران، لورانس جيه؛ شوفورد، ريتشارد إس. (نوفمبر 1983). "إستريدج من شركة آي بي إم" . بايت . الصفحات 88-97 . تم الاطلاع عليه بتاريخ 19 مارس 2016 .
- 1 2 ويليامز، جريج (يناير 1982). "نظرة فاحصة على حاسوب IBM الشخصي" . بايت . ص 36. تم الاطلاع عليه في 19 أكتوبر 2013 .
- ↑ دامكي، مارك (يناير 1983). "جهاز كومباك المحمول" . بايت . الصفحات 30-36 . تم الاطلاع عليه بتاريخ 27 يوليو 2013 .
- ↑ راش، واين الابن (ديسمبر 1984). "جهاز الكمبيوتر الشخصي زينيث Z-150" . بايت . الصفحات 252-259 .
- ↑ تعليقات القراء: إصدارات IBM BASIC ، مجلة Compute!، العدد 78، نوفمبر 1986، صفحة 8، تم الاطلاع عليه في 23 ديسمبر 2011
- ↑ رسالة إعلان عن خراطيش IBM. 1983-11-01 ().
- ↑ تنتهي ملفات نص DOS بكل سطر بزوج من الأحرف CR ( إرجاع المؤشر ، ASCII 13) و LF ( تغذية السطر ، ASCII 10)، بهذا الترتيب.
روابط خارجية
- نبذة تاريخية عن تطور لغة BASIC www.phys.uu.nl/~bergmann/history.html (مؤرشف)
- محاكي PCE IBM PC — يحاكي لغة IBM Cassette BASIC وواجهة IBM Cassette مع محرك كاسيت تابع لجهة خارجية متصل
- POPBASIC و RUNBASIC اللذان يستدعيان وينسخان IBM Cassette BASIC
- مترجمو لغة BASIC
- تم إيقاف دعم Microsoft BASICs
- لغات البرمجة التي تم إنشاؤها عام 1981
- أجهزة الكمبيوتر الشخصية من نوع X86 من شركة IBM
- برنامج IBM
- عائلة لغات البرمجة الأساسية
- لغات برمجة مايكروسوفت
