مباسيك
| نموذج | إلزامي |
|---|---|
| صمم بواسطة | مايكروسوفت |
| المطور | مايكروسوفت |
| نظام التشغيل | سي بي/م |
| موقع إلكتروني | www.microsoft.com |
| متأثر بـ | |
| أساسي | |
MBASIC هو تطبيق Microsoft BASIC للغة BASIC لنظام التشغيل CP/M . MBASIC هو سليل مفسرات Altair BASIC الأصلية التي كانت من بين أول منتجات Microsoft. كان MBASIC أحد الإصدارين من BASIC المرفقين مع جهاز الكمبيوتر Osborne 1. اسم "MBASIC" مشتق من اسم ملف القرص MBASIC.COM لمفسر BASIC.
بيئة

تتطلب النسخة 5 من MBASIC نظام CP/M مزودًا بذاكرة عشوائية (RAM) بحجم 28 كيلوبايت على الأقل ومحرك أقراص مرن واحد على الأقل.
على عكس إصدارات Microsoft BASIC-80 التي تم تخصيصها من قبل مصنعي أجهزة الكمبيوتر المنزلية لاستخدام ميزات الأجهزة الخاصة بالكمبيوتر، اعتمد MBASIC فقط على مكالمات نظام التشغيل CP/M لجميع الإدخال والإخراج. كانت وحدة التحكم CP/M (الشاشة ولوحة المفاتيح) والطابعة الخطية وأجهزة القرص متاحة فقط.
لم يكن MBASIC في شكله غير المخصص يحتوي على وظائف للرسومات أو الألوان أو عصي التحكم أو الفئران أو الاتصالات التسلسلية أو الشبكات أو الصوت أو حتى وظيفة الساعة في الوقت الفعلي . لم يدعم MBASIC بشكل كامل ميزات نظام التشغيل المضيف CP/M، على سبيل المثال، لم يدعم مناطق مستخدم CP/M لتنظيم الملفات على قرص مرن. نظرًا لأن أنظمة CP/M كانت عادةً مستخدمًا واحدًا ومستقلة، لم يكن هناك أي شرط لقفل الملفات أو السجلات أو أي شكل من أشكال تعدد المهام . بصرف النظر عن هذه القيود، كان يُنظر إلى MBASIC في ذلك الوقت على أنه تنفيذ قوي ومفيد للغة BASIC.
سمات
نظام اللغة
MBASIC هو مترجم . تم تخزين نص مصدر البرنامج في الذاكرة في شكل رمزي، مع استبدال كلمات BASIC الرئيسية برموز مكونة من بايت واحد مما يوفر مساحة الذاكرة ويسرع التنفيذ. تم تخزين أي سطر مسبوق برقم سطر كنص برنامج؛ تم تنفيذ عبارات BASIC غير مسبوقة برقم سطر على الفور كأوامر. يمكن سرد البرامج على الشاشة للتحرير، أو حفظها على القرص إما بتنسيق ثنائي مضغوط أو كنص ASCII عادي . تم تحديد كل سطر مصدر برقم، والذي يمكن استخدامه كهدف لنقل GOTO أو GOSUB . تم توفير أوامر تحرير السطر فقط. [1] غالبًا ما كان من المفيد حفظ البرنامج كنص عادي وتحريره باستخدام محرر كامل الميزات.
كان لزامًا على نص البرنامج والمتغيرات ومخازن القرص ونظام التشغيل CP/M نفسه أن يتقاسموا مساحة العنوان التي تبلغ 64 كيلوبايت لمعالج 8080. وعادةً ما يكون هناك أقل من 32 كيلوبايت من الذاكرة المتاحة للبرامج والبيانات عند بدء تشغيل MBASIC لأول مرة، حتى على جهاز مزود بذاكرة وصول عشوائي (RAM) سعة 64 كيلوبايت كاملة. REM ويمكن وضع أسطر التعليقات، التي تسبقها كلمة رئيسية أو علامة اقتباس، في نص البرنامج ولكنها تشغل مساحة ذاكرة قيمة، الأمر الذي ثبط عزيمة مستخدمي BASIC عن توثيق أكوادهم بالكامل. وللسماح بتشغيل برامج أكبر وأكثر تعقيدًا، دعمت الإصدارات اللاحقة من MBASIC وظائف تسمح بقراءة أجزاء من نص البرنامج وتنفيذها تحت سيطرة البرنامج (العبارات " CHAIN " و MERGE ". ولم يتم توفير أي دعم لتنفيذ أوامر "shell"، على الرغم من إمكانية تكرار هذه الوظيفة بواسطة مبرمج مصمم.
كانت إحدى المزايا الخاصة لبرنامج MBASIC هي رسائل الخطأ النصية الكاملة المقدمة لأخطاء بناء الجملة ووقت التشغيل. كما كان برنامج MBASIC يحتوي على وظيفة "تتبع" تعرض أرقام الأسطر أثناء تنفيذها. وفي حين احتلت هذه الوظيفة نفس مساحة الشاشة التي يشغلها إخراج البرنامج العادي، إلا أنها كانت مفيدة في اكتشاف حالات مثل الحلقات اللانهائية .
الملفات والإدخال والإخراج
يمكن قراءة البيانات وتخزينها على القرص إما كملفات متسلسلة (محددة وفقًا لاتفاقية CP/M لـ CR / LF في نهاية كل سطر) أو كملفات وصول عشوائي بطول سجل ثابت، والتي يمكن استخدامها، في حالة وجود مبرمج محدد بشكل كافٍ، لإجراء معالجة سجل من نوع قاعدة البيانات. كان تنسيق Microsoft Binary Format للأرقام ذات الفاصلة العائمة خاصًا بالتنفيذ، مما يعني أنه لا يمكن تبادل البيانات إلا مع برامج أخرى تستخدم تمثيل نص ASCII أو باستخدام برمجة مكثفة لتحويل التنسيق الثنائي.
المتغيرات وأنواع البيانات
يدعم MBASIC أنواع البيانات التالية:
- بيانات أحرف مكونة من 8 بتات، في سلاسل بطول يتراوح من 0 إلى 255 حرفًا؛
- أعداد صحيحة مكونة من 16 بت ؛
- نقطة عائمة 32 بت (دقة واحدة)، تعادل ستة أرقام عشرية، مع أس مكون من رقمين؛
- فاصلة عائمة 64 بت (دقة مزدوجة)، تعادل ستة عشر رقمًا عشريًا، مع أس مكون من رقمين.
تتضمن مشغلات السلسلة تحديد السلسلة الفرعية، والتسلسل، والتعيين، واختبار المساواة.
تم السماح بمصفوفات من الأنواع المذكورة أعلاه بما يصل إلى 7 أبعاد، ولكن لم تعمل أي وظائف أو مشغلات على المصفوفات؛ على سبيل المثال، لم يكن هناك تعيين للمصفوفات. على عكس بعض تطبيقات BASIC الأخرى في ذلك الوقت، لم يوفر MBASIC الدعم لعمليات المصفوفة أو الأعداد المركبة أو نوع البيانات العشري (BCD) للحسابات المالية. تم تنفيذ جميع عمليات النقطة العائمة في البرنامج لأن أنظمة CP /M النموذجية لم يكن بها أجهزة النقطة العائمة . أعطت وظائف الرياضيات المضمنة ( الجيب وجيب التمام والظل واللوغاريتم الطبيعي والأسي والجذر التربيعي ) نتائج ذات دقة واحدة فقط. تم توفير مولد أرقام عشوائية زائفة للبرنامج ؛ اعتمد هذا على المستخدم لإدخال رقم أساسي للحصول على تسلسل من الأرقام المفيدة للألعاب وبعض المحاكاة. سمح MBASIC ولكنه لم يتطلب الكلمة الأساسية لعبارات التعيين.
LET
كانت الإصدارات المبكرة من لغة البرمجة BASIC على أجهزة الكمبيوتر الصغيرة سيئة السمعة بسبب أسماء المتغيرات التي تتكون من حرف واحد أو حرفين، مما جعل من الصعب تذكر معاني المتغيرات في البرامج المعقدة. سمحت النسخة 5 من لغة البرمجة BASIC باستخدام معرفات يصل طولها إلى 40 حرفًا، مما سمح للمبرمجين بإعطاء المتغيرات أسماء قابلة للقراءة.
التحكم في تدفق البرنامج
كان التحكم في تدفق البرنامج في MBASIC يتم التحكم فيه من خلال IF...THEN...ELSE... الاختبارات الشرطية WHILE...WEND والحلقات GOTO والتعليمات GOSUB . لم CASE يكن هناك أي بيان متاح، على الرغم من أن ON...GOTO... (GOTO المحسوب) يوفر فروعًا متعددة الاتجاهات. لم يكن للبرامج الفرعية أي معلمات وكانت جميع المتغيرات عالمية. لم يجعل MBASIC البرمجة المنظمة إلزامية للمبرمجين وكان من السهل كتابة كود السباغيتي .
PEEKs وPOKEs ووظائف المستخدم
لن يكتمل أي نقاش حول لغة البرمجة BASIC على أجهزة الكمبيوتر ذات الثماني بتات في أواخر السبعينيات وأوائل الثمانينيات دون ذكر أهمية وظيفتي PEEK وPOKE للقراءة والكتابة مباشرة في الذاكرة. ونظرًا لأن هذه الأنظمة لم تكن تحتوي عادةً على حماية للذاكرة ، فقد سمح هذا للمبرمج بالوصول إلى أجزاء من نظام التشغيل أو وظائف لم تكن لتكون متاحة بخلاف ذلك. كما وفر هذا أيضًا فرصًا لبرامج المستخدم لتعليق النظام (عن طريق الخطأ، عادةً). على سبيل المثال، قد يستخدم مبرمج CP/M وظيفة POKE للسماح للغة BASIC بتبديل جهاز وحدة التحكم إلى المنفذ التسلسلي، إذا كان نظام BIOSPEEK يدعم ذلك. وبالنسبة للأجهزة ذات الساعات في الوقت الفعلي، فقد تم استخدام
مجموعة من التعليمات للوصول إلى الوقت.
بالنسبة للعمليات الأكثر تعقيدًا، سمح MBASIC بوظائف محددة من قبل المستخدم يمكن استدعاؤها من برنامج BASIC. تم وضع هذه الوظائف عادةً في منطقة محجوزة من الذاكرة، أو تم إدخالها في ثوابت سلسلة، كسلسلة من أكواد الآلة ( أكواد التشغيل ). كما قدم MBASIC أيضًا أجهزة INPوتعليمات OUTتقرأ وتكتب مباشرة إلى منافذ الإدخال/الإخراج الخاصة بأجهزة 8080. يمكن استخدام هذا للتحكم في الأجهزة الطرفية من برنامج BASIC إذا سمحت أجهزة النظام بذلك.
أي برامج MBASIC تستخدم PEEKو POKEو و وظائف مستخدم الكود الآلي، لم تكن قابلة للنقل بين الأجهزة دون إجراء تعديلات.
خلفاء MBASIC
بالإضافة إلى لغة البرمجة BASIC-80 من Microsoft لنظام التشغيل CP/M، كان هناك أيضًا إصدار مختلف من MBASIC متاحًا لنظام التشغيل ISIS-II .
MSX-BASIC هو أيضًا خليفة معروف لـ MBASIC، حيث يتميز بالعديد من الامتدادات المخصصة لأجهزة MSX .
كانت جميع وظائف لغة MBASIC الخاصة بـ CP/M متاحة في لغة BASICA أو GWBASIC القائمة على الأقراص في أجهزة الكمبيوتر الشخصية من نوع IBM ، الأمر الذي جعل نقل البرامج من أنظمة CP/M إلى الأنظمة المتوافقة مع أجهزة الكمبيوتر الشخصية ممكنًا. وكانت الرموز المستخدمة لتمثيل الكلمات الأساسية مختلفة، لذا كان لزامًا حفظ برامج CP/M في شكل مصدر ASCII. وعادةً ما يتم استبدال تسلسلات الإفلات الخاصة بتنسيق الشاشة التي يتم وضعها في إصدار CP/M بأوامر تحديد موضع المؤشر الموجودة في إصدارات الكمبيوتر الشخصي من لغة BASIC، وإلا فلن تكون هناك حاجة إلى إعادة الكتابة.
باسكوم
باعت شركة Microsoft مُجمِّع CP/M BASIC (المعروف باسم BASCOM ) والذي استخدم لغة مصدر مشابهة للغة MBASIC. يمكن تجميع برنامج تم تصحيح أخطائه باستخدام MBASIC باستخدام BASCOM. نظرًا لأن نص البرنامج لم يعد موجودًا في الذاكرة وكانت عناصر وقت التشغيل للمُجمِّع أصغر من المُفسِّر، فقد توفرت ذاكرة أكبر لبيانات المستخدم. زادت سرعة تنفيذ البرنامج الحقيقي بنحو ثلاثة أضعاف.
رحب المطورون بـ BASCOM كبديل لـ CBASIC الشهير ولكنه بطيء وخرقاء . على عكس CBASIC، لم تكن BASCOM بحاجة إلى معالج مسبق لرمز مصدر MBASIC، لذا يمكن تصحيح أخطائها بشكل تفاعلي. [2] كان أحد العيوب هو متطلب Microsoft للحصول على نسبة 9٪ من الإتاوات لكل نسخة مجمعة من البرنامج [3] و 40 دولارًا لمجموعات الأجهزة والبرامج. كما احتفظت الشركة بالحق في تدقيق السجلات المالية للمطورين. نظرًا لأن معدلات الإتاوات النموذجية للمؤلفين للبرمجيات كانت 10-25٪، فقد ذكرت InfoWorld في عام 1980 أن معدل الإتاوات الإضافي البالغ 9٪ لـ BASCOM "يمكن أن يجعل تطوير البرامج غير مربح تمامًا"، وخلصت إلى أن "مايكروسوفت لديها الحل الفني [لعيوب CBASIC]، ولكن ليس الحل الاقتصادي". [2]
أهمية MBASIC
كانت لغة MBASIC أداة مهمة في عصر أجهزة الكمبيوتر CP/M ذات الثماني بتات. كان بإمكان المستخدمين المهرة كتابة روتينات بلغة MBASIC لأتمتة المهام التي كانت تُنفَّذ في الأنظمة الحديثة بواسطة أوامر برامج التطبيقات القوية أو لغات البرمجة النصية. كان تبادل برامج MBASIC المفيدة وظيفة شائعة لمجموعات مستخدمي الكمبيوتر . كان إدخال قوائم BASIC الطويلة من مقال في مجلة إحدى طرق "تمهيد" البرامج في نظام CP/M جديد. تمت كتابة مُجمِّع واحد على الأقل للغة عالية المستوى بلغة MBASIC، وتم كتابة العديد من الألعاب الصغيرة وبرامج المرافق التي تتراوح من بضعة أسطر إلى بضعة آلاف من أسطر التعليمات البرمجية.
استخدامات أخرى
MBASIC هو أيضًا اسم مُجمِّع BASIC تجاري لعائلة متحكمات PIC من Microchip Technology التي طورتها شركة Basic Micro, Inc.، وهي غير مرتبطة بمُفسِّر CP/M.
مراجع
- ^ تتطلب منتجات CP/M التي توفر دعم التحرير على الشاشة الكاملة إجراءات تثبيت خاصة بها لتخصيص البرنامج لجهاز الكمبيوتر الطرفي المحدد المستخدم كوحدة تحكم للنظام. لم يتم توفير أي دعم داخل CP/M لتوحيد قدرات الجهاز الطرفي.
- ^ "افتتاحية". InfoWorld . 1980-08-18. ص 8.
- ^ Pournelle, Jerry (ديسمبر 1980). "BASIC, Computer Languages, and Computer Adventures". BYTE . ص. 222 . تم الاسترجاع في 18 أكتوبر 2013 .
- توم هوجان ومايك إياناميكو، دليل المستخدم المرجعي لأوزبورن 1 ، (1982) شركة أوزبورن للكمبيوتر
- ديفيد أ. لين، دليل لغة BASIC ، الطبعة الثانية، موسوعة لغة الكمبيوتر BASIC، (1981)، دار نشر Compusoft
- دليل مرجعي لبرنامج BASIC 80 ، شركة Microsoft Corporation، بدون تاريخ
