موضوع مقاله: ام بیسیک | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # ام بیسیک | مقدمه: بر خلاف نسخه‌های مایکروسافت بیسیک - ۸۰ که توسط سازندگان کامپیوتر خانگی که برای استفاده از ویژگی‌های سخت‌افزاری خاصی از کامپیوترسفارشی بودند، MBASIC فقط درCP/M خواستار سیستم عامل برای تمام ورودی و خروجی بود. | ## بخش 1: ام بیسیک | فقط CP/M کنسول (روی صفحه نمایش و صفحه کلید)، چاپگر خط، و دستگاه‌های دیسک در دسترس بود. MBASIC به‌طور کامل از ویژگی‌های سیستم عامل CP/M پشتیبانی نمی‌کند، به عنوان مثال، این کار را کاربر CP/M برای سازماندهی فایل‌ها بر روی دیسکت پشتیبانی نمی‌کند. از آنجا که CP/M به‌طور معمول برای سیستم‌های تک کاربره و به تنهایی بود هیچ گونه پیش‌بینی برای فایل‌ها یا قفل کردن رکورد، یا هر فرم از عملکرد چند تکلیفی ندارد. جدای از این محدودیت‌ها، MBASIC در آن زمان برای اجرای قدرتمند و مفید از بیسیک در نظر گرفته شده بود. منبع متن برنامه که به صورت tokenized در حافظه ذخیره می‌شود، با کلمات کلیدی بیسیک با یک بایت تعویض می‌شود که این کار فضای حافظه را ذخیره می‌کند. پیشوند هر خط بایک شماره خط به متن برنامه اضافه می‌شود؛ جملات اساسی نه پیشوند با یک شماره خط بلافاصله به عنوان دستورها اجرا شدند. برنامه‌ها می‌توانند بر روی صفحه نمایش برای ویرایش لیست شوند یا بر روی دیسک سخت فشرده شوند ویا در هردو فرمت باینری ومتن ساده اسکی قرار بگیرند. هرخط منبع بایک عدد شناخته می‌شود که می‌تواند به عنوان هدف رفتن یا انتقال مورد استفاده قرار گیرد. فقط خط دستورها ویرایش فراهم شده بود.[۱] این بود که اغلب مفید است برای ذخیره یک برنامه به عنوان متن ساده و ویرایش آن با یک ویرایشگر کامل برجسته. متن برنامه‌ها، متغیرها، دیسک بافر سیستم عامل CP/M خود ۶۴ کیلوبایت از فضای آدرس پردازنده ۸۰۸۰ به اشتراک گذاشت. به‌طور معمول هنگامی که برای اولین بار درMBASIC حافظه کمتر از ۳۲ کیلوبایت در دسترس وجود دارد برای برنامه‌ها و داده‌ها، حتی در یک ماشین مجهز به ۶۴ کیلوبایت کامل ازRAM نیاز است. توضیحات خطوط، پیشوند با کلمات کلیدی رم یا علامت می‌تواند در متن برنامه قرار داده شود اما در زمان فضای باارزش حافظه کاربران بیسیک رابه‌طور کامل از کد مستندسازی دلسرد کرد. برای اجازه دادن به برنامه‌های بزرگتر و پیچیده‌تر اجرا می‌شود، بعد از نسخه پشتیبانی از توابع MBASIC که اجازه دادن بخش‌هایی از متن برنامه خوانده تحت کنترل برنامه واجراشود هیچ پشتیبانی برای اعدام فرمان «پوسته»، ارائه نشده بود هر چند این قابلیت می‌توانست توسط یک برنامه‌نویس مشخص تکرارشود. | ## بخش 2: ام بیسیک | مزیت خاصی از MBASIC این است که متن کامل پیغام خطا برای ترکیب نحوی و خطاهای زمان اجرا فراهم شده‌است. MBASIC نیز یک تابع «ردیابی» دارد که شماره خط را نمایش می‌دهد که به عنوان خط آن‌ها اعدام شدند. در حالی که این فضابر روی صفحه نمایش همان را به عنوان خروجی برنامه نرمال نشان می‌دهد، آن برای چنین شرایطی برای تشخیص حلقه بی پایان مفیداست. فایل‌های ورودی /خروجی داده‌ها می‌تواند خوانده ویابرروی دیسک به صورت فایل‌های پی در پی ذخیره شوند ویا به‌طور ثابت طول رکورد فایل‌های با دسترسی تصادفی، که، می‌به اندازه کافی به یک برنامه‌نویس داده می‌شود می‌تواند در پایگاه داده مورد استفاده قرار گیرد. مایکروسافت فرمت دودویی برای اعداد با ممیز شناور انحصاری بودند به این معنا که داده تنها می‌تواند با دیگر برنامه‌ها با استفاده ازنمایندگی متن اسکی یا دیگر برنامه گسترده به فرمت باینری تبدیل شود. متغیرهاو انواع داده MBASICاز انواع دادهای زیر پشتیبانی می‌کند: داده کاراکتری ۸بیتی، در طول رشته از ۰–۲۵۵ کاراکتر؛ بیت اعداد صحیح؛ بیتی با ممیز شناور (دقت یگانه)، معادل رقم در مبنای شش، با توان دو رقمی؛ بیتی با ممیز شناور (دقت)، معادل رقم در مبنای شانزده، با توان دو رقمی. عملگرهای رشته‌ای شامل زیر رشته انتخاب، الحاق، مأموریت، و آزمایش برای برابری است. آرایه از نوع فوق تا ابعاد ۷ اجازه دارد، اما هیچ تابعی وجود ندارد که برای عمل روی آرایه (به عنوان مثال، مقدار دهی به آرایه) ایجاد شده باشد. بر خلاف برخی از پیاده‌سازی بیسیک آن زمان، MBASIC برای عملیات ماتریس، اعداد مختلط، یا دهدهی (BCD) نوع داده برای محاسبات مالی هیچ پشتیبانی ارائه نمی‌دهد. تمام عملیات ممیز شناور درعلوم نرم‌افزارانجام می‌شود و سیستمCP/Mسخت‌افزاری برای عملیات ممیز شناورنداشت. توابع ساخته شده در ریاضیات (سینوس، کسینوس، تانژانت، ورود به سیستم طبیعی، نمایی، ریشه مربع) تنها نتایج با دقت یگانه را می‌دهند. نرم‌افزار شبه تصادفی ژنراتور شماره ارائه شده بود، این نرم‌افزاربا تکیه به کاربر دربدست آوردن دنباله‌ای از اعداد مفید برای بازی‌ها و برخی شبیه‌سازی‌ها بود. ورژن‌های اولیه از کامپیوترهای شخصی بیسیک بدنام شد برای یک یا دوکاراکتر که نام‌های متغیربا معانی متغیر مشکل در برنامه‌های پیچیده برای فراخواندن ساخته بود. | ## بخش 3: ام بیسیک | نسخه ۵ MBASIC شناسه‌های مجاز از متغیرهاتاطول ۴۰ کاراکترداد، که به برنامه‌نویس اجازه می‌دهد نام‌های قابل خواندن بگیرد. هیچ جمله دیگری در دسترس نبود اگر چه یک go toچند شاخه به وجود می‌آورد، زیر برنامه‌ها پارامتری نداشتند و همه متغیرها globalبودند. mbasic ساختار اجباری برای برنامه نویسان به وجود نمی‌آورد و برای همین نوشتن کد اسپاگتی با آن آسان بود. از آنجا که این سیستم‌ها به‌طور معمول حفاظت از حافظه ندارند این به برنامه‌نویس اجازه می‌دهد که به بخش‌هایی از سیستم عامل یا توابعی که در غیر اینصورت در دسترس نیستند دسترسی یابد. این همچنین فرصت‌های نامحدودی رابرای استفاده‌کنندگان برنامه برای قطع سیستم فراهم می‌کند.. به عنوان مثال یک برنامه‌نویس cp/M ممکن است از تابعpokeبرای تعویض دستگاه کنسول به پورت سریال استفاده کندوbasicاجازه این کار را بدهد اگر سیستم بایاس آن را پشتیبانی کند. برای ماشین‌های با زمان واقعی از دستورالعملpeeks ممکن است برای دسترسی به زمان استفاده شود. برای عملیات‌های پیچیده‌تر، MBASIC به کاربر اجازه تعریف تابع‌هایی را می‌دهدکه یک برنامه پایه را صدا بزنند، این هابه‌طور معمول در یک قسمت از قرار گرفته یا به وسیله POKEd ثابت رشته، به عنوان مجموعه‌ای از کدهای دستگاه قرار می‌گیرند.MBASIC همچنین سخت افزاردستورها داخلی و خارجی که به‌طور مستقیم در سخت‌افزار داخلی و خارجی۸۰۸۰ خوانده و نوشته می‌شوند را فراهم می‌کند. این ممکن است برای کنترل دستگاه‌های جانبی، هر چند درسیستمcp/M، وهمه دستورها وروردی خروجی که قبلاً برای استفاده سیستم بود مورد استفاده قرارگیرد. از آنجا که متن برنامه در حافظه بزرگ نبودوالمان‌های زمان اجرا از مترجم کوچکتر بودند بیشتر حافظه برای داده‌های کاربر در دسترس بودو سرعت اجرای برنامه ۸–۱۰ برابرافزایش یافته بود. به‌طور معمول قالب بندی صفحه نمایش دنباله فراری را در ورژن‌های cp/Mقرار داد که با دستورها موقعیت مکان نما در ورژن‌های basicپیدا شد که در غیر این صورت کمی نیاز به کمی بازنویسی خواهد بود. کاربران ماهرمی‌توانستند کارهای روزمره را در MBASICبنویسند وبه‌طور خودکار انجام دهند که در سیستم‌های مدرن روز به وسیله دستورها برنامه‌های قدرتمند یا زبان‌های برنامه‌نویسی انجام می‌شود. | ## جمع‌بندی | حداقل یک کامپایلر برای زبان سطح بالا در MBASIC نوشته شده بود، و برای بسیاری از بازی‌های کوچک و برنامه‌های ابزار گرفته از چند خط به چند هزار خط کد نوشته شده بود.