Atari Microsoft BASIC
মাইক্রোসফ্ট বেসিকের 6502-সংস্করণের আটারি মাইক্রোসফ্ট বেসিক এবং আটারি মাইক্রোসফ্ট বেসিক II রূপগুলি আটারি 8-বিট মেশিনে পোর্ট করা হয়েছে। 1981 সালে মুক্তিপ্রাপ্ত প্রথম সংস্করণটির জন্য 32 কেবি র্যামের প্রয়োজন ছিল এবং ফ্লপি ডিস্কে সরবরাহ করা হয়েছিল। পরের বছর প্রকাশিত দ্বিতীয় সংস্করণে, একটি ঐচ্ছিক ফ্লপিতে অতিরিক্ত ফাংশন সহ একটি রম কার্তুজে বেশিরভাগ কোড ছিল। অ্যাটারি মাইক্রোসফ্ট বেসিক অ্যাপলসফ্ট বেসিক এবং কমোডোর বেসিকের মতো সমসাময়িক বেসিকগুলির সাথে অত্যন্ত সামঞ্জস্যপূর্ণ ছিল, তাদের নিজস্ব অ্যাটারি বেসিকের বিপরীতে যা কিছুটা আলাদা উপভাষা এবং অনেক উপায়ে অসঙ্গতিপূর্ণ ছিল। অ্যাটারি বেসিকের মতো, অ্যাটারি মাইক্রোসফ্ট বেসিক অ্যাটারি প্ল্যাটফর্মের সুবিধা নিতে বেশ কয়েকটি নতুন কমান্ড এবং বৈশিষ্ট্য অন্তর্ভুক্ত করেছে। এগুলি কেবল আটারি বেসিকের অনুরূপ বৈশিষ্ট্যগুলির সাথে আংশিকভাবে সামঞ্জস্যপূর্ণ ছিল। মাইক্রোসফ্ট যখন তাদের মূল ইন্টেল 8080-ভিত্তিক বেসিক 6502-এ পোর্ট করেছিল, তখন তারা উন্নত নির্ভুলতার জন্য ভাসমান-বিন্দু বিন্যাসকে মূল 32-বিট বিন্যাস থেকে একটি ঐচ্ছিক 40-বিট বিন্যাসে প্রসারিত করতে সময় নিয়েছিল। উভয় সংস্করণই কম্পাইলার ফ্ল্যাগ সরবরাহ করে একই কোড থেকে সংকলিত করা যেতে পারে; যদি 32-বিট বিন্যাসটি ব্যবহার করা হয় তবে ফলস্বরূপ কোডটি দৈর্ঘ্যে মাত্র 8 কেবি এর নিচে ছিল, যদি 40-বিট বিন্যাসটি ব্যবহার করা হয় তবে এটি 9 কেবি এর কাছাকাছি ছিল। আটারি 8-বিট হোম কম্পিউটারগুলি একটি 8 কেবি রম কার্তুজের জন্য একটি স্লট দিয়ে ডিজাইন করা হয়েছিল। অ্যাটারির প্রোগ্রামাররা প্ল্যাটফর্মের সুবিধা নেওয়ার জন্য বৈশিষ্ট্যগুলি যুক্ত করার পাশাপাশি মাইক্রোসফ্টের বেসিককে একটি একক কার্তুজের মধ্যে ফিট করতে লড়াই করেছিল। 1978 সালের গ্রীষ্মে, আটারি পোর্টিং প্রচেষ্টাকে আউটসোর্স করার সিদ্ধান্ত নেয় যাতে বেসিক 1979 সালে সিস্টেমটির প্রবর্তনের জন্য সময়মতো প্রস্তুত হয় এবং এটি তাদের শেপার্ডসন মাইক্রোসিস্টেমস ইনকর্পোরেটেড (এসএমআই)-এর দিকে নিয়ে যায়। এসএমআই দ্রুত সিদ্ধান্ত নেয় যে কাজটি অসম্ভব, এবং পরিবর্তে বেসিকের একটি সম্পূর্ণ নতুন সংস্করণ তৈরি করার প্রস্তাব দেয়। এটি আটারি বেসিক হয়ে ওঠে এবং 1979 সালে আটারি 400 এবং 800-এর সাথে মুক্তি পায়। আটারি এমএস কোড নিয়ে কাজ চালিয়ে যান এবং 1981 সালে ফ্লপি ডিস্কে এর একটি সংস্করণ প্রকাশ করেন। আটারি বেসিকের তুলনায় এমএস-এ স্ট্যান্ডার্ড কমান্ডের বর্ধিত পরিসীমা ছাড়াও, নতুন সংস্করণটি গ্রাফিক্স এবং শব্দ এবং প্ল্যাটফর্মের অন্যান্য বৈশিষ্ট্যগুলির জন্য বেশ কয়েকটি অতিরিক্ত কমান্ড যুক্ত করেছে। এতে পূর্ণসংখ্যা চলক এবং একটি সম্পূর্ণ পূর্ণসংখ্যা গণিত প্যাকেজ অন্তর্ভুক্ত ছিল যা উন্নত কর্মক্ষমতা প্রদান করত। তবে, যেহেতু এটির জন্য কমপক্ষে 32 কেবি র্যামের প্রয়োজন ছিল এবং এটি শুধুমাত্র একটি ডিস্ক থেকে চলেছিল, তাই এটি কখনই বিশেষভাবে জনপ্রিয় ছিল না। একটি দ্বিতীয় প্রকাশ, আটারি মাইক্রোসফ্ট বেসিক II, বেশিরভাগ কোডকে একটি প্রসারিত 16 কেবি কার্তুজে স্থানান্তরিত করে এবং ডিস্কে আরও বিরলভাবে ব্যবহৃত কোডের একটি অতিরিক্ত 11 কেবি স্থাপন করে, যার অর্থ ক্রস-প্ল্যাটফর্ম ব্যবহারের উদ্দেশ্যে অনেক প্রোগ্রাম এখন কেবল কার্তুজ থেকে চালানো যেতে পারে। 1982 সালে মুক্তিপ্রাপ্ত, বেসিক 2-এর বাস্তব জগতে খুব কম ব্যবহার দেখা যায়। বিবরণ অন্তর্নিহিত দোভাষী একই 9 কেবি এমওএস 6502 কোডের উপর ভিত্তি করে তৈরি হয়েছিল যা কমোডোর বেসিক এবং অ্যাপলসফ্ট বেসিকের ভিত্তি তৈরি করেছিল এবং তাদের সাথে মূলত সামঞ্জস্যপূর্ণ ছিল। এর একটি মূল দিক ছিল স্ট্রিং হ্যান্ডলিং সিস্টেম, যা সেই প্ল্যাটফর্মগুলির মতো একই কোডের উপর ভিত্তি করে তৈরি হয়েছিল। এর বিপরীতে, আটারি বেসিক একটি সম্পূর্ণ ভিন্ন সিস্টেম ব্যবহার করেছিল যা স্ট্রিংকে অক্ষরের অ্যারে হিসাবে বিবেচনা করত এবং বেশিরভাগ অন্যান্য সিস্টেমের সাথে সামঞ্জস্যপূর্ণ ছিল না, বা সহজেই পোর্ট করা হত না। এটি মূল 40-বিট ফরম্যাটের ভাসমান-বিন্দু গাণিতিক গ্রন্থাগারটি ধরে রেখেছে যা সিস্টেমের অপারেটিং সিস্টেম রমগুলিতে কুখ্যাতভাবে ধীর একটি প্রতিস্থাপন করেছে এবং এইভাবে অন্যান্য প্ল্যাটফর্মের মতো একই গতিতে গণিত কোড চালায় এবং আটারি বেসিকের তুলনায় অনেক দ্রুত। এতে অতিরিক্ত পারফরম্যান্সের জন্য একটি অতিরিক্ত পূর্ণসংখ্যা গণিত প্যাকেজও অন্তর্ভুক্ত ছিল। পূর্ণসংখ্যা গণিত পদ্ধতিটি শুরু হয়েছিল যখন অ্যাসাইনমেন্টটি একটি পূর্ণসংখ্যা পরিবর্তনশীল ছিল, বা আক্ষরিক মানগুলি সমস্ত পূর্ণসংখ্যা ছিল। যদি উভয়ই সত্য না হয়, তবে পূর্ণসংখ্যার মানগুলি ভাসমান-বিন্দুতে রূপান্তরিত হবে, গণনার জন্য ভাসমান-বিন্দু কোডটি ব্যবহার করবে এবং তারপরে সংরক্ষণের জন্য পূর্ণসংখ্যায় রূপান্তরিত হবে। পারফরম্যান্স সম্পর্কিত আরেকটি উল্লেখযোগ্য উন্নতি ছিল লুপ সম্পর্কিত। অ্যাটারি বেসিক এক্সিকিউশন স্ট্যাকের লাইন নম্বর রেখে এগুলি সম্পাদন করে, তাই যখন সংশ্লিষ্টটির মুখোমুখি হয় তখন এটি খুঁজে পেতে পারে যে কোন লাইনে আবার লুপ করতে হবে। এর বিপরীতে, এমএস বেসিক সর্বদা স্ট্যাকের উপর সেই লাইনের মেমরি অবস্থান স্থাপন করত, যার ফলে এটি ম্যাচিং লাইনের জন্য পুরো প্রোগ্রামের মাধ্যমে অনুসন্ধান না করেই ফিরে যেতে পারত। আটারি বেসিকের এই অদ্ভুততা এর ধীরগতির পারফরম্যান্সের অন্যতম প্রধান কারণ এবং যেহেতু এটি আটারি মাইক্রোসফ্ট বেসিকের ক্ষেত্রে সত্য ছিল না, তাই এটি সাধারণত আটারি বেসিকের তুলনায় অনেক দ্রুত চলে। আটারি বেসিকের বিপরীতে, যা টাইপ করার সময় পুরো লাইনগুলি পার্স এবং টোকেনাইজ করে, এমএস বেসিকগুলি কেবল আংশিকভাবে সোর্স কোডকে টোকেনাইজ করে। যখন একটি লাইন প্রবেশ করানো হয়, লাইন নম্বরটি এ. এস. সি. আই. আই থেকে একটি 16-বিট পূর্ণসংখ্যায় রূপান্তরিত করা হয়, প্রথম প্রোগ্রাম স্টেটমেন্টটি একটি একক-বাইট মানকে টোকেনাইজ করা হয় এবং তারপরে বাকি লাইনটি পাঠ্য বিন্যাস হিসাবে রেখে দেওয়া হয়। শেষ অক্ষরটির উচ্চ-বিট সেট ছিল যা লাইনের শেষ নির্দেশ করে। ইউজ-কেসের উপর নির্ভর করে, আটারি বেসিকের লাইনের সম্পূর্ণ টোকেনাইজেশনের ফলে প্রোগ্রামটি সংরক্ষণের জন্য কম মেমরি ব্যবহার করা যেতে পারে। এই পার্থক্যটি আরও বোঝায় যে অনেক বাক্যবিন্যাস ত্রুটি শুধুমাত্র এমএস কোডে রানটাইমে লক্ষ্য করা যাবে, আটারি সংস্করণের বিপরীতে যেখানে পুরো লাইনটি সম্পাদনার সময় পরীক্ষা করা হয়েছিল। তত্ত্বগতভাবে, সম্পাদনা-সময় সংকলনটি এমএস-এর তুলনায় আটারি বেসিককে অনেক দ্রুততর করা উচিত ছিল, যা প্রতিবার মুখোমুখি হওয়ার সময় লাইনটিকে পুনরায় উচ্চারণ করে, তবে এই সুবিধাটি উপরে উল্লিখিত অন্যান্য পারফরম্যান্স সমস্যাগুলির দ্বারা ধুয়ে ফেলা হয়েছিল। এমএস বেসিক কীওয়ার্ডের সংক্ষিপ্ত রূপগুলি প্রবেশ করার জন্য কোনও সিস্টেম অন্তর্ভুক্ত করেনি, অ্যাটারি বেসিকের মতো নয় যা তাদের প্রবেশের সময়কালের সাথে সংক্ষিপ্ত করার অনুমতি দেয়। যখন প্রোগ্রামটি সম্পাদনা করা হবে, তখন কীওয়ার্ডগুলি প্রসারিত করা হবে। কমোডোরের সংস্করণ যা একই প্রান্তে নিয়ন্ত্রণ-চরিত্রের সমাপ্তি যোগ করেছে। অ্যাটারি মাইক্রোসফ্ট বেসিক এই প্ল্যাটফর্মের সুবিধা নিতে বেশ কয়েকটি নতুন বৈশিষ্ট্য যুক্ত করেছে। একটি আকর্ষণীয় সংযোজন হল যা একটি সেকেন্ডের নির্দিষ্ট সংখ্যক "জিফি", 1/60 ths-এর জন্য অপেক্ষা করে এবং তারপর সম্পাদন করে। এটি পরবর্তী লাইনে যাওয়ার আগে একটি মেমরি ঠিকানা পরিবর্তনের জন্য অপেক্ষা করার সময় বিরতি দেয়। এটি এমএস বেসিকের প্রাচীনতম সংস্করণের অংশ ছিল কিন্তু ব্যাপকভাবে ব্যবহৃত হয়নি। আটারি মাইক্রোসফ্ট বেসিক আটারি বেসিক থেকে বেশিরভাগ গ্রাফিক্স এবং সাউন্ড কমান্ড অন্তর্ভুক্ত করেছে। অদ্ভুতভাবে, মূলটি ঐচ্ছিক বিন্যাস ব্যবহার করে একত্রিত করা হয়েছিল। এর অর্থ আটারি বেসিকের জন্য গ্রাফিক্স কোড সামঞ্জস্যপূর্ণ ছিল না। আটারি মাইক্রোসফ্ট বেসিক খেলোয়াড়/ক্ষেপণাস্ত্র গ্রাফিক্স এবং ব্যবহারকারী-সংজ্ঞায়িত চরিত্র সেটগুলি পরিচালনা করার জন্য বেশ কয়েকটি অতিরিক্ত কমান্ড যুক্ত করেছে যা আটারি বেসিক-এ উপলব্ধ ছিল না। আটারি মাইক্রোসফ্ট বেসিক দুটি প্যাকেজে আসেঃ ফ্লপি ডিস্ক-সিএক্স 8126 রম কার্তুজ-আরএক্স 8035। যেহেতু কার্তুজটি শুধুমাত্র 16 কেবি ধারণ করতে পারে, তাই অবশিষ্ট 11 কেবি ফাইলটি একটি "এক্সটেনশন" ডিস্কে অন্তর্ভুক্ত করা হয়েছিল। কার্তুজের সংস্করণটির নাম ছিল আটারি মাইক্রোসফ্ট বেসিক II। যদিও অ্যাটারি বেসিকের চেয়ে বেশি বৈশিষ্ট্যপূর্ণ, মাইক্রোসফ্ট বেসিকের কখনই অ্যাটারি বেসিকের মতো জনপ্রিয়তা ছিল না। সবচেয়ে বড় সমস্যাগুলি ছিলঃ প্রয়োজনীয় মেমরি বৃদ্ধি (কমপক্ষে 32 কেবি) ডিস্ক ড্রাইভের জন্য প্রয়োজনীয় কর্মক্ষমতা (আটারি বেসিকের চেয়ে দ্রুত, তবে টার্বো-বেসিক এক্সএল এবং বেসিক এক্সএল-এর চেয়ে ধীর) আটারি বেসিকের সাথে সামঞ্জস্যপূর্ণ নয়। উল্লেখ রেফারেন্স বাহ্যিক লিঙ্ক অ্যাটারিয়াজ মাইক্রোসফ্ট বেসিক II-আরএক্স8035 অ্যান্টিক খণ্ড। 6, নং। 2 বেসিক বোনাঞ্জা-চার্লস চেরি দ্বারা পর্যালোচনা মাইক্রোসফ্ট বেসিক নির্দেশ ম্যানুয়াল 1982 সফ্টওয়্যার মাইক্রোসফ্ট বেসিক আটারি 8-বিট পারিবারিক সফ্টওয়্যার বেসিক প্রোগ্রামিং ভাষা পরিবার মাইক্রোসফ্ট প্রোগ্রামিং ভাষাগুলি বন্ধ করে দিয়েছে