Кіріспе

BASIC бағдарламалау тілінің диалектісі

Commodore BASIC, сондай-ақ PET BASIC немесе CBM BASIC деп те аталады, Commodore International компаниясының PET (1977) моделінен бастап Commodore 128 (1985) дейінгі 8-биттік үй компьютерлерінде қолданылған BASIC бағдарламалау тілінің диалектісі болып табылады. Оның негізі 6502 Microsoft BASIC-ке негізделген, сондықтан ол сол кездегі басқа 6502 BASIC түрлерімен, мысалы Applesoft BASIC-пен көптеген ортақ белгілеріне ие. Commodore 1977 жылы Microsoft-тан BASIC лицензиясын "бір рет төле, роялти жоқ" шартымен алды, себебі Джек Трамиел Билл Гейтстің бірлік бағасын ұсынғаннан бас тартты, "Мен бұрыннан үйленгенмін" деп мәлімдеді және мәңгілік лицензия үшін бір рет төлеуге дайын болды. PET-тің бастапқы нұсқасы Microsoft-тың бастапқы нұсқасына өте ұқсас болды, тек аз ғана өзгерістер енгізілді. C64-тегі BASIC 2.0 да ұқсас болды және C128 (C64 режимінде) және басқа модельдерде де қолданылды. Кейінгі PET модельдерінде BASIC 4.0 нұсқасы болды, ол түпнұсқаға ұқсас болғанмен, дискетамен жұмыс істеуге арналған бірнеше командалар қосылды. BASIC 3.5 алғаш рет C16 және Plus/4 компьютерлерінде графика мен дыбыс қолдауын қамтамасыз ететін бірқатар командаларды қосып, едәуір өзгерістерге ұшырады. BASIC 7.0 Commodore 128 жиынтығына енгізілді және Plus/4 BASIC 3.5 құрылымдық бағдарламалау командаларын, сондай-ақ машинаның жаңа мүмкіндіктерін толық пайдалануға арналған кілт сөздерді қамтыды. Сприт редакторы және машина тілі мониторы қосылды. Соңғы нұсқа, BASIC 10.0, шығарылмаған Commodore 65 құрамына кірді.

Тарих

Commodore біржолғы төлемге алынған BASIC-тің бастапқы кодын алды және оны басқа барлық 8 биттік үй компьютерлері үшін ішкі түрде одан әрі дамытты. Microsoft авторлық құқығы туралы ескерту тек Commodore 128 (V7.0 нұсқасымен) компьютерінде ғана көрсетілді. Дегенмен, Microsoft Commodore Basic 2-ші нұсқасына немесе "жаңартуына" бір құпия мүмкіндік (easter egg) енгізді, ол оның шығу тегін растады: (сирек қолданылатын) WAIT 6502, 1 командасын теру нәтижесінде экранда Microsoft! деген жазу пайда болды. (Бұл құпия мүмкіндік жақсы жасырылған – хабар интерпретатордың ешбір дисасемблиясында көрінбеді.) Көп танымал Commodore 64 компьютері BASIC v2.0 нұсқасымен ROM-да келді, тіпті компьютер 4.0 нұсқасы бар PET/CBM сериясынан кейін шығарылса да, себебі 64 үй компьютері ретінде жоспарланған, ал PET/CBM сериясы бизнес және білім беру салаларында қолдануға арналған, онда олардың кіріктірілген бағдарламалау тілі жиі қолданылатыны болжамдалды. Бұл өндіріс шығындарын азайтты, өйткені V2 кішкентай ROM-ға сыйып қана қоймай, арзанға түсті.

Бағдарламаны өңдеу

Commodore ROM-ның BASIC интерпретаторы мен KERNAL-дың ыңғайлы ерекшелігі – толық экрандық редактор болды. Commodore пернетақталарында тек екі курсор пернесі болғанмен, олар Shift пернесін ұстағанда бағытын өзгертетін, экран редакторы пайдаланушыларға тікелей командаларды енгізуге немесе экранның кез келген жерінен бағдарлама жолдарын енгізуге және өңдеуге мүмкіндік берді. Егер жолдың басында жол нөмірі тұрса, ол токенделіп, бағдарлама жадында сақталады. Санмен басталмайтын жолдар, курсор сол жолда тұрғанда перне басу арқылы орындалады. Бұл сол кездегі басқа үй компьютерлерінің BASIC-терімен салыстырғанда бағдарламаға кіру интерфейсінде маңызды жаңару болды, себебі олар әдетте жеке EDIT командасымен шақырылатын жол редакторларын немесе курсор орнында жолды қысқартатын «көшірме курсорды» пайдаланды. Сонымен қатар, ол атаулы файлдарды кез келген құрылғыға, соның ішінде кассетаға сақтау мүмкіндігін ұсынды – PET дәуірінде танымал сақтау құрылғысы және 8 биттік Commodore компьютерлерінің өмір бойында қолданылып келген арзан массалық сақтау құралы. Көптеген жүйелер дискетадағы файл атауларын ғана қолдады, бұл басқа құрылғыларда бірнеше файлды сақтауды қиындатты. Басқа жүйенің пайдаланушысы файл орналасқан жердегі магнитофонның сандық көрсеткішін жазып алуы керек еді, бірақ бұл дәл болмады және қатеге бейім болды. PET (және BASIC 2.0) көмегімен кассетадан файлдарды атау бойынша сұрауға болады. Құрылғы файл атауын жүйелі түрде оқып, сәйкес келмейтін файл атауларын елемейтін түрде іздейді. Файл жүйесі файлдарға жүктеуге немесе сақтауға болатын қуатты жазба құрылымымен де қамтамасыз етілді. Commodore кассеталарындағы деректер басқа өндірушілер қолданған аналогты әдістердің орнына цифрлық түрде жазылды. Сондықтан стандартты магнитофонға емес, арнайы Datasette қажет болды. Стандартты магнитофонды пайдалану үшін аналогты цифрлық түрлендіргішті қолданатын адаптерлер болды, бірақ олар Datasette-тен сәл ғана арзан болды. Команданы файлдың алғашқы екі байтындағы жад адресіне бағдарламаны жүктейтін (бұл байттар жадтан шығарылады және сақталмайды) параметрмен бірге қолдануға болады. Егер параметр қолданылмаса, бағдарлама BASIC бағдарламалық аймағының басында жүктеледі, ол әртүрлі машиналарда әртүрлі болады. Кейбір Commodore BASIC нұсқалары BLOAD және BSAVE командаларын ұсынды, олар Applesoft BASIC-тегі әріптестеріне ұқсас жұмыс істеді, белгіленген жад орындарынан биттік суреттерді жүктейді немесе сақтайды. PET жылжытылатын бағдарламаларды қолдамайды және команда әрқашан бағдарлама файлындағы алғашқы екі байтқа жүктеледі. Бұл басқа Commodore машиналарында сақталған BASIC бағдарламаларын жүктеуге тырысқанда проблема туды, себебі олар PET BASIC бағдарламасының күтілетін орнынан жоғарырақ мекенжайда жүктеледі. Бағдарламаларды дұрыс жерге «ауыстыру» үшін айналма жолдар болды. Егер бағдарлама CBM II машинасына сақталса, оны PET-ке жүктеудің жалғыз жолы алғашқы екі байтты дискілік сектор редакторымен өзгерту болды, себебі CBM II сериясының BASIC бағдарламалық аймағы $0 мекенжайында орналасқан, бұл PET-тің нөлдік бетке жүктеуге тырысуына және тоқтауына себеп болар еді. Commodore BASIC кілт сөздерін алдымен ауыспалы емес пернені, содан кейін келесі әріптің ауыспалы пернені басу арқылы қысқартуға болады. Бұл жоғары битті орнатады, содан кейін интерпретатор оқуды тоқтатып, сөйлемді іздеу кестесіне сәйкес талдайды. Бұл сөйлемнің жоғары бит орнатылған жеріне дейінгі бөлігінің команданы толық жазудың орнына қабылданғанын білдіреді. Алайда, барлық BASIC кілт сөздері жадыда бір байттық белгілер ретінде сақталғандықтан, бұл оптимизация емес, нұсқаулық енгізуге ыңғайлы болды. Әдепкі тек үлкен әріптер жиынтығында ауысқан таңбалар графикалық символ ретінде көрінеді; мысалы, GOTO командасын G{Shift O} деп қысқартуға болады (ол экранда GΓ сияқты көрінеді). Мұндай командалардың көпшілігі екі әріптен тұрады, бірақ кейде одан да ұзын болады. Мұндай жағдайларда екіұштылық туындайды, сондықтан команданың ауыспалы емес әріптері қажет болады, мысалы GOSUB үшін GO{Shift S} (GO♥) қажет. Кейбір командалардың қысқартылған түрі жоқ, себебі олар қысқа немесе басқа командалармен шатасқан. Мысалы, INPUT командасының қысқартуы жоқ, себебі оның жазылуы кілт сөзді іздеу кестесінің басына жақын орналасқан бөлек INPUT# кілт сөзімен келіспейді. PRINT командасының жалғыз ? қысқасы бар, бұл көптеген Microsoft BASIC диалекттерінде кең таралған. Командаларды ауысқан әріптермен қысқарту Commodore BASIC-ке тән. Бұл токендеу әдісінде бір қате бар еді: егер REM (кодқа түсініктеме қосу үшін BASIC нұсқауы) содан кейін {Shift L} қосылса, бағдарламаның тізімін қарауға тырысқанда BASIC интерпретаторы тізімді дереу тоқтатып, ?SYNTAX ERROR хабарын шығарып, READY нұсқауына оралады. Бұл қате жұмыстарын қорғауға тырысқан бағдарламашылар тарапынан белгілі бір деңгейде пайдаланылды, бірақ оны оңай айналып өтуге болады. Кілт сөздерді қысқарту арқылы бір бағдарлама жолына көбірек кодты сыйдыруға болады (40 бағанды дисплейлерде – яғни C64 немесе PET, немесе VIC 20-ның 22 бағанды дисплейінде төрт жолға дейін екі экрандық жолға дейін). Бұл басқаша сақтауға қажетті қосымша бағдарлама жолдарына келетін шығынды азайтуға мүмкіндік берді, бірақ одан артығы емес. Барлық BASIC командалары токенделіп, жадта 1 байт (немесе BASIC 7 немесе BASIC 10 командаларының бірнешесі үшін 2 байт) алады, олар қалай енгізілгеніне қарамастан. Мұндай ұзын жолдарды өңдеу қиын. LIST командасы бағдарлама жадына енгізілген 2 немесе 4 экрандық жолдан асып түсетін команда кілт сөзінің барлық бөлігін көрсетті.

Өнер көрсету

Microsoft BASIC интерпретаторлары сияқты, Commodore BASIC те машиналық кодтан баяу жұмыс істейді. Тест нәтижелері 16 килобайтты ROM-нан RAM-ға көшіру машиналық кодта бір секундтан кем уақыт алады, ал BASIC-те бір минуттан асады. Интерпретатордан жылдам орындау үшін бағдарламашылар түрлі техникаларды қолдана бастады. Бірі – жиі қолданылатын қалқыма нүктелік мәндерді әртүрлі сандарға аударудың орнына айнымалыларға сақтау. Барлық командалар үшін қалқыма нүкте әдепкі тип болғандықтан, аргумент ретінде бүтін сандар емес, қалқыма нүкте сандарын пайдалану жылдам. Жылдамдық маңызды болғанда, кейбір бағдарламашылар BASIC бағдарламаларының бөлімдерін 6502 немесе 6510 тіліне аударды, олар файлдан бөлек жүктелді немесе BASIC бағдарламасының соңындағы DATA операторларынан жадыға POKEd енгізілді, содан кейін SYS командасын пайдаланып BASIC-тен орындалды, тікелей режимнен немесе бағдарламаның өзінен. Машиналық кодтың орындалу жылдамдығы тым жоғары болған кезде, мысалы, ойын кезінде немесе пайдаланушының кірісін күту кезінде, бағдарламашылар орындалуды кешіктіру немесе тоқтату үшін таңдалған жад орындарын (мысалы, 64 немесе 128 үшін, пернетақта кезекшесінің мөлшерін көрсететін) оқып, сұрау салуға болады. Commodore BASIC-тің ерекшелігі – экранды тазалау немесе курсорды бағдарлама ішінде орналастыру сияқты тапсырмаларды орындау үшін басқару кодтарын пайдалану; оларды X басқару кодына сәйкес келетін команданы беру арқылы (мысалы, экранды тазалау үшін басқару коды) немесе цитаталар арасында сұрақталған пернелерді басып, BASIC-ті басқару кодының визуалды бейнесін (бұл жағдайда кері жүрек) бағдарлама орындалғанда әрекет етуге итермелейді (басқаша айтқанда, басқару кодтарын тікелей басып шығару жадыны аз пайдаланады және функцияларды шақырудан жылдам орындалады). Бұл экранды тазалау немесе курсорды жылжыту үшін арнайы командалары бар BASIC-тің басқа нұсқаларымен салыстырылады. BASIC 3.5 және одан жоғары нұсқаларында экранды тазалау және курсорды жылжыту үшін арнайы командалар бар. Commodore BASIC-тегі бағдарлама жолдарына ешқандай жерде бос орын қажет емес (бірақ команда әрқашан жол нөмірі мен оператордың арасында біреуін көрсетеді), мысалы, , және бағдарламаларды бос орынсыз жазу әдеттегі нәрсе. Бұл мүмкіндік жадты үнемдеу үшін қосылды, өйткені токендеуші кілт сөздер арасында енгізілген бос орындарды ешқашан алып тастамайды: бос орындардың болуы токенделген бағдарламада қосымша 0x20 байтқа әкеледі, олар орындалу кезінде өткізіледі. Жол нөмірі мен бағдарлама операторы арасындағы бос орындар токендеушімен жойылады. Бағдарлама жолдарының көпшілігінде 80 таңбаға дейін болуы мүмкін, бірақ 40 бағандық мәтін бар машиналар жолды экранның келесі жолына дейін орауға әкеледі, ал 22 бағандық дисплейі бар VIC 20-да бағдарлама жолдары төрт таңбаға дейін ие бола алады. Commodore 128 бағдарламасында BASIC 7.0 бағдарлама жолының шегін 160 таңбаға дейін арттырды (төрт 40 бағандық жол немесе екі 80 бағандық жол). Бұндай қысқартуларды қолдану арқылы сызыққа одан да көп орын беруге болады. BASIC 7.0 бағдарламасының бір жолын 160 таңбадан артық жазғанда қате пайда болады. Бұрынғы нұсқаларда қате пайда болмайды және егер жол ұзындығы асып кетсе, READY шақыруын екі жол төмен қарай көрсетеді. Жол нөмірі бағдарлама жолындағы таңбалар санына есептеледі, сондықтан бес таңбалы жол нөмірі бір таңбалы санға қарағанда төрт таңбаға аз рұқсат етіледі. Commodore BASIC жолдарының орындалу реті жол нөмірлеумен анықталмайды; оның орнына, ол жолдардың жадыда байланысқан реті бойынша орындалады. Бағдарлама жолдары жадыда бір-бірімен байланыстырылған тізім ретінде, сілтемемен (келесі бағдарлама жолының басталу орны бар), жол нөмірімен, содан кейін жолдың белгіленген кодымен сақталады. Бағдарламаны енгізу кезінде BASIC бағдарлама жолдарының жадыда үнемі қайта реттеліп отыратын, сондықтан жол нөмірлері мен сілтемелер жоғарылайтын тәртіппен орналасатын. Алайда, бағдарлама енгізілгеннен кейін, POKE командаларымен жол нөмірлері мен сілтемелерді қолмен өзгерту тапсырыссыз орындауға мүмкіндік береді немесе тіпті әр жолға бірдей жол нөмірін береді. Бастапқыда BASIC коммерциялық мақсатта қолданылған кезде, бұл бағдарламаны кездейсоқ өзгертуді болдырмау үшін бағдарламалық қамтамасыз етуді қорғау әдісі болды. Жолдар саны 0-ден 65520-ға дейін болуы мүмкін және сақтау үшін бес байт қажет, жолдар саны қанша цифр болса да, бірақ орындалу саны аз болған сайын жылдам. Бірнеше операторды бір жолға орналастыру жадыны аз пайдаланады және жылдам орындалады. және операторлары ағымдағы жолдан төмен қарай іздейді, егер алға қарай секіру орындалса, ал кері секіру жағдайында бағдарламаның басына оралып, іздеуді бастайды. Бұл үлкен бағдарламаларды баяулатады, сондықтан бағдарламаның басына жиі қолданылатын кіші бағдарламаларды орналастыру қажет. Айырмалы атаулары 2 таңбаға дейін ғана маңызды; осылайша, АЙЫРМАЛЫ1, АЙЫРМАЛЫ2 және VA айнымалы атаулары бір айнымалыны білдіреді. Commodore BASIC сонымен қатар биттік операторларды , және қолдайды, бірақ бұл мүмкіндік Microsoft 6502 BASIC кодының бөлігі болғанымен, әдетте Applesoft BASIC сияқты басқа нұсқаларда қолданылмайды. Commodore BASIC-тің түпкілікті сан форматы, ата-аналық MS BASIC сияқты, қалқыма нүктелік болып табылады. Көптеген заманауи BASIC нұсқалары сипаттама үшін бір байтты (көрсеткіш) және мантисса үшін үш байтты пайдаланды. Үш байттық мантиссаны пайдаланатын қалқыма нүктелік санның дәлдігі шамамен 6.5 ондық таңбаны құрайды және дөңгелектеу қатесі жиі кездеседі. Microsoft BASIC-тің 6502 нұсқалары 40 биттік қалқыма нүктелік арифметиканы пайдаланды, яғни айнымалылар сақтау үшін бес байтты алды (төрт байттық мантисса және бір байттық көрсеткіш), BASIC 80-дегі 32 биттік қалқыма нүктеден өзгеше. 8080/Z80 Microsoft BASIC нұсқалары бүтін және қос дәлдікті айнымалыларды қолдағанмен, 6502 нұсқалары тек қалқыма нүктелік болды. Commodore BASIC қолдайтын бүтін санды айнымалылар (проценттік белгімен белгіленген) 32768-ден 32767-ге дейінгі диапазонда болғанымен, практикада олар тек массивтік айнымалылар үшін қолданылады және әрбір массивтік элементті екі байтқа дейін шектеу арқылы жадты үнемдеу функциясын атқарады (2000 элементтен тұратын массив қалқыма нүктелік массив ретінде жарияланса 10 000 байт алады, ал бүтін массив ретінде жарияланса 4000 байт алады). Кез келген айнымалыны бүтін деп белгілеу BASIC-ті оны қалқыма нүктеге қайта айналдыруға мәжбүр етеді, бағдарламаның орындалуын баяулатады және әрбір проценттік белгі сақтау үшін бір байтты қажет ететіндіктен жадты ысыраптайды (бұл бүтін массивлерге де қатысты, сондықтан бағдарламашы үлкен массивтер қолданылғанда ғана оларды пайдаланудан аулақ болуы керек, олар қалқыма нүктелік ретінде сақталғанда қол жетімді жадтан асып кетеді). Сондай-ақ, 32767-ден жоғары жад орындарын бүтін сан ретінде анықталған мекенжаймен сұрау мүмкін емес. Нөлді (0) көрсету үшін нүктені (.) пайдалануға болады (мысалы, орнына немесе орнына ), бұл сәл жылдам орындалады. Машиналық кодты бағдарламаларды бастау үшін қолданылатын оператор Commodore-мен қосылды және түпкілікті Microsoft BASIC кодында болмады, онда машиналық кодты шақыру үшін тек USR функциясы болды. Ол автоматты түрде процессор тіркегішін (C64, басқа машиналарда өзгереді) мәндермен жүктейді, бұл машиналық кодты шақыруларға деректерді жіберу немесе BASIC-тен кернел функцияларын шақыру құралы ретінде пайдаланылуы мүмкін (мысалы, экранды тазалау үшін ). Commodore 8 биттік машиналары C128-ден басқа дискілік бағдарламаны автоматты түрде іске қоса алмайды, сондықтан әдеттегі техника – бағдарлама орындалуын бастау үшін BASIC-тің кіріспе бөлігін қосу, мысалы . Бағдарламаны жүктегеннен кейін автоматты түрде бастауға және пайдаланушыға операторды енгізуді қажет етпеуге болады, бұл BASIC "дайын" векторын тікелей желідегі кодпен байланыстыру арқылы жасалады.

Баламалар

Commodore 64 үшін BASIC-тің көптеген кеңейтімдері шығарылды, өйткені оның BASIC 2.0 мүмкіндіктері шектеулі болды. Ең танымал кеңейтімдердің бірі DOS Wedge болды, ол Commodore 1541 Test/Demo Disk-ке енгізілді. Бұл 1 КБ-дық BASIC кеңейтуі дискіге қатысты бірқатар командаларды, соның ішінде дискідегі бағдарламаны жадыда жоймастан дискінің каталогын оқу мүмкіндігін қосты. Оның мүмкіндіктері кейіннен түрлі үшінші тарап кеңейтімдеріне, мысалы, танымал Epyx FastLoad картриджіне енгізілді. Басқа BASIC кеңейтімдері қосымша кілт сөздерді қосты, бұл кодтауды жеңілдету үшін спрайттар, дыбыс және жоғары ажыратымдылықтағы графикаларды жасауға мүмкіндік берді, мысалы, Simons' BASIC (1983) және Vision BASIC (2022). BASIC 2.0-дың дыбыс немесе графикалық мүмкіндіктерінің болмауы көптеген пайдаланушыларға қиындық туғызса да, кейбір сыншылар бұл пайдаланушыны машина тілін үйренуге мәжбүрлегендіктен, ақырында пайдалы болды деп мәлімдеді. C64-те BASIC 2.0-дың шектеулері BASIC-тен ROM машина тілін пайдалануға әкелді. Файлды белгіленген жад орнына жүктеу үшін файлдың атауы, диск және құрылғы нөмірі шақыру арқылы оқылады: ; орналасу орны X және Y регистрлерінде көрсетіледі: ; және жүктеу режімі шақырылады: C64 үшін дискілік журнал, Loadstar, BASIC үшін прото-командалардың жиынтығын бөліскен хоббист бағдарламалаушылар үшін алаң болды, олар команда арқылы шақырылды. Қазіргі заманғы бағдарламалау көзқарасынан алғанда, Commodore BASIC-тің ертерек нұсқалары бағдарламалаушы үшін көптеген жаман бағдарламалау тұзақтарын ұсынды. Бұл мәселелердің көпшілігі Microsoft BASIC-тен туындағандықтан, сол дәуірдегі барлық үй компьютерлерінің BASIC-і ұқсас кемшіліктерге ұшырады. Microsoft BASIC бағдарламасының әрбір жолы бағдарламашымен жол нөмірімен белгіленді. Бағдарламаны өңдеу немесе түзету кезінде жолдарды енгізуді жеңілдету үшін сандарды белгілі бір мәнге (5, 10 немесе 100) арттыру кең таралған практика болды, бірақ нашар жоспарлау бағдарламаға үлкен бөлімдерді енгізуді жиі бүкіл кодты қайта құруды талап етті. Көбінесе бағдарламаны төменгі жол нөмірінен бастау және бағдарламаның денесін 1000, 2000 және т.б. сияқты белгіленген жол нөмірінен басталатын бөлімдерге бөлу қабылданды. Егер үлкен бөлімді қосу қажет болса, оған келесі бос негізгі жол нөмірін беру және оны секіру кестесіне енгізуге болады. Сонымен қатар, барлық айнымалылар жаһандық айнымалылар ретінде қарастырылады. FOR NEXT конструкциясынан тыс анықталған циклдарды жасау қиын, бұл бағдарламалаушының командаға сүйенуіне себеп болды (кейін BASIC 3.5-те , және командалары қосылған кезде түзетілді). Белгілі бір тапсырмаларды орындау үшін жиі жалауша айнымалыларын жасау қажет болды. Кейінгі BASIC нұсқалары Commodore және басқа платформаларда және командаларын, сондай-ақ таңдалған арттыру бойынша автоматты түрде жол нөмірлерін таңдайтын және енгізетін AUTO жол нөмірлеу командасын қамтыды. Commodore-дің ертерек BASIC-терінде де түзету командалары болмады, яғни қателер мен пайдаланылмаған айнымалыларды анықтау қиын болды. Z80 Microsoft BASIC-тің стандартты бөлігі болған құрылымдар Commodore BASIC-тің ертерек нұсқаларында болмағандықтан, BASIC 3.5-ке қосылды.

Пайдаланушы интерфейсі ретінде пайдалану

Басқа үй компьютерлері сияқты, Commodore машиналары да тікелей BASIC интерпретаторына жүктелетін. BASIC-тің файлдық және бағдарламалау командаларын бағдарламалық құралды жүктеу және іске қосу үшін тікелей режимде енгізуге болады. Егер бағдарламаның орындалуы RUN/STOP пернесі арқылы тоқтатылса, айнымалы шамалар RAM-да сақталады және түзету үшін PRINT арқылы көрсетілуі мүмкін. 128 моделі тіпті екінші 64кб жад бөлігін айнымалы шамаларды сақтауға арнады, бұл NEW немесе RUN командасы берілгенге дейін шамалардың сақталуын қамтамасыз етеді. Бұл, Commodore BASIC-ке енгізілген жетілдірілген экран редакторымен бірге бағдарламалау ортасына REPL сияқты сезім береді; бағдарламашылар кез келген экран орнында бағдарламалық жолдарды қосып, өңдей алады, бағдарламаны интерактивті түрде құрастырады. Бұл CP/M немесе MS DOS сияқты бизнеске бағытталған операциялық жүйелерден өзгеше, олар әдетте командалық жол интерфейсіне жүктеледі. Егер осы платформаларда бағдарламалау тілі қажет болса, оны жеке жүктеу қажет еді. Commodore BASIC-тің кейбір нұсқаларында дискіге арналған DLOAD және DSAVE командалары болғанымен, Commodore 64-ке енгізілген нұсқада олар жоқ еді, сондықтан пайдаланушы стандартты LOAD командасына дискінің құрылғы нөмірін (әдетте 8 немесе 9) көрсетуі керек, әйтпесе ол кассетамен жұмыс істейтін. Commodore 64-тің BASIC 2.0 нұсқасының тағы бір кемшілігі – диск мазмұнын негізгі жадты тазартпай көрсетуге арналған DIRECTORY командасы болмауы. 64-те дискідегі файлдарды қарау «бағдарламаны» жүктеу арқылы іске асырылды, оны тізімдегенде каталог псевдо-BASIC бағдарламасы ретінде көрсетілді, файлдың блок көлемі жол нөмірі ретінде пайда болды. Бұл қазіргі жүктеліп жатқан бағдарламаны жаңадан жазуға алып келді. DOS Wedge сияқты қосымшалар каталог тізімін тікелей экран жадына шығару арқылы бұл мәселені шешті.