Acorn System BASIC
ایکورن سسٹم بیسک اور ایٹم بیسک بنیادی پروگرامنگ زبان کی دو قریب سے متعلق بولیاں ہیں جو ایکورن کمپیوٹرز نے اپنے ابتدائی مائیکرو کمپیوٹرز جیسے ایکورن سسٹم 3 اور ایکورن ایٹم کے لیے تیار کی ہیں۔ اندرونی طور پر تیار کردہ، ان میں گھریلو کمپیوٹر کے دور کی زیادہ تر بنیادی بولیوں کے مقابلے میں متعدد اہم خصوصیات ہیں۔ خاص طور پر، زبان میں مشین کے بہت سے اندرونی افعال کے لیے بیانات کی کمی تھی اور اسے پی ای کے اور پی او کے کے بجائے انڈیکشن آپریٹرز کا استعمال کرتے ہوئے میموری کے مقامات تک براہ راست رسائی اور ہیرا پھیری کا استعمال کرتے ہوئے فراہم کیا گیا تھا۔ دونوں میں فلوٹنگ پوائنٹ سپورٹ کی بھی کمی تھی، حالانکہ اسے ایک اختیاری ROM کے ساتھ شامل کیا جا سکتا تھا جس نے مزید خصوصیات متعارف کروائیں۔ سسٹم اور ایٹم بیسک بنیادی طور پر اس بات میں مختلف ہیں کہ ایٹم نے ابتدائی سٹرنگ ہیرا پھیری فراہم کرنے کے لیے ایک ہی سمت کا نظام استعمال کیا، جس کی اسٹینڈرڈ میں کمی تھی، اور کمپیوٹر گرافکس کے لیے نئے بیانات کی ایک چھوٹی سی تعداد شامل کی۔ ان میں سے زیادہ تر عجیب و غریب چیزوں کو اس وقت ہٹا دیا گیا جب ایٹم کے جانشین، بی بی سی مائیکرو پر بی بی سی بیسک تیار کرنے کے لیے بنیادی نظام کو بہت بڑھایا گیا۔ بی بی سی بیسک رومز کو بعد میں ایٹم صارفین کے لیے پیش کیا گیا۔ ایکورن کمپیوٹرز 1978 میں قائم ہوا اور اس نے 1979 میں ایکورن سسٹم 1 سے شروع ہونے والے کٹ بلٹ اور یورو کارڈ پر مبنی سسٹمز کا ایک سلسلہ بنانا شروع کیا۔ انہوں نے ان مشینوں کے لیے ایکورن سسٹم بیسک تیار کیا، جو صرف ایک عدد والی بولی ہے جس کے لیے مجموعی طور پر صرف 4 کے بی میموری کی ضرورت ہوتی ہے۔ اس زبان میں عمل درآمد کی متعدد تفصیلات تھیں جس نے اسے "انتہائی غیر معیاری" بنا دیا۔ ایٹم، جو 1980 میں متعارف کرایا گیا تھا، سسٹم 3 کے کچھ حصوں سے بنایا گیا تھا جسے ایک ہی بورڈ پر پیک کیا گیا تھا۔ سسٹم نے 2 کے بی ریم اور 8 کے بی روم کے ساتھ معیاری ترسیل کی، جس میں بیسک اور متعدد ڈیوائس ڈرائیور شامل تھے۔ ایٹم بیسک نے سسٹم ورژن سے صرف چند تبدیلیاں کی تھیں، جس میں سٹرنگ ہیرا پھیری کے لیے سپورٹ اور گرافکس کمانڈز کی ایک چھوٹی سی تعداد شامل کی گئی تھی۔ ایٹم کو اپ گریڈ کیا جا سکتا تھا، جس میں مجموعی طور پر 12 کے بی ریم اور اضافی 4 کے بی روم تھا جس نے فلوٹنگ پوائنٹ سپورٹ کا اضافہ کیا۔ اس نے علیحدہ افعال اور کارروائیوں کا استعمال کیا جو ان پر کام کرتے تھے، جو% علامت سے ظاہر ہوتے ہیں۔ علامت کا یہ انتخاب بدقسمتی سے تھا، کیونکہ مائیکروسافٹ بیسک نے فیصد کے نشان کو انٹیجرز کی نشاندہی کرنے کے لیے استعمال کیا، نہ کہ فلوٹنگ پوائنٹ کے لیے۔ ایٹم صرف ایک مختصر مدت کے لیے بازار میں تھا اس سے پہلے کہ ایکورن نے اپنے جانشین، پروٹون کی ترقی شروع کی۔ یہ ابتدائی طور پر دو پروسیسر یونٹ ہونا تھا۔ ڈیزائن ابھی بھی اپنے ابتدائی مراحل میں تھا جب واقعات کا ایک سلسلہ اسے واحد-سی پی یو بی بی سی مائیکرو کی بنیاد کے طور پر منتخب کرنے کا باعث بنا۔ اس وقت، تبصرے تھے کہ اسے یقینی طور پر ایکورن کے مختلف قسم کے بیسک کا استعمال نہیں کرنا چاہیے، جسے "عملی طور پر کوئی دوسرا مائیکرو کمپیوٹر سمجھ نہیں سکتا" اور یہ کہ "اگر نئی زبان ایٹم کی بیسک کی شکل پر مبنی ہوتی تو یہ ایک تباہی ہوتی۔" بالآخر، بی بی سی سسٹم نے ایکورن سے لکھا ہوا بیسک استعمال کیا، لیکن اس میں بہت زیادہ ترمیم کی گئی۔ نتیجے میں بی بی سی بیسک مائیکروسافٹ بیسک سے بہت زیادہ ملتا جلتا تھا اور بعد میں اسے ایٹم میں اپ گریڈ کے طور پر پیش کیا گیا۔ تفصیل چونکہ دونوں بولیاں بہت مماثل ہیں، مندرجہ ذیل میں بنیادی طور پر ایٹم بیسک کا حوالہ دیا جائے گا اور ان کے موجود ہونے کے فرق کی نشاندہی کی جائے گی۔ پروگرام ایڈیٹنگ اس دور کے بیشتر بنیادی اداروں کی طرح، ایٹم بیسک نے براہ راست (فوری) اور بالواسطہ طریقوں کے ساتھ لائن پر مبنی ایڈیٹر کا استعمال کیا۔ لائن نمبر کے بغیر بیان میں ٹائپ کرنے سے فوری طور پر آپریشن انجام دیا گیا۔ اس کے بجائے لائن نمبر شامل کرنے سے ان بیانات کو ذخیرہ شدہ پروگرام میں رکھا گیا۔ ایک انفرادیت یہ تھی کہ اگرچہ اس نے ایک ہی لائن پر متعدد بیانات کی اجازت دی تھی، لیکن بیانات کے درمیان جداکار عام طور پر استعمال ہونے والے کالون کے بجائے سیمی کولن تھا، اس طرح دوسرے کمپیوٹرز کے پروگراموں میں ٹائپ کرتے وقت صارف کو اس کردار کو تبدیل کرنے کی ضرورت ہوتی ہے۔ کمپیوٹر ٹرمینلز کے ساتھ استعمال کے لیے، ایکورن بیسک نے فل اسکرین ایڈیٹنگ موڈ کی حمایت نہیں کی۔ اس کے برعکس، کموڈور بیسک (اور بہت سی دیگر مائیکرو کمپیوٹر بولیوں) میں، کوئی بھی پروگرام کی فہرست میں اوپر کی طرف جانے کے لیے کرسر کیز کا استعمال کر سکتا ہے، اسکرین پر تبدیلیاں کر سکتا ہے، اور پھر ان تبدیلیوں کو درج کرنے کے لیے دبا سکتا ہے۔ ایٹم پر، کوئی بھی کرسر کیز کا استعمال کرتے ہوئے لسٹنگ میں اوپر کی طرف جا سکتا ہے، لیکن اس متن میں ترمیم کرنے کے لیے، کلید کو ان پٹ ایریا میں کاپی کرنے کے لیے دبایا گیا جہاں اسے ترمیم کیا جا سکے۔ ایٹم پر ایک اور فرق کلید تھی، جس نے سسٹم ری سیٹ انجام دیا، ممکنہ طور پر میموری سے پروگرام کو صاف کر دیا۔ اگر غلطی سے کلید دبا دی گئی تھی تو اسے دوبارہ ترتیب دینے کے لیے، ایٹم بیسک نے کمانڈ شامل کی، جسے حادثاتی طور پر دوبارہ ترتیب دینے کے لیے بھی استعمال کیا جا سکتا ہے۔ ایک اور معمولی تبدیلی یہ تھی کہ مائنس سائن کے بجائے لائن نمبروں سے اور ان سے کوما سے الگ کیا گیا، 20 سے 40 لائنوں کو پرنٹ کرتا ہے۔ زبان میں شاخوں کے لیے نمبروں کے بجائے لائن لیبل استعمال کرنے کی صلاحیت بھی تھی۔ لیبل ایک چھوٹے حرف پر مشتمل ہوتے ہیں جو لائن نمبر کے فورا بعد ٹائپ کیے جاتے ہیں۔ مثال کے طور پر: 10s پرنٹ "*" 20 جی او ٹی او اس طریقہ کا فائدہ یہ ہے کہ بیان کا میموری ایڈریس ایس میں محفوظ کیا جاتا ہے، جس کا مطلب ہے کہ برانچ، ایک جی او ٹی او، میچنگ لائن نمبر کی تلاش میں پروگرام کی ہر لائن کو تلاش کیے بغیر براہ راست اس لائن پر منتقل ہو سکتا ہے۔ ایکورن نے برانچ کے اہداف کے لیے لائن نمبر تیار کرنے کے لیے کسی بھی اظہار کو استعمال کرنے کی بھی اجازت دی، جیسے۔ ایکورن کے ابتدائی بیانات اس دور کے دیگر بنیادی بیانات سے ملتے جلتے تھے، اور اس طرح کے زیادہ تر ابتدائی بیانات کی حمایت کرتے تھے۔ بہت سے عام بیانات موجود ہیں جو غائب ہیں، خاص طور پر کسی پروگرام میں ڈیٹا کو ذخیرہ کرنے، کمپیوٹڈ برانچوں، اور صارف کے طے شدہ افعال کے لیے استعمال ہوتے ہیں۔ ان بنیادی باتوں میں، ایکورن نے نیچے سے آزمودہ، اظہار پر مبنی لوپس کی تعمیر کے لیے اضافہ کیا۔ ایف او آر لوپس کو ان کے انڈیکس متغیر اور ایک مستقل قدر کے درمیان براہ راست موازنہ کا استعمال کرکے انتہائی بہتر بنایا جاتا ہے جو لوپ میں داخل ہونے پر صرف ایک بار مقرر کیا جاتا ہے۔ ایک اور اصلاح یہ ہے کہ FOR کا ایڈریس محفوظ کیا جاتا ہے، لائن نمبر نہیں، لہذا جب مماثل NEXT کا سامنا کرنا پڑتا ہے تو پروگرام فوری طور پر FOR پر واپس جا سکتا ہے۔ اگرچہ ایف او آر بہت سے لوپس کے لیے موزوں ہے، جب زیادہ کنٹرول کی ضرورت ہوتی ہے، مثال کے طور پر جب زیادہ پیچیدہ معیار کے مقابلے میں موازنہ کیا جائے تو آئی ایف بیان استعمال کیا جا سکتا ہے: 500 اے = اے + 1 510 آر ای ایم اضافی بیانات یہاں 600 آئی ایف اے> 10 اور بی> 100 تھین 500 لوپ کے اس انداز کا منفی پہلو یہ ہے کہ برانچ کو پروگرام کو لائن 500 کے ذریعے تلاش کرنے کی ضرورت ہوتی ہے، جو عام طور پر لوپ میں کئی بار ہوتا ہے۔ بڑے پروگراموں میں، یہ اہم اوور ہیڈ متعارف کرا سکتا ہے۔ اس مقصد کے لیے ڈی او کا استعمال اعلی کارکردگی پیش کرتا ہے: 500 ڈی او اے = اے + 1 510 آر ای ایم اضافی بیانات یہاں 600 یو این ٹی ایل اے> 10 اور بی> 100 اس معاملے میں، ایف او آر لوپ کی طرح، ڈی او کا پتہ اس وقت محفوظ کیا جاتا ہے جب لوپ درج کیا جاتا ہے، جس سے یو این ٹی ایل کو پروگرام کے ذریعے اسکین کیے بغیر فوری طور پر لوپ کے اوپری حصے میں واپس آنے کی اجازت ملتی ہے۔ اس خاص معاملے کو نوٹ کریں کہ ڈی او کے بعد براہ راست ایک اور بیان کی پیروی کی جا سکتی ہے جس میں سیمی کولن سیپریٹر کی ضرورت نہیں ہے-یہ اس کا حصہ نہیں ہے، یہ ایک علیحدہ بیان ہے۔ مزید معمولی اضافے میں بیان ہے، جو ہر سیکنڈ میں اگلی گھڑی کے ٹک تک عمل کو روکتا ہے۔ یہ ایک پورے ٹک کا انتظار نہیں کرتا، صرف اگلے ٹک تک، جو فوری طور پر ہو سکتا ہے۔ ایک مشین زبان کے معمول کو کال کرتا ہے، زیادہ تر بولیوں کا یا انالاگ۔ ریاضی، آپریٹرز اور افعال ایکورن نے تمام ریاضی کے لیے 32 بٹ کے دستخط شدہ انٹیجرز کا استعمال کیا، جس میں کوئی معیاری فلوٹنگ پوائنٹ سپورٹ نہیں تھا۔ تقسیم کو سنبھالنے کے لیے، جو اکثر ایک فریکشنل حصہ واپس کرتا ہے، انہوں نے آپریٹر کو بقیہ واپس کرنے کے لیے شامل کیا۔ مثال کے طور پر، 2 واپس کرے گا، جبکہ 1 واپس کرے گا۔ متغیر نام صرف ایک حرف، A سے Z پر مشتمل ہو سکتے ہیں۔ تمام دوہرے حروف کے امتزاج صفوں کے طور پر محفوظ ہیں، لہذا E ایک واحد قدر تھی، جبکہ EE ایک صف تھی۔ تمام صفوں کو ڈی آئی ایم بیان کی ضرورت ہوتی ہے، اس نے مائیکروسافٹ بیسک کی طرح 10 کا طول و عرض نہیں لیا۔ رن ٹائم پر، کسی صف پر انجام دیا جانے والا واحد چیک یہ تھا کہ جس انڈیکس میں منتقل کیا جا رہا تھا وہ ایک مثبت قدر تھی، لہذا کوئی بھی طول و عرض سے بڑی اقدار میں منتقل کر کے میموری میں پڑھ سکتا تھا۔ یہ کثیر جہتی صفوں کی حمایت نہیں کرتا تھا۔ ریاضی کی بنیادی کارروائیاں شامل ہیں۔ اس نے بالترتیب AND، OR اور XOR کے لیے استعمال ہونے والے بٹ وائز منطق آپریٹرز کو بھی سپورٹ کیا۔ یہ آپریٹر موازنہ کرتے ہیں، اس لیے 0 واپس کرتے ہیں۔ OR کے لیے بڑی آنت کا استعمال یہی وجہ ہے کہ بیان جداکار کو سیمی کولن کا استعمال کرنا پڑا۔ نوٹ کریں کہ یہ IF بیانات میں پائے جانے والے منطقی رابطوں سے الگ ہیں، جیسے، جن کی بھی حمایت کی جاتی ہے۔ ریاضی کے صرف دو افعال تھے، اور۔ اے بی ایس دوسرے بیسک کی طرح کام کرتا ہے، جو دیئے گئے ان پٹ کی مطلق قیمت کو واپس کرتا ہے۔ آر این ڈی ایسا نہیں کرتا، یہ-v اور + v زیادہ سے زیادہ انٹیجر ویلیوز کے درمیان ویلیو واپس کرتا ہے۔ اسے روایتی شکل میں استعمال کرنے کے لیے 0 اور دی گئی مثبت قدر کے درمیان قدر واپس کرنے کے لیے، مثال کے طور پر 0 اور 10 کے درمیان، ایک استعمال کیا گیا۔ ویکٹر اس دور کی زیادہ تر بنیادی چیزیں مشین کی مخصوص فعالیت تک رسائی کے لیے پییک اور پوک کا استعمال کرتی تھیں جو خود اس زبان میں نہیں بنائی گئی تھی۔ ایکورن میں پییک اور پوک نہیں تھے، اور اس فعالیت کو استعمال میں آسان نظام میں فراہم کرنے کے لیے نئے آپریٹرز کا استعمال کیا۔ آپریٹرز تھے اور، سابقہ ترتیب یا کسی دی گئی جگہ پر بائٹ کو واپس کرنا، اور مؤخر الذکر ترتیب یا 4 بائٹ "لفظ" واپس کرنا۔ مثال کے طور پر، زیادہ تر بولیوں میں پییک کی عام مثالیں، جیسے، کے ساتھ مکمل کی جا سکتی ہیں۔ زیادہ تر بولیوں میں! کے مساوی کی کمی تھی۔ مزید برآں، اسی نحو کو میموری میں ویلیو سیٹ کرنے کے لیے استعمال کیا جا سکتا ہے، جیسے کہ پی او کے ای، مثال کے طور پر۔ میموری میں مسلسل شکل میں ترتیب شدہ ڈیٹا تک رسائی میں مدد کے لیے، جیسے اعداد کی صفوں، آپریٹرز کو متغیر کے دائیں طرف لگایا جا سکتا ہے۔ جب اس طرح سے استعمال کیا جاتا ہے، جیسے، سسٹم میموری میں متغیر کے مقام پر میموری تک رسائی حاصل کرتا ہے۔ آپریٹر کے بعد آنے والے کسی بھی نمبر کو آفسیٹ کے طور پر لاگو کیا جاتا تھا، لہذا مثال کے طور پر، میموری میں A کے مقام کے بعد بائٹ 100 مقامات کی قیمت واپس کرے گا۔ یہ اکثر ایک اور صرف اکورن تصور، "ویکٹر" کے ساتھ استعمال ہوتا تھا۔ الجھن سے، یہ ایک صف کے طور پر ایک ہی ڈی آئی ایم کمانڈوں کا استعمال کرتے ہوئے بنائے گئے تھے، لیکن واحد حرف متغیرات پر لاگو ہوتے ہیں۔ جب ڈی آئی ایم کا سامنا کرنا پڑتا تو سسٹم میموری کے اوپری حصے میں بہت سے مقامات کو الگ کر دیتا، اور پھر میموری پوائنٹر کو اوپر لے جاتا۔ اس نے میموری کا ایک بلاک چھوڑا جس تک پھر ان ڈائرکشن آپریٹرز کے ذریعے رسائی حاصل کی جا سکتی تھی۔ مثال کے طور پر: 10 ڈی آئی ایم اے (100) 20 پرنٹ اے؟ 10 جو بائٹ ویلیو کو اے میں 11 ویں مقام پر پرنٹ کرے گا (تمام رسائی صفر انڈیکسڈ ہیں)۔ اسی طرح، کوئی بھی متغیر نام سے پہلے لاگو کردہ اسی آپریٹر کا استعمال کرتے ہوئے میموری میں اقدار کو محفوظ کر سکتا ہے:! A = 123456 یہ ASCII سے اعشاریہ قدر 123456 کو ایک عدد میں تبدیل کر دے گا اور اسے A کے لیے بنیادی مقام سے شروع ہونے والے میموری مقامات پر محفوظ کرے گا۔ ویکٹروں کے ساتھ آپریشن میں مدد کے لیے، ایکورن نے فرضی متغیر کو شامل کیا۔ جب نظام پہلی بار شروع ہوا تو اس نے پروگرام کے اختتام سے پہلے مقام کی طرف اشارہ کیا۔ اس کے بعد کسی بھی ڈی آئی ایم کو ٹاپ کی موجودہ قیمت پر بنایا گیا، اور ٹاپ کو پھر نئے آبجیکٹ کے آخر میں اپ ڈیٹ کیا گیا۔ ٹی او پی میں براہ راست ہیرا پھیری کرکے متحرک ویکٹر بنانا ممکن تھا۔ سٹرنگز ایٹم بیسک نے سٹرنگ سپورٹ شامل کی لیکن سٹرنگ متغیرات کی حمایت نہیں کی اور نہ ہی اس میں جوہری قسم کے طور پر سٹرنگ کا تصور تھا۔ اس کے بجائے، ویکٹر سسٹم کو میموری میں سٹرنگ ڈیٹا کو ASCII اقدار کے طور پر جوڑنے کے لیے استعمال کیا گیا تھا۔ اس استعمال میں مدد کے لیے، آپریٹر نے ان میموری ویلیوز کو اپنی ASCII ویلیوز میں تبدیل کیا۔ یہ آپریٹر میموری سے ڈیٹا کو پڑھنا جاری رکھتا جب تک کہ اسے واپسی کا سامنا نہ کرنا پڑے، اور میموری میں ڈیٹا لکھتے وقت، ہمیشہ آخر میں ریٹرن شامل کرتا ہے۔ لہذا جب کہ ایک نمبر کے طور پر میموری میں A کے مقام پر بائٹ کی واحد قیمت پرنٹ کرے گا، اس مقام سے شروع ہونے والی اقدار کو پڑھے گا اور اسے سٹرنگ کے طور پر پرنٹ کرے گا۔ مثال کے طور پر: 10 ڈم اے (12) اے = "ہیلو، ورلڈ" 30 پرنٹ $اے یہ کوڈ دوسری بولیوں میں سٹرنگ کے استعمال سے بہت ملتا جلتا نظر آسکتا ہے، حالانکہ متغیر نام کے مقابلے میں $کا مقام بدل جاتا ہے۔ یہ خاص طور پر ان بولیوں سے ملتا جلتا ہے جن میں تمام تاروں پر ڈی آئی ایم کی ضرورت ہوتی ہے، جیسے ایچ پی ٹائم شیئرڈ بیسک یا اٹاری بیسک۔ اندرونی طور پر آپریشن بہت مختلف ہوتا ہے۔ ان بولیوں میں، A اور A $دو مختلف متغیر ہیں اور $درحقیقت نام کا حصہ ہے۔ ایکورن، اے اور $اے میں وہ ایک ہی متغیر ہیں، اور $اس متغیر پر ایک یونری آپریشن لاگو کر رہا ہے۔ اس کا مطلب یہ بھی ہے کہ کوئی سٹرنگ کے لیے صفوں کا استعمال کر سکتا ہے، جیسے، جو اے اے (10) میں ویلیو کو سٹرنگ میں تبدیل کرتا ہے۔ یہ تصور ویکٹر نوٹیشن کا استعمال کرتے ہوئے انفرادی حروف تک رسائی کی اجازت دیتا ہے۔ مثال کے طور پر، 5 ویں حرف کی ASCII ویلیو واپس کرے گا، اس صورت میں O کے لیے 79، جبکہ آؤٹ پٹ "O" ہوگا۔ ایک ہی آپریشن میں سبسٹرنگ نکالنے کا کوئی طریقہ نہیں ہے، کسی کو حروف پر لوپ کرنا پڑتا ہے اور انہیں ایک ایک کر کے منتقل کرنا پڑتا ہے۔ ایک متغیر کو دوسرے کے آخر میں تفویض کرنے سے مطابقت ممکن ہے، مثال کے طور پر، سٹرنگ B کو A کے آخر میں کاپی کریں۔ زبان میں صرف دو سٹرنگ فنکشن ہوتے ہیں، جو ٹریلنگ ریٹرن کردار کو تلاش کرتے ہیں اور لمبائی کو واپس کرتے ہیں، اور کسی کردار کی ASCII ویلیو کو واپس کرتے ہیں۔ سی ایچ کا ایک عجیب فارمیٹ ہے جس میں کوئی پیرنٹ نہیں ہے، اس لیے 65 واپس کرے گا۔ یہ بصورت دیگر دوسری بولیوں میں نظر آنے والی زیادہ عام بولیوں سے ملتا جلتا ہے۔ ایک اور نیا آپریٹر تھا، جس نے عددی قدر کو ہیکساڈیسیمل سٹرنگ میں تبدیل کیا۔ $کی طرح، یہ تبدیلی انجام دینے کے لیے کہیں بھی استعمال کیا جا سکتا ہے۔ مثال کے طور پر، A کی ویلیو کو اعشاریہ ویلیو 16384 پر سیٹ کرتا ہے، جو اسکرین میموری کا مقام ہے۔ اسے اکثر $آپریٹر کے ساتھ جوڑا جاتا تھا تاکہ سٹرنگز میں "کرسر اپ" کردار جیسے غیر پرنٹ ہونے والے حروف شامل ہوں۔ فلوٹنگ پوائنٹ فلوٹنگ پوائنٹ سپورٹ کو اضافی 4 کے بی روم کی توسیع کے ساتھ شامل کیا جا سکتا ہے۔ اس میں ایک توسیع شدہ 40 بٹ لفظ کا سائز، 32 بٹس کے دستخط شدہ مینٹیسا کے بعد 8 بٹ کا ایکسپونینٹ استعمال کیا گیا۔ اس کا مطلب یہ تھا کہ سسٹم کو میموری سے ڈیٹا کو پڑھتے اور لکھتے وقت فرق کرنے کے لیے کسی طریقے کی ضرورت تھی، جسے سٹرنگ آپریٹر کی طرح ہی پریفیکس:% A = 123.45 کا استعمال کرتے ہوئے سنبھالا گیا تھا، چونکہ کوڈ ایک علیحدہ 4 KB ROM میں موجود تھا، اس نے PRINT جیسے موجودہ بیانات میں ترمیم نہیں کی۔ اس کے بجائے، بیانات کا ایک مکمل طور پر نیا مجموعہ متعارف کرایا گیا، بشمول۔ مثال کے طور پر، اس کا مطلب یہ ہے کہ اگر اقدار فلوٹنگ پوائنٹ ہیں، تو اس کے بجائے کوئی نہیں کر سکتا۔ ایک انٹیجر ویلیو کو استعمال کرتے ہوئے فلوٹ میں تبدیل کیا جا سکتا ہے، اور فلوٹ آپریٹر، ٪ کا استعمال کرتے ہوئے انٹیجر میں فلوٹ کیا جا سکتا ہے۔ روم میں ریاضی کے افعال کی ایک بہت بڑی قسم بھی شامل تھی، بشمول۔ فلوٹنگ پوائنٹ نمبر کو سٹرنگ میں تبدیل کیا گیا، جیسا کہ دوسری بولیوں میں ہوتا تھا، لیکن اس معاملے میں سٹرنگ کو میموری میں لکھا گیا اور فنکشن نے وہ پتہ واپس کر دیا جہاں اسے محفوظ کیا گیا تھا۔ چونکہ تار کو پکڑنے کے لیے کافی طویل اسٹوریج کی ضرورت ہوتی ہے، اس لیے یہ اکثر ٹاپ کا استعمال کرتے ہوئے مکمل کیا جاتا تھا۔ مثال کے طور پر: ایس ٹی آر پی آئی، ٹاپ پرنٹ $ٹاپ ٹاپ = ٹاپ لین (ٹاپ) یہ فرضی متغیر پی آئی کی قیمت کو میموری لوکیشن ٹاپ سے شروع ہونے والی سٹرنگ میں تبدیل کرتا ہے، سٹرنگ کو $ٹاپ کا استعمال کرتے ہوئے پرنٹ کرتا ہے، اور پھر اس میموری کو چھوڑ دیتا ہے۔ ان پٹ/آؤٹ پٹ اور زیادہ تر دوسری بولیوں کی طرح کام کیا۔ ایک عجیب و غریب بات اس لیے سامنے آئی کیونکہ بڑی آنت اور سیمی کولن پہلے ہی دوسرے مقاصد کے لیے استعمال کیے جا چکے تھے، جس سے صرف کوما کو علیحدہ شعبوں کے لیے چھوڑ دیا گیا۔ ان اقدار کو پرنٹ کرنے کے لیے جن کے درمیان کوئی خالی جگہ نہ ہو، اقدار کو ان کے درمیان ایک خلائی کردار کے ساتھ درج کیا گیا تھا، جیسے، ایک ایسی شکل جس کی اجازت بہت سی دوسری بولیوں پر بھی تھی حالانکہ شاذ و نادر ہی استعمال ہوتی تھی۔ یہ اکیلے ہی نمبروں کو کمپیکٹ فارمیٹ میں پرنٹ کرنے کا سبب نہیں بنے گا، کیونکہ وہ عام طور پر دائیں طرف خالی جگہوں کے ساتھ پرنٹ کیے جاتے ہیں تاکہ ہر ایک کو 8 حروف چوڑا بنایا جا سکے۔ ایک نئی لائن ایک ہی اقتباس کے ساتھ چھپی تھی۔ کرسر کالم واپس کرتا ہے، جیسا کہ زیادہ تر بولیوں میں ہوتا ہے۔ ایٹم کے لیے ڈیفالٹ اسٹوریج ڈیوائس ایک کمپیکٹ کیسٹ سسٹم تھا۔ ہر فائل کو بلاکس کی ایک سیریز کے طور پر محفوظ کیا گیا تھا، جن میں سے ہر ایک میں فائل کے نام کے ساتھ ہیڈر موجود تھا۔ محفوظ کردہ فائلوں کو ان کے ساتھ دوبارہ پڑھا جا سکتا ہے، جبکہ کیسٹ پر فائلوں کے نام درج کیے جاتے ہیں جب وہ ان کے ہیڈر سے گزرتے ہوئے پڑھتے ہیں۔ صوابدیدی ڈیٹا کو پڑھنے کے لیے استعمال کرنے یا لکھنے کے لیے کھولا جا سکتا ہے، ان دونوں میں سے ایک عددی فائل ہینڈل واپس کرتا ہے۔ فائلیں بند کر دی گئی تھیں۔ اعداد و شمار کو عددی شکل میں پڑھا یا لکھا جاتا تھا، بطور واحد بائٹس کے ساتھ، اور بطور سٹرنگ استعمال کرتے ہوئے۔ فائل کی لمبائی واپس کی گئی، جب کہ فائل میں موجودہ پوائنٹر واپس یا سیٹ کیا گیا، اب تک پڑھے یا لکھے گئے بائٹس کی تعداد۔ اگر فلوٹنگ پوائنٹ روم موجود تھا، تو اس نے مزید کہا۔ مثال کے طور پر: A = Fout "AFILE" ڈو BPUT A، 88 ؛ انتظار کریں ؛ انتظار کریں ؛ انتظار کریں ؛ جب تک کہ صارف پروگرام کو روکنے کے لیے دباؤ نہ ڈالے تب تک 0 بائٹس کا ایک سلسلہ، 88s لکھنے کے لیے استعمال کرے گا۔ اس کے بعد انہیں (دستی طور پر ٹیپ کو ری وائنڈ کرنے کے بعد) اس کا استعمال کرتے ہوئے دوبارہ پڑھا جا سکتا ہے: A = FIN "AFILE" ڈو پرنٹ $BGET A ؛ جب تک کہ ڈالر کا نشان سسٹم کو بتاتا ہے کہ آنے والے بائنری ڈیٹا کو سٹرنگ فارمیٹ میں تبدیل کیا جائے، لہذا اس صورت میں آؤٹ پٹ X کی سیریز ہوگی، 88 کی نہیں۔ ایسا لگتا ہے کہ بی جی ای ٹی کے بجائے ایس جی ای ٹی کا استعمال کیا جا سکتا ہے، لیکن اس سے فائل سے پڑھنا جاری رکھنے کی کوشش ہوگی جب تک کہ اس میں واپسی کا کردار نظر نہ آئے، جو اس مثال میں نہیں لکھا گیا تھا۔ گرافکس سپورٹ ایٹم میں ابتدائی بٹ میپ گرافکس تھے اور ایٹم بیسک نے اس کی حمایت کے لیے متعدد کمانڈز شامل کیے۔ اسکرین کو صاف کیا، گرافیکل کرسر کو دیئے گئے X، Y مقام پر منتقل کیا، اور موجودہ مقام سے فراہم کردہ X، Y پر ایک لکیر کھینچی۔ فلوٹنگ پوائنٹ روم میں بیان کے اضافے کے ساتھ رنگین گرافکس کے لیے سپورٹ بھی شامل تھی۔ کلر کو 0 سے 3 کے پیرامیٹر کے ساتھ کال کرنا، اس کے بعد کے آؤٹ پٹ کو اس رنگ پر سیٹ کرتا ہے۔ سیاہ اور سفید ڈسپلے پر، رنگوں کو سرمئی رنگ کے رنگوں کے طور پر دکھایا گیا تھا۔ حوالہ جات حوالہ جات ایکورن کمپیوٹرز بنیادی ترجمان بنیادی پروگرامنگ زبان خاندان