कमोडोर बेसिक: Difference between revisions

From Vigyanwiki
No edit summary
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Short description|BASIC programming language dialect}}
{{Short description|BASIC programming language dialect}}
{{multiple issues|
{{original research|date=October 2012}}
{{more citations needed|date=October 2012}}
}}
{{Infobox programming language
{{Infobox programming language
| name = Commodore BASIC
| name = Commodore BASIC
Line 18: Line 14:
| operating system =  
| operating system =  
}}
}}
कमोडोर [[बुनियादी|बेसिक]], जिसे पीईटी बेसिक या सीबीएम-बेसिक के रूप में भी जाना जाता है, [[कमोडोर इंटरनेशनल]] की [[8 बिट]] [[गृह कम्प्यूटर|होम कंप्यूटर]] लाइन में प्रयुक्त बेसिक [[प्रोग्रामिंग भाषा]] की [[बोली (कंप्यूटिंग)]] है, जो 1977 के [[कमोडोर पीईटी]] से 1985 के [[कमोडोर 128]] तक फैली हुई है।
'''कमोडोर [[बुनियादी|बेसिक]]''', जिसे पीईटी बेसिक या सीबीएम-बेसिक के रूप में भी जाना जाता है, [[कमोडोर इंटरनेशनल]] की [[8 बिट]] [[गृह कम्प्यूटर|होम संगणक]] लाइन में प्रयुक्त बेसिक [[प्रोग्रामिंग भाषा]] की [[बोली (कंप्यूटिंग)|उपभाषा (कंप्यूटिंग)]] है, जो 1977 के [[कमोडोर पीईटी]] से 1985 के [[कमोडोर 128]] तक फैली हुई है।


कोर [[एमओएस टेक्नोलॉजी 6502|6502 Microsoft BASIC]] पर आधारित है, और इस तरह यह उस समय के अन्य 6502 BASIC के साथ कई विशेषताओं को साझा करता है, जैसे कि [[Applesoft BASIC]]। कमोडोर ने 1977 में "एक बार भुगतान करें, कोई रॉयल्टी नहीं" के आधार पर [[माइक्रोसॉफ्ट]] से बेसिक लाइसेंस प्राप्त किया, जब [[जैक ट्रामियल]] ने [[बिल गेट्स]] के $3 प्रति यूनिट शुल्क के प्रस्ताव को यह कहते हुए ठुकरा दिया, "मैं पहले से ही शादीशुदा हूं," और $25,000 से अधिक का भुगतान नहीं करूंगा। स्थायी लाइसेंस के लिए।<ref>Stated by [[Jack Tramiel]] at the Commodore 64 25th Anniversary Celebration at the [[Computer History Museum]] December 10, 2007 [http://www.computerhistory.org/events/index.php?id=1193702785] {{Webarchive|url=https://web.archive.org/web/20081211123347/http://www.computerhistory.org/events/index.php?id=1193702785 |date=2008-12-11 }}[http://www.computerhistory.org/events/video/75/] {{Webarchive|url=https://web.archive.org/web/20171003111509/http://www.computerhistory.org/events/video/75/ |date=2017-10-03 }}[https://www.youtube.com/watch?v=NBvbsPNBIyk].</ref>
कोर [[एमओएस टेक्नोलॉजी 6502|6502 माइक्रोसॉफ्ट बेसिक]] पर आधारित है, और इस तरह यह उस समय के अन्य 6502 बेसिक के साथ कई विशेषताओं को साझा करता है, जैसे कि [[Applesoft BASIC|एपलसॉफ्ट बेसिक]]। कमोडोर ने 1977 में "एक बार भुगतान करें, कोई रॉयल्टी नहीं" के आधार पर [[माइक्रोसॉफ्ट]] से बेसिक लाइसेंस प्राप्त किया, जब [[जैक ट्रामियल]] ने [[बिल गेट्स]] के $3 प्रति यूनिट शुल्क के प्रस्ताव को यह कहते हुए ठुकरा दिया, "मैं पहले से ही शादीशुदा हूं," और $25,000 से अधिक का भुगतान स्थायी लाइसेंस के लिए नहीं करूंगा।<ref>Stated by [[Jack Tramiel]] at the Commodore 64 25th Anniversary Celebration at the [[Computer History Museum]] December 10, 2007 [http://www.computerhistory.org/events/index.php?id=1193702785] {{Webarchive|url=https://web.archive.org/web/20081211123347/http://www.computerhistory.org/events/index.php?id=1193702785 |date=2008-12-11 }}[http://www.computerhistory.org/events/video/75/] {{Webarchive|url=https://web.archive.org/web/20171003111509/http://www.computerhistory.org/events/video/75/ |date=2017-10-03 }}[https://www.youtube.com/watch?v=NBvbsPNBIyk].</ref>


मूल पीईटी संस्करण कुछ संशोधनों के साथ मूल माइक्रोसॉफ्ट कार्यान्वयन के समान था। C64 पर BASIC 2.0 भी समान था, और C128s (C64 मोड में) और अन्य मॉडलों पर भी देखा गया था। बाद में PET में मूल के समान BASIC 4.0, लेकिन [[फ्लॉपी डिस्क]] के साथ काम करने के लिए कई कमांड जोड़े गए।
मूल पीईटी संस्करण कुछ संशोधनों के साथ मूल माइक्रोसॉफ्ट कार्यान्वयन के समान था। C64 पर बेसिक 2.0 भी समान था, और C128s (C64 मोड में) और अन्य मॉडलों पर भी देखा गया था। बाद में पीईटी में मूल के समान बेसिक 4.0, लेकिन [[फ्लॉपी डिस्क]] के साथ काम करने के लिए कई निर्देश जोड़े गए।


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


== इतिहास ==
== इतिहास ==
कमोडोर ने फ्लैट-फीस बेसिक का स्रोत कोड लिया और इसे अपने सभी अन्य 8-बिट होम कंप्यूटरों के लिए आंतरिक रूप से विकसित किया। यह कमोडोर 128 (V7.0 के साथ) तक नहीं था कि Microsoft कॉपीराइट नोटिस प्रदर्शित किया गया था। हालाँकि, Microsoft ने संस्करण 2 में एक ईस्टर अंडे का निर्माण किया था या कमोडोर बेसिक को "अपग्रेड" किया था जो इसकी सिद्धता को साबित करता है: (अस्पष्ट) कमांड <code>WAIT 6502, 1</code>टाइप करने पर, 1 का परिणाम<code>Microsoft!</code>होगा! स्क्रीन पर दिखाई दे रहा है। (ईस्टर अंडे को अच्छी तरह से अस्पष्ट किया गया था - दुभाषिया की किसी भी [[disassembler|असावधानी]]में संदेश दिखाई नहीं दिया।)<ref>{{cite web|url=http://www.pagetable.com/?p=43|title=8 बिट बेसिक में बिल गेट्स का व्यक्तिगत ईस्टर एग - pagetable.com|website=www.pagetable.com|access-date=8 August 2018}}</ref>
कमोडोर ने फ्लैट-फीस बेसिक का स्रोत कोड लिया और इसे अपने सभी अन्य 8-बिट होम संगणक के लिए आंतरिक रूप से विकसित किया। यह कमोडोर 128 (V7.0 के साथ) तक नहीं था कि माइक्रोसॉफ्ट कॉपीराइट नोटिस प्रदर्शित किया गया था। चूंकि, माइक्रोसॉफ्ट ने संस्करण 2 में ईस्टर एग का निर्माण किया था या कमोडोर बेसिक को "सुधार" किया था जो इसकी सिद्धता को सिद्ध  करता है: (अस्पष्ट) निर्देश <code>WAIT 6502, 1</code>टाइप करने पर, 1 का परिणाम<code>Microsoft!</code>होगा! चित्रपट पर दिखाई दे रहा है। (ईस्टर एग को अच्छी तरह से अस्पष्ट किया गया था - दुभाषिया की किसी भी [[disassembler|असावधानी]] संदेश दिखाई नहीं दिया।)<ref>{{cite web|url=http://www.pagetable.com/?p=43|title=8 बिट बेसिक में बिल गेट्स का व्यक्तिगत ईस्टर एग - pagetable.com|website=www.pagetable.com|access-date=8 August 2018}}</ref>
 
लोकप्रिय [[कमोडोर 64]]ROM में BASIC v2.0 के साथ आया, भले ही कंप्यूटर को PET/CBM श्रृंखला के संस्करण 4.0 के बाद जारी किया गया था क्योंकि 64 का उद्देश्य घरेलू कंप्यूटर के रूप में था, जबकि PET/CBM श्रृंखला व्यवसाय और शैक्षिक पर लक्षित थी। उपयोग करें जहां उनकी अंतर्निहित प्रोग्रामिंग भाषा को अधिक भारी रूप से उपयोग करने के लिए माना जाता था। इसने निर्माण लागत को बचाया, क्योंकि V2 छोटे रोम में फिट हो गया।
 
{{multiple issues|section=y|
{{More citations needed section|date=August 2011}}
{{Original research section|date=July 2013}}
}}
 


लोकप्रिय [[कमोडोर 64]] आरओएम में बेसिक v2.0 के साथ आया, भले ही संगणक को पीईटी/सीबीएम श्रृंखला के संस्करण 4.0 के बाद जारी किया गया था क्योंकि 64 का उद्देश्य घरेलू संगणक के रूप में था, जबकि पीईटी/सीबीएम श्रृंखला व्यवसाय और शैक्षिक उपयोग करें जहां उनकी अंतर्निहित प्रोग्रामिंग भाषा को अधिक भारी रूप से उपयोग करने के लिए माना जाता था पर लक्षित थी। इसने निर्माण लागत को बचाया, क्योंकि V2 छोटे रोम में उपयुक्त हो गया।
===प्रोग्राम संपादन===
===प्रोग्राम संपादन===
कमोडोर के [[रीड ऑनली मैमोरी]]-रेजिडेंट BASIC दुभाषिया और [[KERNAL]] की एक सुविधाजनक सुविधा [[दृश्य संपादक]] थी।<ref>{{cite web|url=https://archive.org/stream/Commodore_Microcomputers_Volume_6_Number_4_Issue_36_1985-07_Commodore_US#page/n41/mode/2up|title=कीबोर्डिंग और स्क्रीन एडिटर|date=July 1985}}</ref><ref>{{cite web|url=http://www.classiccmp.org/dunfield/c64/bytejl83.pdf|title=बाइट जुलाई 1983}}</ref> हालांकि कमोडोर कीबोर्ड में केवल दो [[कर्सर कुंजियाँ]] होती हैं, जो शिफ्ट कुंजी के आयोजित होने पर वैकल्पिक दिशा में होती हैं, स्क्रीन संपादक ने उपयोगकर्ताओं को स्क्रीन पर कहीं से भी [[डायरेक्ट मोड|सीधे कमांड]]दर्ज करने या प्रोग्राम लाइनों को इनपुट करने और संपादित करने की अनुमति दी। यदि एक लाइन को एक लाइन नंबर के साथ प्रीफ़िक्स किया गया था, तो इसे प्रोग्राम मेमोरी में [[टोकन]]और स्टोर किया गया था। जब भी कर्सर लाइन पर होता है, तो किसी संख्या से शुरू नहीं होने वाली पंक्तियों को {{keypress|RETURN}} कुंजी दबाकर निष्पादित किया जाता है। इसने उस समय के अन्य सामान्य होम कंप्यूटर बेसिक्स की तुलना में प्रोग्राम एंट्री इंटरफेस में एक महत्वपूर्ण अपग्रेड को चिह्नित किया, जो आमतौर पर [[लाइन संपादक|लाइन संपादकों]]का उपयोग करता था, जिसे एक अलग<code>EDIT</code> कमांड द्वारा लागू किया जाता था, या "कॉपी कर्सर" जो कर्सर की स्थिति में लाइन को काट देता था।
कमोडोर के [[रीड ऑनली मैमोरी]]-रेजिडेंट बेसिक दुभाषिया और [[KERNAL|करनाल]] एक सुविधाजनक सुविधा [[दृश्य संपादक]] थी।<ref>{{cite web|url=https://archive.org/stream/Commodore_Microcomputers_Volume_6_Number_4_Issue_36_1985-07_Commodore_US#page/n41/mode/2up|title=कीबोर्डिंग और स्क्रीन एडिटर|date=July 1985}}</ref><ref>{{cite web|url=http://www.classiccmp.org/dunfield/c64/bytejl83.pdf|title=बाइट जुलाई 1983}}</ref> चूंकि कमोडोर कुंजीपटल में केवल दो [[कर्सर कुंजियाँ]] होती हैं, जो परिवर्तित कुंजी के आयोजित होने पर वैकल्पिक दिशा में होती हैं, चित्रपट संपादक ने उपयोगकर्ताओं को चित्रपट पर कहीं से भी [[डायरेक्ट मोड|सीधे निर्देश]] अंकित करने या प्रोग्राम लाइनों को निविष्‍टि करने और संपादित करने की अनुमति दी। यदि एक लाइन को एक लाइन नंबर के साथ उपसर्ग किया गया था, तो इसे प्रोग्राम स्मृति में [[टोकन]]और संचय किया गया था। जब भी कर्सर लाइन पर होता है, तो किसी संख्या से प्रारंभ नहीं होने वाली पंक्तियों को {{keypress|RETURN}} कुंजी दबाकर निष्पादित किया जाता है। इसने उस समय के अन्य सामान्य होम संगणक बेसिक्स की तुलना में प्रोग्राम प्रविष्टि इंटरफेस में महत्वपूर्ण सुधार को चिह्नित किया, जो सामान्यतः [[लाइन संपादक|लाइन संपादकों]] का उपयोग करता था, जिसे एक अलग<code>EDIT</code> निर्देश द्वारा लागू किया जाता था, या "कॉपी कर्सर" जो कर्सर की स्थिति में लाइन को काट देता था।


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


{{mono|LOAD}}<nowiki> }} कमांड का उपयोग वैकल्पिक पैरामीटर 1 के साथ किया जा सकता है, जो फ़ाइल के पहले दो बाइट्स में निहित मेमोरी एड्रेस में प्रोग्राम को लोड करेगा (इन बाइट्स को छोड़ दिया जाता है और मेमोरी में नहीं रखा जाता है)। यदि 1 पैरामीटर का उपयोग नहीं किया जाता है, तो प्रोग्राम बेसिक प्रोग्राम क्षेत्र की शुरुआत में लोड हो जाएगा, जो मशीनों के बीच व्यापक रूप से भिन्न होता है। कुछ कमोडोर बेसिक वेरिएंट्स ने</nowiki><code>BLOAD</code> तथा <code>[[BSAVE]]</code>कमांड्स की आपूर्ति की जो Applesoft BASIC में उनके समकक्षों की तरह काम करते थे, निर्दिष्ट मेमोरी स्थानों से [[बिटमैप|बिटमैप्स]] को लोड या सेव करते थे।
{{mono|LOAD}}<nowiki> }} निर्देश का उपयोग वैकल्पिक मापदण्ड, 1 के साथ किया जा सकता है, जो फ़ाइल के पहले दो बाइट्स में निहित स्मृति एड्रेस में प्रोग्राम को भारण करेगा (इन बाइट्स को छोड़ दिया जाता है और स्मृति में नहीं रखा जाता है)। यदि 1 मापदण्ड का उपयोग नहीं किया जाता है, तो प्रोग्राम बेसिक प्रोग्राम क्षेत्र की शुरुआत में भारण हो जाएगा, जो मशीनों के बीच व्यापक रूप से भिन्न होता है। कुछ कमोडोर बेसिक वेरिएंट्स ने</nowiki><code>BLOAD</code> तथा <code>[[BSAVE]]</code> निर्देश की आपूर्ति की जो एपलसॉफ्ट बेसिक में उनके समकक्षों की तरह काम करते थे, निर्दिष्ट स्मृति स्थानों से [[बिटमैप|बिटमैप्स]] को भारण या सुरक्षित करते थे।


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


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


डिफॉल्ट अपरकेस-ओनली कैरेक्टर सेट में, शिफ्ट किए गए कैरेक्टर ग्राफिक्स सिंबल के रूप में दिखाई देते हैं; उदा. आदेश<code>GOTO</code>संक्षिप्त रूप में<code>G{Shift-O}</code>हो सकता है (जो स्क्रीन पर <code>G'''Γ'''</code> जैसा दिखता है)। ऐसे अधिकांश आदेश दो अक्षर लंबे थे, लेकिन कुछ मामलों में वे लंबे थे। इस तरह के मामलों में, एक अस्पष्टता थी, इसलिए आदेश के अधिक अपरिवर्तित अक्षरों की आवश्यकता थी, जैसे <code>GO{Shift-S}</code> (<code>GO♥</code>) को <code>[[GOSUB]]</code>.के लिए आवश्यक होना। कुछ आदेशों का कोई संक्षिप्त रूप नहीं था, या तो अन्य आदेशों के साथ संक्षिप्तता या अस्पष्टता के कारण। उदाहरण के लिए, कमांड,<code>INPUT</code> का कोई संक्षिप्त नाम नहीं था क्योंकि इसकी वर्तनी अलग <code>INPUT#</code> कीवर्ड से टकराई थी, जो कीवर्ड लुकअप तालिका की शुरुआत के करीब स्थित थी। अत्यधिक उपयोग किए जाने वाले<code>PRINT</code>कमांड में एक ही था <code>?</code> शॉर्टकट, जैसा कि अधिकांश Microsoft BASIC बोलियों में आम था। स्थानांतरित अक्षरों के साथ कमांड को संक्षिप्त करना कमोडोर बेसिक के लिए अद्वितीय है।
डिफॉल्ट बड़ा अक्षर-केवल अक्षर स्थापित में, परिवर्तित किए गए अक्षर ग्राफिक्स सिंबल के रूप में दिखाई देते हैं, उदाहरण निर्देश <code>GOTO</code>संक्षिप्त रूप में<code>G{Shift-O}</code>हो सकता है (जो चित्रपट पर <code>G'''Γ'''</code> जैसा दिखता है)। ऐसे अधिकांश निर्देश दो अक्षर के तो होते ही है और कुछ में दो से भी बड़े होते थे। इस तरह के मामलों में, अस्पष्टता थी, इसलिए निर्देश के अधिक अपरिवर्तित अक्षरों की आवश्यकता थी, जैसे <code>GO{Shift-S}</code> (<code>GO♥</code>) को <code>[[GOSUB]]</code>.के लिए आवश्यक होना। कुछ निर्देश का कोई संक्षिप्त रूप, या तो अन्य निर्देश के साथ संक्षिप्तता या अस्पष्टता के कारण  नहीं था। उदाहरण के लिए, निर्देश,<code>INPUT</code> का कोई संक्षिप्त नाम नहीं था क्योंकि इसकी वर्तनी अलग <code>INPUT#</code> संकेतशब्द से टकराई थी, जो संकेतशब्द लुकअप तालिका की शुरुआत के करीब स्थित थी। अत्यधिक उपयोग किए जाने वाले<code>PRINT</code> निर्देश में एक ही था <code>?</code> शॉर्टकट, जैसा कि अधिकांश माइक्रोसॉफ्ट बेसिक बोलियों में आम था। स्थानांतरित अक्षरों के साथ निर्देश को संक्षिप्त करना कमोडोर बेसिक के लिए अद्वितीय है।


इस टोकनिंग पद्धति में एक गड़बड़ थी जैसे कि यदि कोई एक <code>REM</code>(कोड में टिप्पणी जोड़ने के लिए बेसिक स्टेटमेंट) के बाद<code>{Shift-L}</code>शामिल करता है, तो प्रोग्राम लिस्टिंग को देखने की कोशिश करते समय, BASIC दुभाषिया तुरंत लिस्टिंग को रद्द कर देगा <code>?SYNTAX  ERROR</code> प्रदर्शित करें और <code>READY.</code>पर वापस लौटें। तत्पर। इस गड़बड़ी का उपयोग उन प्रोग्रामरों द्वारा कुछ प्रभाव के लिए किया गया था जो अपने काम की कोशिश करना और उसकी रक्षा करना चाहते थे, हालाँकि इसे दरकिनार करना काफी आसान था।
इस टोकनिंग पद्धति में गड़बड़ थी जैसे कि यदि कोई <code>REM</code>(कोड में टिप्पणी जोड़ने के लिए बेसिक कथन) के बाद<code>{Shift-L}</code>सम्मलित करता है, तो प्रोग्राम सूची को देखने की कोशिश करते समय, बेसिक दुभाषिया तुरंत सूची को रद्द कर देगा <code>?SYNTAX  ERROR</code> प्रदर्शित करें और <code>READY. संकेत</code>पर वापस लौटें। इस गड़बड़ी का उपयोग उन प्रोग्रामरों द्वारा कुछ प्रभाव के लिए किया गया था जो अपने काम की कोशिश करना और उसकी रक्षा करना चाहते थे, चूंकि इसे दरकिनार करना काफी आसान था।


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


=== प्रदर्शन ===
=== प्रदर्शन ===
मूल माइक्रोसॉफ्ट बेसिक [[दुभाषिया (प्रोग्रामिंग)]] की तरह, कमोडोर बेसिक [[मशीन कोड]]से धीमा है। परीक्षण के परिणामों से पता चला है कि रीड-ओनली मेमोरी से [[यादृच्छिक अभिगम स्मृति]] में 16 [[किलोबाइट]] की प्रतिलिपि बनाने में BASIC में एक मिनट से अधिक की तुलना में मशीन कोड में एक सेकंड से भी कम समय लगता है।{{citation needed|date=March 2018}} दुभाषिया की तुलना में तेजी से निष्पादित करने के लिए, प्रोग्रामर ने निष्पादन को गति देने के लिए विभिन्न तकनीकों का उपयोग करना शुरू कर दिया। एक शाब्दिक मूल्यों का उपयोग करने के बजाय चर में अक्सर उपयोग किए जाने वाले फ़्लोटिंग पॉइंट मानों को संग्रहीत करना था, क्योंकि एक चर नाम की व्याख्या एक शाब्दिक संख्या की व्याख्या करने की तुलना में तेज़ थी। चूंकि फ़्लोटिंग पॉइंट सभी कमांड के लिए डिफ़ॉल्ट प्रकार है, इसलिए पूर्णांक के बजाय फ़्लोटिंग पॉइंट नंबरों को तर्क के रूप में उपयोग करना तेज़ है। जब गति महत्वपूर्ण थी, तो कुछ प्रोग्रामर ने बेसिक प्रोग्राम के अनुभागों को 6502 या [[एमओएस टेक्नोलॉजी 6510]]असेंबली लैंग्वेज में परिवर्तित कर दिया, जिसे बेसिक प्रोग्राम के अंत में एक फ़ाइल से अलग से लोड किया गया था या DATA स्टेटमेंट से मेमोरी में POKEd किया गया था, और SYS कमांड का उपयोग करके BASIC से निष्पादित किया गया था, या तो डायरेक्ट मोड से या [[बेसिक लोडर|प्रोग्राम]] से ही।जब मशीन भाषा की निष्पादन गति बहुत अधिक थी, जैसे किसी खेल के लिए या उपयोगकर्ता इनपुट की प्रतीक्षा करते समय, प्रोग्रामर चयनित स्मृति स्थानों को पढ़कर मतदान कर सकते थे (जैसे {{code|$C6}}<ref name="map64">{{cite book|title=कमोडोर 64 और 64C का मानचित्रण|last=Leemon|first=Sheldon|publisher=COMPUTE! Publications|page=37|year=1987|isbn=9780874550825|url=https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n49/mode/2up|access-date=2018-03-25}}</ref> 64 के लिए, या{{code|$D0}}<ref name="map128">{{cite book|title=कमोडोर 128 का मानचित्रण|url=https://archive.org/details/Compute_s_Mapping_the_Commodore_128|last=Cowper|first=Ottis R.|publisher=COMPUTE! Publications|page=[https://archive.org/details/Compute_s_Mapping_the_Commodore_128/page/n70 66]|year=1986|isbn=9780874550603}}</ref> के लिए 128, कीबोर्ड कतार के आकार को दर्शाता है) निष्पादन में देरी या रोक के लिए।
मूल माइक्रोसॉफ्ट बेसिक [[दुभाषिया (प्रोग्रामिंग)]] की तरह, कमोडोर बेसिक [[मशीन कोड]] से धीमा है। परीक्षण के परिणामों से पता चला है कि रीड ओनली मेमरी से [[यादृच्छिक अभिगम स्मृति]] में 16 [[किलोबाइट]] की प्रतिलिपि बनाने में बेसिक में मिनट से अधिक की तुलना में मशीन कोड में सेकंड से भी कम समय लगता है।{{citation needed|date=March 2018}} दुभाषिया की तुलना में तेजी से निष्पादित करने के लिए, प्रोग्रामर ने निष्पादन को गति देने के लिए विभिन्न तकनीकों का उपयोग करना प्रारंभ कर दिया। एक शाब्दिक मूल्यों का उपयोग करने के अतिरिक्त चर में अधिकांशतः उपयोग किए जाने वाले अस्थिर बिंदु मानों को संग्रहीत करना था, क्योंकि एक चर नाम की व्याख्या शाब्दिक संख्या की व्याख्या करने की तुलना में तेज़ थी। चूंकि अस्थिर बिंदु सभी निर्देश के लिए व्यतिक्रम प्रकार है, इसलिए पूर्णांक के अतिरिक्त अस्थिर बिंदु नंबरों को तर्क के रूप में उपयोग करना तेज़ है। जब गति महत्वपूर्ण थी, तो कुछ प्रोग्रामर ने बेसिक प्रोग्राम के अनुभागों को 6502 या [[एमओएस टेक्नोलॉजी 6510]] समुच्चय भाषा में परिवर्तित कर दिया, जिसे बेसिक प्रोग्राम के अंत में फ़ाइल से अलग से भारण किया गया था या तथ्य कथन से स्मृति में पोक एड किया गया था, और एसवाईएस निर्देश का उपयोग या तो डायरेक्ट मोड से या [[बेसिक लोडर|प्रोग्राम]] से ही करके बेसिक से निष्पादित किया गया था। जब मशीन भाषा की निष्पादन गति बहुत अधिक थी, जैसे किसी खेल के लिए या उपयोगकर्ता निविष्‍टि की प्रतीक्षा करते समय, प्रोग्रामर चयनित स्मृति स्थानों को पढ़कर मतदान कर सकते थे (जैसे {{code|$C6}}<ref name="map64">{{cite book|title=कमोडोर 64 और 64C का मानचित्रण|last=Leemon|first=Sheldon|publisher=COMPUTE! Publications|page=37|year=1987|isbn=9780874550825|url=https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n49/mode/2up|access-date=2018-03-25}}</ref> 64 के लिए, या{{code|$D0}}<ref name="map128">{{cite book|title=कमोडोर 128 का मानचित्रण|url=https://archive.org/details/Compute_s_Mapping_the_Commodore_128|last=Cowper|first=Ottis R.|publisher=COMPUTE! Publications|page=[https://archive.org/details/Compute_s_Mapping_the_Commodore_128/page/n70 66]|year=1986|isbn=9780874550603}}</ref> के लिए 128, कुंजीपटल कतार के आकार को दर्शाता है) निष्पादन में देरी या रोक के लिए।


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


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


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


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


कमोडोर बेसिक लाइनों के निष्पादन का क्रम लाइन नंबरिंग द्वारा निर्धारित नहीं किया गया था; इसके बजाय, यह उस क्रम का पालन करता है जिसमें स्मृति में लाइनें जुड़ी हुई थीं।<ref>{{cite web|url=http://www.unusedino.de/ec64/technical/project64/mapping_c64.html|title=कमोडोर का मानचित्रण 64}}</ref>प्रोग्राम लाइन्स को मेमोरी में [[अकेले लिंक की गई सूची|सिंगल लिंक्ड लिस्ट]]के रूप में एक पॉइंटर (जिसमें अगली प्रोग्राम लाइन की शुरुआत का पता होता है), एक लाइन नंबर और फिर लाइन के लिए टोकनाइज्ड कोड के रूप में स्टोर किया जाता है। जब एक प्रोग्राम में प्रवेश किया जा रहा था, बेसिक मेमोरी में प्रोग्राम लाइनों को लगातार पुनर्व्यवस्थित करेगा ताकि लाइन नंबर और पॉइंटर्स सभी आरोही क्रम में हों। हालाँकि, एक प्रोग्राम में प्रवेश करने के बाद, POKE कमांड के साथ मैन्युअल रूप से लाइन नंबर और पॉइंटर्स को बदलने से आउट-ऑफ-ऑर्डर निष्पादन की अनुमति मिल सकती है या प्रत्येक लाइन को समान लाइन नंबर भी दे सकता है। शुरुआती दिनों में, जब BASIC का व्यावसायिक उपयोग किया गया था, यह कार्यक्रम के आकस्मिक संशोधन को हतोत्साहित करने के लिए एक [[सॉफ्टवेयर सुरक्षा]] तकनीक थी।
कमोडोर बेसिक लाइनों के निष्पादन का क्रम लाइन नंबरिंग द्वारा निर्धारित नहीं किया गया था, इसके अतिरिक्त, यह उस क्रम का पालन करता है जिसमें स्मृति में लाइनें जुड़ी हुई थीं।<ref>{{cite web|url=http://www.unusedino.de/ec64/technical/project64/mapping_c64.html|title=कमोडोर का मानचित्रण 64}}</ref>प्रोग्राम लाइन्स को स्मृति में [[अकेले लिंक की गई सूची|एकल संबद्ध सूची]] के रूप में सूचक (जिसमें अगली प्रोग्राम लाइन की शुरुआत का पता होता है), लाइन नंबर और फिर लाइन के लिए टोकन कोड के रूप में संचय किया जाता है। जब प्रोग्राम में प्रवेश किया जा रहा था, बेसिक स्मृति में प्रोग्राम लाइनों को लगातार पुनर्व्यवस्थित करेगा ताकि लाइन नंबर और सूचक सभी आरोही क्रम में हों। चूंकि, प्रोग्राम में प्रवेश करने के बाद, पोक निर्देश के साथ हस्तचालित रूप से लाइन नंबर और सूचक को बदलने से अव्यवस्थित निष्पादन की अनुमति मिल सकती है या प्रत्येक लाइन को समान लाइन नंबर भी दे सकता है। प्रारंभिक दिनों में, जब बेसिक का व्यावसायिक उपयोग किया गया था, यह क्रिया के आकस्मिक संशोधन को हतोत्साहित करने के लिए एक [[सॉफ्टवेयर सुरक्षा]] तकनीक थी।


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


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


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


कमोडोर बेसिक बिटवाइज़ ऑपरेटरों - {{mono|AND, OR}}, तथा {{mono|XOR}},का भी समर्थन करता है, हालाँकि यह सुविधा कोर Microsoft 6502 बेसिक कोड का हिस्सा थी, इसे आमतौर पर Applesoft BASIC जैसे अन्य कार्यान्वयनों में छोड़ दिया गया था।
कमोडोर बेसिक बिटवाइज़ ऑपरेटरों - {{mono|AND, OR}}, तथा {{mono|XOR}}, का भी समर्थन करता है, चूंकि यह सुविधा कोर माइक्रोसॉफ्ट 6502 बेसिक कोड का हिस्सा थी, इसे सामान्यतः एपलसॉफ्ट बेसिक जैसे अन्य कार्यान्वयनों में छोड़ दिया गया था।


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


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


यद्यपि कमोडोर बेसिक -32768 से 32767 की सीमा में [[हस्ताक्षरित संख्या प्रतिनिधित्व|हस्ताक्षरित पूर्णांक चर]](प्रतिशत चिह्न के साथ चिह्नित) का समर्थन करता है, व्यवहार में वे केवल सरणी चर के लिए उपयोग किए जाते हैं और सरणी तत्वों को प्रत्येक दो बाइट्स तक सीमित करके स्मृति को संरक्षित करने का कार्य करते हैं (एक सरणी का फ्लोटिंग पॉइंट सरणी के रूप में घोषित किए जाने पर 2000 तत्व 10,000 बाइट्स पर कब्जा कर लेंगे, लेकिन केवल 4000 पूर्णांक सरणी के रूप में घोषित किए जाने पर)। किसी भी चर को पूर्णांक के रूप में नकारने से बेसिक को वापस फ्लोटिंग पॉइंट में बदलने का कारण बनता है, प्रोग्राम निष्पादन को धीमा कर देता है और स्मृति को बर्बाद कर देता है क्योंकि प्रत्येक प्रतिशत चिह्न स्टोर करने के लिए एक अतिरिक्त बाइट लेता है (चूंकि यह पूर्णांक सरणियों पर भी लागू होता है, प्रोग्रामर को उनका उपयोग करने से बचना चाहिए जब तक कि बहुत अधिक न हो बड़े सरणियों का उपयोग किया जाता है जो फ़्लोटिंग पॉइंट के रूप में संग्रहीत होने पर उपलब्ध मेमोरी से अधिक हो जाएगा)। साथ ही यह भी संभव नहीं है {{mono|POKE}} या {{mono|PEEK}} एक हस्ताक्षरित पूर्णांक के रूप में परिभाषित पते के साथ 32767 से ऊपर स्मृति स्थान।
यद्यपि कमोडोर बेसिक -32768 से 32767 की सीमा में [[हस्ताक्षरित संख्या प्रतिनिधित्व|हस्ताक्षरित पूर्णांक चर]](प्रतिशत चिह्न के साथ चिह्नित) का समर्थन करता है, व्यवहार में वे केवल सरणी चर के लिए उपयोग किए जाते हैं और सरणी तत्वों को प्रत्येक दो बाइट्स तक सीमित करके स्मृति को संरक्षित करने का कार्य करते हैं (सरणी का अस्थिर बिंदु सरणी के रूप में घोषित किए जाने पर 2000 तत्व 10,000 बाइट्स पर अधिकार कर लेंगे, लेकिन केवल 4000 पूर्णांक सरणी के रूप में घोषित किए जाने पर)। किसी भी चर को पूर्णांक के रूप में नकारने से बेसिक को वापस अस्थिर बिंदु में बदलने का कारण बनता है, प्रोग्राम निष्पादन को धीमा कर देता है और स्मृति को बर्बाद कर देता है क्योंकि प्रत्येक प्रतिशत चिह्न संचय करने के लिए अतिरिक्त बाइट लेता है (चूंकि यह पूर्णांक सरणियों पर भी लागू होता है, प्रोग्रामर को उनका उपयोग करने से बचना चाहिए जब तक कि बहुत अधिक न हो बड़े सरणियों का उपयोग किया जाता है जो अस्थिर बिंदु के रूप में संग्रहीत होने पर उपलब्ध स्मृति से अधिक हो जाएगा)। साथ ही यह भी संभव नहीं है {{mono|POKE}} या {{mono|PEEK}} हस्ताक्षरित पूर्णांक के रूप में परिभाषित एड्रेस के साथ 32767 से ऊपर स्मृति स्थान अवधि (।) संख्या 0 के स्थान पर उपयोग किया जा सकता है (इस प्रकार {{code|2=cbmbas|1=10 A=.}} के अतिरिक्त {{code|2=cbmbas|1=10 A=0}} या {{code|2=cbmbas|1=10 FOR A=. TO 100}} के अतिरिक्त {{code|2=cbmbas|1=10 FOR A=0 to 100}})के लिए), यह थोड़ा तेज़ निष्पादित करेगा।


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


{{mono|SYS}}<nowiki> }}कथन, मशीन भाषा प्रोग्राम शुरू करने के लिए उपयोग किया जाता है, कमोडोर द्वारा जोड़ा गया था और मूल Microsoft BASIC कोड में नहीं था, जिसमें मशीन भाषा रूटीन को लागू करने के लिए केवल USR फ़ंक्शन शामिल था। यह स्वचालित रूप से CPU के रजिस्टरों को </nowiki>{{code|$30C-$30F}}(C64, अन्य मशीनों पर भिन्न होता है) में मूल्यों के साथ लोड करता है - इसका उपयोग मशीन भाषा रूटीन में डेटा पास करने के लिए या BASIC से कर्नेल फ़ंक्शंस को कॉल करने के साधन के रूप में किया जा सकता है (उदाहरण के तौर पर) ,{{code|2=cbmbas|1=POKE 780,147:SYS 65490}} स्क्रीन साफ़ करता है)।
चूंकि सी128 के अतिरिक्त कमोडोर 8-बिट मशीनें स्वचालित रूप से डिस्क सॉफ़्टवेयर को बूट नहीं कर सकती हैं, सामान्य तकनीक प्रोग्राम निष्पादन प्रारंभ करने के लिए{{code|lang=cbmbas|1= 10 SYS 2048}} जैसे बेसिक स्टब को सम्मलित करना है। भारण होने के बाद सॉफ़्टवेयर को स्वचालित रूप से प्रारंभ करना संभव है और उपयोगकर्ता को रन कथन टाइप करने की आवश्यकता नहीं है, यह कोड का एक टुकड़ा है जो बेसिक "तैयार" वेक्टर को{{code|$0302}}पर हुक करता है।


चूंकि C128 के अलावा कमोडोर 8-बिट मशीनें स्वचालित रूप से डिस्क सॉफ़्टवेयर को बूट नहीं कर सकती हैं, सामान्य तकनीक प्रोग्राम निष्पादन शुरू करने के लिए{{code|lang=cbmbas|1= 10 SYS 2048}} जैसे एक बुनियादी स्टब को शामिल करना है। लोड होने के बाद सॉफ़्टवेयर को स्वचालित रूप से प्रारंभ करना संभव है और उपयोगकर्ता को रन स्टेटमेंट टाइप करने की आवश्यकता नहीं है, यह कोड का एक टुकड़ा है जो बेसिक "तैयार" वेक्टर को{{code|$0302}}पर हुक करता है।
माइक्रोसॉफ्ट बेसिक के अधिकांश अन्य संस्करणों की तरह, यदि किसी सरणी को {{mono|DIM}} कथन, के साथ घोषित नहीं किया जाता है, तो यह स्वचालित रूप से दस तत्वों पर स्थापित हो जाता है (अभ्यास 11 में क्योंकि सरणी तत्वों की गणना 0 से की जाती है)। बड़ी सरणियों को घोषित किया जाना चाहिए या जब प्रोग्राम चलाया जाता है तो बेसिक त्रुटि प्रदर्शित करेगा और एक क्रिया में सरणी को फिर से आयाम नहीं दिया जा सकता है जब तक कि सभी चर CLR कथन के माध्यम से मिटा नहीं दिए जाते। संख्यात्मक सरणियाँ स्वचालित रूप से शून्य से भर जाती हैं जब वे बनाई जाती हैं, यदि बड़ी सरणी का आयाम है तो क्रिया के निष्पादन में क्षणिक विलंब हो सकता है।


Microsoft BASIC के अधिकांश अन्य संस्करणों की तरह, यदि किसी सरणी को {{mono|DIM}} कथन, के साथ घोषित नहीं किया जाता है, तो यह स्वचालित रूप से दस तत्वों पर सेट हो जाता है (अभ्यास 11 में क्योंकि सरणी तत्वों की गणना 0 से की जाती है)। बड़ी सरणियों को घोषित किया जाना चाहिए या जब प्रोग्राम चलाया जाता है तो BASIC एक त्रुटि प्रदर्शित करेगा और एक कार्यक्रम में एक सरणी को फिर से आयाम नहीं दिया जा सकता है जब तक कि सभी चर CLR कथन के माध्यम से मिटा नहीं दिए जाते। संख्यात्मक सरणियाँ स्वचालित रूप से शून्य से भर जाती हैं जब वे बनाई जाती हैं, यदि एक बड़ी सरणी का आयाम है तो कार्यक्रम के निष्पादन में क्षणिक विलंब हो सकता है।
स्ट्रिंग चर को डॉलर चिह्न के साथ चर नाम जोड़ के दर्शाया जाता है। इस प्रकार, चर<code>AA$</code>, <code>AA</code>, तथा <code>AA%</code> प्रत्येक को अलग-अलग समझा जाएगा। ऐरे चर को साधारण चर से भी अलग माना जाता है, इस प्रकार {{mono|A}} तथा {{mono|A(1)}}एक ही चर को संदर्भित नहीं करते हैं। एक स्ट्रिंग सरणी का आकार केवल यह दर्शाता है कि सरणी में कितने तार संग्रहीत हैं, न कि प्रत्येक तत्व का आकार, जो गतिशील रूप से आवंटित किया गया है। माइक्रोसॉफ्ट बेसिक के कुछ अन्य कार्यान्वयनों के विपरीत, कमोडोर बेसिक को प्रोग्राम के प्रारंभ में आरक्षित होने के लिए स्ट्रिंग स्पेस की आवश्यकता नहीं होती है।


स्ट्रिंग वेरिएबल्स को डॉलर चिह्न के साथ वेरिएबल नाम टैग करके दर्शाया जाता है। इस प्रकार, चर<code>AA$</code>, <code>AA</code>, तथा <code>AA%</code> प्रत्येक को अलग-अलग समझा जाएगा। ऐरे वेरिएबल्स को साधारण वेरिएबल्स से भी अलग माना जाता है, इस प्रकार {{mono|A}} तथा {{mono|A(1)}}एक ही वेरिएबल को संदर्भित नहीं करते हैं। एक स्ट्रिंग सरणी का आकार केवल यह दर्शाता है कि सरणी में कितने तार संग्रहीत हैं, न कि प्रत्येक तत्व का आकार, जो गतिशील रूप से आवंटित किया गया है। Microsoft BASIC के कुछ अन्य कार्यान्वयनों के विपरीत, कमोडोर BASIC को प्रोग्राम के प्रारंभ में आरक्षित होने के लिए स्ट्रिंग स्पेस की आवश्यकता नहीं होती है।
विपरीत, कमोडोर की सभी मशीनों में अंतर्निहित घड़ी होती है, जो 0 पर प्रारंभ होती है और पीआईए/वाया/टेड/सीआईए कालक के प्रत्येक टिक के साथ आधुनिकीकरण की जाती है, इस प्रकार प्रति सेकंड 60 बार ,इसे बेसिक, {{mono|TI}} तथा {{mono|TI$}},में दो प्रणाली चर निर्धारित किए गए हैं, जिनमें दोनों में वर्तमान समय है। टीआई केवल पढ़ने के लिए है और इसे संशोधित नहीं किया जा सकता है, ऐसा करने से सिंटैक्स त्रुटि संदेश प्राप्त होगा। टीआई $ का उपयोग छह नंबर स्ट्रिंग के माध्यम से समय निर्धारित करने के लिए किया जा सकता है ( त्रुटि परिणाम छह नंबरों के अतिरिक्त स्ट्रिंग का उपयोग करने से होता है)। घड़ी समयनिर्धारक का बहुत विश्वसनीय तरीका नहीं है क्योंकि जब भी व्यवधान बंद हो जाता है (कुछ कर्नल रूटीन द्वारा किया जाता है) बंद हो जाता है और आईईसी (या पीईटी पर आईईईई पोर्ट) पोर्ट तक पहुँचने से कुछ टिकों द्वारा घड़ी के आधुनिकीकरण को धीमा कर दिया जाएगा।


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


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


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


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


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


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


C64 पर BASIC 2.0 की सीमाओं के कारण BASIC की अंतर्निहित ROM मशीन भाषा का उपयोग हुआ। फ़ाइल को निर्दिष्ट मेमोरी स्थान पर लोड करने के लिए, फ़ाइल नाम, ड्राइव और डिवाइस नंबर को एक कॉल द्वारा पढ़ा जाएगा:{{code|lang=cbmbas|1=SYS57812"filename",8}};<ref>{{cite book|title=कमोडोर 64 और 64C का मानचित्रण|last=Leemon|first=Sheldon|publisher=COMPUTE! Publications|page=209|year=1987|isbn=9780874550825|url=https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n221/mode/2up|access-date=2018-03-25}}</ref> स्थान X और Y रजिस्टरों में निर्दिष्ट किया जाएगा:{{code|lang=cbmbas|1=POKE780,0:POKE781,0:POKE782,192}};<ref>{{cite book|title=कमोडोर 64 और 64C का मानचित्रण|last=Leemon|first=Sheldon|publisher=COMPUTE! Publications|page=71|year=1987|isbn=9780874550825|url=https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n83/mode/2up|access-date=2018-03-25}}</ref> और लोड रूटीन को{{code|lang=cbmbas|1=SYS65493}}कहा जाएगा।<ref>{{cite book|title=कमोडोर 64 और 64C का मानचित्रण|last=Leemon|first=Sheldon|publisher=COMPUTE! Publications|page=231|year=1987|isbn=9780874550825|url=https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n243/mode/2up|access-date=2018-03-25}}</ref>
सी64 पर बेसिक 2.0 की सीमाओं के कारण बेसिक की अंतर्निहित आरओएम मशीन भाषा का उपयोग हुआ। फ़ाइल को निर्दिष्ट स्मृति स्थान पर भारण करने के लिए, फ़ाइल नाम, ड्राइव और उपकरण नंबर को बोली द्वारा पढ़ा जाएगा:{{code|lang=cbmbas|1=SYS57812"filename",8}},<ref>{{cite book|title=कमोडोर 64 और 64C का मानचित्रण|last=Leemon|first=Sheldon|publisher=COMPUTE! Publications|page=209|year=1987|isbn=9780874550825|url=https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n221/mode/2up|access-date=2018-03-25}}</ref> स्थान X और Y रजिस्टरों में निर्दिष्ट किया जाएगा:{{code|lang=cbmbas|1=POKE780,0:POKE781,0:POKE782,192}},<ref>{{cite book|title=कमोडोर 64 और 64C का मानचित्रण|last=Leemon|first=Sheldon|publisher=COMPUTE! Publications|page=71|year=1987|isbn=9780874550825|url=https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n83/mode/2up|access-date=2018-03-25}}</ref> और भारण रूटीन को{{code|lang=cbmbas|1=SYS65493}}कहा जाएगा।<ref>{{cite book|title=कमोडोर 64 और 64C का मानचित्रण|last=Leemon|first=Sheldon|publisher=COMPUTE! Publications|page=231|year=1987|isbn=9780874550825|url=https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n243/mode/2up|access-date=2018-03-25}}</ref>


C64 के लिए एक डिस्क पत्रिका, [[लोडस्टार (पत्रिका)]]शौक़ीन प्रोग्रामरों के लिए एक स्थान था, जिन्होंने बेसिक के लिए प्रोटो-कमांड का संग्रह साझा किया, जिसे{{code|1=SYS address + offset}} ऑफ़सेट कमांड के साथ बुलाया गया।{{citation needed|date=March 2018}}
सी64 के लिए डिस्क पत्रिका, [[लोडस्टार (पत्रिका)]] शौक़ीन प्रोग्रामरों के लिए स्थान था, जिन्होंने बेसिक के लिए मूल-निर्देश का संग्रह साझा किया, जिसे{{code|1=SYS address + offset}} ऑफ़सेट निर्देश के साथ बुलाया गया।{{citation needed|date=March 2018}}


आधुनिक प्रोग्रामिंग के दृष्टिकोण से, कमोडोर बेसिक के पुराने संस्करणों ने प्रोग्रामर के लिए कई खराब प्रोग्रामिंग जाल प्रस्तुत किए। चूंकि इनमें से अधिकांश मुद्दे Microsoft BASIC से प्राप्त हुए हैं, वस्तुतः युग का प्रत्येक घरेलू कंप्यूटर BASIC इसी तरह की कमियों से ग्रस्त था।<ref>{{cite web|url=http://www.atariarchives.org/c1ba/page007.php|title=अटारी बेसिक और पीईटी माइक्रोसॉफ्ट बेसिक। एक बुनियादी तुलना।}}</ref> Microsoft BASIC प्रोग्राम की प्रत्येक [[लाइन नंबर|लाइन]] को प्रोग्रामर द्वारा एक लाइन नंबर दिया गया था। प्रोग्राम एडिटिंग या डिबगिंग के दौरान लाइनों को सम्मिलित करना आसान बनाने के लिए कुछ मान (5, 10 या 100) से संख्याओं को बढ़ाना आम बात थी, लेकिन खराब योजना का मतलब था कि एक प्रोग्राम में बड़े वर्गों को सम्मिलित करने के लिए अक्सर पूरे कोड के पुनर्गठन की आवश्यकता होती है। एक सामान्य तकनीक एक {{mono|[[GOSUB#Computed GOSUB|ON...GOSUB]]}} जम्प टेबल के साथ कुछ लो लाइन नंबर पर एक प्रोग्राम शुरू करना था, जिसमें प्रोग्राम की बॉडी को 1000, 2000 जैसे निर्दिष्ट लाइन नंबर से शुरू होने वाले सेक्शन में संरचित किया गया था। यदि एक बड़े खंड को जोड़ने की आवश्यकता है, तो इसे केवल अगली उपलब्ध प्रमुख पंक्ति संख्या निर्दिष्ट की जा सकती है और जंप टेबल में डाला जा सकता है।
आधुनिक प्रोग्रामिंग के दृष्टिकोण से, कमोडोर बेसिक के पुराने संस्करणों ने प्रोग्रामर के लिए कई खराब प्रोग्रामिंग लूप प्रस्तुत किए। चूंकि इनमें से अधिकांश मुद्दे माइक्रोसॉफ्ट बेसिक से प्राप्त हुए हैं, वस्तुतः युग का प्रत्येक घरेलू संगणक बेसिक इसी तरह की कमियों से ग्रस्त था।<ref>{{cite web|url=http://www.atariarchives.org/c1ba/page007.php|title=अटारी बेसिक और पीईटी माइक्रोसॉफ्ट बेसिक। एक बुनियादी तुलना।}}</ref> माइक्रोसॉफ्ट बेसिक प्रोग्राम की प्रत्येक [[लाइन नंबर|लाइन]] को प्रोग्रामर द्वारा लाइन नंबर दिया गया था। प्रोग्राम संपादन या दोषमार्जन के दौरान लाइनों को सम्मिलित करना आसान बनाने के लिए कुछ मान (5, 10 या 100) से संख्याओं को बढ़ाना आम बात थी, लेकिन खराब योजना का मतलब था कि प्रोग्राम में बड़े वर्गों को सम्मिलित करने के लिए अधिकांशतः पूरे कोड के पुनर्गठन की आवश्यकता होती है। सामान्य तकनीक {{mono|[[GOSUB#Computed GOSUB|ON...GOSUB]]}} जम्प टेबल के साथ कुछ लो लाइन नंबर पर एक प्रोग्राम प्रारंभ करना था, जिसमें प्रोग्राम की बॉडी को 1000, 2000 जैसे निर्दिष्ट लाइन नंबर से प्रारंभ होने वाले सेक्शन में संरचित किया गया था। यदि एक बड़े खंड को जोड़ने की आवश्यकता है, तो इसे केवल अगली उपलब्ध प्रमुख पंक्ति संख्या निर्दिष्ट की जा सकती है और जंप टेबल में डाला जा सकता है।


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


बाद में कमोडोर और अन्य प्लेटफार्मों पर बुनियादी संस्करणों में DELETE और RENUMBER कमांड के साथ-साथ एक AUTO लाइन नंबरिंग कमांड शामिल था जो एक चयनित वृद्धि के अनुसार स्वचालित रूप से लाइन नंबरों का चयन और सम्मिलित करेगा। पहले कमोडोर के बेसिक्स में डिबगिंग कमांड की भी कमी थी, जिसका अर्थ है कि बग और अप्रयुक्त चर को फंसाना मुश्किल है। {{mono|IF...THEN...ELSE}} संरचनाएं, Z80 Microsoft BASIC का एक मानक हिस्सा, कमोडोर बेसिक के पिछले संस्करणों में अनुपलब्ध होने के बाद BASIC 3.5 में जोड़ा गया था।
बाद में कमोडोर और अन्य प्लेटफार्मों पर बेसिक संस्करणों में डिलीट और रेनुम्बर निर्देश के साथ-साथ ऑटो लाइन नंबरिंग निर्देश सम्मलित था जो एक चयनित वृद्धि के अनुसार स्वचालित रूप से लाइन नंबरों का चयन और सम्मिलित करेगा। पहले कमोडोर के बेसिक में दोषमार्जन निर्देश की भी कमी थी, जिसका अर्थ है कि बग और अप्रयुक्त चर को फंसाना मुश्किल है। {{mono|IF...THEN...ELSE}} संरचनाएं, Z80 माइक्रोसॉफ्ट बेसिक का एक मानक हिस्सा, कमोडोर बेसिक के पिछले संस्करणों में अनुपलब्ध होने के बाद बेसिक 3.5 में जोड़ा गया था।


== यूजर इंटरफेस के रूप में प्रयोग करें ==
== उपयोगकर्ता इंटरफ़ेस के रूप में प्रयोग करें ==
आम तौर पर अन्य घरेलू कंप्यूटरों के साथ, कमोडोर की मशीनें सीधे बेसिक दुभाषिया में बूट होती हैं। सॉफ्टवेयर को लोड और निष्पादित करने के लिए बेसिक की फाइल और प्रोग्रामिंग कमांड को सीधे मोड में दर्ज किया जा सकता है। यदि RUN/STOP कुंजी का उपयोग करके प्रोग्राम निष्पादन को रोक दिया गया था, तो चर मानों को RAM में संरक्षित किया जाएगा और डिबगिंग के लिए प्रिंट किया जा सकता है। 128 ने अपने दूसरे 64k बैंक को वेरिएबल स्टोरेज के लिए भी समर्पित किया, जिससे मूल्यों को एक तक बने रहने की अनुमति मिली <code>NEW</code> या <code>RUN</code> आदेश जारी किया था। यह, कमोडोर बेसिक के साथ शामिल उन्नत [[स्क्रीन संपादक]] के साथ प्रोग्रामिंग वातावरण को [[REPL]] जैसा अनुभव देता है; प्रोग्रामर किसी भी स्क्रीन स्थान पर प्रोग्राम लाइनों को सम्मिलित और संपादित कर सकते हैं, अंतःक्रियात्मक रूप से प्रोग्राम का निर्माण कर सकते हैं।<ref>{{cite book|url=https://books.google.com/books?id=UbvzBwAAQBAJ&pg=PA9|title=कमोडोर 64 का एक परिचय: प्रोग्रामिंग में रोमांच|isbn=9781489967879 |last1=Scrimshaw |first1=N. B. |date=11 November 2013 }}</ref> यह CP/M या [[MS-DOS]] जैसे उस समय के व्यवसाय-उन्मुख ऑपरेटिंग सिस्टम के विपरीत है, जो आमतौर पर [[कमांड लाइन इंटरफेस]] में बूट होता है। यदि इन प्लेटफॉर्म्स पर प्रोग्रामिंग लैंग्वेज की आवश्यकता होती थी, तो इसे अलग से लोड करना पड़ता था।
सामान्यतः अन्य घरेलू संगणक के साथ, कमोडोर की मशीनें सीधे बेसिक दुभाषिया में बूट होती हैं। सॉफ्टवेयर को भारण और निष्पादित करने के लिए बेसिक की फाइल और प्रोग्रामिंग निर्देश को सीधे मोड में अंकित किया जा सकता है। यदि रन/स्टॉप कुंजी का उपयोग करके प्रोग्राम निष्पादन को रोक दिया गया था, तो चर मानों को आरएएम में संरक्षित किया जाएगा और दोषमार्जन के लिए प्रिंट किया जा सकता है। 128 ने अपने दूसरे 64k बैंक को चर भंडारण के लिए भी समर्पित किया, जिससे मूल्यों को एक तक बने रहने की अनुमति मिली <code>NEW</code> या <code>RUN</code> निर्देश जारी किया था। यह, कमोडोर बेसिक के साथ सम्मलित उन्नत [[स्क्रीन संपादक|चित्रपट संपादक]] के साथ प्रोग्रामिंग वातावरण को [[REPL|आरईपीएल]] जैसा अनुभव देता है, प्रोग्रामर किसी भी चित्रपट स्थान पर प्रोग्राम लाइनों को सम्मिलित और संपादित कर सकते हैं, अंतःक्रियात्मक रूप से प्रोग्राम का निर्माण कर सकते हैं।<ref>{{cite book|url=https://books.google.com/books?id=UbvzBwAAQBAJ&pg=PA9|title=कमोडोर 64 का एक परिचय: प्रोग्रामिंग में रोमांच|isbn=9781489967879 |last1=Scrimshaw |first1=N. B. |date=11 November 2013 }}</ref> यह सीपी/एम या [[MS-DOS|एमएस-डॉस]] जैसे उस समय के व्यवसाय-उन्मुख संचालन प्रणाली के विपरीत है, जो सामान्यतः [[कमांड लाइन इंटरफेस|निर्देश लाइन इंटरफेस]] में बूट होता है। यदि इन प्लेटफॉर्म्स पर प्रोग्रामिंग भाषा की आवश्यकता होती थी, तो इसे अलग से भारण करना पड़ता था।


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


== संस्करण और सुविधाएँ ==
== संस्करण और सुविधाएँ ==
Line 125: Line 112:


=== जारी संस्करण ===
=== जारी संस्करण ===
* V1.0: पीईटी 2001 [[चिकलेट कीबोर्ड]] और बिल्ट-इन [[कमोडोर डाटासेट]] (मूल पीईटी) के साथ
* वी1.0: पीईटी 2001 [[चिकलेट कीबोर्ड|चिकलेट कुंजीपटल]] और बिल्ट-इन [[कमोडोर डाटासेट]] (मूल पीईटी) के साथ
** सरणियाँ 256 तत्वों तक सीमित हैं
** सरणियाँ 256 तत्वों तक सीमित हैं
** PEEK और POKE कमांड $ C000 से ऊपर के BASIC ROM स्थानों पर स्पष्ट रूप से अक्षम हैं
** पीक और पोक निर्देश $ C000 से ऊपर के बेसिक आरओ एम स्थानों पर स्पष्ट रूप से अक्षम हैं
* V2.0 (पहली रिलीज़): PET 2001 फुल-ट्रैवल कीबोर्ड और अपग्रेड रोम के साथ
* वी 2.0 (पहली रिलीज़): पीईटी 2001 फुल-ट्रैवल कुंजीपटल और सुधार रोम के साथ
** [[IEEE-488]] समर्थन जोड़ें
** [[IEEE-488|आईईईई-488]] समर्थन जोड़ें
** कचरा संग्रह में सुधार हुआ<ref name="zimmers.net">http://www.zimmers.net/anonftp/pub/cbm/firmware/README.txt {{Bare URL plain text|date=March 2022}}</ref>
** अपशिष्ट  संग्रह में सुधार हुआ<ref name="zimmers.net">http://www.zimmers.net/anonftp/pub/cbm/firmware/README.txt {{Bare URL plain text|date=March 2022}}</ref>
** सरणी बग ठीक करें
** सरणी बग ठीक करें
** ईस्टर अंडे - प्रवेश करना <code>WAIT6502,</code>[संख्या] प्रदर्शित करता है <code>MICROSOFT!</code> मनमाना संख्या बार
** ईस्टर एग - प्रवेश करना <code>WAIT6502,</code>[संख्या] प्रदर्शित करता है <code>MICROSOFT!</code> मनमाना संख्या बार
* V4.0: PET/CBM 4000/8000 श्रृंखला (और बाद का संस्करण PET 2001s)
* वी 4.0: पीईटी/सीबीएम 4000/8000 श्रृंखला (और बाद का संस्करण पीईटी 2001s)
** [[कमोडोर डॉस]]: <code>DLOAD,DSAVE,COPY,SCRATCH,</code> आदि (कुल 15)
** [[कमोडोर डॉस]]: <code>DLOAD,DSAVE,COPY,SCRATCH,</code> आदि (कुल 15)
** डिस्क त्रुटि-चैनल चर: <code>DS,DS$</code>
** डिस्क त्रुटि-चैनल चर: <code>DS,DS$</code>
** कचरा-संग्रह प्रदर्शन में काफी सुधार हुआ<ref name="zimmers.net"/>* V2.0 (4.0 के बाद दूसरी रिलीज़): [[कमोडोर VIC-20]]|VIC-20; कमोडोर 64
** अपशिष्ट -संग्रह प्रदर्शन में काफी सुधार हुआ<ref name="zimmers.net"/>* V2.0 (4.0 के बाद दूसरी रिलीज़): [[कमोडोर VIC-20|कमोडोर वीआईसी-20]]|वीआईसी-20, कमोडोर 64
* V2.2 [[कमोडोर 64 गेम सिस्टम]] (1990)
* वी 2.2 [[कमोडोर 64 गेम सिस्टम|कमोडोर 64 गेम प्रणाली]] (1990)
* V4+ : कमोडोर CBM-II|CBM-II सीरीज (उर्फ बी, पी रेंज)
* वी 4+ : कमोडोर सीबीएम-II|सीबीएम-II सीरीज (उर्फ बी, पी रेंज)
** स्मृति प्रबंधन: <code>BANK</code>
** स्मृति प्रबंधन: <code>BANK</code>
** कमोडोर डॉस: <code>[[BLOAD]], [[BSAVE]],DCLEAR</code>
** कमोडोर डॉस: <code>[[BLOAD]], [[BSAVE]],DCLEAR</code>
Line 145: Line 132:
** वैकल्पिक ब्रांचिंग: <code>ELSE</code>
** वैकल्पिक ब्रांचिंग: <code>ELSE</code>
** डायनेमिक एरर हैंडलिंग: <code>TRAP,RESUME,ERR$()</code>
** डायनेमिक एरर हैंडलिंग: <code>TRAP,RESUME,ERR$()</code>
** लचीला <code>DATA</code> पढ़ना: <code>RESTORE </code>[लाइन नंबर]
** लचीला <code>तथ्य</code> पढ़ना: <code>RESTORE </code>[लाइन नंबर]
** स्ट्रिंग खोज फ़ंक्शन: <code>INSTR</code>
** स्ट्रिंग खोज क्रिया: <code>INSTR</code>
* वी3.5: कमोडोर 16|सी16/116, कमोडोर प्लस/4|प्लस/4
* वी3.5: कमोडोर 16|सी16/116, कमोडोर प्लस/4|प्लस/4
** ध्वनि और ग्राफिक्स कमांड
** ध्वनि और ग्राफिक्स निर्देश
** [[जोस्टिक]] इनपुट: <code>JOY</code>
** [[जोस्टिक]] निविष्‍टि: <code>JOY</code>
** [[दशमलव]] ↔ [[हेक्साडेसिमल]] रूपांतरण: <code>DEC(),HEX$()</code>
** [[दशमलव]] ↔ [[हेक्साडेसिमल]] रूपांतरण: <code>DEC(),HEX$()</code>
** संरचित लूपिंग: <code>DO,LOOP,WHILE,UNTIL,EXIT</code>
** संरचित लूपिंग: <code>DO,LOOP,WHILE,UNTIL,EXIT</code>
** फ़ंक्शन कुंजी असाइनमेंट: <code>KEY</code> (डायरेक्ट मोड भी)
** क्रिया कुंजी असाइनमेंट: <code>KEY</code> (डायरेक्ट मोड भी)
** कार्यक्रम प्रविष्टि/संपादन: <code>AUTO,DELETE,RENUMBER</code>
** क्रिया प्रविष्टि/संपादन: <code>AUTO,DELETE,RENUMBER</code>
** [[डिबग]]िंग (ट्रेसिंग): <code>[[TRON command|TRON]], [[TROFF]]</code>
** दोषमार्जन (ट्रेसिंग): <code>[[TRON command|TRON]], [[TROFF]]</code>
** [[मशीन कोड मॉनिटर]] एंट्री कमांड: <code>MONITOR</code>
** [[मशीन कोड मॉनिटर]] प्रविष्टि निर्देश: <code>MONITOR</code>
** सी (1) 16, प्लस / 4 ईस्टर अंडे - दर्ज करें<code> SYS 52650 </code>
** सी (1) 16, प्लस / 4 ईस्टर एग - अंकित करें<code> एसवाईएस 52650 </code>
* V7.0: कमोडोर 128
* वी 7.0: कमोडोर 128
** [[स्प्राइट (कंप्यूटर ग्राफिक्स)]] हैंडलिंग सहित अधिक ध्वनि और ग्राफिक्स कमांड
** [[स्प्राइट (कंप्यूटर ग्राफिक्स)|स्प्राइट (संगणक ग्राफिक्स)]] हैंडलिंग सहित अधिक ध्वनि और ग्राफिक्स निर्देश
** बिल्ट-इन स्प्राइट एडिटर: <code>SPRDEF</code>
** बिल्ट-इन स्प्राइट एडिटर: <code>SPRDEF</code>
** मल्टी-स्टेटमेंट ब्लॉक के लिए <code>IF THEN ELSE</code> संरचनाएं: <code>BEGIN,BEND</code>
** मल्टी-कथन ब्लॉक के लिए <code>IF THEN ELSE</code> संरचनाएं: <code>BEGIN,BEND</code>
** [[चप्पू (खेल नियंत्रक)]], [[हल्की कलम]] इनपुट: <code>POT,PEN</code>
** [[चप्पू (खेल नियंत्रक)]], [[हल्की कलम]] निविष्‍टि: <code>POT,PEN</code>
** [[अनन्य संयोजन]] समारोह: <code>XOR</code>
** [[अनन्य संयोजन]] समारोह: <code>XOR</code>
** परिवर्तनशील पता प्राप्त करें: <code>POINTER</code>
** परिवर्तनशील पता प्राप्त करें: <code>POINTER</code>
Line 167: Line 154:
** नियंत्रित समय विलंब: <code>SLEEP</code>
** नियंत्रित समय विलंब: <code>SLEEP</code>
** स्मृति प्रबंधन: <code>SWAP,FETCH,STASH,FRE(1)</code>
** स्मृति प्रबंधन: <code>SWAP,FETCH,STASH,FRE(1)</code>
** प्रोग्राम कोड को वेरिएबल्स से अलग स्टोर करने के लिए 128 के [[बैंक स्विचिंग]] का उपयोग किया। यदि प्रोग्राम GOTO कमांड के साथ शुरू किया गया था, तो प्रोग्राम निष्पादन में परिवर्तनीय मान संरक्षित किए जाएंगे।
** प्रोग्राम कोड को चर से अलग संचय करने के लिए 128 के [[बैंक स्विचिंग]] का उपयोग किया। यदि प्रोग्राम GOTO निर्देश के साथ प्रारंभ किया गया था, तो प्रोग्राम निष्पादन में चर मान संरक्षित किए जाएंगे।
** कमोडोर डॉस: <code>BOOT,DVERIFY</code>
** कमोडोर डॉस: <code>BOOT,DVERIFY</code>
** सीपीयू गति समायोजन: <code>FAST,SLOW</code> (2 बनाम 1 मेगाहर्ट्ज)
** सीपीयू गति समायोजन: <code>FAST,SLOW</code> (2 बनाम 1 मेगाहर्ट्ज)
** C64 मोड दर्ज करें: <code>GO64</code>
** C64 मोड अंकित करें: <code>GO64</code>
** अनिर्दिष्ट, काम कर रहा है: <code>RREG</code> (एक के बाद सीपीयू रजिस्टर पढ़ें <code>SYS</code>)
** अनिर्दिष्ट, काम कर रहा है: <code>RREG</code> (एक के बाद सीपीयू रजिस्टर पढ़ें <code>एसवाईएस</code>)
** अकार्यान्वित आदेश: <code>OFF,QUIT</code>
** अकार्यान्वित निर्देश: <code>OFF,QUIT</code>
** C128 ईस्टर एग - एंटर करें<code> SYS 32800,123,45,6 </code>
** C128 ईस्टर एग - एंटर करें<code> एसवाईएस 32800,123,45,6 </code>




=== अप्रकाशित संस्करण ===
=== अप्रकाशित संस्करण ===
* V3.6 : [[कमोडोर एलसीडी]] (अप्रकाशित प्रोटोटाइप)। निम्नलिखित अंतरों के साथ लगभग V7.0 के समान:<ref>{{cite web|url=http://mikenaberezny.com/2008/10/04/commodore-lcd-firmware/|title=माइक नबेरेज़नी - कमोडोर एलसीडी फ़र्मवेयर|website=mikenaberezny.com|access-date=8 August 2018}}</ref>
* वी 3.6 : [[कमोडोर एलसीडी]] (अप्रकाशित प्रोटोटाइप)। निम्नलिखित अंतरों के साथ लगभग वी 7.0 के समान:<ref>{{cite web|url=http://mikenaberezny.com/2008/10/04/commodore-lcd-firmware/|title=माइक नबेरेज़नी - कमोडोर एलसीडी फ़र्मवेयर|website=mikenaberezny.com|access-date=8 August 2018}}</ref>
** <code>VOLUME</code> के बजाय <code>VOL</code>
** <code>VOLUME</code> के अतिरिक्त <code>VOL</code>
** <code>EXIT</code> के बजाय <code>QUIT</code>
** <code>EXIT</code> के अतिरिक्त <code>QUIT</code>
** <code>FAST,SLOW</code> कमांड मौजूद नहीं है
** <code>FAST,SLOW</code> निर्देश सम्मलित नहीं है
** अतिरिक्त आदेश: <code>POPUPS</code>
** अतिरिक्त निर्देश: <code>POPUPS</code>
* V10 : कमोडोर 65 (अप्रकाशित प्रोटोटाइप)
* वी 10 : कमोडोर 65 (अप्रकाशित प्रोटोटाइप)
** ग्राफिक्स/वीडियो कमांड: <code>PALETTE,GENLOCK</code>
** ग्राफिक्स/वीडियो निर्देश: <code>PALETTE,GENLOCK</code>
** [[कम्प्यूटर का माउस]] इनपुट: <code>MOUSE,RMOUSE</code>
** [[कम्प्यूटर का माउस]] निविष्‍टि: <code>MOUSE,RMOUSE</code>
** पाठ फ़ाइल (<code>SEQ</code>) उपयोगिता: <code>TYPE</code>
** पाठ फ़ाइल (<code>SEQ</code>) उपयोगिता: <code>TYPE</code>
** कार्यक्रम संपादन: <code>FIND,CHANGE</code>
** क्रिया संपादन: <code>FIND,CHANGE</code>
** स्मृति प्रबंधन: <code>DMA,FRE(2)</code>
** स्मृति प्रबंधन: <code>DMA,FRE(2)</code>
** अकार्यान्वित आदेश: <code>PAINT,LOCATE,SCALE,WIDTH,SET,VIEWPORT,PASTE,CUT</code>
** अकार्यान्वित निर्देश: <code>PAINT,LOCATE,SCALE,WIDTH,SET,VIEWPORT,PASTE,CUT</code>




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


==संदर्भ==
==संदर्भ==
Line 231: Line 218:
श्रेणी:1977 में बनाई गई प्रोग्रामिंग लैंग्वेज
श्रेणी:1977 में बनाई गई प्रोग्रामिंग लैंग्वेज


 
[[Category:All articles with bare URLs for citations]]
[[Category: Machine Translated Page]]
[[Category:All articles with unsourced statements|Commodore Basic]]
[[Category:Created On 01/12/2022]]
[[Category:Articles with bare URLs for citations from March 2022]]
[[Category:Articles with plain text file bare URLs for citations]]
[[Category:Articles with short description|Commodore Basic]]
[[Category:Articles with unsourced statements from March 2018|Commodore Basic]]
[[Category:CS1 français-language sources (fr)|Commodore Basic]]
[[Category:CS1 maint|Commodore Basic]]
[[Category:CS1 Ελληνικά-language sources (el)|Commodore Basic]]
[[Category:Citation Style 1 templates|W]]
[[Category:Collapse templates|Commodore Basic]]
[[Category:Created On 01/12/2022|Commodore Basic]]
[[Category:Lua-based templates|Commodore Basic]]
[[Category:Machine Translated Page|Commodore Basic]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists|Commodore Basic]]
[[Category:Pages with script errors|Commodore Basic]]
[[Category:Short description with empty Wikidata description|Commodore Basic]]
[[Category:Sidebars with styles needing conversion|Commodore Basic]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready|Commodore Basic]]
[[Category:Templates based on the Citation/CS1 Lua module|Commodore Basic]]
[[Category:Templates generating COinS|Cite web]]
[[Category:Templates generating microformats|Commodore Basic]]
[[Category:Templates that add a tracking category|Commodore Basic]]
[[Category:Templates that are not mobile friendly|Commodore Basic]]
[[Category:Templates that generate short descriptions|Commodore Basic]]
[[Category:Templates used by AutoWikiBrowser|Cite web]]
[[Category:Templates using TemplateData|Commodore Basic]]
[[Category:Webarchive template wayback links|Commodore Basic]]
[[Category:Wikipedia fully protected templates|Cite web]]
[[Category:Wikipedia metatemplates|Commodore Basic]]

Latest revision as of 16:53, 25 August 2023

कमोडोर बेसिक
द्वारा डिज़ाइन किया गयाMicrosoft
DeveloperMicrosoft
पहली प्रस्तुति1977; 47 years ago (1977)
Stable release
V7.0 / 1985; 39 years ago (1985)
Preview release
V10.0 / 1991; 33 years ago (1991)
प्लेटफॉर्मPET to the C128

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

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

मूल पीईटी संस्करण कुछ संशोधनों के साथ मूल माइक्रोसॉफ्ट कार्यान्वयन के समान था। C64 पर बेसिक 2.0 भी समान था, और C128s (C64 मोड में) और अन्य मॉडलों पर भी देखा गया था। बाद में पीईटी में मूल के समान बेसिक 4.0, लेकिन फ्लॉपी डिस्क के साथ काम करने के लिए कई निर्देश जोड़े गए।

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

इतिहास

कमोडोर ने फ्लैट-फीस बेसिक का स्रोत कोड लिया और इसे अपने सभी अन्य 8-बिट होम संगणक के लिए आंतरिक रूप से विकसित किया। यह कमोडोर 128 (V7.0 के साथ) तक नहीं था कि माइक्रोसॉफ्ट कॉपीराइट नोटिस प्रदर्शित किया गया था। चूंकि, माइक्रोसॉफ्ट ने संस्करण 2 में ईस्टर एग का निर्माण किया था या कमोडोर बेसिक को "सुधार" किया था जो इसकी सिद्धता को सिद्ध करता है: (अस्पष्ट) निर्देश WAIT 6502, 1टाइप करने पर, 1 का परिणामMicrosoft!होगा! चित्रपट पर दिखाई दे रहा है। (ईस्टर एग को अच्छी तरह से अस्पष्ट किया गया था - दुभाषिया की किसी भी असावधानी संदेश दिखाई नहीं दिया।)[2]

लोकप्रिय कमोडोर 64 आरओएम में बेसिक v2.0 के साथ आया, भले ही संगणक को पीईटी/सीबीएम श्रृंखला के संस्करण 4.0 के बाद जारी किया गया था क्योंकि 64 का उद्देश्य घरेलू संगणक के रूप में था, जबकि पीईटी/सीबीएम श्रृंखला व्यवसाय और शैक्षिक उपयोग करें जहां उनकी अंतर्निहित प्रोग्रामिंग भाषा को अधिक भारी रूप से उपयोग करने के लिए माना जाता था पर लक्षित थी। इसने निर्माण लागत को बचाया, क्योंकि V2 छोटे रोम में उपयुक्त हो गया।

प्रोग्राम संपादन

कमोडोर के रीड ऑनली मैमोरी-रेजिडेंट बेसिक दुभाषिया और करनाल एक सुविधाजनक सुविधा दृश्य संपादक थी।[3][4] चूंकि कमोडोर कुंजीपटल में केवल दो कर्सर कुंजियाँ होती हैं, जो परिवर्तित कुंजी के आयोजित होने पर वैकल्पिक दिशा में होती हैं, चित्रपट संपादक ने उपयोगकर्ताओं को चित्रपट पर कहीं से भी सीधे निर्देश अंकित करने या प्रोग्राम लाइनों को निविष्‍टि करने और संपादित करने की अनुमति दी। यदि एक लाइन को एक लाइन नंबर के साथ उपसर्ग किया गया था, तो इसे प्रोग्राम स्मृति में टोकनऔर संचय किया गया था। जब भी कर्सर लाइन पर होता है, तो किसी संख्या से प्रारंभ नहीं होने वाली पंक्तियों को RETURN कुंजी दबाकर निष्पादित किया जाता है। इसने उस समय के अन्य सामान्य होम संगणक बेसिक्स की तुलना में प्रोग्राम प्रविष्टि इंटरफेस में महत्वपूर्ण सुधार को चिह्नित किया, जो सामान्यतः लाइन संपादकों का उपयोग करता था, जिसे एक अलगEDIT निर्देश द्वारा लागू किया जाता था, या "कॉपी कर्सर" जो कर्सर की स्थिति में लाइन को काट देता था।

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

LOAD }} निर्देश का उपयोग वैकल्पिक मापदण्ड, 1 के साथ किया जा सकता है, जो फ़ाइल के पहले दो बाइट्स में निहित स्मृति एड्रेस में प्रोग्राम को भारण करेगा (इन बाइट्स को छोड़ दिया जाता है और स्मृति में नहीं रखा जाता है)। यदि 1 मापदण्ड का उपयोग नहीं किया जाता है, तो प्रोग्राम बेसिक प्रोग्राम क्षेत्र की शुरुआत में भारण हो जाएगा, जो मशीनों के बीच व्यापक रूप से भिन्न होता है। कुछ कमोडोर बेसिक वेरिएंट्स नेBLOAD तथा BSAVE निर्देश की आपूर्ति की जो एपलसॉफ्ट बेसिक में उनके समकक्षों की तरह काम करते थे, निर्दिष्ट स्मृति स्थानों से बिटमैप्स को भारण या सुरक्षित करते थे।

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

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

डिफॉल्ट बड़ा अक्षर-केवल अक्षर स्थापित में, परिवर्तित किए गए अक्षर ग्राफिक्स सिंबल के रूप में दिखाई देते हैं, उदाहरण निर्देश GOTOसंक्षिप्त रूप मेंG{Shift-O}हो सकता है (जो चित्रपट पर GΓ जैसा दिखता है)। ऐसे अधिकांश निर्देश दो अक्षर के तो होते ही है और कुछ में दो से भी बड़े होते थे। इस तरह के मामलों में, अस्पष्टता थी, इसलिए निर्देश के अधिक अपरिवर्तित अक्षरों की आवश्यकता थी, जैसे GO{Shift-S} (GO♥) को GOSUB.के लिए आवश्यक होना। कुछ निर्देश का कोई संक्षिप्त रूप, या तो अन्य निर्देश के साथ संक्षिप्तता या अस्पष्टता के कारण नहीं था। उदाहरण के लिए, निर्देश,INPUT का कोई संक्षिप्त नाम नहीं था क्योंकि इसकी वर्तनी अलग INPUT# संकेतशब्द से टकराई थी, जो संकेतशब्द लुकअप तालिका की शुरुआत के करीब स्थित थी। अत्यधिक उपयोग किए जाने वालेPRINT निर्देश में एक ही था ? शॉर्टकट, जैसा कि अधिकांश माइक्रोसॉफ्ट बेसिक बोलियों में आम था। स्थानांतरित अक्षरों के साथ निर्देश को संक्षिप्त करना कमोडोर बेसिक के लिए अद्वितीय है।

इस टोकनिंग पद्धति में गड़बड़ थी जैसे कि यदि कोई REM(कोड में टिप्पणी जोड़ने के लिए बेसिक कथन) के बाद{Shift-L}सम्मलित करता है, तो प्रोग्राम सूची को देखने की कोशिश करते समय, बेसिक दुभाषिया तुरंत सूची को रद्द कर देगा ?SYNTAX ERROR प्रदर्शित करें और READY. संकेतपर वापस लौटें। इस गड़बड़ी का उपयोग उन प्रोग्रामरों द्वारा कुछ प्रभाव के लिए किया गया था जो अपने काम की कोशिश करना और उसकी रक्षा करना चाहते थे, चूंकि इसे दरकिनार करना काफी आसान था।

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

प्रदर्शन

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

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

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

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

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

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

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

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

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

कमोडोर बेसिक बिटवाइज़ ऑपरेटरों - AND, OR, तथा XOR, का भी समर्थन करता है, चूंकि यह सुविधा कोर माइक्रोसॉफ्ट 6502 बेसिक कोड का हिस्सा थी, इसे सामान्यतः एपलसॉफ्ट बेसिक जैसे अन्य कार्यान्वयनों में छोड़ दिया गया था।

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

जबकि माइक्रोसॉफ्ट बेसिक के 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(सी 64, अन्य मशीनों पर भिन्न होता है) में मूल्यों के साथ भारण करता है - इसका उपयोग मशीन भाषा रूटीन में आँकड़े पास करने के लिए या बेसिक से कर्नेल क्रिया को बोली करने के साधन के रूप में किया जा सकता है (उदाहरण के तौर पर) ,POKE 780,147:SYS 65490 चित्रपट साफ़ करता है)।

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

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

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

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

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

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

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

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

वैकल्पिक

सिमन्स की बेसिक स्टार्ट-अप चित्रपट

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

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

सी64 पर बेसिक 2.0 की सीमाओं के कारण बेसिक की अंतर्निहित आरओएम मशीन भाषा का उपयोग हुआ। फ़ाइल को निर्दिष्ट स्मृति स्थान पर भारण करने के लिए, फ़ाइल नाम, ड्राइव और उपकरण नंबर को बोली द्वारा पढ़ा जाएगा:SYS57812"filename",8,[8] स्थान X और Y रजिस्टरों में निर्दिष्ट किया जाएगा:POKE780,0:POKE781,0:POKE782,192,[9] और भारण रूटीन कोSYS65493कहा जाएगा।[10]

सी64 के लिए डिस्क पत्रिका, लोडस्टार (पत्रिका) शौक़ीन प्रोग्रामरों के लिए स्थान था, जिन्होंने बेसिक के लिए मूल-निर्देश का संग्रह साझा किया, जिसेSYS address + offset ऑफ़सेट निर्देश के साथ बुलाया गया।[citation needed]

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

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

बाद में कमोडोर और अन्य प्लेटफार्मों पर बेसिक संस्करणों में डिलीट और रेनुम्बर निर्देश के साथ-साथ ऑटो लाइन नंबरिंग निर्देश सम्मलित था जो एक चयनित वृद्धि के अनुसार स्वचालित रूप से लाइन नंबरों का चयन और सम्मिलित करेगा। पहले कमोडोर के बेसिक में दोषमार्जन निर्देश की भी कमी थी, जिसका अर्थ है कि बग और अप्रयुक्त चर को फंसाना मुश्किल है। IF...THEN...ELSE संरचनाएं, Z80 माइक्रोसॉफ्ट बेसिक का एक मानक हिस्सा, कमोडोर बेसिक के पिछले संस्करणों में अनुपलब्ध होने के बाद बेसिक 3.5 में जोड़ा गया था।

उपयोगकर्ता इंटरफ़ेस के रूप में प्रयोग करें

सामान्यतः अन्य घरेलू संगणक के साथ, कमोडोर की मशीनें सीधे बेसिक दुभाषिया में बूट होती हैं। सॉफ्टवेयर को भारण और निष्पादित करने के लिए बेसिक की फाइल और प्रोग्रामिंग निर्देश को सीधे मोड में अंकित किया जा सकता है। यदि रन/स्टॉप कुंजी का उपयोग करके प्रोग्राम निष्पादन को रोक दिया गया था, तो चर मानों को आरएएम में संरक्षित किया जाएगा और दोषमार्जन के लिए प्रिंट किया जा सकता है। 128 ने अपने दूसरे 64k बैंक को चर भंडारण के लिए भी समर्पित किया, जिससे मूल्यों को एक तक बने रहने की अनुमति मिली NEW या RUN निर्देश जारी किया था। यह, कमोडोर बेसिक के साथ सम्मलित उन्नत चित्रपट संपादक के साथ प्रोग्रामिंग वातावरण को आरईपीएल जैसा अनुभव देता है, प्रोग्रामर किसी भी चित्रपट स्थान पर प्रोग्राम लाइनों को सम्मिलित और संपादित कर सकते हैं, अंतःक्रियात्मक रूप से प्रोग्राम का निर्माण कर सकते हैं।[12] यह सीपी/एम या एमएस-डॉस जैसे उस समय के व्यवसाय-उन्मुख संचालन प्रणाली के विपरीत है, जो सामान्यतः निर्देश लाइन इंटरफेस में बूट होता है। यदि इन प्लेटफॉर्म्स पर प्रोग्रामिंग भाषा की आवश्यकता होती थी, तो इसे अलग से भारण करना पड़ता था।

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

संस्करण और सुविधाएँ

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

जारी संस्करण

  • वी1.0: पीईटी 2001 चिकलेट कुंजीपटल और बिल्ट-इन कमोडोर डाटासेट (मूल पीईटी) के साथ
    • सरणियाँ 256 तत्वों तक सीमित हैं
    • पीक और पोक निर्देश $ C000 से ऊपर के बेसिक आरओ एम स्थानों पर स्पष्ट रूप से अक्षम हैं
  • वी 2.0 (पहली रिलीज़): पीईटी 2001 फुल-ट्रैवल कुंजीपटल और सुधार रोम के साथ
    • आईईईई-488 समर्थन जोड़ें
    • अपशिष्ट संग्रह में सुधार हुआ[13]
    • सरणी बग ठीक करें
    • ईस्टर एग - प्रवेश करना WAIT6502,[संख्या] प्रदर्शित करता है MICROSOFT! मनमाना संख्या बार
  • वी 4.0: पीईटी/सीबीएम 4000/8000 श्रृंखला (और बाद का संस्करण पीईटी 2001s)
    • कमोडोर डॉस: DLOAD,DSAVE,COPY,SCRATCH, आदि (कुल 15)
    • डिस्क त्रुटि-चैनल चर: DS,DS$
    • अपशिष्ट -संग्रह प्रदर्शन में काफी सुधार हुआ[13]* V2.0 (4.0 के बाद दूसरी रिलीज़): कमोडोर वीआईसी-20|वीआईसी-20, कमोडोर 64
  • वी 2.2 कमोडोर 64 गेम प्रणाली (1990)
  • वी 4+ : कमोडोर सीबीएम-II|सीबीएम-II सीरीज (उर्फ बी, पी रेंज)
    • स्मृति प्रबंधन: BANK
    • कमोडोर डॉस: BLOAD, BSAVE,DCLEAR
    • स्वरूपित मुद्रण: PRINT USING,PUDEF
    • त्रुटि ट्रैपिंग: DISPOSE
    • वैकल्पिक ब्रांचिंग: ELSE
    • डायनेमिक एरर हैंडलिंग: TRAP,RESUME,ERR$()
    • लचीला तथ्य पढ़ना: RESTORE [लाइन नंबर]
    • स्ट्रिंग खोज क्रिया: INSTR
  • वी3.5: कमोडोर 16|सी16/116, कमोडोर प्लस/4|प्लस/4
    • ध्वनि और ग्राफिक्स निर्देश
    • जोस्टिक निविष्‍टि: JOY
    • दशमलवहेक्साडेसिमल रूपांतरण: DEC(),HEX$()
    • संरचित लूपिंग: DO,LOOP,WHILE,UNTIL,EXIT
    • क्रिया कुंजी असाइनमेंट: KEY (डायरेक्ट मोड भी)
    • क्रिया प्रविष्टि/संपादन: AUTO,DELETE,RENUMBER
    • दोषमार्जन (ट्रेसिंग): TRON, TROFF
    • मशीन कोड मॉनिटर प्रविष्टि निर्देश: MONITOR
    • सी (1) 16, प्लस / 4 ईस्टर एग - अंकित करें एसवाईएस 52650
  • वी 7.0: कमोडोर 128
    • स्प्राइट (संगणक ग्राफिक्स) हैंडलिंग सहित अधिक ध्वनि और ग्राफिक्स निर्देश
    • बिल्ट-इन स्प्राइट एडिटर: SPRDEF
    • मल्टी-कथन ब्लॉक के लिए IF THEN ELSE संरचनाएं: BEGIN,BEND
    • चप्पू (खेल नियंत्रक), हल्की कलम निविष्‍टि: POT,PEN
    • अनन्य संयोजन समारोह: XOR
    • परिवर्तनशील पता प्राप्त करें: POINTER
    • टेक्स्ट मोड विंडोिंग: WINDOW
    • नियंत्रित समय विलंब: SLEEP
    • स्मृति प्रबंधन: SWAP,FETCH,STASH,FRE(1)
    • प्रोग्राम कोड को चर से अलग संचय करने के लिए 128 के बैंक स्विचिंग का उपयोग किया। यदि प्रोग्राम GOTO निर्देश के साथ प्रारंभ किया गया था, तो प्रोग्राम निष्पादन में चर मान संरक्षित किए जाएंगे।
    • कमोडोर डॉस: BOOT,DVERIFY
    • सीपीयू गति समायोजन: FAST,SLOW (2 बनाम 1 मेगाहर्ट्ज)
    • C64 मोड अंकित करें: GO64
    • अनिर्दिष्ट, काम कर रहा है: RREG (एक के बाद सीपीयू रजिस्टर पढ़ें एसवाईएस)
    • अकार्यान्वित निर्देश: OFF,QUIT
    • C128 ईस्टर एग - एंटर करें एसवाईएस 32800,123,45,6


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

  • वी 3.6 : कमोडोर एलसीडी (अप्रकाशित प्रोटोटाइप)। निम्नलिखित अंतरों के साथ लगभग वी 7.0 के समान:[14]
    • VOLUME के अतिरिक्त VOL
    • EXIT के अतिरिक्त QUIT
    • FAST,SLOW निर्देश सम्मलित नहीं है
    • अतिरिक्त निर्देश: POPUPS
  • वी 10 : कमोडोर 65 (अप्रकाशित प्रोटोटाइप)
    • ग्राफिक्स/वीडियो निर्देश: PALETTE,GENLOCK
    • कम्प्यूटर का माउस निविष्‍टि: MOUSE,RMOUSE
    • पाठ फ़ाइल (SEQ) उपयोगिता: TYPE
    • क्रिया संपादन: FIND,CHANGE
    • स्मृति प्रबंधन: DMA,FRE(2)
    • अकार्यान्वित निर्देश: PAINT,LOCATE,SCALE,WIDTH,SET,VIEWPORT,PASTE,CUT


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

संदर्भ

  1. Stated by Jack Tramiel at the Commodore 64 25th Anniversary Celebration at the Computer History Museum December 10, 2007 [1] Archived 2008-12-11 at the Wayback Machine[2] Archived 2017-10-03 at the Wayback Machine[3].
  2. "8 बिट बेसिक में बिल गेट्स का व्यक्तिगत ईस्टर एग - pagetable.com". www.pagetable.com. Retrieved 8 August 2018.
  3. "कीबोर्डिंग और स्क्रीन एडिटर". July 1985.
  4. "बाइट जुलाई 1983" (PDF).
  5. Leemon, Sheldon (1987). कमोडोर 64 और 64C का मानचित्रण. COMPUTE! Publications. p. 37. ISBN 9780874550825. Retrieved 2018-03-25.
  6. Cowper, Ottis R. (1986). कमोडोर 128 का मानचित्रण. COMPUTE! Publications. p. 66. ISBN 9780874550603.
  7. "कमोडोर का मानचित्रण 64".
  8. Leemon, Sheldon (1987). कमोडोर 64 और 64C का मानचित्रण. COMPUTE! Publications. p. 209. ISBN 9780874550825. Retrieved 2018-03-25.
  9. Leemon, Sheldon (1987). कमोडोर 64 और 64C का मानचित्रण. COMPUTE! Publications. p. 71. ISBN 9780874550825. Retrieved 2018-03-25.
  10. Leemon, Sheldon (1987). कमोडोर 64 और 64C का मानचित्रण. COMPUTE! Publications. p. 231. ISBN 9780874550825. Retrieved 2018-03-25.
  11. "अटारी बेसिक और पीईटी माइक्रोसॉफ्ट बेसिक। एक बुनियादी तुलना।".
  12. Scrimshaw, N. B. (11 November 2013). कमोडोर 64 का एक परिचय: प्रोग्रामिंग में रोमांच. ISBN 9781489967879.
  13. 13.0 13.1 http://www.zimmers.net/anonftp/pub/cbm/firmware/README.txt[bare URL plain text file]
  14. "माइक नबेरेज़नी - कमोडोर एलसीडी फ़र्मवेयर". mikenaberezny.com. Retrieved 8 August 2018.


स्रोत

बेसिक 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:


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