City & Guilds Mnemonic Code
سٹی اینڈ گلڈز یادداشت کوڈ اور اس سے وابستہ سٹی اینڈ گلڈز کمپیوٹر ایک اسمبلر زبان اور ایک ورچوئل کمپیوٹر سسٹم کے لیے ایک وضاحت تھی جو اسے چلاتا تھا۔ اسے 1964 میں سٹی اینڈ گلڈز آف لندن انسٹی ٹیوٹ نے متعارف کرایا تھا اور اسے متعدد کمپیوٹر پروگرامنگ اور انتظامی کورسز کی بنیاد کے طور پر استعمال کیا گیا تھا۔ کمپیوٹر ماڈل جان بوجھ کر بہت آسان تھا، اور آپریشنل سسٹم کو متعدد مین فریم کمپیوٹرز جیسے آئی سی ایل 1900 سیریز اور ایلیٹ 900 فیملی پر مترجم کے طور پر لاگو کیا گیا تھا۔ ایک تازہ ترین ورژن 1968 میں جاری کیا گیا تھا۔ دی سٹی اینڈ گلڈز آف لندن انسٹی ٹیوٹ (سی اینڈ جی) 19 ویں صدی کے آخر سے مختلف قسم کے پیشہ ورانہ اور اپرنٹس شپ پروگرام پیش کر رہا ہے۔ 1960 کی دہائی کے اوائل میں، پہلی کمپیوٹر سسٹمز بڑی کمپنیوں میں تیزی سے پھیلنا شروع ہو گئی تھیں، اور سی اینڈ جی نے کمپیوٹر آپریشن اور پروگرامنگ پر پروگراموں کا ایک سلسلہ متعارف کرانے کا فیصلہ کیا۔ سٹی اینڈ گلڈز نیمونک کوڈ نے پلیٹ فارمز میں وسیع پیمانے پر مطابقت نہ ہونے کے مسئلے کو ایک نئی اسمبلر زبان متعارف کروا کر حل کیا جس کی تشریح کسی بھی کافی طاقتور پلیٹ فارم پر ورچوئل مشین میں کی جا سکتی ہے۔ اس نظام کو جان بوجھ کر آسان بنایا گیا تھا تاکہ ایسی مشینوں کی تعداد بنائی جا سکے جو اسے زیادہ سے زیادہ چلا سکیں۔ اس میں ایسی متعدد خصوصیات بھی شامل کی گئیں جو عام طور پر اسمبلر کے ساتھ منسلک نہیں ہوتیں، بشمول معیاری ڈیٹا فارمیٹ فلوٹنگ پوائنٹ ہے اور اس میں جدید ریاضی اور سٹرنگ ہینڈلنگ کے لیے متعدد خصوصیات شامل ہیں جن کی توقع عام طور پر بیسک جیسی اعلی سطح کی زبان میں کی جاتی ہے۔ پہلی ریلیز 1964 میں ہوئی تھی، اور اسے دو کورسز، کمپیوٹر پرسنل کے لیے بیسک اور ایڈوانسڈ سرٹیفکیٹ میں استعمال کیا گیا تھا۔ اس نظام کو 1968 میں نظر ثانی شدہ یادداشت کوڈ کے طور پر اپ ڈیٹ کیا گیا تھا، اس وقت بنیادی کورس کمپیوٹر پروگرامنگ اور انفارمیشن پروسیسنگ میں سرٹیفکیٹ بن گیا تھا۔ کمپیوٹر اس لحاظ سے ایک عجیب بات تھی کہ اس کی بنیادی ڈیٹا ٹائپ فلوٹنگ پوائنٹ نمبر تھی، جیسا کہ حقیقی دنیا کی زیادہ تر مشینوں کے برعکس جو بائنری انٹیجرز استعمال کرتی تھیں، یا اس دور کی کاروبار پر مبنی مشینوں کے لیے، بائنری کوڈڈ اعشاریہ۔ زیادہ تر اسمبلرز میں پائے جانے والے نچلے درجے کے کمانڈوں کے علاوہ، جیسے میموری سے ڈیٹا لوڈ کرنا یا بٹ شفٹنگ، سی اینڈ جی میں ضرب اور تقسیم کے ساتھ ساتھ متعدد مزید جدید خصوصیات جیسے ایکسپوینٹس اور ٹرگونومیٹرک افعال بھی شامل تھے۔ میموری کا مقام متبادل طور پر ایک کردار رکھ سکتا ہے۔ کمپیوٹر کی تعریف 1000 الفاظ کی مرکزی میموری کے طور پر کی گئی تھی۔ پہلے دس پتے انڈیکس رجسٹر کے طور پر استعمال کیے جا سکتے تھے لیکن ان کے خاص معنی بھی تھے۔ لوکیشن زیرو کو مستقل طور پر ویلیو زیرو پر سیٹ کیا گیا تھا، جبکہ 1 ایکومیلیٹر تھا۔ 4 نے سب روٹین کالز کے دوران واپسی کا پتہ اپنے پاس رکھا۔ نظر ثانی شدہ ایڈیشن میں، 5 کو ہدایات کے ساتھ استعمال کیا گیا تھا اور 6 اور 7 کو سی این سی ہدایات کا استعمال کرتے ہوئے حروف سے نمبروں میں تبدیل کرتے وقت فارمیٹ کی وضاحت کے لیے استعمال کیا گیا تھا۔ مشین ایکومیلیٹر ڈیزائن تھی۔ زیادہ تر ہدایات میں مرکزی میموری کی طرف اشارہ کرتے ہوئے دو آپریینڈ لیے جاتے ہیں، جن کا حوالہ این اور ایم کے طور پر دیا جاتا ہے۔ این عام طور پر 12 بٹ ویلیو 0 سے 999 تک ہوتا ہے، جبکہ ایم نے رجسٹر میں سے ایک کو منتخب کیا، 0 سے 9 تک۔ اس رجسٹر میں ویلیو کو ایک مکمل ایڈریس بنانے کے لیے n میں شامل کیا گیا تھا۔ مثال کے طور پر، ADD انسٹرکشن نے دو آپریڈز کو پڑھا، منتخب رجسٹر m میں ویلیو کو مستقل ویلیو n میں شامل کیا، اور پھر نتیجے میں میموری لوکیشن پر ویلیو تک رسائی حاصل کی، جسے C کہا جاتا ہے۔ دستاویزات میں، اگر زیر بحث ویلیو کو میموری لوکیشن سے پڑھا گیا تھا تو اسے پیرنٹس میں اشارہ کیا گیا تھا، لہذا زیادہ تر ہدایات n + (m) فارم کی تھیں، جس کا مطلب ہے کہ رجسٹر/میموری لوکیشن m میں ویلیو کو مستقل ویلیو n میں شامل کیا گیا تھا۔ اضافہ آپریشن انجام دیتا ہے، جس کا مطلب ہے کہ رجسٹر m میں ویلیو کو مستقل ویلیو n میں شامل کیا گیا تھا، اور پھر نتیجے میں میموری لوکیشن میں ویلیو، (n + (m))، کو جمع کرنے والے میں پہلے سے موجود ویلیو میں شامل کیا گیا تھا۔ یہ نظام اے ایس سی آئی آئی کے معیاری ہونے سے پہلے بنایا گیا تھا، اور جیسا کہ اس دور کی مشینوں کے لیے عام تھا، اس نے اپنا کسٹم کریکٹر سیٹ استعمال کیا۔ اس میں 0 سے 9 مقامات پر 0 سے 9، 10 سے 35 میں A سے Z، اور پھر کل 64 حروف کے لیے متعدد علامتیں تھیں۔ اس نظام میں کوڈ تبصرے شامل کرنے کی کوئی سہولت نہیں تھی۔ اس میں علامتی لیبلز کی بھی کمی تھی، لہذا اگر پروگرام میں لائنیں شامل کی گئیں یا ہٹا دی گئیں تو پروگرامر کو شاخوں کے مقامات کو دستی طور پر اپ ڈیٹ کرنا پڑتا۔ ہدایات یادداشت کے کوڈ میں دی گئی ہدایات کو تین وسیع زمروں میں تقسیم کیا جا سکتا ہے، بنیادی ریاضی اور منطق کی کارروائیاں جو زیادہ تر اسمبلر زبانوں، اضافی ریاضیاتی کارروائیوں، اور ان پٹ/آؤٹ پٹ کارروائیوں کی قریب سے عکاسی کرتی ہیں۔ ایک دلچسپ اضافہ "سوال" کے لیے "ق" ہے، جسے کسی بھی ہدایت کے سامنے شامل کیا جا سکتا ہے۔ جب ق کا سامنا کرنا پڑتا تو مترجم ہدایات چلاتا اور پھر پرنٹر کو ڈیبگنگ کی معلومات آؤٹ پٹ کرتا۔ ورژن کے لحاظ سے ہدایات کو اندرونی طور پر اس شکل میں محفوظ کیا گیا تھا: FF [Q] nnn m FF، "آرڈر نمبر"، عددی انسٹرکشن اوپی کوڈ تھا۔ ق نے استفسار فنکشن کی نشاندہی کی، اور nnn اور m تین ہندسوں کی اور n اور m کے لیے ایک ہندسوں کی اقدار تھیں۔ اعداد اعشاریہ شکل میں درج کیے گئے تھے۔ بنیادی کارروائیاں نظام نے تنظیمی مقاصد کے لیے اپنے بنیادی ریاضی اور منطقی کارروائیوں کو کئی گروپوں میں تقسیم کر دیا۔ جب تک کہ دوسری صورت میں وضاحت نہ کی جائے، فہرستیں ایلیٹ 903 دستاویزات سے ہیں۔ گروپ 0، ایکومیلیٹر/میموری آپریشنز: گروپ 1، ایکومیلیٹر/مستقل آپریشنز، جس میں ایک واحد آپریڈ کی انٹیجر ویلیو ہوتی ہے۔ اصل تفصیلات میں صرف n استعمال کیا گیا تھا، 1968 کے ترمیم میں، m کو اختیاری طور پر فراہم کیا جا سکتا ہے اور اس کی قیمت n میں مستقل میں شامل کی جا سکتی ہے۔ گروپ 2، اسٹور ویلیو: گروپ 3، ٹیسٹ اور برانچ: نظر ثانی شدہ ایڈیشن نے کچھ کوڈز کو تبدیل کیا اور نئے کو شامل کیا۔ اس حصے کی فہرست آئی سی ایل دستاویزات سے ہے: ایل او پی ہدایت لوپس کو لاگو کرنے کے لیے استعمال ہوتی ہے۔ رجسٹر 5 میں تکرار کی تعداد رکھ کر، ایل او پی ہر بار قدر کو کم کرے گا اور پھر لوپ کے اوپری حصے پر واپس کود جائے گا۔ توسیعی ریاضی گروپ 4 معیاری ریاضی کے افعال کا ایک مجموعہ ہے: ان پٹ/آؤٹ پٹ گروپ 5، 6 اور 7 ان پٹ/آؤٹ پٹ ہدایات ہیں۔ دو معروف ورژن، آئی سی ایل اور ایلیٹ کے درمیان نمایاں فرق ہیں، لیکن یہ واضح نہیں ہے کہ آیا یہ فرق ایلیٹ ورژن کی سابقہ تفصیلات کی وجہ سے ہیں، یا یہ مشین میں ٹیپ اور ڈسک سپورٹ کی کمی کی وجہ سے ہے اور اس طرح صرف ان آلات سے متعلق ہدایات کو ہٹا دیا گیا ہے۔ نتیجہ افعال کا ایک نسبتا محدود مجموعہ ہے: اس کے برعکس، آئی سی ایل ورژن، جو 1968 کی تفصیلات سے مطابقت رکھتا ہے، بہت زیادہ لچکدار ہے۔ اس کے کمپیوٹر میں ایک واحد ان پٹ اور واحد آؤٹ پٹ چینل تھا جسے مختلف آلات سے جوڑا جا سکتا تھا۔ پانچ آلات کی وضاحت کی گئی تھی، 10 پیپر ٹیپ ریڈر تھا، 30 کارڈ ریڈر تھا، 50 مقناطیسی ٹیپ تھا، 60 ڈسک پیک تھا، اور 80 پرنٹر تھا۔ آلات میں سے کسی ایک کو استعمال کرنے کے لیے، اے آر ڈی این، ایم یا اے ڈبلیو ڈی این، ایم ہدایات کو کال کیا گیا، بالترتیب پڑھنے یا لکھنے کے لیے، مطلوبہ ڈیوائس نمبر (این + (ایم)) کے ساتھ۔ ایک بار کھلنے کے بعد، آلات کو مختلف I/O ہدایات کا استعمال کرتے ہوئے پڑھا اور لکھا جا سکتا ہے۔ ان میں نمبروں اور حروف کے لیے الگ الگ ہدایات، دونوں کے درمیان تبدیل کرنے کی ہدایات، اور مخصوص کارروائیوں کے لیے مختلف دیگر ہدایات جیسے لائن فیڈ آؤٹ پٹ کرنا یا ٹیپ کو ری وائنڈ کرنا شامل تھے۔ ایک اہم خصوصیت "بلاک" کا تصور تھا، جو متعلقہ ڈیٹا کا ایک گروپ تھا جسے ایک ہی وقت میں پڑھا جاتا تھا۔ یہ عام طور پر ایک ہی ہدایت میں کردار کے تاروں کو پڑھنے اور لکھنے کے لیے استعمال ہوتا تھا۔ بلاک کردار کے ساتھ ختم ہوا، جسے بلاک کردار کہا جاتا ہے۔ جیسا کہ نظام کا ایک بڑا مقصد مختلف حقیقی دنیا کے آلات پر ڈیٹا کو پڑھنا اور لکھنا تھا، کوڈ میں پرنٹ ایف فارمیٹ سٹرنگز کی طرح ایک فارمیٹنگ سسٹم شامل تھا تاکہ پڑھنے کے قابل متن کو آؤٹ پٹ کرنے کے کام کو آسان بنایا جا سکے۔ فارمیٹ کو میموری میں ویلیو کے طور پر، زیادہ تر ہدایات کے لیے n + (m) پر، یا CNC ہدایات کے لیے 6 اور 7 مقامات پر محفوظ کیا جاتا ہے، جو آؤٹ پٹ لوکیشن کی وضاحت کے لیے n + (m) کا استعمال کرتا ہے۔ چار بنیادی فارمیٹس ہیں، جن میں سے سبھی ایک معروف جگہ اور پلس یا مائنس کے نشان سے شروع ہوتے ہیں: اسمبلر کی ہدایات مشین کی ہدایات کے علاوہ، زبان میں تھوڑی تعداد میں ہدایات بھی شامل تھیں: (عنوان) آؤٹ پٹ ڈیوائس پر درج ذیل لائن پرنٹ کرتا ہے (اسٹور این) مندرجہ ذیل کوڈ کا ابتدائی مقام طے کرتا ہے۔ متعدد اسٹورز کو ایک ہی پروگرام میں استعمال کیا جا سکتا ہے (انتظار کریں) عمل کو روکتا ہے اور آپریٹر کی طرف سے جانے کی ہدایت کا انتظار کرتا ہے (EXECUTE n) پروگرام کوڈ کے اختتام کی نشاندہی کرتا ہے اور جب پروگرام آپریٹنگ ماحول میں چلتا ہے تو ابتدائی پروگرام کاؤنٹر لوکیشن سیٹ کرتا ہے۔ یادگاری کوڈ کے علاوہ، کمپیوٹر نے بنیادی آپریٹنگ ماحول کی بھی وضاحت کی، جیسے بنیادی زبان۔ اس میں لوڈ اور سیو، ان پٹ یا آؤٹ پٹ ڈیوائس کو ری ڈائریکٹ کرنے کے لیے آن، اور عمل شروع کرنے کے لیے جانا شامل تھا۔ مثال یہ مثال، ہربرٹ سے، پی آئی کا حساب اور پرنٹ کرتی ہے۔ ایلیٹ 903 کے لیے لکھا گیا، یہ پہلے I/O کمانڈ کا استعمال کرتا ہے، جو پنچ ٹیپ پر پرنٹ ہوتا ہے۔ (عنوان) سمپل ٹیسٹ (اسٹور 12) ایل ڈی اے این 1 اے آر سی 16 ایم ایل ٹی این 4 پی این ٹی 1,6 جے ایس ٹی (EXECUTE 12) جب چلائے گا، کمانڈ کے ساتھ، یہ پروگرام تیار کرے گا: سمپل ٹیسٹ 3.141593 نوٹ بھی دیکھیں پی کوڈ مشین-ایک ایسی ہی تعلیمی ورچوئل مشین۔ حوالہ جات ببلیوگرافی بیرونی روابط ایک پروگرامر کی یادیں-ہیلن ینگ نے سی اینڈ جی مترجم پروگرامنگ زبان کے نفاذ پر ابتدائی کام کو یاد کیا