Atari Microsoft BASIC
مائیکروسافٹ بیسک کے 6502 ورژن کے اٹاری مائیکروسافٹ بیسک اور اٹاری مائیکروسافٹ بیسک II ورژن کو اٹاری 8 بٹ مشینوں میں پورٹ کیا گیا۔ پہلا ورژن، جو 1981 میں ریلیز ہوا، اس کے لیے 32 کے بی ریم کی ضرورت تھی اور اسے فلاپی ڈسک پر فراہم کیا گیا تھا۔ دوسرے ورژن میں، جو اگلے سال جاری کیا گیا، زیادہ تر کوڈ ایک ROM کارتوس پر اختیاری فلاپی پر اضافی افعال کے ساتھ تھا۔ اٹاری مائیکروسافٹ بیسک معاصر بیسک جیسے ایپل سافٹ بیسک اور کموڈور بیسک کے ساتھ انتہائی مطابقت رکھتا تھا، ان کے اپنے اٹاری بیسک کے برعکس جو کچھ مختلف بولی تھی اور بہت سے طریقوں سے مطابقت نہیں رکھتی تھی۔ اٹاری بیسک کی طرح، اٹاری مائیکروسافٹ بیسک نے اٹاری پلیٹ فارم سے فائدہ اٹھانے کے لیے متعدد نئی کمانڈز اور خصوصیات شامل کیں۔ یہ صرف اٹاری بیسک کی اسی طرح کی خصوصیات کے ساتھ جزوی طور پر مطابقت رکھتے تھے۔ جب مائیکروسافٹ نے اپنے اصل انٹیل 8080 پر مبنی بیسک کو 6502 پر پورٹ کیا تو انہوں نے بہتر درستگی کے لیے فلوٹنگ پوائنٹ فارمیٹ کو اصل 32 بٹ فارمیٹ سے اختیاری 40 بٹ فارمیٹ تک بڑھانے میں وقت لیا۔ دونوں ورژن کو مرتب کرنے والے جھنڈے فراہم کر کے ایک ہی کوڈ سے مرتب کیا جا سکتا ہے۔ اگر 32 بٹ فارمیٹ استعمال کیا جائے تو نتیجہ کوڈ کی لمبائی صرف 8 کے بی سے کم ہو، اگر 40 بٹ فارمیٹ استعمال کیا جائے تو یہ 9 کے بی کے قریب تھا۔ اٹاری 8 بٹ ہوم کمپیوٹرز کو 8 کے بی روم کارتوس کے لیے سلاٹ کے ساتھ ڈیزائن کیا گیا تھا۔ اٹاری کے پروگرامرز نے مائیکروسافٹ کے بیسک کو ایک کارتوس میں فٹ کرنے کے لیے جدوجہد کی جبکہ پلیٹ فارم سے فائدہ اٹھانے کے لیے خصوصیات بھی شامل کیں۔ 1978 کے موسم گرما میں، اٹاری نے پورٹنگ کی کوشش کو آؤٹ سورس کرنے کا فیصلہ کیا تاکہ بیسک 1979 میں سسٹم کے آغاز کے لیے وقت پر تیار ہو جائے، اور اس کی وجہ سے وہ شیپرڈسن مائیکرو سسٹمز انکارپوریٹڈ (ایس ایم آئی) تک پہنچ گئے۔ ایس ایم آئی نے فوری طور پر فیصلہ کیا کہ یہ کام ناممکن ہے، اور اس کے بجائے بیسک کا مکمل طور پر نیا ورژن بنانے کی تجویز پیش کی۔ یہ اٹاری بیسک بن گیا اور 1979 میں اٹاری 400 اور 800 کے ساتھ جاری کیا گیا۔ اٹاری نے ایم ایس کوڈ کے ساتھ کام جاری رکھا اور 1981 میں فلاپی ڈسک پر اس کا ایک ورژن جاری کیا۔ اٹاری بیسک کے مقابلے میں ایم ایس میں معیاری کمانڈوں کی توسیعی رینج کے علاوہ، نئے ورژن میں گرافکس اور آواز اور پلیٹ فارم کی دیگر خصوصیات کے لیے متعدد اضافی کمانڈ شامل کیے گئے۔ اس میں انٹیجر متغیرات اور ایک مکمل انٹیجر ریاضی پیکیج بھی شامل تھا جس نے بہتر کارکردگی پیش کی۔ تاہم، چونکہ اس کے لیے کم از کم 32 کے بی ریم کی ضرورت ہوتی تھی اور یہ صرف ایک ڈسک سے چلتا تھا، اس لیے یہ کبھی خاص طور پر مقبول نہیں ہوا۔ ایک دوسری ریلیز، اٹاری مائیکروسافٹ بیسک II نے زیادہ تر کوڈ کو ایک توسیع شدہ 16 کے بی کارتوس پر منتقل کیا اور ڈسک پر زیادہ کم استعمال ہونے والے کوڈ کا ایک اضافی 11 کے بی رکھا، جس کا مطلب ہے کہ کراس پلیٹ فارم کے استعمال کے لیے بنائے گئے بہت سے پروگرام اب اکیلے کارتوس سے چلائے جا سکتے ہیں۔ 1982 میں ریلیز ہونے والی بیسک II میں بھی حقیقی دنیا کا بہت کم استعمال دیکھا گیا۔ تفصیلات بنیادی مترجم اسی 9 کے بی ایم او ایس 6502 کوڈ پر مبنی تھا جس نے کموڈور بیسک اور ایپل سافٹ بیسک کی بنیاد بھی بنائی، اور ان کے ساتھ بڑی حد تک مطابقت رکھتا تھا۔ اس کا ایک اہم پہلو سٹرنگ ہینڈلنگ سسٹم تھا، جو ان پلیٹ فارمز کی طرح ہی کوڈ پر مبنی تھا۔ اس کے برعکس، اٹاری بیسک نے ایک بالکل مختلف نظام استعمال کیا جس میں تاروں کو حروف کی صفوں کے طور پر سمجھا جاتا تھا اور یہ زیادہ تر دوسرے نظاموں کے ساتھ مطابقت نہیں رکھتا تھا، اور نہ ہی آسانی سے پورٹ کیا جاتا تھا۔ اس نے اصل 40 بٹ فارمیٹ فلوٹنگ پوائنٹ ریاضی لائبریری کو برقرار رکھا جس نے سسٹم کے آپریٹنگ سسٹم رومز میں بدنام زمانہ سست کو تبدیل کر دیا، اور اس طرح ریاضی کے کوڈ کو دوسرے پلیٹ فارمز کی طرح اسی رفتار سے چلایا، اور اٹاری بیسک سے کہیں زیادہ تیز۔ اس میں اضافی کارکردگی کے لیے ایک اضافی انٹیجر ریاضی پیکیج بھی شامل تھا۔ انٹیجر ریاضی کا نظام اس وقت شروع ہوا جب اسائنمنٹ ایک انٹیجر متغیر کے لیے تھی، یا لفظی اقدار تمام انٹیجرز تھیں۔ اگر دونوں میں سے کوئی بھی صحیح نہیں تھا، تو انٹیجر ویلیوز کو فلوٹنگ پوائنٹ میں تبدیل کیا جائے گا، حساب کے لیے فلوٹنگ پوائنٹ کوڈ کا استعمال کریں، اور پھر اسٹوریج کے لیے انٹیجر میں واپس تبدیل کیا جائے گا۔ کارکردگی سے متعلق ایک اور قابل ذکر بہتری لوپس سے متعلق تھی۔ اٹاری بیسک نے ان کو ایکزیکشن اسٹیک پر لائن نمبر رکھ کر انجام دیا، لہذا جب متعلقہ کا سامنا کرنا پڑا تو یہ معلوم کر سکتا تھا کہ کس لائن پر واپس لوپ کرنا ہے۔ اس کے برعکس، ایم ایس بیسک نے ہمیشہ اس لائن کی میموری لوکیشن کو اسٹیک پر رکھا تھا، جس کی وجہ سے وہ مماثل لائن کے لیے پورے پروگرام میں تلاش کیے بغیر اس پر واپس جا سکتا تھا۔ اٹاری بیسک میں یہ عجیب پن اس کی سست کارکردگی کی بنیادی وجوہات میں سے ایک ہے، اور چونکہ اٹاری مائیکروسافٹ بیسک میں یہ سچ نہیں تھا، اس لیے یہ عام طور پر اٹاری بیسک سے کہیں زیادہ تیزی سے چلتا تھا۔ اٹاری بیسک کے برعکس، جس نے ٹائپ کرنے پر پوری لائنوں کو تجزیہ اور ٹوکنائز کیا، ایم ایس بیسک نے صرف جزوی طور پر سورس کوڈ کو ٹوکنائز کیا۔ جب ایک لائن درج کی جاتی تھی، تو لائن نمبر کو ASCII سے 16 بٹ انٹیجر میں تبدیل کر دیا جاتا تھا، پہلے پروگرام سٹیٹمنٹ کو سنگل بائٹ ویلیو میں ٹوکن کیا جاتا تھا، اور پھر باقی لائن کو ٹیکسٹ فارمیٹ کے طور پر چھوڑ دیا جاتا تھا۔ آخری حرف میں لائن کے اختتام کی نشاندہی کرنے کے لیے اس کا ہائی بٹ سیٹ تھا۔ استعمال کے معاملے پر منحصر ہے، اٹاری بیسک کی لائن کی مکمل ٹوکنائزیشن کے نتیجے میں پروگرام کو اسٹور کرنے کے لیے کم میموری استعمال ہو سکتی ہے۔ اس فرق کا مطلب یہ بھی تھا کہ بہت سی نحو کی غلطیاں صرف ایم ایس کوڈ میں رن ٹائم پر نظر آئیں گی، اٹاری ورژن کے برعکس جہاں پوری لائن کو ترمیم کے وقت چیک کیا گیا تھا۔ نظریہ طور پر، ترمیم کے وقت کی تالیف کو اٹاری بیسک کو ایم ایس کے مقابلے میں بہت تیز بنانا چاہیے تھا، جو ہر بار جب اس کا سامنا ہوتا ہے تو لائن کو دوبارہ بولتا ہے، لیکن یہ فائدہ اوپر بیان کردہ کارکردگی کے دیگر مسائل سے بہہ گیا۔ ایم ایس بیسک میں مطلوبہ الفاظ کی مختصر شکلیں درج کرنے کے لیے کوئی نظام شامل نہیں تھا، اٹاری بیسک کے برعکس جس نے انہیں اندراج کے دوران ایک مدت کے ساتھ مختصر کرنے کی اجازت دی۔ جب پروگرام کو ایڈ کیا جائے گا تو کلیدی الفاظ کو بڑھایا جائے گا۔ کموڈور کا ورژن جس نے اسی سرے پر کنٹرول کردار کی تکمیل کو شامل کیا۔ اٹاری مائیکروسافٹ بیسک نے پلیٹ فارم سے فائدہ اٹھانے کے لیے کئی نئی خصوصیات شامل کیں۔ ایک دلچسپ اضافہ یہ ہے کہ جس نے ایک سیکنڈ کی مخصوص تعداد "جیفیوں"، 1/60 ths کا انتظار کیا، اور پھر کارکردگی کا مظاہرہ کیا۔ اس میں وہ ایڈریس بھی شامل تھا جو اگلی لائن پر جانے سے پہلے میموری ایڈریس کے تبدیل ہونے کے انتظار میں رک گیا تھا۔ یہ ایم ایس بیسک کے ابتدائی ورژن کا حصہ رہا تھا لیکن بڑے پیمانے پر استعمال نہیں ہوا تھا۔ اٹاری مائیکروسافٹ بیسک میں اٹاری بیسک کے زیادہ تر گرافکس اور ساؤنڈ کمانڈز شامل تھے۔ عجیب بات یہ ہے کہ اصل کو اختیاری شکل کا استعمال کرتے ہوئے ضم کر دیا گیا تھا۔ اس کا مطلب ہے کہ اٹاری بیسک کے لیے گرافکس کوڈ مطابقت نہیں رکھتا تھا۔ اٹاری مائیکروسافٹ بیسک نے پلیئر/میزائل گرافکس اور صارف سے متعین کریکٹر سیٹوں کو سنبھالنے کے لیے متعدد اضافی کمانڈز شامل کیے جو اٹاری بیسک میں دستیاب نہیں تھے۔ اٹاری مائیکروسافٹ بیسک دو پیکجوں میں آیا: فلاپی ڈسک-CX8126 روم کارتوس-RX8035۔ چونکہ کارتوس صرف 16 کے بی رکھ سکتا تھا، باقی 11 کے بی فائل کو "ایکسٹینشن" ڈسک پر شامل کیا گیا تھا۔ کارتوس ورژن کو اٹاری مائیکروسافٹ بیسک II کہا جاتا تھا۔ اگرچہ اٹاری بیسک سے زیادہ فیچر سے بھرپور، مائیکروسافٹ بیسک کو کبھی بھی اتنی مقبولیت نہیں ملی جتنی اٹاری بیسک کو تھی۔ سب سے بڑے مسائل یہ تھے: بڑھتی ہوئی میموری کی ضرورت (کم از کم 32 کے بی) ڈسک ڈرائیو کے لیے مطلوبہ کارکردگی (اٹاری بیسک سے تیز، لیکن ٹربو بیسک ایکس ایل اور بیسک ایکس ایل سے سست) اٹاری بیسک کے ساتھ مطابقت نہیں رکھتی تھی۔ اضافی لاگت کارٹریج ورژن نے پہلی دو ضروریات کو ختم کر دیا، لیکن اس کی تمام خصوصیات کے لیے ڈسک ڈرائیو کی ضرورت تھی۔ نوٹ حوالہ جات بیرونی روابط اٹاری ایج مائیکروسافٹ بیسک II-RX8035 اینٹیک جلد۔ 6، نہیں۔ 2 بنیادی بونانزا-چارلس چیری کا جائزہ Atariwiki.org اٹاری مائیکروسافٹ بنیادی ہدایات دستی 1982 سافٹ ویئر نے مائیکروسافٹ بنیادی اٹاری 8 بٹ خاندانی سافٹ ویئر بنیادی پروگرامنگ زبان خاندان مائیکروسافٹ پروگرامنگ زبانیں بند کر دیں