कमोडोर बेसिक

कमोडोर बुनियादी, जिसे पीईटी बेसिक या सीबीएम-बेसिक के रूप में भी जाना जाता है, कमोडोर इंटरनेशनल की 8 बिट गृह कम्प्यूटर लाइन में प्रयुक्त बेसिक प्रोग्रामिंग भाषा की बोली (कंप्यूटिंग) है, जो 1977 के कमोडोर पीईटी से 1985 के कमोडोर 128 तक फैली हुई है।

कोर एमओएस टेक्नोलॉजी 6502 Microsoft BASIC पर आधारित है, और इस तरह यह उस समय के अन्य 6502 BASIC के साथ कई विशेषताओं को साझा करता है, जैसे कि Applesoft BASIC। कमोडोर ने 1977 में एक बार भुगतान पर माइक्रोसॉफ्ट से बेसिक लाइसेंस प्राप्त किया, जैक ट्रामियल द्वारा बिल गेट्स के प्रस्ताव को ठुकराने के बाद कोई रॉयल्टी आधार नहीं था। US$3 प्रति यूनिट शुल्क, यह कहते हुए, मैं पहले से ही शादीशुदा हूँ, और इससे अधिक का भुगतान नहीं करूँगा US$25000 स्थायी लाइसेंस के लिए। मूल पीईटी संस्करण कुछ संशोधनों के साथ मूल माइक्रोसॉफ्ट कार्यान्वयन के समान था। C64 पर BASIC 2.0 भी समान था, और C128s (C64 मोड में) और अन्य मॉडलों पर भी देखा गया था। बाद में PET में मूल के समान BASIC 4.0, लेकिन फ्लॉपी डिस्क के साथ काम करने के लिए कई कमांड जोड़े गए।

BASIC 3.5 वास्तव में विचलित करने वाला पहला था, C16 और Plus/4 पर ग्राफिक्स और साउंड सपोर्ट के लिए कई कमांड जोड़े। बेसिक 7.0 को कमोडोर 128 के साथ शामिल किया गया था, और इसमें प्लस/4 के बेसिक 3.5 से संरचित प्रोग्रामिंग कमांड शामिल थे, साथ ही मशीन की नई क्षमताओं का लाभ उठाने के लिए विशेष रूप से डिज़ाइन किए गए कीवर्ड भी शामिल थे। एक प्रेत संपादक और मशीन भाषा मॉनिटर जोड़ा गया। अंतिम, बेसिक 10.0, अप्रकाशित कमोडोर 65 का हिस्सा था।

इतिहास
कमोडोर ने फ्लैट-फीस बेसिक का स्रोत कोड लिया और इसे अपने सभी अन्य 8-बिट होम कंप्यूटरों के लिए आंतरिक रूप से विकसित किया। यह कमोडोर 128 (V7.0 के साथ) तक नहीं था कि Microsoft कॉपीराइट नोटिस प्रदर्शित किया गया था। हालाँकि, Microsoft ने संस्करण 2 में एक ईस्टर एग (मीडिया) बनाया था या कमोडोर बेसिक को अपग्रेड किया था जो इसके सिद्ध होने को साबित करता है: (अस्पष्ट) कमांड टाइप करना  में परिणाम होगा   स्क्रीन पर दिखाई दे रहा है। (ईस्टर अंडे अच्छी तरह से अस्पष्ट था - दुभाषिया के किसी भी disassembler में संदेश दिखाई नहीं दिया।) लोकप्रिय कमोडोर 64 ROM में BASIC v2.0 के साथ आया, भले ही कंप्यूटर को PET/CBM श्रृंखला के संस्करण 4.0 के बाद जारी किया गया था क्योंकि 64 का उद्देश्य घरेलू कंप्यूटर के रूप में था, जबकि PET/CBM श्रृंखला व्यवसाय और शैक्षिक पर लक्षित थी। उपयोग करें जहां उनकी अंतर्निहित प्रोग्रामिंग भाषा को अधिक भारी रूप से उपयोग करने के लिए माना जाता था। इसने निर्माण लागत को बचाया, क्योंकि V2 छोटे रोम में फिट हो गया।

कार्यक्रम संपादन
कमोडोर के रीड ऑनली मैमोरी-रेजिडेंट BASIC दुभाषिया और KERNAL की एक सुविधाजनक सुविधा दृश्य संपादक | फुल-स्क्रीन एडिटर थी। हालांकि कमोडोर कीबोर्ड में केवल दो कर्सर कुंजियाँ होती हैं, जो शिफ्ट कुंजी के आयोजित होने पर वैकल्पिक दिशा होती है, स्क्रीन संपादक ने उपयोगकर्ताओं को डायरेक्ट मोड में प्रवेश करने या स्क्रीन पर कहीं से भी प्रोग्राम लाइन इनपुट करने और संपादित करने की अनुमति दी। यदि एक लाइन को एक लाइन नंबर के साथ प्रीफ़िक्स किया गया था, तो इसे प्रोग्राम मेमोरी में टोकन और स्टोर किया गया था। एक संख्या के साथ शुरू नहीं होने वाली पंक्तियों को दबाकर निष्पादित किया गया था  कुंजी जब भी कर्सर (कंप्यूटर) लाइन पर हुआ। यह उस समय के अन्य सामान्य होम कंप्यूटर बेसिक्स की तुलना में प्रोग्राम एंट्री इंटरफेस में एक महत्वपूर्ण अपग्रेड को चिह्नित करता है, जो आमतौर पर लाइन संपादकों का उपयोग करता था, जिसे एक अलग द्वारा लागू किया जाता था।   कमांड, या एक कॉपी कर्सर जो कर्सर की स्थिति पर लाइन को छोटा कर देता है।

इसमें कॉम्पैक्ट कैसेट सहित किसी भी डिवाइस में नामित फाइलों को सहेजने की क्षमता भी थी - पीईटी के दिनों में एक लोकप्रिय स्टोरेज डिवाइस, और जो कि 8-बिट कमोडोर के पूरे जीवनकाल में द्रव्यमान के एक सस्ते रूप के रूप में उपयोग में रहा। भंडारण। अधिकांश सिस्टम केवल डिस्केट पर फ़ाइल नामों का समर्थन करते हैं, जिससे अन्य उपकरणों पर कई फाइलों को सहेजना अधिक कठिन हो जाता है। इन अन्य प्रणालियों में से एक के उपयोगकर्ता को फ़ाइल के स्थान पर रिकॉर्डर के काउंटर डिस्प्ले को नोट करना था, लेकिन यह गलत था और त्रुटि की संभावना थी। पीईटी (और बेसिक 2.0) के साथ, कैसेट की फाइलों को नाम से अनुरोध किया जा सकता है। डिवाइस किसी भी गैर-मिलान वाले फ़ाइल नामों को अनदेखा करते हुए डेटा को क्रमिक रूप से पढ़कर फ़ाइल नाम की खोज करेगा। फाइल सिस्टम को एक शक्तिशाली भंडारण रिकॉर्ड द्वारा भी समर्थित किया गया था जिसे फाइलों में लोड या सहेजा जा सकता था। अन्य निर्माताओं द्वारा उपयोग किए जाने वाले कम खर्चीले (और कम विश्वसनीय) एनालॉग तरीकों के बजाय कमोडोर कैसेट डेटा को डिजिटल रूप से रिकॉर्ड किया गया था। इसलिए, मानक टेप रिकॉर्डर के बजाय विशेष डेटासेट की आवश्यकता थी। एडेप्टर उपलब्ध थे जो एक मानक रिकॉर्डर के उपयोग की अनुमति देने के लिए एक एनॉलॉग से डिजिटल परिवर्तित करने वाला उपकरण का उपयोग करते थे, लेकिन ये डेटासेट की तुलना में केवल थोड़ा कम खर्च करते थे। LOAD }} कमांड का उपयोग वैकल्पिक पैरामीटर के साथ किया जा सकता है ,1 जो फ़ाइल के पहले दो बाइट्स में निहित मेमोरी एड्रेस में एक प्रोग्राम को लोड करेगा (इन बाइट्स को छोड़ दिया गया है और मेमोरी में नहीं रखा गया है)। अगर ,1 पैरामीटर का उपयोग नहीं किया जाता है, प्रोग्राम बेसिक प्रोग्राम क्षेत्र की शुरुआत में लोड होगा, जो मशीनों के बीच व्यापक रूप से भिन्न होता है। कुछ कमोडोर बेसिक वेरिएंट की आपूर्ति की  तथा   आदेश जो Applesoft BASIC में उनके समकक्षों की तरह काम करते हैं, निर्दिष्ट मेमोरी स्थानों से बिटमैप्स को लोड या सहेजते हैं।

पीईटी पुनर्स्थापन योग्य कार्यक्रमों का समर्थन नहीं करता है और LOAD आदेश हमेशा प्रोग्राम फ़ाइल में निहित पहले दो बाइट्स पर लोड होगा। अन्य कमोडोर मशीनों पर सहेजे गए बेसिक प्रोग्रामों को लोड करने का प्रयास करते समय इसने एक समस्या पैदा की क्योंकि वे पीईटी के बेसिक प्रोग्राम की उम्मीद से अधिक उच्च पते पर लोड होंगे, प्रोग्राम को उचित स्थान पर ले जाने के लिए वर्कअराउंड थे। यदि कोई प्रोग्राम CBM-II मशीन पर सहेजा गया था, तो उसे PET पर लोड करने का एकमात्र तरीका डिस्क सेक्टर संपादक के साथ पहले दो बाइट्स को संशोधित करना था क्योंकि CBM-II श्रृंखला में उनका BASIC प्रोग्राम क्षेत्र $0 था, जिसका परिणाम होगा पीईटी में शून्य पृष्ठ में लोड करने और लॉक करने का प्रयास किया जा रहा है।

कमोडोर बेसिक कीवर्ड (कंप्यूटर प्रोग्रामिंग) को पहले अनशिफ्टेड कीप्रेस दर्ज करके और फिर अगले अक्षर के शिफ्ट किए गए कीप्रेस को दर्ज करके संक्षिप्त किया जा सकता है। यह सबसे महत्वपूर्ण बिट सेट करता है, जिसके कारण इंटरप्रेटर पढ़ना बंद कर देता है और लुकअप टेबल के अनुसार स्टेटमेंट को पार्स करता है। इसका मतलब यह था कि जहां तक ​​हाई बिट सेट किया गया था, वहां तक ​​के स्टेटमेंट को पूरे कमांड को टाइप करने के विकल्प के रूप में स्वीकार किया गया था। हालाँकि, चूंकि सभी बेसिक कीवर्ड मेमोरी में सिंगल बाइट टोकन के रूप में संग्रहीत किए गए थे, यह अनुकूलन के बजाय स्टेटमेंट एंट्री के लिए एक सुविधा थी।

डिफॉल्ट अपरकेस-ओनली कैरेक्टर सेट में, शिफ्ट किए गए कैरेक्टर ग्राफिक्स सिंबल के रूप में दिखाई देते हैं; उदा. आदेश,, संक्षिप्त किया जा सकता है   (जो मिलता-जुलता है   स्क्रीन पर)। ऐसे अधिकांश आदेश दो अक्षर लंबे थे, लेकिन कुछ मामलों में वे लंबे थे। इस तरह के मामलों में, एक अस्पष्टता थी, इसलिए आदेश के और अधिक अपरिवर्तित अक्षरों की आवश्यकता थी, जैसे कि    के लिए आवश्यक है. कुछ आदेशों का कोई संक्षिप्त रूप नहीं था, या तो अन्य आदेशों के साथ संक्षिप्तता या अस्पष्टता के कारण। उदाहरण के लिए, आदेश,  कोई संक्षिप्त नाम नहीं था क्योंकि इसकी वर्तनी अलग से टकरा गई थी   कीवर्ड, जो कीवर्ड लुकअप तालिका की शुरुआत के करीब स्थित था। जमकर इस्तेमाल किया   कमांड में सिंगल था   शॉर्टकट, जैसा कि अधिकांश Microsoft BASIC बोलियों में आम था। स्थानांतरित अक्षरों के साथ कमांड को संक्षिप्त करना कमोडोर बेसिक के लिए अद्वितीय है।

इस टोकनिंग पद्धति में एक गड़बड़ थी जैसे कि अगर कोई शामिल होता है  (कोड में टिप्पणी जोड़ने के लिए बेसिक स्टेटमेंट) और उसके बाद a , प्रोग्राम सूची देखने का प्रयास करते समय, BASIC दुभाषिया लिस्टिंग को तुरंत निरस्त कर देगा, a प्रदर्शित करेगा   और पर लौटें   तत्पर। इस गड़बड़ी का उपयोग उन प्रोग्रामरों द्वारा कुछ प्रभाव के लिए किया गया था जो अपने काम की कोशिश करना और उसकी रक्षा करना चाहते थे, हालाँकि इसे दरकिनार करना काफी आसान था।

खोजशब्दों को संक्षिप्त करके, एकल प्रोग्राम लाइन पर अधिक कोड फिट करना संभव था (जो 40-कॉलम डिस्प्ले पर दो स्क्रीन लाइन ले सकता है - यानी, C64 या PET, या VIC-20 के 22-कॉलम डिस्प्ले पर चार लाइन)। इसने ओवरहेड पर थोड़ी बचत के लिए अन्यथा आवश्यक अतिरिक्त प्रोग्राम लाइनों को स्टोर करने की अनुमति दी, लेकिन इससे अधिक कुछ नहीं। सभी बेसिक कमांड्स को टोकनाइज किया गया था और मेमोरी में 1 बाइट (या दो, बेसिक 7 या बेसिक 10 के कई कमांड्स के मामले में) लिया गया था, चाहे वे किसी भी तरह से दर्ज किए गए हों। इतनी लंबी लाइनें संपादित करने में परेशानी होती थीं।  ई> कमांड ने पूरे कमांड कीवर्ड को प्रदर्शित किया - प्रोग्राम लाइन को 2 या 4 स्क्रीन लाइनों से आगे बढ़ाकर प्रोग्राम मेमोरी में प्रवेश किया जा सकता है।

प्रदर्शन
मूल माइक्रोसॉफ्ट बेसिक दुभाषिया (प्रोग्रामिंग) की तरह, कमोडोर बेसिक देशी मशीन कोड से धीमा है। परीक्षण के परिणामों से पता चला है कि रीड-ओनली मेमोरी से यादृच्छिक अभिगम स्मृति में 16 किलोबाइट कॉपी करने में बेसिक में एक मिनट से अधिक की तुलना में मशीन कोड में एक सेकंड से भी कम समय लगता है। दुभाषिया की तुलना में तेजी से निष्पादन करने के लिए, प्रोग्रामर ने निष्पादन को गति देने के लिए विभिन्न तकनीकों का उपयोग करना शुरू कर दिया। एक शाब्दिक मूल्यों का उपयोग करने के बजाय चर में अक्सर उपयोग किए जाने वाले फ़्लोटिंग पॉइंट मानों को संग्रहीत करना था, क्योंकि एक चर नाम की व्याख्या एक शाब्दिक संख्या की व्याख्या करने की तुलना में तेज़ थी। चूंकि फ़्लोटिंग पॉइंट सभी कमांड के लिए डिफ़ॉल्ट प्रकार है, इसलिए पूर्णांक के बजाय फ़्लोटिंग पॉइंट नंबरों को तर्क के रूप में उपयोग करना तेज़ है। जब गति महत्वपूर्ण थी, तो कुछ प्रोग्रामर ने बेसिक प्रोग्राम के अनुभागों को MOS टेक्नोलॉजी 6502 या एमओएस टेक्नोलॉजी 6510 असेंबली लैंग्वेज में बदल दिया, जिसे BASIC प्रोग्राम के अंत में DATA स्टेटमेंट्स से मेमोरी में फ़ाइल या POKEd से अलग से लोड किया गया था, और BASIC का उपयोग करके निष्पादित किया गया था।  कमांड, या तो डायरेक्ट मोड या बेसिक लोडर से। जब मशीनी भाषा की निष्पादन गति बहुत अधिक थी, जैसे किसी खेल के लिए या उपयोगकर्ता इनपुट की प्रतीक्षा करते समय, प्रोग्रामर चयनित स्मृति स्थानों (जैसे कि $C6 64 के लिए, या $D0 128 के लिए, कीबोर्ड कतार के आकार को दर्शाते हुए) देरी या निष्पादन को रोकने के लिए।

कमोडोर बेसिक की एक अनूठी विशेषता स्क्रीन को साफ़ करने या किसी प्रोग्राम के भीतर कर्सर की स्थिति जैसे कार्यों को करने के लिए नियंत्रण कोड का उपयोग है; इन्हें जारी करके या तो लागू किया जा सकता है PRINT CHR$(X) आदेश जहां एक्स जारी किए जाने वाले नियंत्रण कोड से मेल खाता है (उदाहरण के लिए, PRINT CHR$(147) स्क्रीन को साफ़ करने के लिए नियंत्रण कोड है) या उद्धरण चिह्नों के बीच प्रश्न में कुंजी दबाकर, इस प्रकार दबाकर एक उद्धरण चिह्न का अनुसरण करने से BASIC को नियंत्रण कोड (इस मामले में, एक उलटा दिल) के दृश्य प्रतिनिधित्व को प्रदर्शित करने का कारण होगा, जिसे तब प्रोग्राम निष्पादन पर कार्य किया जाता है (सीधे नियंत्रण कोड को प्रिंट करने से कम मेमोरी का उपयोग होता है और इसे लागू करने की तुलना में तेजी से निष्पादित होता है) CHR$ समारोह)। यह बेसिक के अन्य कार्यान्वयनों की तुलना में है जिसमें विशेष रूप से स्क्रीन को साफ़ करने या कर्सर को स्थानांतरित करने के लिए समर्पित आदेश होते हैं।

बेसिक 3.5 और ऊपर के पास स्क्रीन को साफ करने और कर्सर को हिलाने के लिए उचित आदेश हैं।

कमोडोर बेसिक में प्रोग्राम लाइनों को कहीं भी रिक्त स्थान की आवश्यकता नहीं है (लेकिन LIST आदेश हमेशा पंक्ति संख्या और कथन के बीच एक प्रदर्शित करेगा), उदाहरण के लिए, 100 IFA=5THENPRINT"YES":GOTO160, और बिना किसी रिक्ति के प्रोग्राम लिखना आम बात थी। यह सुविधा स्मृति को संरक्षित करने के लिए जोड़ी गई थी क्योंकि टोकननाइज़र कभी भी कीवर्ड के बीच डाली गई किसी भी जगह को नहीं हटाता है: रिक्त स्थान की उपस्थिति अतिरिक्त परिणाम देती है  टोकन प्रोग्राम में बाइट्स जो केवल निष्पादन के दौरान छोड़े जाते हैं। लाइन नंबर और प्रोग्राम स्टेटमेंट के बीच के स्पेस को टोकननाइज़र द्वारा हटा दिया जाता है।

अधिकांश मशीनों पर प्रोग्राम लाइनें कुल 80 अक्षर हो सकती हैं, लेकिन 40 कॉलम टेक्स्ट वाली मशीनें लाइन को स्क्रीन पर अगली पंक्ति के चारों ओर लपेटने का कारण बनेंगी, और VIC-20 पर, जिसमें 22 कॉलम डिस्प्ले था, प्रोग्राम लाइन्स पर कब्जा कर सकते हैं चार के रूप में। कमोडोर 128 पर बेसिक 7.0 ने एक प्रोग्राम लाइन की सीमा को बढ़ाकर 160 कैरेक्टर (चार 40-कॉलम लाइन या दो 80-कॉलम लाइन) कर दिया। जैसे संक्षिप्ताक्षरों का उपयोग करके ? के बजाय PRINT, एक लाइन पर और भी फिट होना संभव है। बेसिक 7.0 एक प्रदर्शित करता है ?STRING TOO LONG त्रुटि यदि उपयोगकर्ता लंबाई में 160 वर्णों से अधिक प्रोग्राम लाइन में प्रवेश करता है। पहले के संस्करणों में कोई त्रुटि उत्पन्न नहीं होती है और यदि रेखा की लंबाई पार हो जाती है तो केवल तैयार संकेत दो पंक्तियों को प्रदर्शित करता है। लाइन नंबर को प्रोग्राम लाइन में वर्णों की संख्या में गिना जाता है, इसलिए पांच अंकों की लाइन संख्या के परिणामस्वरूप एक अंक संख्या की तुलना में चार कम वर्णों की अनुमति होगी।

कमोडोर बेसिक लाइनों के निष्पादन का क्रम लाइन नंबरिंग द्वारा निर्धारित नहीं किया गया था; इसके बजाय, इसने उस क्रम का पालन किया जिसमें स्मृति में पंक्तियाँ जुड़ी हुई थीं। प्रोग्राम लाइन्स को मेमोरी में एक अकेले लिंक की गई सूची के रूप में एक पॉइंटर (जिसमें अगली प्रोग्राम लाइन की शुरुआत का पता होता है), एक लाइन नंबर और फिर लाइन के लिए टोकनाइज्ड कोड के रूप में स्टोर किया जाता है। जब एक प्रोग्राम में प्रवेश किया जा रहा था, बेसिक मेमोरी में प्रोग्राम लाइनों को लगातार पुनर्व्यवस्थित करेगा ताकि लाइन नंबर और पॉइंटर्स सभी आरोही क्रम में हों। हालाँकि, एक प्रोग्राम में प्रवेश करने के बाद, PEEK और POKE कमांड के साथ मैन्युअल रूप से लाइन नंबर और पॉइंटर्स को बदलने से आउट-ऑफ-ऑर्डर निष्पादन की अनुमति मिल सकती है या प्रत्येक लाइन को समान लाइन नंबर भी दे सकता है। शुरुआती दिनों में, जब BASIC का व्यावसायिक उपयोग किया गया था, यह कार्यक्रम के आकस्मिक संशोधन को हतोत्साहित करने के लिए एक सॉफ्टवेयर सुरक्षा तकनीक थी।

पंक्ति संख्या 0 से 65520 तक हो सकती है और पंक्ति संख्या में कितने अंक हैं, इसकी परवाह किए बिना स्टोर करने के लिए पांच बाइट्स ले सकते हैं, हालांकि निष्पादन तेजी से कम अंक हैं। एक लाइन पर कई स्टेटमेंट डालने से कम मेमोरी का उपयोग होगा और तेजी से निष्पादित होगा।

GOTO तथा GOSUB यदि आगे की ओर छलांग लगाई जाती है, तो पंक्ति संख्या खोजने के लिए कथन वर्तमान पंक्ति से नीचे की ओर खोजेंगे, पीछे की ओर कूदने के मामले में, वे खोज शुरू करने के लिए कार्यक्रम की शुरुआत में वापस आ जाएंगे। यह बड़े कार्यक्रमों को धीमा कर देगा, इसलिए आमतौर पर उपयोग किए जाने वाले सबरूटीन्स को प्रोग्राम की शुरुआत के करीब रखना बेहतर होता है।

वेरिएबल नाम केवल 2 वर्णों के लिए महत्वपूर्ण हैं; इस प्रकार चर नाम,  , तथा   सभी एक ही चर का संदर्भ देते हैं।

कमोडोर बेसिक भी बिटवाइज़ ऑपरेटरों का समर्थन करता है AND, OR, तथा XOR, हालांकि यह सुविधा मुख्य Microsoft 6502 बेसिक कोड का हिस्सा थी, इसे आम तौर पर अन्य कार्यान्वयनों जैसे Applesoft BASIC में छोड़ दिया गया था।

कमोडोर बेसिक का मूल संख्या प्रारूप, इसके माता-पिता एमएस बेसिक की तरह, फ़्लोटिंग पॉइंट था। अधिकांश समकालीन बेसिक कार्यान्वयनों ने विशेषता (प्रतिपादक) के लिए एक बाइट और महत्व के लिए तीन बाइट्स का उपयोग किया। तीन-बाइट मंटिसा का उपयोग करके तैरनेवाला स्थल नंबर की सटीकता केवल 6.5 दशमलव अंक है, और राउंड-ऑफ त्रुटि सामान्य है। Microsoft BASIC के 6502 कार्यान्वयन में 40-बिट फ़्लोटिंग पॉइंट अंकगणित का उपयोग किया गया, जिसका अर्थ है कि BASIC-80 में पाए गए 32-बिट फ़्लोटिंग पॉइंट के विपरीत वेरिएबल्स को स्टोर करने के लिए पाँच बाइट्स (चार बाइट मंटिसा और एक्सपोनेंट के लिए एक बाइट) लगे।

जबकि Microsoft BASIC के 8080/Z80 कार्यान्वयन ने पूर्णांक और दोहरे सटीक चर का समर्थन किया, 6502 कार्यान्वयन केवल फ्लोटिंग पॉइंट थे।

हालांकि कमोडोर बेसिक -32768 से 32767 की सीमा में हस्ताक्षरित संख्या प्रतिनिधित्व चर (एक प्रतिशत चिह्न के साथ चिह्नित) का समर्थन करता है, व्यवहार में वे केवल सरणी चर के लिए उपयोग किए जाते हैं और सरणी तत्वों को प्रत्येक दो बाइट्स (एक सरणी) तक सीमित करके मेमोरी के संरक्षण के कार्य को पूरा करते हैं। फ्लोटिंग पॉइंट सरणी के रूप में घोषित होने पर 2000 तत्वों में से 10,000 बाइट्स पर कब्जा हो जाएगा, लेकिन केवल 4000 अगर एक पूर्णांक सरणी के रूप में घोषित किया गया है)। किसी भी चर को पूर्णांक के रूप में नकारने से बेसिक को वापस फ्लोटिंग पॉइंट में बदलने का कारण बनता है, प्रोग्राम निष्पादन को धीमा कर देता है और स्मृति को बर्बाद कर देता है क्योंकि प्रत्येक प्रतिशत चिह्न स्टोर करने के लिए एक अतिरिक्त बाइट लेता है (चूंकि यह पूर्णांक सरणियों पर भी लागू होता है, प्रोग्रामर को उनका उपयोग करने से बचना चाहिए जब तक कि बहुत अधिक न हो बड़े सरणियों का उपयोग किया जाता है जो फ़्लोटिंग पॉइंट के रूप में संग्रहीत होने पर उपलब्ध मेमोरी से अधिक हो जाएगा)। साथ ही यह भी संभव नहीं है POKE या PEEK एक हस्ताक्षरित पूर्णांक के रूप में परिभाषित पते के साथ 32767 से ऊपर स्मृति स्थान।

एक अवधि (।) संख्या 0 के स्थान पर इस्तेमाल किया जा सकता है (इस प्रकार 10 A=. के बजाय 10 A=0 या 10 FOR A=. TO 100 के बजाय 10 FOR A=0 to 100), यह थोड़ा तेजी से निष्पादित होगा। SYS }} कथन, मशीन भाषा प्रोग्राम शुरू करने के लिए उपयोग किया जाता है, कमोडोर द्वारा जोड़ा गया था और मूल माइक्रोसॉफ्ट बेसिक कोड में नहीं था, जिसमें मशीन भाषा रूटीन को लागू करने के लिए केवल यूएसआर फ़ंक्शन शामिल था। यह स्वचालित रूप से सीपीयू के रजिस्टरों को मूल्यों के साथ लोड करता है $30C-$30F (C64, अन्य मशीनों पर भिन्न होता है)--इसका उपयोग मशीन भाषा रूटीन में डेटा पास करने के लिए या BASIC से कर्नेल फ़ंक्शंस को कॉल करने के साधन के रूप में किया जा सकता है (उदाहरण के लिए, POKE 780,147:SYS 65490 स्क्रीन साफ़ करता है)।

चूंकि C128 के अलावा कमोडोर 8-बिट मशीनें स्वचालित रूप से डिस्क सॉफ़्टवेयर को बूट नहीं कर सकती हैं, इसलिए सामान्य तकनीक में एक बेसिक स्टब जैसे शामिल करना है 10 SYS 2048 कार्यक्रम का निष्पादन शुरू करने के लिए। लोड करने के बाद सॉफ़्टवेयर को स्वचालित रूप से प्रारंभ करना संभव है और उपयोगकर्ता को टाइप करने की आवश्यकता नहीं है RUN कथन, यह कोड के एक टुकड़े के द्वारा किया जाता है जो बुनियादी तैयार वेक्टर को हुक करता है $0302.

Microsoft BASIC के अधिकांश अन्य संस्करणों की तरह, यदि किसी सरणी को a के साथ घोषित नहीं किया गया है DIM कथन, यह स्वचालित रूप से दस तत्वों पर सेट होता है (अभ्यास 11 में क्योंकि सरणी तत्वों को 0 से गिना जाता है)। बड़ी सरणियों को घोषित किया जाना चाहिए या जब प्रोग्राम चलाया जाता है तो BASIC एक त्रुटि प्रदर्शित करेगा और एक कार्यक्रम में एक सरणी को फिर से आयाम नहीं दिया जा सकता है जब तक कि सभी चर CLR कथन के माध्यम से मिटा नहीं दिए जाते। संख्यात्मक सरणियाँ स्वचालित रूप से शून्य से भर जाती हैं जब वे बनाई जाती हैं, यदि एक बड़ी सरणी का आयाम है तो कार्यक्रम के निष्पादन में क्षणिक विलंब हो सकता है।

स्ट्रिंग वेरिएबल्स को डॉलर चिह्न के साथ वेरिएबल नाम टैग करके दर्शाया जाता है। इस प्रकार, चर,  , तथा   क्या प्रत्येक को अलग समझा जाएगा। ऐरे वेरिएबल्स को साधारण वेरिएबल्स से भी अलग माना जाता है, इस प्रकार A तथा A(1) एक ही चर का संदर्भ न लें। एक स्ट्रिंग सरणी का आकार केवल यह दर्शाता है कि सरणी में कितने तार संग्रहीत हैं, न कि प्रत्येक तत्व का आकार, जो गतिशील रूप से आवंटित किया गया है। Microsoft BASIC के कुछ अन्य कार्यान्वयनों के विपरीत, कमोडोर BASIC को प्रोग्राम के प्रारंभ में आरक्षित होने के लिए स्ट्रिंग स्पेस की आवश्यकता नहीं होती है।

Apple II जैसी अन्य 8-बिट मशीनों के विपरीत, कमोडोर की सभी मशीनों में एक अंतर्निहित घड़ी होती है, जो 0 पर शुरू होती है और PIA/VIA/TED/CIA टाइमर के प्रत्येक टिक के साथ अपडेट की जाती है, इस प्रकार प्रति सेकंड 60 बार. इसे BASIC में दो सिस्टम वेरिएबल्स असाइन किए गए हैं, TI तथा TI$, जिसमें दोनों में वर्तमान समय है। TI केवल पढ़ने के लिए है और इसे संशोधित नहीं किया जा सकता है; ऐसा करने से सिंटैक्स त्रुटि संदेश प्राप्त होगा। TI$ छह नंबर स्ट्रिंग के माध्यम से समय निर्धारित करने के लिए इस्तेमाल किया जा सकता है (एक त्रुटि परिणाम छह नंबरों के अलावा एक स्ट्रिंग का उपयोग करने से होता है)। घड़ी टाइमकीपिंग का एक बहुत विश्वसनीय तरीका नहीं है क्योंकि जब भी व्यवधान बंद हो जाता है (कुछ कर्नल रूटीन द्वारा किया जाता है) बंद हो जाता है और IEC (या PET पर IEEE पोर्ट) पोर्ट तक पहुँचने से कुछ टिकों द्वारा घड़ी के अपडेट को धीमा कर दिया जाएगा। RND कमोडोर बेसिक में }} फ़ंक्शन यादृच्छिक संख्या उत्पन्न करने के लिए घड़ी का उपयोग कर सकता है; यह द्वारा पूरा किया जाता है RND(0), हालाँकि यह अपेक्षाकृत सीमित उपयोग के लिए है क्योंकि केवल 0 और 255 के बीच की संख्याएँ ही दी जाती हैं। अन्यथा, RND Microsoft BASIC के अन्य कार्यान्वयनों के समान काम करता है जिसमें एक छद्म-यादृच्छिक अनुक्रम का उपयोग एक निश्चित 5-बाइट बीज मान के माध्यम से किया जाता है जो मेमोरी स्थानों पर पावर पर संग्रहीत होता है। $8B-$8F C64 पर (स्थान अन्य मशीनों पर भिन्न होता है)। RND 0 से अधिक किसी भी संख्या के साथ शामिल मूल्य से समामेलित एक यादृच्छिक संख्या उत्पन्न करेगा RND फ़ंक्शन और बीज मान, जो कि RND फ़ंक्शन निष्पादित होने पर हर बार 1 से अपडेट किया जाता है। RND एक ऋणात्मक संख्या के साथ संख्या द्वारा निर्दिष्ट वर्तमान बीज मूल्य के क्रम में एक बिंदु पर जाता है।

चूंकि वास्तविक यादृच्छिक संख्या पीढ़ी के साथ असंभव है RND बयान, यादृच्छिक संख्या के लिए एसआईडी चिप के सफेद शोर चैनल का उपयोग करने के लिए सी 64 और सी 128 पर यह अधिक विशिष्ट है।

BASIC 2.0 स्ट्रिंग्स के बेहद धीमे कूड़ा संग्रह से कुख्यात रूप से पीड़ित है। कचरा संग्रह स्वचालित रूप से किसी भी समय शुरू हो जाता है FRE फ़ंक्शन निष्पादित किया जाता है और यदि कई स्ट्रिंग चर और सरणियाँ हैं जिन्हें प्रोग्राम के दौरान हेरफेर किया गया है, तो उन्हें साफ़ करने में सबसे खराब परिस्थितियों में एक घंटे से अधिक समय लग सकता है। कचरा संग्रह को रोकना भी संभव नहीं है क्योंकि बेसिक इस रूटीन को निष्पादित करते समय रन/स्टॉप कुंजी को स्कैन नहीं करता है। BASIC 4.0 ने बैक पॉइंटर्स के साथ एक बेहतर कचरा संग्रह प्रणाली की शुरुआत की और कमोडोर BASIC के बाद के सभी कार्यान्वयनों में भी यह है। FRE बेसिक 2.0 में }} फ़ंक्शन एक और तकनीकी दोष से ग्रस्त है जिसमें यह 32768 से अधिक हस्ताक्षरित संख्याओं को संभाल नहीं सकता है, इस प्रकार यदि फ़ंक्शन को C64 (38k बेसिक मेमोरी) पर लागू किया जाता है, तो मुफ्त बेसिक मेमोरी की एक नकारात्मक मात्रा प्रदर्शित की जाएगी (65535 को जोड़कर) रिपोर्ट की गई संख्या सही मात्रा में मुफ्त मेमोरी प्राप्त करेगी)। PET और VIC-20 के पास कभी भी BASIC के लिए उपलब्ध कुल मेमोरी का 32k से अधिक नहीं था, इसलिए C64 के विकसित होने तक यह सीमा स्पष्ट नहीं हुई। वह FRE बेसिक 3.5 और 7.0 पर कार्य ने इस समस्या को ठीक किया और FRE बेसिक 7.0 पर भी दो कार्यों में विभाजित किया गया था, एक मुफ्त बेसिक प्रोग्राम टेक्स्ट मेमोरी प्रदर्शित करने के लिए और दूसरा फ्री वेरिएबल मेमोरी प्रदर्शित करने के लिए।

विकल्प
इसके मूल बेसिक 2.0 की अपेक्षाकृत सीमित क्षमताओं के कारण कमोडोर 64 के लिए कई बेसिक एक्सटेंशन जारी किए गए थे। सबसे लोकप्रिय एक्सटेंशन में से एक डॉस कील था, जिसे कमोडोर 1541 टेस्ट/डेमो डिस्क में शामिल किया गया था। BASIC में इस 1 KB एक्सटेंशन ने मेमोरी में प्रोग्राम को नष्ट किए बिना डिस्क डायरेक्टरी को पढ़ने की क्षमता सहित कई डिस्क से संबंधित कमांड जोड़े। इसकी विशेषताओं को बाद में विभिन्न तृतीय-पक्ष एक्सटेंशन में शामिल किया गया, जैसे कि लोकप्रिय एपेक्स फास्टलोड कार्ट्रिज। अन्य बेसिक एक्सटेंशन ने कोड स्प्राइट्स, ध्वनि, और उच्च-रिज़ॉल्यूशन ग्राफ़िक्स जैसे सिमन्स बेसिक को आसान बनाने के लिए अतिरिक्त कीवर्ड जोड़े।

हालांकि बेसिक 2.0 में ध्वनि या ग्राफिक्स सुविधाओं की कमी कई उपयोगकर्ताओं को निराश कर रही थी, कुछ आलोचकों ने तर्क दिया कि यह अंततः फायदेमंद था क्योंकि इसने उपयोगकर्ता को मशीन भाषा सीखने के लिए मजबूर किया।

C64 पर BASIC 2.0 की सीमाओं के कारण BASIC की अंतर्निहित ROM मशीन भाषा का उपयोग हुआ। फ़ाइल को निर्दिष्ट स्मृति स्थान पर लोड करने के लिए, फ़ाइल नाम, ड्राइव और डिवाइस नंबर को कॉल द्वारा पढ़ा जाएगा: SYS57812"filename",8; स्थान X और Y रजिस्टरों में निर्दिष्ट किया जाएगा: POKE780,0:POKE781,0:POKE782,192; और लोड रूटीन कहा जाएगा: SYS65493. C64 के लिए एक डिस्क पत्रिका, लोडस्टार (पत्रिका), शौक़ीन प्रोग्रामरों के लिए एक स्थान था, जिन्होंने BASIC के लिए प्रोटो-कमांड का संग्रह साझा किया, जिसे SYS address + offset आज्ञा। आधुनिक प्रोग्रामिंग के दृष्टिकोण से, कमोडोर बेसिक के पुराने संस्करणों ने प्रोग्रामर के लिए कई खराब प्रोग्रामिंग जाल प्रस्तुत किए। जैसा कि इनमें से अधिकांश मुद्दे Microsoft BASIC से प्राप्त हुए हैं, वस्तुतः युग का प्रत्येक घरेलू कंप्यूटर BASIC समान कमियों से ग्रस्त था। Microsoft BASIC प्रोग्राम की प्रत्येक लाइन को प्रोग्रामर द्वारा एक लाइन नंबर दिया गया था। प्रोग्राम एडिटिंग या डिबगिंग के दौरान लाइनों को सम्मिलित करना आसान बनाने के लिए कुछ मान (5, 10 या 100) से संख्याओं को बढ़ाना आम बात थी, लेकिन खराब योजना का मतलब था कि एक प्रोग्राम में बड़े वर्गों को सम्मिलित करने के लिए अक्सर पूरे कोड के पुनर्गठन की आवश्यकता होती है। एक सामान्य तकनीक थी एक प्रोग्राम को कुछ लो लाइन नंबर पर a के साथ शुरू करना ON...GOSUB कूदने की मेज, 1000, 2000, और इसी तरह निर्दिष्ट लाइन नंबर पर शुरू होने वाले अनुभागों में संरचित कार्यक्रम के शरीर के साथ। यदि एक बड़े खंड को जोड़ने की आवश्यकता है, तो इसे केवल अगली उपलब्ध प्रमुख पंक्ति संख्या निर्दिष्ट की जा सकती है और जंप टेबल में डाला जा सकता है।

बाद में कमोडोर और अन्य प्लेटफार्मों पर बेसिक संस्करण शामिल थे DELETE तथा RENUMBER कमांड, साथ ही एक ऑटो लाइन नंबरिंग कमांड जो एक चयनित वेतन वृद्धि के अनुसार स्वचालित रूप से लाइन नंबरों का चयन और सम्मिलित करेगा। इसके अलावा, सभी चर को वैश्विक चर के रूप में माना जाता है। स्पष्ट रूप से परिभाषित लूप बनाना कठिन होता है, जिसके कारण प्रोग्रामर को लूप पर भरोसा करना पड़ता है GOTO कमांड (इसे बाद में BASIC 3.5 में DO, LOOP, WHILE, UNTIL, तथा EXIT आदेश)। कुछ कार्यों को करने के लिए ध्वज चरों को अक्सर बनाने की आवश्यकता होती है। पहले कमोडोर के बेसिक्स में डिबगिंग कमांड की भी कमी थी, जिसका अर्थ है कि बग और अप्रयुक्त चर को फंसाना मुश्किल है। IF...THEN...ELSE संरचनाएं, Z80 Microsoft BASIC का एक मानक हिस्सा, कमोडोर बेसिक के पिछले संस्करणों में अनुपलब्ध होने के बाद BASIC 3.5 में जोड़ा गया था।

यूजर इंटरफेस के रूप में प्रयोग करें
आम तौर पर अन्य घरेलू कंप्यूटरों के साथ, कमोडोर की मशीनें सीधे बेसिक दुभाषिया में बूट होती हैं। सॉफ्टवेयर को लोड और निष्पादित करने के लिए बेसिक की फाइल और प्रोग्रामिंग कमांड को सीधे मोड में दर्ज किया जा सकता है। यदि RUN/STOP कुंजी का उपयोग करके प्रोग्राम निष्पादन को रोक दिया गया था, तो चर मानों को RAM में संरक्षित किया जाएगा और डिबगिंग के लिए प्रिंट किया जा सकता है। 128 ने अपने दूसरे 64k बैंक को वेरिएबल स्टोरेज के लिए भी समर्पित किया, जिससे मूल्यों को एक तक बने रहने की अनुमति मिली  या   आदेश जारी किया था। यह, कमोडोर बेसिक के साथ शामिल उन्नत स्क्रीन संपादक के साथ प्रोग्रामिंग वातावरण को REPL जैसा अनुभव देता है; प्रोग्रामर किसी भी स्क्रीन स्थान पर प्रोग्राम लाइनों को सम्मिलित और संपादित कर सकते हैं, अंतःक्रियात्मक रूप से प्रोग्राम का निर्माण कर सकते हैं। यह CP/M या MS-DOS जैसे उस समय के व्यवसाय-उन्मुख ऑपरेटिंग सिस्टम के विपरीत है, जो आमतौर पर कमांड लाइन इंटरफेस में बूट होता है। यदि इन प्लेटफॉर्म्स पर प्रोग्रामिंग लैंग्वेज की आवश्यकता होती थी, तो इसे अलग से लोड करना पड़ता था।

जबकि कमोडोर बेसिक के कुछ संस्करणों में डिस्क-विशिष्ट शामिल थे  तथा   आदेश, कमोडोर 64 में निर्मित संस्करण में इनकी कमी थी, जिसके लिए उपयोगकर्ता को डिस्क ड्राइव के डिवाइस नंबर (आमतौर पर 8 या 9) को मानक के अनुसार निर्दिष्ट करने की आवश्यकता होती है।   कमांड, जो अन्यथा टेप के लिए डिफ़ॉल्ट था। कमोडोर 64s बेसिक 2.0 से एक और चूक थी a   मुख्य मेमोरी को साफ़ किए बिना डिस्क की सामग्री प्रदर्शित करने का आदेश। 64 पर, डिस्क पर फ़ाइलों को देखने को एक प्रोग्राम लोड करने के रूप में कार्यान्वित किया गया था, जो सूचीबद्ध होने पर निर्देशिका को छद्म बेसिक प्रोग्राम के रूप में दिखाया गया था, फ़ाइल के ब्लॉक आकार को लाइन नंबर के रूप में दिखाया गया था। यह वर्तमान में लोड किए गए प्रोग्राम को अधिलेखित करने का प्रभाव था। डॉस वेज जैसे एडॉन्स ने डायरेक्ट्री लिस्टिंग को सीधे स्क्रीन मेमोरी में रेंडर करके इस पर काबू पाया।

संस्करण और सुविधाएँ
क्रमिक रूप से जोड़ी गई विशेषताओं के साथ कालानुक्रमिक क्रम में सीबीएम बेसिक संस्करणों की एक सूची:

जारी संस्करण

 * V1.0: पीईटी 2001 चिकलेट कीबोर्ड और बिल्ट-इन कमोडोर डाटासेट (मूल पीईटी) के साथ
 * सरणियाँ 256 तत्वों तक सीमित हैं
 * PEEK और POKE कमांड $ C000 से ऊपर के BASIC ROM स्थानों पर स्पष्ट रूप से अक्षम हैं
 * V2.0 (पहली रिलीज़): PET 2001 फुल-ट्रैवल कीबोर्ड और अपग्रेड रोम के साथ
 * IEEE-488 समर्थन जोड़ें
 * कचरा संग्रह में सुधार हुआ
 * सरणी बग ठीक करें
 * ईस्टर अंडे - प्रवेश करना [संख्या] प्रदर्शित करता है   मनमाना संख्या बार
 * V4.0: PET/CBM 4000/8000 श्रृंखला (और बाद का संस्करण PET 2001s)
 * कमोडोर डॉस:  आदि (कुल 15)
 * डिस्क त्रुटि-चैनल चर:
 * कचरा-संग्रह प्रदर्शन में काफी सुधार हुआ * V2.0 (4.0 के बाद दूसरी रिलीज़): कमोडोर VIC-20|VIC-20; कमोडोर 64
 * V2.2 कमोडोर 64 गेम सिस्टम (1990)
 * V4+ : कमोडोर CBM-II|CBM-II सीरीज (उर्फ बी, पी रेंज)
 * स्मृति प्रबंधन:
 * कमोडोर डॉस:
 * स्वरूपित मुद्रण:
 * त्रुटि ट्रैपिंग:
 * वैकल्पिक ब्रांचिंग:
 * डायनेमिक एरर हैंडलिंग:
 * लचीला  पढ़ना:  [लाइन नंबर]
 * स्ट्रिंग खोज फ़ंक्शन:
 * वी3.5: कमोडोर 16|सी16/116, कमोडोर प्लस/4|प्लस/4
 * ध्वनि और ग्राफिक्स कमांड
 * जोस्टिक इनपुट:
 * दशमलव ↔ हेक्साडेसिमल रूपांतरण:
 * संरचित लूपिंग:
 * फ़ंक्शन कुंजी असाइनमेंट:  (डायरेक्ट मोड भी)
 * कार्यक्रम प्रविष्टि/संपादन:
 * डिबगिंग (ट्रेसिंग):
 * मशीन कोड मॉनिटर एंट्री कमांड:
 * सी (1) 16, प्लस / 4 ईस्टर अंडे - दर्ज करें
 * V7.0: कमोडोर 128
 * स्प्राइट (कंप्यूटर ग्राफिक्स) हैंडलिंग सहित अधिक ध्वनि और ग्राफिक्स कमांड
 * बिल्ट-इन स्प्राइट एडिटर:
 * मल्टी-स्टेटमेंट ब्लॉक के लिए  संरचनाएं:
 * चप्पू (खेल नियंत्रक), हल्की कलम इनपुट:
 * अनन्य संयोजन समारोह:
 * परिवर्तनशील पता प्राप्त करें:
 * टेक्स्ट मोड विंडोिंग:
 * नियंत्रित समय विलंब:
 * स्मृति प्रबंधन:
 * प्रोग्राम कोड को वेरिएबल्स से अलग स्टोर करने के लिए 128 के बैंक स्विचिंग का उपयोग किया। यदि प्रोग्राम GOTO कमांड के साथ शुरू किया गया था, तो प्रोग्राम निष्पादन में परिवर्तनीय मान संरक्षित किए जाएंगे।
 * कमोडोर डॉस:
 * सीपीयू गति समायोजन:  (2 बनाम 1 मेगाहर्ट्ज)
 * C64 मोड दर्ज करें:
 * अनिर्दिष्ट, काम कर रहा है:  (एक के बाद सीपीयू रजिस्टर पढ़ें  )
 * अकार्यान्वित आदेश:
 * C128 ईस्टर एग - एंटर करें

अप्रकाशित संस्करण

 * V3.6 : कमोडोर एलसीडी (अप्रकाशित प्रोटोटाइप)। निम्नलिखित अंतरों के साथ लगभग V7.0 के समान:
 * के बजाय
 * के बजाय
 * कमांड मौजूद नहीं है
 * अतिरिक्त आदेश:
 * V10 : कमोडोर 65 (अप्रकाशित प्रोटोटाइप)
 * ग्राफिक्स/वीडियो कमांड:
 * कम्प्यूटर का माउस इनपुट:
 * पाठ फ़ाइल उपयोगिता:
 * कार्यक्रम संपादन:
 * स्मृति प्रबंधन:
 * अकार्यान्वित आदेश:

उल्लेखनीय विस्तार पैकेज

 * सुपर विस्तारक (VIC-20; ROM कार्ट्रिज पर दिया गया) (कमोडोर)
 * सुपर विस्तारक 64 (C64रॉम कारतूस) (कमोडोर)
 * साइमन्स बेसिक (C64; कार्ट्रिज) (कमोडोर)
 * ग्राफिक्स बेसिक (C64; फ्लॉपी डिस्क) (हेसवेयर)
 * बुनियादी 8 (C128; फ्लॉपी डिस्क और वैकल्पिक आंतरिक ROM चिप) (वालरूसॉफ्ट)

स्रोत

 * कमोडोर/माइक्रोसॉफ्ट बेसिक वर्जन टाइमलाइन
 * बिल गेट्स के 8 बिट बेसिक में व्यक्तिगत ईस्टर एग, pagetable.com

बेसिक 2.0:
 * एंगरहाउज़ेन एट अल। (1983)। कमोडोर 64 की शारीरिक रचना (पूर्ण संदर्भ के लिए, कमोडोर 64#संदर्भ लेख देखें)।

बेसिक 3.5:
 * जेरार्ड, पीटर; बर्गिन, केविन (1985)। पूरा COMMODORE 16 ROM डिसअसेंबली। जेराल्ड डकवर्थ एंड कंपनी लिमिटेड ISBN 0-7156-2004-5.

बेसिक 7.0:
 * जार्विस, डेनिस; स्प्रिंगर, जिम डी. (1987). बेसिक 7.0 आंतरिक। ग्रैंड रैपिड्स, मिशिगन: अबैकस सॉफ्टवेयर, इंक। ISBN 0-916439-71-2.

बेसिक 10.0:
 * c65manual.txt कमोडोर 65 प्रारंभिक दस्तावेज (मार्च 1991), रोम संस्करण 910501 के लिए परिशिष्ट के साथ।

श्रेणी:सीबीएम सॉफ्टवेयर श्रेणी:कमोडोर 64 सॉफ्टवेयर श्रेणी:VIC-20 सॉफ्टवेयर श्रेणी:बंद माइक्रोसॉफ्ट बेसिक्स श्रेणी:बुनियादी दुभाषिए श्रेणी:बेसिक प्रोग्रामिंग भाषा परिवार श्रेणी:माइक्रोसॉफ्ट प्रोग्रामिंग भाषाएँ श्रेणी:1977 में बनाई गई प्रोग्रामिंग लैंग्वेज