MOS технологиясы VIC-II - MOS Technology VIC-II

C64 негізгі тақтасындағы MOS 6569R3 (PAL нұсқасы)

The VIC-II (Бейне интерфейс Chip II) деп аталады MOS технологиясы 6567/8562/8564 (NTSC нұсқалары), 6569/8565/8566 (PAL ), болып табылады микрочип генерациялау міндеті Y / C бейне сигналдары (біріктірілген композициялық бейне ішінде RF модуляторы ) және DRAM жаңарту ішіндегі сигналдар Commodore 64 және C128 үйдегі компьютерлер.

MOS түпнұсқасынан сәтті шығу VIC (қолданылған VIC-20 ), VIC-II негізінен C64-тің жетістігі үшін жауап беретін екі чиптің бірі болды (басқа чип 6581 болды) SID ).

Даму тарихы

VIC-II микросхемасын негізінен Al Charpentier және Charles Winterble at құрастырған MOS Technology, Inc. мұрагері ретінде MOS Technology 6560 «VIC». MOS Technology компаниясының командасы бұрын аталған екі графикалық чипті шығара алмады 6562. Күнделікті өмір Commodore TOI компьютеріне және MOS технологиясы 6564 Түсті PET үшін, жадтың шектеулілігіне байланысты.[1]

VIC-II-ді құру үшін Чарпентье мен Уинтербл ағымдық нарыққа шолу жасады үйдегі компьютерлер және Видео Ойындары, VIC-II қолданыстағы мүмкіндіктерін және қандай ерекшеліктерге ие болғысы келетіндерін тізімге келтіріңіз. Спрайттарды қосу идеясы Texas Instruments TI-99 / 4A компьютер және оның TMS9918 графикалық сопроцессор. Соқтығысуды анықтауды қолдау идеясы келді Mattel Intellivision. The Атари 800 сонымен қатар қажетті мүмкіндіктер үшін өндірілген.[2][3] Спрайттың функционалдығы үшін чиптің шамамен 3/4 бөлігі қолданылады.[4]

Чип ішінара орналастырылған электронды жобалауды автоматтандыру бастап құралдар Өтініш (қазір бөлігі UGS Corp. ), және ішінара қолмен салынған велин қағаз. Конструкция ішінара дизайнның кіші жиынтықтары бар чиптерді жасау арқылы жойылды, содан кейін оларды бөлек тексеруге болады. Бұл оңай болды, өйткені MOS технологиясында екеуі де болды ғылыми-зерттеу және тәжірибелік-конструкторлық жұмыстар сол жерде орналасқан зертханалық және жартылай өткізгіш зауыты.[5] Чип 5 микрометрлік технология бойынша жасалған.[2]

VIC-II бойынша жұмыс 1981 жылдың қараша айында аяқталды Роберт Яннес бір уақытта жұмыс істеді SID чип. Екі чип, сияқты Commodore 64, уақытында аяқталды Тұтынушылардың электроника көрмесі 1982 жылдың қаңтар айының бірінші демалысында.[6]

VIC-II ерекшеліктері

64-тегі кейбір графикалық режимдер өте таңқаларлық және олардың Atari немесе Apple-ге ұқсастығы жоқ, мысалы, экранда кейіпкерлер негізінің түсін өзгерту мүмкіндігі сияқты. Бұл бізге пайдаланылмаған көптеген түс мүмкіндіктерін берді.

— Эпикстегі Крейг Нельсон, 1986 ж[7]

Техникалық мәліметтер

MOS 6567 VIC-II бекіту.

Төменде регистрлердің мекен-жайлары CPU-да C64-те көрсетілгендей көрсетілгенін ескеріңіз. Әдетте мәліметтер парағында берілген регистр нөмірлерін беру үшін (мысалы, 0-ден басталады), алдыңғы «D0» алынып тасталуы керек.

Бағдарламалау

Supratechnic, а типтегі бағдарлама жариялаған КОМПЬЮТЕР! 1988 жылдың қарашасында, мұқият пайдалануды көрсетеді растрлық үзілістер экранның стандартты шекарасынан тыс ақпаратты көрсету үшін (мұнда: жоғарғы және төменгі шекара).

VIC-II өзінің 47 басқару регистрлерімен (VIC-те 16-дан жоғары) манипуляциялау арқылы бағдарламаланған, жадыны C64 мекенжай кеңістігінде $ D000– $ D02E аралығында бейнеленген. Осы тізілімдердің 34-і тек қана айналысады спрайт бақылау (VIC-II құжаттамасында «жылжымалы объект блоктарынан» MOB деп аталатын спрайттар). VIC-II оның алдыңғы нұсқасы сияқты өңдейді жеңіл қалам енгізу және C64 стандартты ROM таңбасының көмегімен түпнұсқаны берді PETSCII таңбалар 1977 жылдан бастап 40 бағанға ұқсас өлшемді дисплейде орнатылған ПЭТ серия.

VIC-II басқару регистрлерін машиналық код арқылы қайта жүктеу арқылы растрлық үзіліс күнделікті (сканерлеудің үзілуі), чипті 8 қатар спрайттан әлдеқайда көп құруға бағдарламалауға болады (бұл процесс белгілі спрайт мультиплекстеу ), және, әдетте, экранның бағдарламаның әр кесіндісіне әр түрлі жылжу, ажыратымдылық және түс қасиеттерін береді. Сканерлеуге арналған 8 спрайттың аппараттық шектеулігін спрайттардың жылдам жыпылықтап, сөнуіне мүмкіндік беру арқылы одан әрі арттыруға болады. VIC-II мүмкіндіктерін ашу үшін растрлық үзілісті меңгеру өте маңызды болды. Көптеген демонстрациялар және кейбір кейінгі ойындар VIC регистрлерін дәл сол сәтте басқара алатындай етіп, процессор мен VIC-II арасында бекітілген «бұғаттау қадамын» орнатады.

Символдық графика

C64 PETSCII символымен 4k ROM-да орнатылған, бірақ оған дейінгі VIC-20 сияқты, таңбалар үшін нақты деректер көрсетілген жерде жадтан оқылды. Бұл орын VIC-II регистрлерінің бірі болды, бұл бағдарламашыларға жадқа тиісті деректерді орналастыру арқылы өздерінің таңбалар жиынын құруға мүмкіндік берді; әр таңба 8х8 торды құрады, байт көлденеңінен 8 битті көрсетті, сондықтан бір таңбаға 8 байт қажет болды, осылайша 256 символдан тұратын жиынтықта барлығы 2048 байт қолданылды. Теориялық тұрғыдан, егер барлық 16 к бейне жады толтырылған болса, сегіз символдар жиынтығын пайдалануға болады.[8]

Шарлардан басқа, VIC-II 1000 байтты бір жолға 40 таңбадан тұратын 25 жолды, әр таңба үшін бір байтты сақтау үшін пайдаланады, бұл әдепкі конфигурацияда $ 400 - $ 7E8 аралығында болады.[8] Түсті жедел жадыға видео-матрицаның 8 - 11 биттері ретінде қол жеткізіледі;[9] 64 және 128-де ол енгізу-шығару кеңістігінде $ D800- $ DBFF деңгейінде орналасқан және оны сол жерден жылжыту мүмкін емес. Онда әр таңбаның 1 түсі (көп түсті режимде 3 түс) мәндері бар.

ROM таңбасы VIC-II төрт «терезесінің» екеуіне, $ 1000- $ 1FFF және $ 9000- $ 9FFF деңгейлеріне, бірақ CPU оны көре алмайтындығымен бейнеленген (ROM таңбасы ол жерде $ D000- $ DFFF-ге ауыстырылуы мүмкін) процессорға көрінеді, бірақ VIC-II емес). Осылайша, графикалық деректерді немесе бейне буферлерді $ 1000- $ 1FFF немесе $ 9000- $ 9FFF деңгейіне орналастыруға болмайды, өйткені VIC-II оның орнына ROM таңбасын көреді. ЖЖҚ-ның бұл аймақтарын VIC-II графикалық чипі қолдана алмайтындықтан, олар музыкалық / дыбыстық эффекттер үшін жиі қолданылған (SID чипі). C64 жедел жады мен ROM жадында бір мекен-жайда болуы мүмкін, бірақ процессор біреуін «көреді», ал VIC-II чипі екіншісін «көреді».

Әдепкіде жоғары ажыратымдылықтағы таңбалар режимінде әр таңбаның алдыңғы жағы RAM RAM-де жеке орнатылуы мүмкін. Түрлі-түсті таңбалар режимінде 3-түс алғашқы сегіз түс мәнімен шектеледі; төртінші бит содан кейін бұл таңбаның жоғары ажыратымдылықта немесе түрлі-түсті түсте көрсетілетіндігін көрсететін жалауша ретінде қолданылады, осылайша екі типті де бір экранда араластыруға мүмкіндік береді.[8] 1 және 2 түстер регистрлермен $ D022 және $ D023 деңгейлерінде орнатылған және барлық таңбалар үшін ғаламдық болып табылады.[8]

Егер кеңейтілген фондық түс режимі қолданылса, таңбалық кодтың жоғарғы екі биті төрт фондық түс регистрінің бірін таңдау үшін қолданылады. Бұл экранда төрт түрлі фондық түстерге мүмкіндік береді, бірақ 256 орнына 64 түрлі таңбаларға рұқсат беру есебінен. Бұл шектеулі болғандықтан, ойындар оны сирек қолданды.

Растрлық режим

Барлық нүктелер үшін адрестік нүктелік кескін режимін қосу Commodore дизайнерлік тобының негізгі мақсаттарының бірі болды, өйткені VIC-I-де мұндай функция жетіспеді. Алайда, қосымша схемаларды мүмкіндігінше аз пайдалану үшін, олар оны таңбалар режиміндей етіп ұйымдастырды, яғни 8х8 және 4х8 тақтайшалары. Растрлық графика үшін пиксель деректері үшін 8к бет қажет және әрбір байт сегіз немесе төрт пиксельді бір қатарға сәйкес келеді. Келесі байт - оның астындағы жол және 8-ші қатардан кейін, келесі тақтаның жоғарғы жағына оралу.

Жоғары жылдамдықтағы растрлық карталарда экрандық RAM әр тақтаның алдыңғы және фондық түстерін ұстап тұру үшін қолданылады (әр байттың жоғары және төменгі жиіліктері). Бұл $ D800-де RAM түсті немесе $ D021-де фондық түс регистрін пайдаланбайтын жалғыз VIC-II режимі.

Түрлі-түсті растрлық режим бір тақтаға үш түс береді (төртіншісі - $ D021-де белгіленген фон түсі). 1 және 2 түстер экрандағы жедел жадтың биттерімен таңдалады (жалдау растрлық картасымен бірдей), ал үшіншісі түсті жедел жадыдан.

Түстің егжей-тегжейлі деңгейіне және нүктелік кескін режимінің барлық нүктелік-адрестік мүмкіндіктеріне қарамастан, жүйелік ресурстардың көп мөлшерін қажет ететіндіктен, ойын ішіндегі графика үшін бұл өте тиімді (пикселдік деректер үшін 8к және олардың әрқайсысын өзгерту үшін CPU циклдары едәуір көбірек) тақта) және әдетте айналдыруға болмайды. Осылайша, бұл көбінесе жүктеушіде, кейде тақырыптық экрандарда көрінеді.

Sprites

VIC-II спрайттары не 24х21 монохромды, не 12х21 көп түсті. Кейіпкерлер графикасына ұқсас, соңғыларында әр спрайт үшін жеке және екі жаһандық түс болады. VIC-II сегіз спрайттан тұрады, олардың әрқайсысы сақтау үшін 64 байт жадты пайдаланады, бірақ белгілі бір шектеулермен ол тағы басқаларын көрсете алады. Спрайтты мультиплекстеу - бұл экранда сегізден көп алудың кең таралған әдісі (бірақ сканерлеу сызығына максимум сегіз болса да). VIC-II сканлайн есептегіштері экранда қажетті нүктеге жеткенше сұралады, содан кейін бағдарлама спрайт координаттарын тез өзгертеді. Бұл бағдарламалау фокусы және басқа шешімдер экранда бір рет жиырмадан астам спрайтқа әкелуі мүмкін. Демо үшін шектеу әлдеқайда икемді.

Теорияда бір уақытта көрінетін әртүрлі спрайттардың максималды саны 256 құрайды (VIC-II-дің барлық 16к парағы толтырылған деп есептегенде). Оларды жадтағы 0-ден басталатын әр спрайт үлгісіне сілтеме жасау үшін блок нөмірін қолдану арқылы және бейне беттегі позицияларына байланысты 255 ($ FF) дейін шешуге болады. (егер екінші бейне банк (0 1 2 және 3 деп жазылған) қолданылса, 0 блогы 4000 долларға және 255 блогы 7FC0 долларға бағаланған спрайтқа сілтеме жасайды).

Әрбір спрайт екі өлшемді тігінен, көлденеңінен немесе екеуінен де болуы мүмкін. Бұл спрайтты үлкенірек етпейді (көрнекіден басқа) немесе спрайтқа көбірек пиксель қоспайды, бірақ бар пикселдерді жоғарылатады.

Спрайттардың көлденең орналасу регистрі бір байт және максималды мәні 255-пен шектелгендіктен, VIC-II экран аймағының 320 пиксельін толық қамти алмады, сондықтан бұл үшін ең маңызды байт жалауы деп аталатын қосымша регистр берілген.

$ D01E және $ D01F құрамында фон және спрайт-спрайт соқтығысу регистрлері бар. Біріншісі сирек қолданылады, өйткені спрайт тиіп тұрған нақты объект туралы ақпарат бере алмайды.

$ D01B спрайттың фондық нысандардың артында немесе алдында қозғалуын басқаруға арналған Sprite To Background басымдылық регистрін қамтиды. Спрайт басқа спрайтпен бірдей кеңістікке кіргенде, төменгі нөмірлер әрқашан жоғары нөмірлердің үстінен өтеді.

Айналдыру

Таңбалар экранын айналдыру үшін VIC-II $ D011 және $ D016 регистрлері арқылы 38 бағаналы және / немесе 24 жолдық режимге орнатылған. Бұл айналдырылатын таңбалар қатары орналастырылатын экраннан тыс буферді жасайды. Жоғарыда аталған регистрлердегі айналдыру биттерін реттеу арқылы экранда бір жол жылжытылуы мүмкін, содан кейін ол буферге жаңа жол салынбаса, ол қайталанады. Түрлі-түсті жедел жады экрандық ЖЖ-мен бір уақытта айналдырылады және дәл осылай жұмыс істейді.

VIC-II айналдыру - бұл салыстырмалы түрде күрделі, процессордың қарқынды жұмысы, бірақ C64 ойын бағдарламалаушылары RAM-дің түсі статикалық болып қалуы үшін графиканы жобалау арқылы алдау сирек емес болған. Тағы бір стандартты әдіс - айналдыру көлемін азайту үшін экранның төменгі немесе жоғарғы жағының 25% -ын есептегішпен жабу. Сонымен, әдетте, таңбалар туралы деректерді жазу үшін қосымша 1км оперативті жадыны пайдалану керек, содан кейін оны экранның жыртылуын болдырмау үшін оны жедел жадқа «бөлу» керек, дегенмен оны RAM-дің түрлі-түсті түрімен жасау мүмкін емес.

C64-тің коммерциялық қызмет ету мерзімінің соңында VSP (Virtual Screen Positioning) деп аталатын эксплуатация анықталды, бұл стандартты айналдыру регистрлеріне қарағанда процессор циклінің шығындарымен әлдеқайда төмен жылдамдықты айналдыру үшін $ D011-да басқару биттерін манипуляциялауды қажет етеді, дегенмен бұл мұқият болу керек , цикл бойынша нақты кодтау және кейбір VIC-II нұсқаларында сенімді жұмыс істемеді, сонымен қатар оны тек көлденең айналдыру үшін қолдануға болады. Бұл әсіресе қолданылады Monsterland-дағы Mayhem.

Растрлық үзілістер

Растрлық үзілістерді пайдалану C64 ойын бағдарламалауының маңызды бөлігі болып табылады. Компьютердің қосулы күйінде, бірінші MOS Technology CIA чип а түзеді маскаланатын үзіліс (IRQ) секундына 60 рет (NTSC) немесе 50 (PAL), бұл процессорды ядро ​​IRQ өңдегішіне $ EA31 жібереді. Өңдегіш ЦРУ-дың IRQ-н мойындайды, сағатты жаңартады, пернетақтаны қарап шығады және курсорды BASIC тілінде жыпылықтайды.

Ойындар әдетте ЦРУ-дің жұмысын тоқтатады және оның орнына VIC-II-ді экранда жылжу және музыка ойнау үшін қажет сканерленген сызыққа жеткенде үзіліс жасау үшін орнатады. Ойын қайталайды IRQ векторы $ 0314 / $ 0315 деңгейінде осы функцияларды орындайтын растрлық өңдеушіге, содан кейін ядроға басқару оралу үшін JMP $ EA31 нұсқауын ерікті түрде орындайды.

Кейбір ойындарда тек бір IRQ қолданылады; дегенмен, ұяшықтар жиі кездеседі және бағдарламаның тұрақтылығын жақсартады. Бұл қондырғыда IRQ екінші тәртіпке қайта оралады және сол үшін әрқайсысы үшін, соңғысы оны бірінші IRQ мекен-жайына келтіргенше жалғасады. Ішкі IRQ пайдаланылған кезде тізбекте тек бір JMP $ EA31 нұсқаулығы қажет, ал басқаларын ядро ​​өңдеушінің соңына баратын JMP $ EA81 көмегімен аяқтауға болады. Сондай-ақ, ойындар керналды өшіріп, оның орнына өздерінің IRQ өңдегішін қолдануы жиі кездеседі. NMI қосымша үзіліс ағыны үшін пайдаланылуы мүмкін, бірақ жағымсыз әсерлер қалпына келтіру пернесін кездейсоқ басуынан туындауы мүмкін, өйткені егер ол басылған болса, NMI іске қосады.

VIC-II соқтығысу регистрлерінен растрлық үзіліс тудыруы мүмкін, бірақ бұл функция сирек қолданылады.

Жадты бейнелеу

VIC-II 14-биттік адрестік шинаға ие және C64 жады кеңістігінің төрт 16к сегментінің кез-келгенін бейне деректер үшін қолдана алады. Мұны басқару үшін екі қосымша мекен-жай биті ЦРУ порт биттерімен қосылады. $ 0000- $ 3FFF - қосылудың әдепкі мәні. Екінші сегмент ($ 4000 - $ 7FFF), әдетте, BASIC-тен бағдарламалау үшін ең жақсы таңдау болып табылады, өйткені ол ROM-ға немесе I / O регистріне түсірілмеген, толықтай жедел жад болатын жалғыз сегмент. Төртінші сегмент ($ C000– $ FFFF) машина тілі қолданылған жағдайда да жақсы таңдау болып табылады, өйткені процессордың оқуына қол жеткізу үшін ядродағы ROM-ді өшіру керек және ол нәтижесіз болатын бағдарлама коды мен деректерге жол бермейді. $ 4000 - $ 7FFF пайдалану. Графикалық деректер BASIC ROM астында $ A000- $ BFFF, ядро ​​ROM $ E000- $ FFFF немесе I / O регистрлерінде және түсті RAM $ D000– $ DFFF деңгейінде еркін сақталуы мүмкін, өйткені VIC-II тек көреді Оперативті жад, процессордың жадының бейнеленуі қалай реттелгеніне қарамастан; таңба ROM тек бірінші және үшінші сегменттерде көрінеді, сондықтан егер сегмент екі немесе төртеуін қолданса, бағдарламашы өзінің таңбалық деректерін беруі керек. Экранның оперативті жады, растрлық бет, спрайттар және символдар жиынтығы бірдей сегмент терезесін қамтуы керек (егер CIA биттері сканерлеу үзілісі арқылы өзгертілмесе). Соңғы алты байт жүйелік жады ($ FFFA- $ FFFF) IRQ, NMI және қалпына келтіру векторларын қамтиды, сондықтан егер жадының жоғарғы жағы таңбалар жиынын немесе спрайт деректерін сақтау үшін қолданылса, онда бір таңбаны немесе спрайтты құрбан ету керек болады векторларды қайта жазбау үшін.

Тіркеушілер

VIC-II төменде келтірілген 47 оқу / жазу регистрі бар:

ТіркелуОн алтылық7 бит6 бит5 бит4 битБит 3Бит 2Бит 1Бит 0Сипаттама
0
D000
M0X
X координаталық спрайт 0
1
D001
M0Y
Y координаты Sprite 0
2
D002
M1X
X координаталық спрайт 1
3
D003
M1Y
Y Sprite координаты 1
4
D004
M2X
X координаталық спрайт 2
5
D005
M2Y
Y Sprite 2 координаты
6
D006
M3X
X координаталық спрайт 3
7
D007
M3Y
Y координаты Sprite 3
8
D008
M4X
X координаталық спрайт 4
9
D009
M4Y
Y координаты Sprite 4
10
D00A
M5X
X координаты Sprite 5
11
D00B
M5Y
Y координаты Sprite 5
12
D00C
M6X
X координаталық спрайт 6
13
D00D
M6Y
Y координаты Sprite 6
14
D00E
M7X
X координаты Sprite 7
15
D00F
M7Y
Y координаты Sprite 7
16
D010
M7X8M6X8M5X8M4X8M3X8M2X8M1X8M0X8X координаталарының МСБ
17
D011
RST8ECMBMMDENRSEL
YSCROLL
Бақылау регистрі 1
18
D012
RST
Растрлық есептегіш
19
D013
LPX
Жеңіл қалам X
20
D014
LPY
Жеңіл қалам Y
21
D015
M7EM6EM5EM4EM3EM2EM1EM0ESprite қосылды
22
D016
--RESMCMCSEL
XSCROLL
Бақылау регистрі 2
23
D017
M7YEM6YEM5YEM4YEM3YEM2YEM1YEM0YESprite Y кеңеюі
24
D018
VM13VM12VM11VM10CB13CB12CB11-Жад көрсеткіштері
25
D019
IRQ---ILPIMMCIMBCIRSTКідірісті тіркеу
26
D01A
----ELPEMMCEMBCERSTҮзіліс қосылды
27
D01B
M7DPM6DPM5DPM4DPM3DPM2DPM1DPM0DPSprite деректерінің басымдығы
28
D01C
M7MCM6MCM5MCM4MCM3MCM2MCM1MCM0MCSprite түрлі-түсті
29
D01D
M7XEM6XEM5XEM4XEM3XEM2XEM1XEM0XESprite X кеңеюі
30
D01E
M7MM6MM5MM4MM3MM2MM1MM0MСпрайт-спрайттың соқтығысуы
31
D01F
M7DM6DM5DM4DM3DM2DM1DM0DСпрайт-деректердің соқтығысуы
32
D020
----
EC
Жиек түсі
33
D021
----
B0C
Фон түсі 0
34
D022
----
B1C
Фон түсі 1
35
D023
----
B2C
Фон түсі 2
36
D024
----
B3C
Фон түсі 3
37
D025
----
MM0
Sprite көп түсті 0
38
D026
----
MM1
Sprite көп түсті 1
39
D027
----
M0C
Түс спрайт 0
40
D028
----
M1C
Түс спрайт 1
41
D029
----
M2C
Түс спрайт 2
42
D02A
----
M3C
Спрайт түсті 3
43
D02B
----
M4C
Түс спрайт 4
44
D02C
----
M5C
5. Түс спрайт
45
D02D
----
M6C
Түс спрайт 6
46
D02E
----
M7C
7. Түс спрайт

Түстер

VIC-II чипінің жоғарыда көрсетілген 16 түсті палитрасы бар.

Түрлі-түсті таңбалар режимінде (ойындардың көпшілігі қолданылатын 160 × 200 пиксель) таңбалардың 4 × 8 пикселдері болды (таңбалар шамамен төртбұрышты болды, өйткені пиксельдер екі еселік болды) және 16 түстің ішінде 4 түсті болды. 4-ші түс бүкіл экранға бірдей болды (фон түсі), ал қалған 3-ін әрбір осындай 4 × 8 пиксель аумағына жеке-жеке қоюға болады. Белсенді мәтіндік экраннан екі түс, ал үшіншісі түсті RAM-ден жүктелді. Түрлі-түсті режимдегі спрайттардың (12 × 21 пиксель) үш түсі болды: екеуі барлық спрайттар арасында және біреуі ортақ. Суретшіге ортақ түстерді таңдау керек болды, сондықтан жеке түстермен үйлесім түрлі-түсті әсер қалдырды. Растрлық үзіліс кезінде кейбір ойындар ортақ түстерді қайта жүктеді; мысалы, ойын Turrican II's суасты аймағы (тігінен ерекшеленетін) әр түрлі түстерге ие болды. Басқалары, мысалы Эпикс Келіңіздер Жазғы ойындар және КОМПЬЮТЕР! 'с Баскетбол Sam & Ed, көлденең ажыратымдылықты жоғалтпай, алдыңғы екі түстерді пайдалануға мүмкіндік беру үшін жоғары ажыратымдылықтағы екі спрайттың үстіне қойылды [1]. Әрине, бұл техника қолда бар спрайттардың санын екі есеге азайтты.

Қосулы PAL C64, PAL кідіріс сызығы түсі орташа болатын мониторда немесе теледидарда реңк, бірақ бірдей жарықтылықтың екі түсін көрсететін экран сызықтарын кезектестіру арқылы жеті стандартты емес түстерді жасау үшін қатарынан экран сызықтарының жарықтығын емес, қолдануға болады. VIC чипінде осындай жеті түсті түстер бар.

C64 командасы 16 түстер палитрасын математикалық есептеу үшін көп уақыт жұмсамады. VIC-II-ді құруға қатысқан Роберт Яннс:

Мен түстерді таңдауға сіз ойлағандай көп күш жұмсамады деп қорқамын. Біз реңкті, қанықтылықты және жарықтықты толығымен бақылайтын болғандықтан, біз өзімізге ұнайтын түстерді таңдадық. Чиптегі орынды үнемдеу үшін көптеген түстер біз таңдаған түстер дөңгелегінің қарама-қарсы жағы болды. Бұл әр түс үшін мүлдем ерекше жиынтыққа ие болудың орнына, бар резистор мәндерін қайта пайдалануға мүмкіндік берді.[10]

PAL C64-де қолданылатын VIC-II-дің алғашқы нұсқалары кейінгі өңдеуге қарағанда басқа түстер палитрасына ие екенін ескеріңіз.[11]

Он алты түстің толық палитрасы төменде көрсетілген:

Нөмір - атыYPb (қатысты)Pr (рел.)
0 - қара000
1 - ақ100
2 - қызыл0.3125−0.38268340.9238795
3 - көгілдір0.6250.3826834−0.9238795
4 - күлгін0.3750.70710680.7071068
5 - жасыл0.5−0.7071068−0.7071068
6 - көк0.2510
7 - сары0.75−10
8 - сарғыш0.375−0.70710680.7071068
9 - қоңыр0.25−0.92387950.3826834
10 - ашық қызыл0.5−0.38268340.9238795
11 - қою сұр0.312500
12 - орташа сұр0.4687500
13 - ашық жасыл0.75−0.7071068−0.7071068
14 - ашық көк0.4687510
15 - ашық сұр0.62500


VIC-IIe

MOS 8566 VIC-IIe бекіту

8564/8566 VIC-IIe 128 40-тан гөрі 48 түйреуішті қолданды, өйткені ол көп сигнал шығарды, олардың арасында қосымша сағат болды Zilog Z80 Сол компьютердің процессоры. Оның екі қосымша тіркелімі болды. Қосымша регистрлердің бірі - сандық пернетақтаға және осы компьютердің басқа қосымша пернелеріне кіруге арналған; бұл функция VIC-ке қосылды, өйткені бұл компьютерде қажетті үш қосымша шығыс түйреуішті қосу оңай болды. Басқа қосымша регистр 1 МГц пен 2 МГц жүйелік сағатты ауыстыруға арналған; жоғары жылдамдықта VIC-II бейне шығысы кодтағы әрбір екінші байтты экранда қара жалдамалы бит үлгісі ретінде көрсетеді, бұл C128 80 бағаналы режимін сол жылдамдықта қолдануды ұсынады 8563 VDC RGB чипі). Ресми емес, екі қосымша регистр C128-дің C64 режимінде қол жетімді болды, бұл қосымша кілттерді пайдалануға және екі жылдамдықты-бейнесіз орындауға мүмкіндік берді. Процессормен байланысты өздігінен жасалған C64 бағдарламаларындағы код (мысалы, интенсивті сандық есептеулер).[12] Қосымша регистрлер C128-дің C64 режимі мен нақты C64 арасындағы ұсақ сәйкессіздіктердің бір көзі болды - бірнеше ескі C64 бағдарламалары абайсызда 2 МГц ауыстыру биті, бұл нақты C64-те ештеңе жасамайды, бірақ C128-де C64 режимінде бұзылған дисплейге әкеледі.

VIC-IIe-де регистрлерді манипуляциялау арқылы түстердің қосымша сигналдар жиынтығын құру мүмкіндігі аз, ол түсті сигналды чиптің басқа бөліктерімен бірге фазадан тыс шығарады.[дәйексөз қажет ]

VIC-IIe сынақ битінің нақты әрекетін қолдана отырып, ол 320 × 400 (жалдау режимі) және 160 × 400 (көп түсті режим) ажыратымдылығымен нақты интерлес суретті шығара алады.

VIC-II нұсқаларының тізімі

Коммодор тірі кезінде VIC-II-ге көптеген өзгерістер енгізді. Есептеңіз!'1983 жылдың шілдесіндегі алғашқы нөмірінде Commodore 64-тің 1982 жылдың ортасында шыққаннан бері сегіз уақыт өткендігі туралы хабарланды.[13]

  • PAL
    • MOS технологиясы 6569 - (PAL-B, көптеген PAL елдерінде қолданылады)
    • MOS технологиясы 6572 - (PAL-N, тек Оңтүстік Америкада қолданылады)
    • MOS Technology 6573 - (PAL-M, тек Бразилияда қолданылады)
    • MOS Technology 8565 - «C64E» аналық платаларына арналған HMOS-II нұсқасы
    • MOS Technology 8566 - VIC-II E (PAL-B) C128 нұсқасы
    • MOS Technology 8569 - VIC-II E (PAL-N) C128 нұсқасы
  • NTSC
    • MOS Technology 6566 - арналған SRAM / емесmuxed мекен-жай жолдары ( Commodore MAX машинасы )
    • MOS Technology 6567 - түпнұсқа NMOS нұсқасы
    • MOS Technology 8562 - HMOS-II нұсқасы
    • MOS Technology 8564 - VIC-II E C128 нұсқасы

Ескертулер

Барлық C64 модельдерінде VIC-II оңай ауыстыру үшін розеткаға қосылады, бірақ 6565, 6572, 6573, 6566 және 6567-де 12 вольт пен 5 вольтты 8565 және 8562 тек 5 вольтты пайдаланған кезде пайдаланады. Ескі нұсқаны аналық платаны өзгертусіз жаңа нұсқаға ауыстыру C64 аналық платаларының ең ескі нұсқаларында болса, 8565 және 8562-ді бұзады.

6569 бірнеше түзетулер бар: 6569R1 (әдетте алтынмен қапталған), 6569R3, 6569R4 және 6569R5. 8565 нұсқасының ең көп таралған нұсқасы - 8565R2.

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ Bagnall, Brian (2005). «Құпия жоба 1981». Шетте: Коммодордың керемет көтерілуі мен құлауы (1 басылым). Виннипег, Манитоба: Variant Press. 224–225 бб. ISBN  0-9738649-0-7.
  2. ^ а б Перри, Текла С .; Уоллич, Пол (наурыз 1985). «Дизайн жағдайының тарихы: Commodore 64» (PDF). IEEE спектрі. Нью-Йорк, Нью-Йорк: Электр және электроника инженерлері институты: 48–58. ISSN  0018-9235. Алынған 2011-11-12.
  3. ^ Bagnall, Brian (2005). «Құпия жоба 1981». Шетте: Коммодордың керемет көтерілуі мен құлауы (1 басылым). Виннипег, Манитоба: Variant Press. б. 227. ISBN  0-9738649-0-7.
  4. ^ Bagnall, Brian (2005). «Құпия жоба 1981». Шетте: Коммодордың керемет көтерілуі мен құлауы (1 басылым). Виннипег, Манитоба: Variant Press. б. 229. ISBN  0-9738649-0-7.
  5. ^ Bagnall, Brian (2005). «Құпия жоба 1981». Шетте: Коммодордың керемет көтерілуі мен құлауы (1 басылым). Виннипег, Манитоба: Variant Press. б. 230. ISBN  0-9738649-0-7.
  6. ^ Bagnall, Brian (2005). «Құпия жоба 1981». Шетте: Коммодордың керемет көтерілуі мен құлауы (1 басылым). Виннипег, Манитоба: Variant Press. б. 242. ISBN  0-9738649-0-7.
  7. ^ Якал, Кэти (маусым 1986). «Коммодорлық графиканың эволюциясы». Есептеңіз!. 34-42 бет. Алынған 2019-06-18.
  8. ^ а б c г. Каупер, Оттис Р. (1986). Commodore картасының картасы 128. Гринсборо, Солтүстік Каролина: КОМПЬЮТЕР! Кітаптар. ISBN  0-87455-060-2.
  9. ^ «6567 бейне интерфейсінің чипі: техникалық парақ» (PDF). Commodore жартылай өткізгіштер тобы. 2 және 5 парақтар.
  10. ^ Тиммерманн, Филип. «Commodore VIC-II түсті талдау (алдын ала қарау)». Алынған 11 ақпан 2018.
  11. ^ Шёстедт, Илька. «Ескі VIC-II түстері және түсті араластыру». ilesj блогы. Алынған 11 ақпан 2018.
  12. ^ Каупер, Оттис Р.; Флоранс, Дэвид; Хеймарк, Тодд Д .; Краузе, Джон; Миллер, Джордж В .; Мыктын, Кевин; Нельсон, Филипп I .; Виктор, Тим (қазан 1985). «7-тарау. Жүйелік архитектура». КОМПЬЮТЕР! 128 бағдарламашының нұсқаулығы. Гринсборо, Солтүстік Каролина: КОМПЬЮТЕР! Жарияланымдар. 348–349 беттер. ISBN  0-87455-031-9.
  13. ^ Halfhill, Tom R. (шілде 1983). «Commodore 64 бейнені жаңарту». Есептеңіз!. б. 40. Алынған 6 ақпан 2016.

Сыртқы сілтемелер