Кіріспе

1985 жылы шыққан үй компьютері

Commodore 128, сондай-ақ C128, C 128 немесе C= 128 (мұндағы "C=" логотиптің графикалық бөлігін көрсетеді) – Commodore Business Machines (CBM) компаниясы коммерциялық түрде шығарған соңғы 8 биттік үй компьютері. 1985 жылғы қаңтарда Лас-Вегаста өткен CES көрмесінде таныстырылған бұл компьютер, 1980-ші жылдардағы ең көп сатылған компьютер – Commodore 64-тің ізінен үш жыл өткен соң пайда болды. Төрт жылдық өндіріс кезеңінде шамамен 2,5 миллион C128 сатылды. C128 – C64-тің айтарлықтай кеңейтілген және дерлік толық үйлесімділігі бар жаңа нұсқасы. Ол жаңартылған корпусқа орналасқан, жақсартылған пернетақтасы сандық панель мен функциялық пернелерді қамтиды. Жады екі 64 КБ блогында 128 КБ оперативті жадқа дейін ұлғайтылды. Жеке графикалық чип бастапқы C64 режимдеріне қосымша 80 бағандық түсті бейне шығару мүмкіндігін ұсынады. Сонымен қатар, ол Zilog Z80 процессорын қамтиды, бұл C128-ге әдеттегі Commodore BASIC ортасына балама ретінде CP/M жүйесін іске қосуға мүмкіндік береді. CP/M бағдарламалық қамтамасының кең кітапханасы, C64 бағдарламалық қамтамасымен біріктірілгенде, C128-ге бәсекелестерінің арасында ең кең бағдарламалық жасақтама спектрін ұсынды. C128-дің негізгі аппараттық дизайнын жасаған Бил Херд, бұрын Plus/4 жобасында жұмыс істеген. Басқа аппараттық инженерлер Дейв Хейни және Фрэнк Палайя болды, ал интегралды схемалардың (IC) дизайнын жасаумен Дейв ДиОрио айналысты. Commodore жүйесінің негізгі бағдарламалық қамтамасын Фред Боуэн мен Терри Райан, ал CP/M жүйелік бөлігін фон Эртвин әзірледі.

Дизайн

C128 күрделі архитектурасына RAM-ның төрт түрлі түрі (128 КБ негізгі RAM, 16–64 КБ VDC бейне RAM, 2 кНиббл VIC II түсті RAM, C128D-дегі 2 КБ флоппи-драйв RAM, 0, 128 немесе 512 КБ REU RAM), екі немесе үш CPU (негізгі: 8502, CP/M үшін Z80; 128D сонымен қатар дискілік жетекте 6502 бар) және әртүрлі жұмыс режимдері үшін екі түрлі бейне чипі (VIC IIe және VDC) кіреді. C128 бұрынғы Commodore машиналары сияқты қосылғанда жүйелік RAM-ді сынақтан өткізбейді. C64-тің бір 6510 микропроцессорының орнына C128 екі CPU дизайнын қамтиды. Негізгі процессор 8502 – бұл 6510-ның сәл жақсартылған нұсқасы, оны 2 МГц жиілікте жұмыс істеуге болады. Екінші процессор – Zilog Z80, ол CP/M бағдарламалық жасақтамасын іске қосу үшін, сондай-ақ жүктелу кезінде жұмыс режимін таңдауды бастау үшін қолданылады. Екі процессор бір мезгілде жұмыс істей алмайды, сондықтан C128 көппроцессорлық жүйе емес. C128 пернетақтасында төрт курсор пернесі, , , және пернелер және сандық пернетақта бар. Бұлардың ешқайсысы C64-те болмаған, онда тек екі курсор пернесі болған, курсорды жоғары немесе солға жылжыту үшін пернесін пайдалану қажет болған. Бұл баламалы орналасу C64 режимінде пайдалану үшін 128 модельінде сақталған. C64-тегі сандық пернетақтаның, және пернелерінің болмауы C64-тің Z80 картриджімен қолданғанда кейбір CP/M өнімділік бағдарламалық жасақтамасында мәселе тудырды. Көптеген C64 иелері бағдарламаларға машиналық тіл түрін енгізуге көп уақыт жұмсады. Қосылған пернелердің көпшілігі IBM PC пернетақтасындағы аналогтарымен сәйкес келіп, жаңа компьютерді бизнес бағдарламалық жасақтаманы әзірлеушілер үшін тартымды етті. 128-дің 40 бағандық режимі C64-тің режимін жақсырақ көшіреді, бірақ бағдарламалаушыға қосымша 1К түсті RAM қол жетімді, өйткені ол жад адресі арқылы мультиплекстеледі. C128-дің қуат блогы C64-тің дизайнынан өзгеше. Жаңа қуат блогы әлдеқайда үлкен болса да, салқындату тежегіштерімен және ауыстырылатын сақтандырғышпен жабдықталған. C128-дің алғашқы нұсқалары кейде температураға байланысты сенімділік мәселелерін бастан өткерді, себебі негізгі схемалық тақтада RF экраны қолданылды. Экранның басты чиптердің үстіңгі жағына жанасатын «саусақтары» болды, бұл экранды үлкен жылу өткізгіш ретінде жұмыс істеуге мәжбүр етті. Экран мен чиптер арасындағы нашар байланыс, пластикалық чиптер қаптамаларының жылу өткізгіштігінің шектеулі болуы, сондай-ақ экранның өзінің салыстырмалы түрде нашар жылу өткізгіштігі кейбір жағдайларда қызып кетуге және істен шығуға әкелді. Бұл жағдайда SID дыбыс чипі ерекше осал. Ең көп таралған шешім – экранды алып тастау, оны Commodore FCC радиожиілік ережелеріне сәйкес даму кезінде қосып алған. C128 үш жұмыс режиміне ие. C128 режимінде (туған режим) 8502 CPU-мен 1 немесе 2 МГц жылдамдықта жұмыс істейді және 40 және 80 бағандық мәтін режимдерін ұсынады. CP/M режимі Z80 және 8502 екеуін де пайдаланады және 40 немесе 80 бағандық мәтін режимінде жұмыс істей алады. C64 режимі бұрынғы компьютермен шамамен 100 пайыз үйлесімді. Бұл режимдерді таңдау Z80 чипі арқылы жүзеге асырылады. Z80 бастапқы жүктелу кезінде шинаны басқарады және дискіде CP/M дискісі бар-жоғын, C64/C128 картридждері бар-жоғын немесе Commodore пернесін (C64 режимін таңдаушы ретінде қызмет етеді) жүктелу кезінде басылып жатқанын тексереді. Осы шарттарға байланысты ол тиісті жұмыс режиміне ауысады.

С128

1984 жылы Commodore 128 шығарылғанға дейін бір жыл бұрын Commodore Plus/4 шығарды. IBM PC-ге үйлесімді алғашқы IBM PC-нің салыстырмалы түрде жоғары құны мен оқыту талаптарын қамтамасыз ете алмайтын төменгі бизнес нарығына бағытталған болса да, Commodore баспасөзінде 64-тің жалғасы ретінде танылды және бұл модельдің мүмкіндіктерін жақсартады деп күтілді. C64-тің графикасы мен дыбыс мүмкіндіктері әдетте керемет деп саналса, Plus/4-ке деген жауап көңілі толмады. Plus/4-тің таныстырылуынан кейін Commodore баспасөзінде "C 128" деп аталатын жаңа компьютер туралы бірнеше рет ұсыныстар жасалды. Бұл компьютерде оперативті жадтың көлемі ұлғайтылды, 80 бағандық дисплей бизнес компьютерлерде стандартты болды, бағдарламашыларға PEEK және POKE-ге жүгінбей-ақ компьютердің графикасы мен дыбысын қолдануға мүмкіндік беретін жаңа BASIC бағдарламалау тілі, 1541-дің өте төменгі беру жылдамдығын жақсартқан жаңа дискілік диск, сондай-ақ C64-ке толық үйлесімділік болды. C128 жобалаушылары осы мәселелердің көпшілігін шешуге қол жеткізді. Жаңа чип, VDC, C128-ді 80 бағандық CGA-ға сәйкес келетін түсті дисплеймен қамтамасыз етеді (қызыл, жасыл, көк плюс қарқындылығы үшін RGBI деп те аталады). Жаңа 8502 микропроцессоры C64 6510-мен толықтай кері үйлесімді, бірақ қалаған жағдайда екі есе жылдамдықпен жұмыс істей алады. C64 Commodore BASIC 2.0 машинасының мүмкіндіктерін пайдалану үшін арнайы жасалған кілт сөздерді қоса алғанда, Plus/4 BASIC 3.5 бағдарламалық командаларын қамтитын BASIC 7.0 бағдарламасымен ауыстырылды. Сприт редакторы мен машина тілі мониторы қосылды. Kernal-дың экран редакторы қосымша жетілдірілді, ол ESC пернелер арқылы қол жетімді енгізілген режимді және басқа да мүмкіндіктерді, сондай-ақ бастапқы терезе функциясын қолдайды және жеке ROM-ға көшірілді. 40 бағаналы дисплейді басқаратын VIC II чипі тек 1 МГц-те жұмыс істей алады, сондықтан 40 бағаналы дисплей FAST режимінде шатасқандай көрінеді. 80 бағандық режимде редактор стандартты Commodore кері мәтініне қосымша, құтылу кодтары арқылы іске қосылатын, миырау және сызылған мәтін беру үшін VDC мүмкіндіктерін пайдаланады. C128 80 бағандық режимі PETSCII графикалық таңбаларымен бірге кіші әріптерді көрсете алады; 40 бағандық режимі бұрынғы Commodores сияқты "жоғарғы және кіші әріптер" немесе "жоғарғы әріптер мен графикалық" шектеулерге жатады. 40 және 80 бағандық режимдер тәуелсіз және екеуі де бір уақытта белсенді болуы мүмкін. Композиттік және RGB дисплейі бар бағдарламашы экранның біреуін "скречпад" ретінде немесе бастапқы бірнеше буферді қолдау үшін пайдалана алады. Белсенді дисплейді ESC X арқылы ауыстыруға болады. Жүйеге аппараттық қалпына келтіру батырмасы қосылды. Алайда, пернетақта стандартқа айналған Selectric макетке ауыстырылмаған, оның орнына Commodore-дің бұрынғы модельдеріндегідей ADM 3A туынды дизайны сақталған. VDC чипі ойын ойнау үшін өте пайдалы емес, өйткені онда сприт немесе растрлық үзілістер жоқ. NTSC C128s кез келген CGA типті монитормен жұмыс істейді (TTL RGB @ 15 кГц / 60 Гц), мысалы IBM 5153. Алайда, C128 PAL модельдері 50 Гц жылдамдықпен жұмыс істейді және 60 Гц жаңарту жылдамдығын күтетін көптеген CGA мониторлармен үйлесімсіз. VDC шығысының 7-ші тірегі (әдетте CGA мониторларында пайдаланылмайды) монохромды NTSC/PAL сигналын шығарады, бірақ оған арналған кабель ұсынылмаған және мүдделі пайдаланушылар өздерінше немесе қосымша нарықтан сатып алулары керек болды. C128-мен бірге екі жаңа дискілік дисктер енгізілді: қысқа өмір сүрген бір жақты 1570 және екі жақты 1571. Екі дискілі 1572 модель жарияланды, бірақ ешқашан шығарылмаған. Кейіннен 3,5 дюймдік 1581 шығарылды. Бұл дисктердің барлығы 1541 құрылғысына қарағанда сенімді және жаңа "жартылай режим" арқылы әлдеқайда жақсы өнімділікті уәде етеді. 1581 дискісінде RAM-і бұрынғыларына қарағанда көп, бұл бір уақытта көптеген файлдарды ашуға мүмкіндік береді. BASIC 7.0 бағдарламасына DLOAD және DSAVE командалары кіреді, олар ,8 немесе басқа құрылғы нөмірін пайдаланбай-ақ дискіге жүктеу мен сақтауды қолдайды, сондай-ақ DIRECTORY командасы дискі каталогындағы ақпаратты BASIC 2.0 бағдарламасындағыдай BASIC жадының үстінен жазбастан тікелей экран жадына оқиды. Сонымен қатар, C128 дискі бағдарламалық жасақтамасының автоматты жүктелуін енгізеді, бұл көптеген дербес компьютерлерде стандартты функция, бірақ Commodore машиналарында болмаған. Пайдаланушылар енді LOAD"*",8,1 деп жазудың қажеті жоқ. BASIC сонымен қатар "splat" файлдарын (тиісті түрде жабылмаған және нөлдік ұзындыққа қысқартылған файлдарды) жою үшін COLLECT командасын қосты. Барлық 1571 дискілері C128-де әдеттегідей бастапқы режимде іске қосылады. Егер пайдаланушы GO 64 деп теріп C64 режиміне ауысса, дискі бастапқы режимде қалады. Бірақ егер C64 режимі Commodore пернесін ұстап тұрып қосу арқылы іске қосылса, 1571 1541 режиміне өтеді. Бұл тәртіп төменгі деңгейдегі дискіге кіруді орындайтын бағдарламалық жасақтама үшін қажет. C128 C64-тен екі есе көп RAM-ге ие, оның үлкен бөлігі BASIC бағдарламалау үшін қол жетімді, жаңа MMU банк ауыстыру чипінің арқасында. Бұл BASIC бағдарламалық кодын айнымалылардан бөлек сақтауға мүмкіндік береді, бұл машинаның күрделі бағдарламаларды өңдеу қабілетін ұлғайтады, қоқысты жинауды жылдамдатады және бағдарламашы үшін түзетуді жеңілдетеді. Іске қосылып жатқан бағдарламаны STOP-тап, оның кодын өңдеуге болады, айнымалы шамаларын тікелей режимде қарап немесе өзгертуге болады, содан кейін BASIC-тің GOTO командасын пайдаланып айнымалы кестесін сақтап, бағдарламаны қайта іске қосуға болады. Басқа BASIC-тер CONT командасын қолдайды, ол айнымалыларды тазаламай, орындауды қайта бастауға мүмкіндік береді, бірақ кез келген кодты өңдеу оларды тазалайды. BASIC-тің BANK командасын пайдаланып әртүрлі жад конфигурацияларын жүктеуге болады. BASIC 7.0 графикалық және дыбыстық басқару командаларының толық жиынтығына ие, сондай-ақ BASIC 4.0-тың дискілік командаларына және жақсартылған қоқысты тазалауға, сонымен қатар IF THEN ELSE, DO WHILE және WHILE WEND циклдары арқылы құрылымдық бағдарламалауды қолдайды. Бағдарламаланатын таңбалар әлі де қолдау көрсетілмейді, сондықтан бағдарламашы оларды VIC 20 және C64 сияқты PEEK және POKE арқылы басқаруға мәжбүр. Кері жағынан, BASIC 7.0 2 МГц режимі қолданылмаса, BASIC 2.0-дан әлдеқайда баяу жұмыс істейді, өйткені оның көлемі 28 КБ (BASIC 2.0-дан 250% үлкен) және бағдарлама айнымалыларына және BASIC бағдарламалық мәтініне қол жеткізу үшін банк ауыстыру қажет болса. 128-дің ROM-ында құпия жасырылған: SYS 32800,123,45,6 командасын енгізу, бастапқы режимде, машинаның негізгі әзірлеушілерінің тізімін және "Link arms, don't make them" деген хабарламаны көрсететін экранды ашады. Сондай-ақ, QUIT немесе OFF кілт сөздерін енгізу ?UNIMPLEMENTED COMMAND ERROR хабарын шығарады. Бұл командалар жоспарланған, бірақ ешқашан шығарылмаған LCD портативті компьютері үшін арналған BASIC интерпретаторынан қалған мұра. Олар BASIC интерпретаторынан шығу және сезімтал бағдарламаны орындау кезінде пернетақтадан кіріс игермеу үшін арналған. C128-дің үлкен аппараттық мүмкіндіктері, әсіресе ұлғайтылған RAM, экран дисплейінің ажыратымдылығы және тізбектік шина жылдамдығы, оны GEOS графикалық операциялық жүйесін іске қосу үшін C64-тен гөрі қабілетті платформаға айналдырды.

CP/M

C128 екі процессордың екіншісі Zilog Z80 болып табылады, бұл C128-ге CP/M жүргізуге мүмкіндік береді. C128 CP/M 3.0 (CP/M Plus деп аталды, ол CP/M 2.2-мен кері үйлесімді) және ADM31/3A терминал эмуляциясымен бірге келді. C64 үшін CP/M картриджі де қол жетімді болған, бірақ ол қымбатқа соқты және пайдасы шектеулі болды, себебі 1541 дискісі CP/M бағдарламалық жасақтамасы таратылған MFM форматталған дискілерді оқи алмайды. Бағдарламалық қамтамасыз ету GCR кодтау схемасын қолдана отырып форматталған Commodore дискілерінде қол жетімді болуы керек еді. Commodore PerfectCalc және EMACS-тан туындаған PerfectWriter нұсқаларын жасады, ал Commodore пайдаланушылар тобы кейде CP/M дискеттерінің таңдауын ұсынды, бірақ бағдарламалық қамтамасыз етудің шектеулі болуы CP/M-нің басты артықшылығының бірі – оның үлкен бағдарламалық кітапханасын жоққа шығарды. Сонымен қатар, картридждер тек 1982 жылғы C64-тің алғашқы үлгілерінде жұмыс істейді және кейінгі құрылғылармен үйлесімсіз. Олар C128-мен де үйлесімсіз болғандықтан, жобалау тобы Z80-ді негізгі жүйелік тақтаға орналастыру арқылы CP/M-ді қолдауға шешім қабылдады. C128 CP/M-ді көптеген арнайы CP/M жүйелеріне қарағанда байқаулы түрде баяу орындайды, себебі Z80 процессоры тек 2 жылдамдықпен жұмыс істейді. Бұл C128 жүйелік шинасы 65xx процессорларына сүйенгендіктен болды. Бұл процессорлар деректерді және жад адрестеуді Z80-нен мүлдем басқаша өңдейді. CP/M сондай-ақ бірнеше себептерге байланысты баяу жұмыс істейді, мысалы, кез келген кіріс/шығыс немесе үзіліс процесін басқаруды 8502-ге беру қажеттілігі. Осы себептерге байланысты, C128-де CP/M бағдарламалық жасақтамасын іске қосатын пайдаланушылар азаз болды. C128 қосылғанда, Z80 бірінші болып белсенді болады және CP/M дискісінің бар-жоғын тексеру үшін $0-$FFF мекенжайында кішкентай жүктеуші ROM-ды орындайды. Егер ол табылмайтын болса, басқару 8502-ге беріледі және C128 бастапқы режимі іске қосылады. CP/M режимінде практикалық тұрғыдан 1571 немесе 1581 дискінің пайдалы болуы қажет, себебі 1541 MFM дискілерін оқи алмайды және C128 жарылу режимін қолдамауынан әлдеқайда баяу жұмыс істейді. CP/M жүктеу дискілері, алайда, дискінің GCR форматында болуы керек; MFM дискілерін жүктеуге болмайды, тек пайдаланушы CP/M режимінде болған кезде ғана оқуға болады. Себебі, дискіні MFM режимінде басқару үшін қажетті код жүктеу процесінің бір бөлігі ретінде жүктеледі. Сонымен қатар, 80 бағандық режим көбінесе қажет, себебі көптеген CP/M бағдарламалық жасақтамалары 80 бағандық экранды күтеді. C128 CP/M режимінде ADM 3A терминалын эмуляциялайды, сондықтан бағдарламалық жасақтама осыған сәйкес орнатылуы керек. Стандартты ADM 3A терминалынан басқа, VIC II және VDC мүмкіндіктерін пайдалану үшін, соның ішінде мәтін мен фон түсін орнату үшін бірқатар қосымша командалар бар. CP/M команда интерпретаторы (қолданбалық бағдарламалық жасақтама болмаса да) пайдаланушының мәтін мен фонды бірдей түске бояу үшін басқару кодын шығаруына кедергі келтіретін қорғауды қамтиды, бұл мәтінді көрінбейтін етеді және пайдаланушыны компьютерді қайта іске қосуға мәжбүрлейді. Егер мұндай жағдай туындаса, ол әдеттегідей сұр фонда қоңыр мәтінмен көрсетіледі. CP/M режимінде MBASIC, CP/M үшін Microsoft-тың BASIC 80 нұсқасын іске қосуға болады. Бастапқы BASIC 7.0 режимімен салыстырғанда, MBASIC қысқа және мүмкіндіктері шектеулі, бағдарлама жолдарын өңдеу немесе мәтін курсорын жылжыту үшін терминал стиліндегі пернелердің комбинациясын пайдалануды қажет етеді және дыбыс немесе графикалық мүмкіндіктері жоқ. MBASIC математикалық және есептеу мүмкіндіктерін ұсынады, бірақ BASIC 7.0-де бүтін сандар мен екі рет дәлдікті айнымалыларды қолдау сияқты мүмкіндіктер жоқ, бүтін санды айнымалыларды пайдалану арқылы алынған кез келген жылдамдық артықшылығы CP/M режимінде компьютердің өте баяу жұмыс істеуімен ескерілмейді. Сонымен қатар, Commodore BASIC 40 биттік қалқыма нүктелік санды ұсынады, ол MBASIC-тің 32 биттік қалқыма нүктелік саны мен 64 биттік екі рет дәлдікті айнымалылар арасындағы орташа нүкте ретінде қызмет етеді. MBASIC сондай-ақ BASIC 7.0-дің шамамен 90 мыңға қарсы 34 мың ғана тегін бағдарламалық кеңістік ұсынады. Wordstar және Supercalc сияқты басқа CP/M бағдарламалық жасақтамалары да PaperClip сияқты C128 эквиваленттерімен айтарлықтай жақсы жұмыс істейді, олар да пайдалануға оңай интерфейске ие. CP/M CBIOS (CP/M-нің аппараттық құрылғымен байланыс жасайтын бөлігі) көптеген CP/M жүйелеріндегідей аппараттық құрылғымен тікелей байланыс жасамайды; керісінше, ол үзіліс пен кіріс/шығыс үшін өзектік ретті шақырады. Өзектік ретті орындалғаннан кейін басқару Z80-ге қайта беріледі. CP/M-ді C128-ге көшіруге жауапты бағдарламашы CBIOS интерфейсін тікелей Z80 машина тілінде жасауды жоспарлаған, бірақ VDU чиптерімен үлкен қиындықтарға тап болды, себебі олар қызып кетуге және өзін-өзі жоюға бейім. VDU C128 әзірленген кезде көптеген аппараттық өзгерістерге ұшырады және CP/M бағдарламашысы өзінің кодын дұрыс жұмыс істеуге жеткізе алмады, сондықтан C128 инженерлік тобы одан кернелге шақыруларды жіберу үшін CBIOS-ты жаза беруін сұрады. CP/M режимі Commodore пайдаланушыларына таныс операциялық ортадан өте өзгеше. Commodore DOS Commodore дискілерінің ROM-ына орнатылған және әдетте BASIC арқылы қол жеткізіледі, ал CP/M жүктеу дискетін қажет етеді және миникомпьютер платформаларынан мұраға алған қысқа командаларды енгізуді қажет етеді. CP/M бағдарламалары көбінесе Commodore қолданбаларының пайдаланушыға ыңғайлылығынан айырылған. Commodore-да болмаған кәсіби деңгейдегі бағдарламалық қамтамасыз етудің үлкен кітапханасын беруге арналған CP/M 1980-жылдардың ортасында өзінің гүлдену кезеңінен өтті, сондықтан ол C128-де сирек қолданылды.

С64

C64 BASIC және Kernal ROM-ын толықтай (16 КБ) енгізу арқылы C128 Commodore 64-пен шамамен 100 пайызға жуық үйлесімділікке қол жеткізеді. C64 режиміне үш жолмен кіруге болады: жүктеу кезінде Commodore логотипі пернесін басып тұру; GO 64 командасын енгізіп, BASIC 7.0-де "ӘРІМДЕЙСІЗ БЕ?" деген сұраққа Y деп жауап беру; C64 картриджін қосып жүктеу. Картридж портының /EXROM және /GAME желілерін жерге қосу компьютерді автоматты түрде C64 режимінде іске қосады. Бұл мүмкіндік C64-тің мінез-құлқын (мысалы, Simons' BASIC картриджін портқа қосып, осы желілердің бірін қосу) дәлме-дәл қайталайды. Бірақ, нақты C64-те жад картасын өзгерту әрекеті тікелей аппараттық құралда жүзеге асырылса, C128 Z80 микропроцессорының бастапқы коды қуаттандыру кезінде осы желілерді тексеріп, қажет болған жағдайда режимді ауыстырады. C128-дің түпкілікті режиміндегі картридждер жад картасындағы белгілі бір орындардағы ядролық сұрау арқылы танылады және іске қосылады. C64 режимі C64 аппараттық мүмкіндіктерін дерлік толықтай қайталайды. MMU, Z80 және IEC жылдам режимдері C64 режимінде өшіріледі, бірақ C128-дің барлық аппараттық мүмкіндіктері, соның ішінде VDU және 2 МГц режимі қолжетімді болып қалады. C128 пернетақтасының қосымша пернелерін машина тілінен оқуға болады, бірақ ядролық процедуралар C64-те бар пернелерді ғана таниды. Кейбір ойындар C128 жұмыс істеп тұрғанда оны анықтап, жылдамдықты арттыру үшін тік сызылым кезінде 2 МГц режиміне ауыса алады. Солтүстік Америкадағы C128 модельдерінде C64 режимінде тіпті таңбалар (шрифт) ROM-ы да C128 режимінен өзгереді. C128 прототиптерінің алғашқы нұсқаларында C64-ке қарағанда жақсартылған таңбалар жинағы бар бір ғана ROM болды. Бірақ кейбір C64 бағдарламалары таңбалар ROM-ын дерек ретінде оқиды және C128-де әртүрлі қателерге тап болады. Сондықтан C128 екі есе үлкен таңбалар ROM-ымен жабдықталды, ол C128 режимінде C128 шрифтін, ал C64 режимінде C64 шрифтін ұсынады. C128-дің халықаралық модельдері екі режимде де өзгертілмеген C64 шрифтін пайдаланады, себебі таңбалар ROM-ының екінші жартысы халықаралық шрифттерге (мысалы, үндемелі әріптер немесе неміс әріптері) арналған. C128-де қателік тудыратын кейбір C64 бағдарламалары белгілі бір пернені басып тұрғанда (немесе халықаралық C128 модельдеріндегі ASCII/National пернесін) дұрыс жұмыс істейді. Бұл C128 процессордың үлкен кіріс/шығыс портымен байланысты. C64 және C128 құрылғыларындағы сол перне сол перне үшін механикалық құлып болса, C128 құрылғысындағы перне 8502 микропроцессорының кіріс/шығыс порты арқылы оқылады. Кейбір C64 бағдарламалары бұл қосымша кіріс/шығыс битінен шатасады; пернені төменгі күйде ұстау кіріс/шығыс желісін төмендетіп, C64 конфигурациясына сәйкес келіп, мәселені шешеді. Кейбір C64 бағдарламалары $D030 (53296) мекенжайына жазады, көбінесе VIC II чипінің регистрлерін бастаушы циклдың бөлігі ретінде. Бұл жад мекенжайы C64-те пайдаланылмайды және жүйелік сағаттың жылдамдығын анықтайды. Бұл регистр C64 режимінде толыққанды жұмыс істейтіндіктен, кездейсоқ жазу CPU-ны 2 МГц-ке ауыстырып, 40 бағандық дисплейді бұзуы мүмкін, себебі VIC II бейне процессоры бұл жылдамдықпен дұрыс дисплейді шығара алмайды. Бақытымызға орай, бұл кемшілікке тап болатын бағдарламалар аз. 1986 жылдың шілдесінде COMPUTE! журналы экранның төменгі жағына жеткенде жылдам режимді қосып, экранның жоғарғы жағында қайтадан басталғанда оны өшіруге мүмкіндік беретін растрлық үзілісті пайдаланатын бағдарламаны жариялады. Вертикальды бос кезеңде жоғары сағаттық жылдамдықты пайдалану арқылы стандартты бейне көрсетілімді сақтап, жалпы орындау жылдамдығын шамамен 20 пайызға арттыруға болады. Кейбір C64 бағдарламаларында дыбыс эффекттері мен музыка болмайды, себебі C64-те SID чипінің $D4xx жад беті $D5xx, $D6xx және $D7xx беттерінде де көшірілген, ал C128-де ол тек $D4xx беті арқылы қолжетімді. Бұл жиі кездеспейтін мәселе, себебі C64 анықтамалық нұсқаулығы $D4xx-тегі регистрлерді толық сипаттайды, ал $D5xx $D8xx регистрлерін тек "SID БЕЙНЕЛЕРІ" деп атайды, сондықтан көптеген бағдарламалар оларға $D4xx беті арқылы қол жеткізеді және C128-де дыбыс қалыпты ойнатылады. Аппараттық C64 пен C128-ді C64 режимінде ажыратудың оңай жолы, әдетте, жұмыс істеп тұрған бағдарламадан $D02F (53295) жад мекенжайына $FF (255) емес, басқа мән жазу, бұл мекенжай C128-дің қосымша пернелерін (сандық перне және басқа пернелерді) кодтау үшін қолданылады. C64-те бұл жад орнында жазылған мәнге қарамастан, әрқашан $FF мәні болады, бірақ C128-де C64 режимінде орынның мәні – жад мекенжайы – өзгертілуі мүмкін. Сондықтан, оған жазып, мәнін тексеру арқылы нақты аппараттық платформаны анықтауға болады.

RAM-ді орнату

C128, 8502 процесінің 64 адрес кеңістігінен он есе үлкен мөлшердегі ROM және RAM-ды басқару үшін, әртүрлі жад карталарын жасауға арналған 8722 MMU чипін пайдаланады. Бұл жад карталарында RAM және ROM-ның әртүрлі комбинациялары MMU конфигурациялық тіркелгішіне, жад адресі бойынша жазылған бит үлгілеріне сәйкес пайда болады. Жад басқару блогының тағы бір мүмкіндігі – нөлдік беттің және стек аймағының орнын өзгертуге рұқсат ету. C128 теориялық тұрғыдан төрт блокқа бөлінген 256к RAM-ды қолдай алады, бірақ аналық платада (PCB) қосымша RAM-ды қосуға ешқандай мүмкіндік қарастырылмаған, ал MMU 128к-тан артық жадты қол жеткізе алмайды. Сондықтан, егер MMU 2 немесе 3 блоктарға қол жеткізуге бағдарламаланған болса, 0 және 1 блоктардағы RAM-ның көшірмесі ғана пайда болады. I/O тіркелгілері мен жүйелік ROM-дарды еркін қосуға немесе өшіруге болады, сонымен қатар оларды RAM блогында орналастыруға және VIC II-ді жады үшін екі блоктің бірін пайдалануға орнатуға болады. Бұл ретте 256 жад конфигурациясы мүмкін, бірақ олардың көп бөлігі пайдасыз (мысалы, 0 блоктағы ядролық ROM және 1 блоктағы I/O тіркелгілері сияқты жұмыс істемейтін комбинациялар мүмкін). Осы себепті BASIC-тің BANK командасы пайдаланушыға ең пайдалы 15 конфигурацияны таңдауға мүмкіндік береді, ал қосылған кездегі әдепкі параметр 15-ші банк болып табылады. Бұл параметр жүйелік ROM-дарды, I/O тіркелгілерін және BASIC бағдарлама мәтінін 0 блокқа орналастырады, ал BASIC бағдарлама айнымалылары 1 блокты пайдаланады. BASIC бағдарлама мәтіні мен айнымалылары кеңейе алады, бірақ 0 блогында ROM-дар мен I/O тіркелгілері орналасқандықтан, BASIC бағдарлама мәтінін оқу үшін ішкі ауыстыру механизмін қолданады. MMU 16к-қа дейін кеңейтуге мүмкіндік береді. Нөлдік бет және стек 0-ден басталады, ал MMU тіркелгілері мен қайта орналастыру векторлары басқа аймақта орналасқан. Бұл аймақтар әрқашан ортақ болады және ортақ емес RAM-ға ауыстырылмайды. Ортақ RAM әрқашан CPU қолданып жүрген банкке қарама-қарсы банк болып табылады, сондықтан 0 банк таңдалған жағдайда, ортақ RAM-қа кез келген оқу немесе жазу операциясы 1 банктегі сәйкес орналасқан жерге сілтеме жасайды және керісінше. VIC II-ді RAM блогының бірін пайдалануға және одан бастап оның әдеттегі 16к терезесін пайдалануға орнатуға болады. C64-те VIC II тек жад кеңістігінің 2 және 4 блоктарындағы таңбалық ROM-ды көре алатын болса, C128, керісінше, кез келген VIC II блогы үшін таңбалық ROM-ды қосуға немесе өшіруге мүмкіндік береді, бұл тіркелгі арқылы жүзеге асырылады. Сонымен қатар, екі түрлі түсті RAM жиынтығы бар – біреуі CPU-ға, екіншісі VIC II-ге көрінеді, ал пайдаланушы қай чип нені көретінін таңдай алады. CP/M режимінде бағдарлама сегментінің префиксі және уақытша бағдарлама аймағы 1 блокқа, ал I/O тіркелгілері мен CP/M жүйелік коды 0 блокқа орналасады. C128 RAM-ын стандартты 128 КБ-тан 256, 512 немесе тіпті 1,024 КБ-қа дейін кеңейтуге болады, бұл коммерциялық жад кеңейту модульдерін пайдалану арқылы немесе интернетте қол жетімді схемаларға негізделген модульдерді жасау арқылы жүзеге асырылады. Commodore-дың RAM кеңейту модульдері C128 RAM және кеңейту модульдері арасындағы деректерді беру үшін сыртқы 8726 DMA контроллерін пайдаланады.

C128D

1985 жылдың соңында Commodore компаниясы Amiga 1000-ға ұқсайтын жаңаша дизайндалған корпусы бар C128 үлгісін шығарды. Commodore 128D деп аталған бұл жаңа еуропалық модельде пластик корпус және жағында тасымалдауға арналған тұтқасы болды, сондай-ақ негізгі корпусқа 1571 дискілік жетек енгізілді, кілтбет орнына ажыратылатын пернетақта қойылды және салқындату желдеткіші орнатылды. Пернетақтада тебу бұрышын өзгертуге арналған екі бүгілетін тіреуіш те болды. C128 1985 жылдың 25 шілдесінде Ұлыбританияда, ал 1985 жылдың қарашасында Солтүстік Америкада сатылымға шықты. Аппараттық құралдар тобының басшысы Бил Хердтің (әрі "C128 Animals" деп аталған) айтуынша, C128D өндіріске дайын болған кезде стандартты үлгі де дайын болған. Екі модельді бірдей шығару жұмысы уақытында жеткізілім тәуекелін арттырды, және осының салдарынан негізгі басылған платада C128D және стандартты корпус екеуін де қолдау үшін маңызды бөлімдерде үлкен тесіктер жасалды. 1986 жылдың соңында Commodore Солтүстік Америкада және Еуропаның бір бөлігінде C128DCR үлгісін шығарды, мұндағы CR аббревиатурасы "құны төмендетілген" дегенді білдіреді. DCR моделінде C128D үлгісінің пластик корпусының орнына (тасымалдау тұтқасы жоқ) штамталған болаттан жасалған корпус, C128D-ге ұқсас модульдік қуат блогы, сондай-ақ ажыратылатын пернетақта және ішкі 1571 дискілік жетегі сақталған. Өндіріс шығындарын азайту мақсатында негізгі платадағы бірқатар компоненттер біріктірілді, ал қосымша шығынды азайту үшін D үлгісінің қуат блогына орнатылған салқындату желдеткіші алынып тасталды. Дегенмен, қуат блогына орнатуға арналған бөлшектер сақталды, сондай-ақ желдеткішті қуаттандыру үшін қуат блогының басылған схемалық тақтасындағы екі 12 вольтты тұрақты ток қосылыс нүктесі де сақталды. C128DCR корпусына 60 мм желдеткіш орнатуға болады. DCR моделіндегі маңызды жақсарту – 8563 бейне дисплей контроллерін (VDC) техникалық жағынан жетілдірілген 8568 VDC-мен алмастыру және оны құрылғымен адрестелетін ең жоғары көлем – 64 КБ бейне жадымен жабдықтау болды. "Жай" C128-ге орнатылған бейне жадының төрт есе өсуі, басқа нәрселермен қатар, нағыз терезелік жүйені қолдау үшін бірнеше мәтіндік экранды сақтауға немесе кеңірек түстік палитрамен жоғары ажыратымдылықтағы графикалық бейнелерді жасауға мүмкіндік берді. Бұл мүмкіндіктерді коммерциялық бағдарламалық қамтамасыз етудің көп бөлігі пайдаланбады. C128DCR "1986 ROM-дары" деп аталатын жаңа ROM-дармен жабдықталған, олардың атауы қосылған қуат экранында көрсетілген авторлық құқық күніне байланысты берілген. Жаңа ROM-дар бастапқы ROM-дарда кездесетін бірқатар қателерді жойды, соның ішінде пернетақтаның кодтау кестесіндегі қатеге байланысты, белгі белсенді болғанда әріп кішкентай болып қалатын мәселе де шешілді. Кейбір бағдарламалық қамтамасыз ету компьютердің жақсартылған аппараттық мүмкіндіктеріне және жаңартылған ROM-дарға тәуелді болғандықтан тек DCR-де ғана жұмыс істейді. DCR-дің жақсартылған RGB бейне мүмкіндіктеріне қарамастан, Commodore BASIC 7.0-ті RGB графикасын өңдеу мүмкіндігімен жаңарта алмады. VDC-ні графикалық режимде басқару үшін экран редакторының ROM примитивтерін немесе олардың ассемблер тіліндегі баламаларын шақыру қажет, немесе BASIC 7.0-ке жоғары ажыратымдылықтағы VDC графикалық командаларын қосатын Free Spirit Software-дің "BASIC 8" сияқты үшінші тараптың BASIC тілінің кеңейтімдерін пайдалану қажет.

Нарықтың жұмыс істеуі

1987 жылдың қаңтарында Info басылымы «C128-дің жақын арада жойылуы туралы барлық қауесеттердің негіздемесі болуы мүмкін» деп хабарлады. Commodore ресурстарды 64C және оның PC клондарының өндірісін арттыруға бағыттағысы келетінін мәлімдеген журнал, «Интернеттегі соңғы ақпарат бойынша, 1987 жылдың желтоқсан айында соңғы C128 конвейерден түседі» деді. Compute! журналы 1989 жылы былай деп жазды: «Егер сіз 128 моделіне арналған бағдарламалық жасақтаманың көп және жылдам қолжетімді болатынына сеніп сатып алған болсаңыз, сіз, әдетте, көңіліңізді қалдырған боларсыз. 128-дің маңызды сату артықшылықтарының бірі – 64-ке толық үйлесімділік, бірақ бұл 128-ге көбірек зиян келтірді, пайдасынан гөрі». 128 модельдегі барлық 64 бағдарламалық жасақтаманы іске қоса алатындықтан және келесі буын 32/16 биттік үй компьютерлері – негізінен Commodore Amiga және Atari ST – ең соңғы технологияны ұсынғандықтан, C128 үшін арнайы режимде аз бағдарламалық жасақтама пайда болды (шамамен 100–200 коммерциялық атау, сондай-ақ қоғамдық домендегі және журналдардағы бағдарламалардың әдеттегі үлесі), бұл кейбір пайдаланушыларды сатып алуларына өкіндірді. C128 1985–1989 жылдар аралығында 4 миллион дана сатылса да, оның танымалдылығы бұрынғы үлгісімен салыстырғанда төмен болды. Бұл төмен сатылымдардың себебі C64 негізінен бейне ойындарына қызығушылық танытқан адамдарға сатылуы болуы мүмкін, ал қымбат C128 бұл салаға көп үлес қоспады. Bard's Tale III және Kid Niki сияқты кейбір C64 бағдарламалық жасақтамалары құжаттамада көрсетілмеген 128 режимінде жұмыс істеді, автожүктеу және 1571 дискісіне жылдам қол жеткізуді пайдаланды. Кейбір Infocom мәтіндік ойындары 80 бағандық экранның және жадтың ұлғайтылған сыйымдылығының артықшылықтарын пайдаланды. Kikstart 2 және Mastertronic-тің The Last V8 сияқты кейбір C64 ойындары C128 нұсқаларымен шығарылды, ал Origin Systems-тің Ultima V: Warriors of Destiny C128-де музыка үшін қосымша жадты пайдаланды. Interstel-дің Star Fleet I: The War Begins ойынының да жеке нұсқалары болды және C128-де 80 бағандық дисплейді пайдаланды. Дегенмен, ойынның басым көпшілігі C64 режимінде іске қосылды, өйткені аз ғана әзірлеушілер C128 мүмкіндіктерін пайдаланды. Бұл бағдарламалық жасақтама қосымша жадты, 80 бағандық экранды, жетілдірілген пернетақтаны және үлкен сыйымдылықтағы дискілерді бизнеске қажетті мүмкіндіктерді ұсыну үшін пайдаланды. Commodore, өзінің BASIC бағдарламалау тілімен, CP/M үйлесімділігімен және Jane сияқты «пайдаланушыға ыңғайлы» бағдарламалық пакеттерімен C128 үшін Plus/4 стратегиясына ұқсас төменгі бизнес нарығын құруға тырысты, тіпті C128-ді «Жеке компьютер» деп атап, үй компьютері аталымынан алыстады. Маңыздысы, C128 Microsoft BASIC қолданысын жарнамалаған алғашқы Commodore компьютері болды, бұл Microsoft аталымы бәсекелестік артықшылық болып табылды. C128 әрине C64-тен жақсы бизнес машинасы болды, бірақ ойын машинасы емес. Бизнес машиналарын қалаған адамдар C128 шығарылған кезде тек IBM PC клондарын сатып алды. Leading Edge Model D және Tandy 1000 сияқты арзан IBM үйлесімді компьютерлердің болуы, кейбір жағдайларда толық C128 жүйесінен де арзан сатылды, бұл Commodore-дің шағын бизнес компьютерлер стратегиясын қиындатты. BRiWALL компаниясының Home Designer деген кәсіби деңгейдегі CAD бағдарламасы болды, бірақ бұл жұмыстың көпшілігі C128 дәуірінде компьютерлерде жасалды. C128 әлі де жақсы сатылатын басты себеп, C64-ке қарағанда хоббист бағдарламалау үшін әлдеқайда жақсы машина болған, сонымен қатар C64 перифериялық құрылғылары мен бағдарламалық жасақтамаларына елеулі инвестиция жасаған иелеріне табиғи жаңа модель болды. Бірақ C128 жаңа 16/32 биттік жүйелермен бәсекелесе алмады, олар оны және оның қалған 8 биттік ұрпағын барлық жағынан басып өтті. C128 (D/DCR) 1989 жылы тоқтатылған кезде, оның Amiga 500-ге шамамен тең құнмен өндірілгені хабарланды, бірақ Amiga-ның жоғары сатылы маркетингтік имиджін сақтап қалу үшін C128D бірнеше жүз долларға арзан сатылуы керек еді. Бил Херд C128 жобалау мақсаттары бастапқыда C64-пен 100% үйлесімділікті қамтымағанын мәлімдеді. Plus/4-ті таныстыру кезінде Herd-ке C64-ке жазған білім беру бағдарламалық жасақтамасы Commodore-дің жаңа компьютерінде жұмыс істемейтіндігіне көңілі қалған әйел жүгінгеннен кейін, үйлесімділіктің қандай да бір түрі әрқашан көзделетін, бірақ Commodore-дің маркетинг бөлімі мұны білгенде, олар өз бетінше толық үйлесімділікті жариялады. Херд 128-дің Z80 процессорын қосу себебін осы «100% үйлесімділік» туралы мәлімдемені қамтамасыз ету деп түсіндірді, өйткені C64-тің Z80 картриджін қолдау C128-дің картридж портына қосымша қуат беруді білдірмек. Ол сондай-ақ VDC бейне чипі мен Z80 машинаның дизайнында қиындықтар тудырғанын айтты. Херд былай деді: «Мен C128-дің шамамен бір жыл бойы сатылатынын күткенмін, екі миллион дана сату жеткілікті болар еді және әрине ол Amiga немесе тіпті C64-ке зиян келтірмес еді». Commodore 64-тің бағасын 1986 жылы жаңартылған 64C үлгісін шығару арқылы алғаш рет көтергеннен кейін, әрбір сатылған 64C-ден түскен пайда C128-ден түскен пайдадан әлдеқайда жоғары болды.