कमोडोर बेसिक

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

कोर 6502 Microsoft BASIC पर आधारित है, और इस तरह यह उस समय के अन्य 6502 BASIC के साथ कई विशेषताओं को साझा करता है, जैसे कि Applesoft BASIC। कमोडोर ने 1977 में "एक बार भुगतान करें, कोई रॉयल्टी नहीं" के आधार पर माइक्रोसॉफ्ट से बेसिक लाइसेंस प्राप्त किया, जब जैक ट्रामियल ने बिल गेट्स के $3 प्रति यूनिट शुल्क के प्रस्ताव को यह कहते हुए ठुकरा दिया, "मैं पहले से ही शादीशुदा हूं," और $25,000 से अधिक का भुगतान नहीं करूंगा। स्थायी लाइसेंस के लिए।

मूल पीईटी संस्करण कुछ संशोधनों के साथ मूल माइक्रोसॉफ्ट कार्यान्वयन के समान था। 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 में एक ईस्टर अंडे का निर्माण किया था या कमोडोर बेसिक को "अपग्रेड" किया था जो इसकी सिद्धता को साबित करता है: (अस्पष्ट) कमांड टाइप करने पर, 1 का परिणाम होगा! स्क्रीन पर दिखाई दे रहा है। (ईस्टर अंडे को अच्छी तरह से अस्पष्ट किया गया था - दुभाषिया की किसी भी असावधानीमें संदेश दिखाई नहीं दिया।)

लोकप्रिय कमोडोर 64ROM में 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 बोलियों में आम था। स्थानांतरित अक्षरों के साथ कमांड को संक्षिप्त करना कमोडोर बेसिक के लिए अद्वितीय है।

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

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

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

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

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

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

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

कमोडोर बेसिक लाइनों के निष्पादन का क्रम लाइन नंबरिंग द्वारा निर्धारित नहीं किया गया था; इसके बजाय, यह उस क्रम का पालन करता है जिसमें स्मृति में लाइनें जुड़ी हुई थीं। प्रोग्राम लाइन्स को मेमोरी में सिंगल लिंक्ड लिस्टके रूप में एक पॉइंटर (जिसमें अगली प्रोग्राम लाइन की शुरुआत का पता होता है), एक लाइन नंबर और फिर लाइन के लिए टोकनाइज्ड कोड के रूप में स्टोर किया जाता है। जब एक प्रोग्राम में प्रवेश किया जा रहा था, बेसिक मेमोरी में प्रोग्राम लाइनों को लगातार पुनर्व्यवस्थित करेगा ताकि लाइन नंबर और पॉइंटर्स सभी आरोही क्रम में हों। हालाँकि, एक प्रोग्राम में प्रवेश करने के बाद, 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 }}कथन, मशीन भाषा प्रोग्राम शुरू करने के लिए उपयोग किया जाता है, कमोडोर द्वारा जोड़ा गया था और मूल Microsoft BASIC कोड में नहीं था, जिसमें मशीन भाषा रूटीन को लागू करने के लिए केवल USR फ़ंक्शन शामिल था। यह स्वचालित रूप से CPU के रजिस्टरों को $30C-$30F(C64, अन्य मशीनों पर भिन्न होता है) में मूल्यों के साथ लोड करता है - इसका उपयोग मशीन भाषा रूटीन में डेटा पास करने के लिए या BASIC से कर्नेल फ़ंक्शंस को कॉल करने के साधन के रूप में किया जा सकता है (उदाहरण के तौर पर) ,POKE 780,147:SYS 65490 स्क्रीन साफ़ करता है)।

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

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

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

विपरीत, कमोडोर की सभी मशीनों में एक अंतर्निहित घड़ी होती है, जो 0 पर शुरू होती है और PIA/VIA/TED/CIA टाइमर के प्रत्येक टिक के साथ अपडेट की जाती है, इस प्रकार प्रति सेकंड 60 बार. इसे BASIC, TI तथा TI$,में दो सिस्टम वेरिएबल्स असाइन किए गए हैं, जिनमें दोनों में वर्तमान समय है। TI केवल पढ़ने के लिए है और इसे संशोधित नहीं किया जा सकता है; ऐसा करने से सिंटैक्स त्रुटि संदेश प्राप्त होगा। TI $ का उपयोग छह नंबर स्ट्रिंग के माध्यम से समय निर्धारित करने के लिए किया जा सकता है (एक त्रुटि परिणाम छह नंबरों के अलावा एक स्ट्रिंग का उपयोग करने से होता है)। घड़ी टाइमकीपिंग का एक बहुत विश्वसनीय तरीका नहीं है क्योंकि जब भी व्यवधान बंद हो जाता है (कुछ कर्नल रूटीन द्वारा किया जाता है) बंद हो जाता है और IEC (या PET पर IEEE पोर्ट) पोर्ट तक पहुँचने से कुछ टिकों द्वारा घड़ी के अपडेट को धीमा कर दिया जाएगा।

RND कमोडोर बेसिक में }}फ़ंक्शन यादृच्छिक संख्या उत्पन्न करने के लिए घड़ी का उपयोग कर सकता है; यह RND(0)द्वारा पूरा किया जाता है, हालांकि यह अपेक्षाकृत सीमित उपयोग का है क्योंकि केवल 0 और 255 के बीच की संख्या ही वापस आती है। अन्यथा, RND Microsoft BASIC के अन्य कार्यान्वयनों के समान ही काम करता है जिसमें C64 पर स्मृति स्थानों$8B-$8F पर पावर पर संग्रहीत एक निश्चित 5-बाइट बीज मूल्य के माध्यम से एक छद्म-यादृच्छिक अनुक्रम का उपयोग किया जाता है (स्थान अन्य पर भिन्न होता है) मशीनें)। RND 0 से अधिक किसी भी संख्या के साथ RND फ़ंक्शन और बीज मान के साथ शामिल मूल्य से समामेलित एक यादृच्छिक संख्या उत्पन्न करेगा, जिसे RND फ़ंक्शन निष्पादित होने पर हर बार 1 से अपडेट किया जाता है। ऋणात्मक संख्या वाला RND संख्या द्वारा निर्दिष्ट वर्तमान बीज मान के क्रम में एक बिंदु पर जाता है।

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

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

बेसिक 2.0 में FREफ़ंक्शन एक और तकनीकी दोष से ग्रस्त है जिसमें यह 32768 से अधिक हस्ताक्षरित संख्याओं को संभाल नहीं सकता है, इस प्रकार यदि फ़ंक्शन को C64 (38k बेसिक मेमोरी) पर लागू किया जाता है, तो मुफ्त बेसिक मेमोरी की एक नकारात्मक मात्रा प्रदर्शित की जाएगी (65535 को जोड़कर) रिपोर्ट की गई संख्या सही मात्रा में मुफ्त मेमोरी प्राप्त करेगी)। PET और VIC-20 के पास कभी भी BASIC के लिए उपलब्ध कुल मेमोरी का 32k से अधिक नहीं था, इसलिए C64 के विकसित होने तक यह सीमा स्पष्ट नहीं हुई। बेसिक 3.5 और 7.0 पर एफआरई फ़ंक्शन ने इस समस्या को ठीक किया और बेसिक 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 के लिए एक डिस्क पत्रिका, लोडस्टार (पत्रिका)शौक़ीन प्रोग्रामरों के लिए एक स्थान था, जिन्होंने बेसिक के लिए प्रोटो-कमांड का संग्रह साझा किया, जिसेSYS address + offset ऑफ़सेट कमांड के साथ बुलाया गया।

आधुनिक प्रोग्रामिंग के दृष्टिकोण से, कमोडोर बेसिक के पुराने संस्करणों ने प्रोग्रामर के लिए कई खराब प्रोग्रामिंग जाल प्रस्तुत किए। चूंकि इनमें से अधिकांश मुद्दे Microsoft BASIC से प्राप्त हुए हैं, वस्तुतः युग का प्रत्येक घरेलू कंप्यूटर BASIC इसी तरह की कमियों से ग्रस्त था। Microsoft BASIC प्रोग्राम की प्रत्येक लाइन को प्रोग्रामर द्वारा एक लाइन नंबर दिया गया था। प्रोग्राम एडिटिंग या डिबगिंग के दौरान लाइनों को सम्मिलित करना आसान बनाने के लिए कुछ मान (5, 10 या 100) से संख्याओं को बढ़ाना आम बात थी, लेकिन खराब योजना का मतलब था कि एक प्रोग्राम में बड़े वर्गों को सम्मिलित करने के लिए अक्सर पूरे कोड के पुनर्गठन की आवश्यकता होती है। एक सामान्य तकनीक एक ON...GOSUB जम्प टेबल के साथ कुछ लो लाइन नंबर पर एक प्रोग्राम शुरू करना था, जिसमें प्रोग्राम की बॉडी को 1000, 2000 जैसे निर्दिष्ट लाइन नंबर से शुरू होने वाले सेक्शन में संरचित किया गया था। यदि एक बड़े खंड को जोड़ने की आवश्यकता है, तो इसे केवल अगली उपलब्ध प्रमुख पंक्ति संख्या निर्दिष्ट की जा सकती है और जंप टेबल में डाला जा सकता है।

इसके अलावा, सभी चर को वैश्विक चर के रूप में माना जाता है। FOR...NEXT निर्माण से परे स्पष्ट रूप से परिभाषित लूप बनाना मुश्किल है, अक्सर प्रोग्रामर को GOTO कमांड पर भरोसा करने का कारण बनता है (इसे बाद में DO, LOOP, WHILE, UNTIL, तथा EXIT कमांड के साथ BASIC 3.5 में सुधारा गया था) ). कुछ कार्यों को करने के लिए ध्वज चरों को अक्सर बनाने की आवश्यकता होती है।

बाद में कमोडोर और अन्य प्लेटफार्मों पर बुनियादी संस्करणों में DELETE और RENUMBER कमांड के साथ-साथ एक AUTO लाइन नंबरिंग कमांड शामिल था जो एक चयनित वृद्धि के अनुसार स्वचालित रूप से लाइन नंबरों का चयन और सम्मिलित करेगा। पहले कमोडोर के बेसिक्स में डिबगिंग कमांड की भी कमी थी, जिसका अर्थ है कि बग और अप्रयुक्त चर को फंसाना मुश्किल है। 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 में बनाई गई प्रोग्रामिंग लैंग्वेज