Кіріспе
Amiga жеке компьютерінде қолданылған чипсет.
Түпкілік чипсет (OCS) – алғашқы Commodore Amiga компьютерлерінде қолданылған чипсет және Amiga-ның графикалық және дыбыстық мүмкіндіктерін анықтады. Одан кейін сәл жақсартылған Enhanced Chip Set (ECS) және күрт жақсартылған Advanced Graphics Architecture (AGA) пайда болды. Түпкілік чипсет 1985 және 1990 жылдар аралығында құрастырылған Amiga модельдерінде қолданылды: Amiga 1000, Amiga 2000, Amiga CDTV және Amiga 500.
Чиптердің жалпы сипаттамасы
Amiga-ға өзінің ерекше графикалық мүмкіндіктерін берген чипсет үш негізгі "арнайы" чиптен тұрады: Агнус, Денис және Паула. Бастапқы чипсет және жетілдірілген чипсет Commodore компаниясының чип өндіруші еншілес компаниясы MOS Technology, NMOS логикалық технологиясын пайдалана отырып жасалды. Jay Miner-дің айтуынша, OCS чипсеті 5 мкм өндіріс процесінде, ал AGA Lisa 1,5 мкм процесінде жасалды. Барлық үш арнайы чип бастапқыда 48 контактілі DIP корпусында шығарылды; Агнустың кейінгі нұсқалары, Fat Agnus деп аталатын, 84 контактілі PLCC корпусында шығарылды. Агнус – жобаның орталық чипі. Ол күрделі басымдық жүйесін қолдана отырып, орталық 68000 процессорынан және басқа арнайы чиптерден чиптік жадқа кіруді басқарады. Агнус құрамында процессордың араласуынсыз жадта деректерді жылдам беруді қамтамасыз ететін blitter және бейнесинхронды копроцессор Copper сияқты қосалқы компоненттер бар. Бастапқы Агнус 512 [[килобайт чиптік жад]]пен жұмыс істей алады. Кейінгі, "Fat Agnus" деп аталған түзетулер 512 КБ псевдо жылдам жадты қосты, ол ECS үшін 1 МБ (кейде "Fatter Agnus" деп аталады) және кейіннен 2 МБ чиптік жадқа дейін арттырылды. Денис – негізгі бейне процессор. Оверскан қолданбағанда, Amiga-ның графикалық дисплейі 320 немесе 640 пиксел енімен және 200 (NTSC) немесе 256 (PAL) пиксел биіктігімен бейнелейді. Денис сонымен қатар тік ажыратымдылықты екі есе арттыратын, бірақ сол дәуірдің әдеттегі мониторларында көзге көрінетін жалтырауға себеп болатын интерлейсті де қолдайды. Біт-карталық графика қолданылады, онда әр пикселге сәйкес жеке биттер жадтың жеке бөлімдеріне, яғни биттік жазылымдарға бөлінеді. Құрылғының қалыпты жұмыс істеу кезінде Денис бірден бес биттік жазылымды пайдалануға мүмкіндік береді, бұл екіден 32-ге дейін бірегей түс беруге мүмкіндік береді. Бұл түстер 4096 түстің палитрасынан (RGB компоненті үшін төрт бит) таңдалады. Екі арнайы бейне режимдері үшін – Halfbrite режимі және Hold And Modify (HAM) режимі үшін қосымша 6-шы биттік жазылым қол жетімді. Денис сонымен қатар сегіз спрайтты, бір пикселдік прокрутканы және "қос ойын алаңы" режимін қолдайды. Денис сонымен қатар тінтыл мен диджитал джойстиктерді басқарады. Паула негізінен аудио чипі болып табылады, төрт тәуелсіз аппараттық аралас 8 биттік PCM дыбыс арналарына ие, олардың әрқайсысы 65 дыбыс деңгейін (дыбыссыздықтан максималды дыбыс деңгейіне дейін) және секундына шамамен 20 үлгіден секундына шамамен 29,000 үлгіге дейін толқын пішімінің шығу жылдамдықтарын қолдайды. Паула сонымен қатар үзілістерді және дискеталық дискіні, тізбектік портты және аналогтық джойстиктерді қоса алғанда, әртүрлі I/O функцияларын басқарады. OCS чипсеті мен Atari 8 биттік компьютерлерінің ANTIC, GTIA және POKEY чиптерінен тұратын, әлдеқайда ертерек және қарапайым чипсеті арасында функционалдық тұрғыдан және функционалдықты үш компоненттік чипке бөлу тұрғысынан көптеген ұқсастықтар бар; екі чипсеттің де концепциялық дизайнын Jay Miner жасаған, бұл ұқсастықты түсіндіреді.
Агнус
Агнус чипі бүкіл чипсет жұмысын толық бақылайды. Барлық операциялар бейне сәулесінің орналасуымен синхронды түрде орындалады. Бұл кірістірілген RAM-ға қол жеткізуді қамтиды, ол чипсетке қол жетімді болғандықтан "чип RAM" деп белгіленеді. Орталық 68000 процессоры және чипсеттің басқа да элементтері чип RAM-ға қол жеткізу үшін Агнус арқылы келісімдесуі керек. Есептеу архитектурасы тұрғысынан, бұл тікелей жадқа қол жеткізу (DMA) болып табылады, мұнда Агнус DMA контроллері (DMAC) рөлін атқарады. Агнус күрделі және басымдыққа негізделген жадқа қол жеткізу саясатын қолданады, ол жадқа қол жеткізу сұраныстарын бәсекелес ресурстар арасында тиімді үйлестіруге тырысады. Мысалы, биттік жазылым деректерін алу блиттер транзакцияларынан басымдыққа ие, себебі кадр буфері деректерін дереу көрсету блиттер арқылы жадты өңдеуден маңыздырақ саналады. Агнус сондай-ақ CPU шина циклдерін DMA циклдерімен үйлестіруге тырысады. Amiga-дағы бастапқы 68000 процессоры әдетте тек әрбір екінші қолжетімді жад циклында ғана жадқа қол жеткізе алатындықтан, Агнус "тақ" жад циклдерін уақытқа қатысты маңызды чиптердің DMA-сы үшін бірінші кезекте бөледі, ал қалған циклдар CPU-ға қолжетімді болады, осылайша CPU әдетте жадқа қол жеткізуден бұғатталмайды және баяуламайды. Дегенмен, уақытқа қатысты емес чиптерге қол жеткізу, мысалы, блиттер транзакциялары, кез келген бос тақ немесе жұп циклдарды пайдалана алады және егер "BLITHOG" (блиттер шоғырлануы) флагі қойылған болса, Агнус блиттерге басымдық беру үшін CPU-дан жұп циклдарды бұғаттауы мүмкін. Агнустың уақыт өлшемдері 280 нс-қа тең "түсті сағаттар" арқылы өлшенеді. Бұл екі төмен ажыратымдылықтағы (140 нс) пикселге немесе төрт жоғары ажыратымдылықтағы (70 нс) пикселге тең. Дениске ұқсас, бұл уақыт өлшемдері тұрмыстық теледидарларда көрсету үшін жасалған және сыртқы сағат көзімен синхронды түрде жұмыс істей алады.
Блиттер
Блиттер – Агнустың құрамына кіретін бөлік. "Blit" – "блокты бейнелеу" немесе "бит-блит" терминдерінің қысқартылған түрі. Блиттер – жоғары параллельді жадты беру және логикалық операцияларды орындайтын құрылғы. Оның үш жұмыс режимі бар: жад блоктарын көшіру, блоктарды толтыру (мысалы, көпбұрыштарды толтыру) және сызықтар салу. Блиттер видеожадты жылдам көшіруге мүмкіндік береді, соның арқасында процессор басқа тапсырмаларға босатылады. Блиттер негізінен экранда "бобс" деп аталатын графикалық кескіндерді салу және қайта салу үшін қолданылды, "бобс" – "блиттер объектілері" деген сөздің қысқартылған түрі. Блиттердің блок көшіру режимі жадтағы нөлден үш дерек көзін қабылдайды, олар A, B және C деп белгіленеді, дерек көздеріне бағдарламаланатын бульдік функция қолданылады және нәтиже D деп аталатын мақсатты аймаққа жазылады. Осы төрт аймақтың кез келгені бірін-бірі жабуы мүмкін. Блиттер блоктың басынан соңына дейін ("көтерілу" режимі) немесе керісінше ("түсу" режимі) жұмыс істейді. Блоктар "төртбұрышты" болып келеді; олардың "ені" 16 биттің есесінде, "биіктігі" "жолдар" арқылы өлшенетін, ал "қадам" бір жолдың соңынан екіншісіне өтуге қажетті қашықтық болып табылады. Бұл блиттерге 1024 × 1024 пикселге дейінгі кез келген бейне ажыратымдылығымен жұмыс істеуге мүмкіндік береді. Көшіру автоматты түрде әр пикселге логикалық операцияны қолданады. Бұл операциялар минтермдер арқылы жалпылама түрде сипатталады. Көбінесе бұл тікелей көшіру үшін (D = A) немесе блиттелген объектілердің айналысына пикселдік масканы қолдану үшін (D = (C AND B) OR A) қолданылады. Көшіру әр жолды 0-ден 15 пикселге дейін ығыстыра алады. Бұл блиттерге 16-ға есеусіз пикселдік ығысулармен кескіндер салуға мүмкіндік береді. Бұл мүмкіндіктер Amiga-ға GUI терезелерін экранда жылдам жылжытуға мүмкіндік береді, себебі әр терезе графикалық жад кеңістігінде тіктөртбұрышты жад блогы ретінде бейнеленеді және қажет болған жағдайда кез келген экран жады орнына ауыстырылуы мүмкін. Блиттердің жол режимі Бресенхемнің сызық алгоритмін қолдана отырып, бір пикселдік қалыңдықпен сызықтарды салады. Сонымен қатар, ол жолға 16 биттік қайталанатын үлгіні қолдана алады. Жол режимін айналған бобтарды салу үшін де пайдалануға болады: боб деректерінің әр жолы жол үлгісі ретінде қолданылады, ал жол режимінде көлбеу боб сызықтармен сызықтар бойынша салынады. Блиттердің толтыру режимі жеке жолдардағы көлденең аралықтарды толтыру үшін қолданылады. Әр аралықта ол әр пикселді оңнан солға қарай оқиды. Белгілі бір пикселді оқығанда, толтыру режимі қосылады немесе өшіріледі. Толтыру режимі қосылғанда, ол толтыру режимі өшірілгенше немесе жол аяқталғанша барлық пикселдерді толтырады. Бұл режимдер блиттерге жеке жалпақ көлеңкеленген көпбұрыштарды салуға мүмкіндік береді. Кейінгі Amiga үлгілері көптеген операциялар үшін жылдам процессор мен блиттердің үйлесімін пайдалануға бейім болды.
Мыстың қолданылуы
Мыс көбінесе әрбір кадрдың басында бейне жабдық тіркегіштерін орнату және қайта орнату үшін қолданылады. Ол кадрдың ортасында бейне параметрлерін өзгертуге мүмкіндік береді. Бұл Amiga-ға сканерлеу жолдары арасында бейне конфигурациясын, соның ішінде ажыратымдылықты өзгертуге мүмкіндік береді. Бұл Amiga-ға бір экранда әртүрлі көлденең ажыратымдылықтарды, әртүрлі түс тереңдіктерін және тіпті басқа кадр буферлерін көрсетуге мүмкіндік береді. AmigaOS графикалық интерфейсі екі немесе одан көп бағдарламаның әртүрлі буферлерде әртүрлі ажыратымдылықпен жұмыс істеуіне мүмкіндік береді, ал олардың барлығы бір уақытта экранда көрінеді. Мысалы, сурет салу бағдарламасы осы мүмкіндікті пайдаланып, пайдаланушыларға төменгі ажыратымдылықтағы Hold And Modify (HAM) экранына тікелей сурет салуға мүмкіндік бере алады, сонымен қатар экранның жоғарғы немесе төменгі жағында жоғары ажыратымдылықтағы құралдар панелін ұсынады. Мыс кадрдың ортасында түс тіркегіштерін өзгерте алады, соның арқасында Amiga ойындарында жиі кездесетін "растрлық жолақтар" эффектісі пайда болады. Мыс одан да әрі барып, фон түсін жиі өзгертіп, ешқандай растрлік графика қолданбай, блоктық графикалық дисплей жасауға болады. Мыс "спрайттарды қайта пайдалануға" мүмкіндік береді; спрайт бағдарламаланған орнында салынғаннан кейін, Мыс оны бірден жаңа орынға жылжыта алады және ол тіпті сол сканерлеу жолында да қайта салынады. Мыс бейне сәулесі дисплейдегі нақты орынға жеткенде үзіліс тудыра алады. Бұл процессорды бейне сәулесімен синхрондау үшін пайдалы. Мыс сонымен қатар блиттерді бағдарламалау және басқару үшін де қолданылуы мүмкін. Бұл блиттер операциясының және басқарудың процессордан тәуелсіз және онымен бір уақытта жүруіне мүмкіндік береді. Мыс пен блиттер бір-бірін бағдарламалау арқылы мәтіндік режимді эмуляциялауға болады. Мыс "бөлінген HAM" немесе S HAM жасау үшін қолданылуы мүмкін, бұл әрбір сканерлеу жолында палитраны ауыстыратын Мыс тізімін құрудан тұрады, бұл Hold And Modify режиміндегі графикада негізгі түстерді таңдауды жақсартады.
Сыртқы бейне уақыт
Әдеттегі жағдайларда Amiga өзінің бейне уақытын өндіреді, бірақ Agnus сыртқы бейне жабдықтарымен синхронизацияны (генлокинг) жүзеге асыру үшін жүйені сыртқы сигналмен синхрондауға да мүмкіндік береді. Бұл қосылышта Amiga фондық түсті шығарып тұр ма, жоқ па, екенін көрсететін 1 биттік шығыс бар, бұл Amiga бейнесін сыртқы бейнеге оңай қоюға мүмкіндік береді. Бұл мүмкіндік Amiga-ны бейнелерге тақырыптар қою және телехабар тарату жұмыстары үшін тамаша таңба генераторына айналдырды, себебі ол генлокинг қолдауы болмаған жағдайда қажет болатын A/B ролдары мен хромакей құрылғыларын пайдалану және оларға жұмсалатын шығындардан сақтады. Оверскан, интерлейсинг және генлокинг мүмкіндіктерін қолдауы, сондай-ақ дисплей уақытының хабар тарату стандарттарына (NTSC немесе PAL) өте жақын болуы Amiga-ны бейне мақсаттары үшін ең қолайлы компьютерге айналдырды. Шындығында, ол көптеген студияларда бейне деректерін цифрлық форматқа аудару (кейде кадрды түсіру деп те атайды), субтитрлеу және интерактивті бейне жаңалықтары үшін пайдаланылды.
Денис
Денис бір-бес биттік жазықтықтан бейне деректерін алып, оларды түс іздеу кестесіне түрлендіреді. Биттік жазықтықтардың саны еркін таңдалады, сондықтан егер 32 түс қажет болмаса, 2, 4, 8 немесе 16 түс қолданылуы мүмкін. Биттік жазықтықтардың саны (және ажыратымдылығы) жұмыс істеп тұрғанда өзгертілуі мүмкін, әдетте Copper арқылы. Бұл RAM-ды үнемді пайдалануға және Chip RAM-тан орындалғанда процессордың өңдеу жылдамдығы мен графикалық күрделілікті теңестіруге мүмкіндік береді (lores режимінде 4bpp-ден жоғары немесе hires режимінде 2bpp-ден жоғары режимдерде, әдеттегі қарама-қайшы емес арналардан басқа, CPU-ды баяулатуға немесе уақытша тоқтатуға болатын қосымша DMA арналары қолданылады). Алтыншы биттік жазықтық та болуы мүмкін, ол үш арнайы графикалық режимде қолданылады: Extra HalfBrite (EHB) режимінде, егер пиксел алтыншы биттік жазықтықта белгіленген болса, 32 түсті пикселдің жарықтығы жартысына дейін төмендейді. Америка Құрама Штаттарында сатылған Amiga 1000-нің алғашқы нұсқаларында Extra HalfBrite режимі болмаған. Hold And Modify (HAM) режимінде әрбір 6 биттік пиксел екі басқару биті және төрт дерек биті ретінде қарастырылады. Басқару биттерінің төрт мүмкін комбинациясы – «белгілеу», «қызыл түсті өзгерту», «жасыл түсті өзгерту» және «көк түсті өзгерту». «Белгілеу» опциясымен төрт дерек биті 16 түстік дисплей сияқты жұмыс істейді. «Өзгерту» опцияларының бірімен алдыңғы пикселдің қызыл, жасыл немесе көк түсі дерек мәніне сәйкес өзгертіледі, ал қалған екі түс алдыңғы пикселден сақталады. Бұл экранда бірден 4096 түс болуына мүмкіндік береді және аппараттық декомпрессияның мысалы болып табылады. Dual Playfield режимінде, бір экран ретінде әрекет етудің орнына, әрқайсысы сегіз түстік екі «ойын алаңы» (әрқайсысы үш биттік) бір-бірінің үстіне салынады. Олар тәуелсіз түрде жылдырылады және жоғарғы ойын алаңының фоны төменгі ойын алаңы арқылы көрінеді. Екі көлденең графикалық ажыратымдылық бар: 140 нс пикселді «lowres» және 70 нс пикселді «hires», overscan қолданбай 320 немесе 640 пикселге дейін. Пикселдік шығыс NTSC түс жиілігіне негізделген жүйелік сағатпен реттеледі, сондықтан бұл өлшемдер стандартты теледидар экранының енін толықтырады, графика мен экран шекарасы арасында жұқа «қорыту» шекарасы ғана қалады, бұл басқа көптеген заманауи үй компьютерлерімен салыстырғанда ойын консоліне жақын, бірақ егжей-тегжейлі кескінді қамтамасыз етеді. Бұдан өзге, Денис жеткілікті overscan-ды қолдайды; техникалық тұрғыдан алғанда, 400 немесе 800 пикселге дейін (25% көп) дерек бар режимдерді анықтауға болады, бірақ бұл тек үлкен графиканың ішінара көрсетілуін қамтитын жылжу және арнайы эффекттер үшін пайдалы, өйткені аппараттық шектеу 368 (немесе 736) пикселге жетеді, бұл бір вертикальді аралықтың соңы мен келесі аралықтың басы арасында сыятын ең жоғары мән, бірақ тіпті осы пикселдердің көп бөлігі горизонтальды сканерлеу енін реттеуге мүмкіндік беретін арнайы монитордан басқа дисплейде көрінбейді, өйткені суреттің көп бөлігі, дизайн бойынша, экранның жиегінен тысқары шығып кетеді (немесе LCD экранында, панельдің шетінде кесіледі). Amiga-ның сканерлеу желілеріне қатысты уақытының тұрақтылығы және DMA ресурстарын қалыпты «ойын алаңы» графикасынан басқа мақсаттарға бөлуі, көлденең ажыратымдылықты арттыру пикселдер саны мен аппараттық спрайттар саны арасындағы компромисс болып табылады, өйткені DMA слоттарын арттыру ойын алаңы бейнесі үшін спрайт қозғалтқышынан (8-дің 1-інен 7-іне дейін) ресурстарды алумен аяқталады. Overscan қолданбай тік ажыратымдылық 60 Гц NTSC Amiga үшін 200 пиксел, ал 50 Гц PAL Amiga үшін 256 пикселді құрайды. Бұл интерлейс дисплейді пайдалану арқылы екі есеге арттырылуы мүмкін, ал көлденең ажыратымдылық сияқты, overscan арқылы арттырылуы мүмкін, NTSC үшін 241 (немесе 483) және PAL үшін 283 (немесе 567) дейін (интерлейс режимдердегі максимум қол жетімді жалпы жолдардың қаншасы бос және синхронизация арқылы алынады, ал интерлейс емес режимдердегі жалпы сканерлеу жолдары бастапқы, тақ санды интерлейс санағының жартысы, төменге қарай дөңгеленген). ECS-тен бастап, Денис «Өнімділік» режимін қолдау үшін жаңартылды, бұл тек 4 түспен 640x400 ажыратымдылықты қамтамасыз етеді. Денис сканерлеу желісінде (автоматты режимде) жоғарыда, астында немесе ойын алаңдары арасында сегізге дейін 16 пикселге дейін спрайттарды құра алады және спрайттар мен ойын алаңдары арасындағы немесе спрайттар арасындағы соқтығыстарды анықтайды. Бұл спрайттарда үш көрінетін түс және бір мөлдір түс болады. Қажет болса, жапсарлас спрайттарды біріктіріп, 15 түстік бір спрайт жасауға болады. Спрайт DMA деректерін спрайт арнасын құру үшін оның тізілімдерімен басқарылатын түрде оқиды, бұл спрайттардың тік бойда қайта қолданылуын қамтамасыз етеді. Екі тізбекті жазба арасында спрайт деректерін жаңартуға мүмкіндік беру үшін аралықта бір бос сканерлеу желісі болуы керек. Copper немесе процессор тізілімдерін манипуляциялау арқылы әрбір спрайт арнасы бір кадрда бірнеше рет қайта қолданылуы мүмкін, бұл кадрдағы жалпы спрайттар санын арттырады. Спрайт позиция тізілімдерін де сканерлеу желісі ішінде өзгертуге болады, бұл бір сканерлеу желісіндегі спрайттардың жалпы санын арттырады. Алайда, спрайт деректері немесе пішіні сканерлеу желісінде бір рет ғана алынады және өзгертілмейді. 1988 жылы шыққан Hybris ойыны сканерлеу желісінде спрайт позиция тізілімдерін пайдаланған алғашқы Amiga ойыны болды. Денис арнайы мәтіндік режимді қолдамайды. Соңында, Денис CIА-мен қатар тышқан/джойстик X/Y кірістерін басқаруға жауапты. Денис биттік жазықтықтар мен спрайт деректерін алады деген түсінік – бұл қарапайымдау. Агнус горизонтальды және вертикальды экран позициясының санағыштарын ұстап тұрады және DRAM оқу операцияларын бастайды. Денисте 16 пикселді салуға жеткілікті 16 биттік дерек сақтайтын бірнеше биттік жазықтық тізілімдері бар. Агнус 1 тізілімге жазуды бастағанда, барлық тізілімдер жеке ауыстыру тізілімдеріне ауыстырылады, онда пикселдер жасалады (сонымен бірге DRAM-нан жаңа мәндер жүктеледі). Денис ешқандай жад адресін білмейді.
In Extra HalfBrite (EHB), if a pixel is set on the sixth bitplane, the brightness of the regular 32 color pixel is halved. Early versions of the Amiga 1000 sold in the United States did not have the Extra HalfBrite mode. In Hold And Modify (HAM) mode, each 6 bit pixel is interpreted as two control bits and four data bits. The four possible permutations of control bits are "set", "modify red", "modify green" and "modify blue". With "set", the four data bits act like a regular 16 color display look up. With one of the "modify"s, the red, green or blue component of the previous pixel is modified to the data value, and the other two components are held from the previous pixel. This allows all 4096 colors on screen at once and is an example of lossy image compression in hardware. In dual playfield mode, instead of acting as a single screen, two "playfields" of eight colors each (three bitplanes each) are drawn on top of each other. They are independently scrollable and the background color of the top playfield "shines through" to the underlying playfield. There are two horizontal graphics resolutions, "lowres" with 140 ns pixels and "hires" with 70 ns pixels, with a default of 320 or 640 horizontal pixels wide without using overscan. As the pixel output is regulated by the main system clock, which is based directly on the NTSC colorburst clock, these sizes very nearly fill the width of a standard television with only a thin "underscan" border between the graphics and the screen border when compared to many other contemporary home computers, for an appearance closer to a games console but with finer detail. On top of this, Denise supports reasonably extensive overscan; technically modes with enough data for up to 400 or 800 pixels (+25%) may be specified, although this is only actually useful for scrolling and special effects that involve partial display of large graphics, as a separate hardware limit is met at 368 (or 736) pixels, which is the maximum that will fit between the end of one blanking period and the start of the next although it is unlikely that even this many pixels will be visible on any display other than a dedicated monitor that allows adjustment of horizontal scan width, as much of the image will, by design, disappear seamlessly behind the screen bezel (or, on LCDs, be cropped off at the edge of the panel). Because of the highly regular structure of the Amiga's timing in relation to scanlines and allocation of DMA resources to various uses besides normal "playfield" graphics, increased horizontal resolution is also a tradeoff between number of pixels and how many hardware sprites are available, as increasing the DMA slots dedicated to playfield video ends up stealing some (from 1 to 7 of the total 8) the sprite engine
Vertical resolution, without overscan, is 200 pixels for a 60 Hz NTSC Amiga or 256 for a 50 Hz PAL Amiga. This can be doubled using an interlaced display, and, as with horizontal resolution, increased using overscan, to a maximum of 241 (or 483) for NTSC, and 283 (or 567) for PAL (interlaced modes gaining one extra line as the maximum is determined by how many lines are taken from the available total by blanking and sync, and the total scanlines in non interlaced modes are half the original, broadcast spec odd numbered interlaced counts, rounded down). Starting with ECS, Denise was upgraded to support "Productivity" mode which allowed for 640x400 non interlaced albeit with only 4 colors. Denise can composite up to eight 16 pixel wide sprites per scan line (in automatic mode) on top, underneath, or between playfields, and detect collisions between sprites and the playfields or between sprites. These sprites have three visible colors and one transparent color. Optionally, adjacent pairs of sprites can be "attached" to make a single 15 color sprite. The Sprite DMA reads data to form a sprite channel as controlled by its registers, enabling the vertical reuse of sprites. There has to be one empty scanline in between two successive list entries to allow for updating sprite data. Using Copper or CPU register manipulations, each sprite channel can be reused multiple times in a single frame to increase the total sprites per frame. Sprite position registers may also be changed during a scanline, increasing the total number of sprites on a single scanline. However, the sprite data, or shape, is only fetched a single time per scanline and can't change. The first Amiga game to utilize the sprite re position registers during a scanline was Hybris released in 1988. The Denise chip does not support a dedicated text mode. Finally, Denise next to the CIAs is responsible for handling mouse/joystick X/Y inputs. The notion that Denise fetches bit plane and sprite data is a simplification. It is Agnus who is maintaining horizontal and vertical screen position counters and initiating the DRAM read operations. Denise has a number of bit plane registers which hold 16 bits of data each, enough to draw 16 pixels. When Agnus issues a write to register 1, all registers are then transferred into separate shift registers from which pixels are generated (at the same time new values are loaded from DRAM). Denise is not aware of any memory addresses either.
Паула
MOS Technology компаниясының Гленн Келлер жасаған Paula чипі үзіліс контроллері болып табылады, сонымен қатар аудио ойнату, дискета жетегін басқару, тізбекті порттың кіріс/шығысы және тышқан/джойстик батырмаларының екінші және үшінші сигналдары үшін логиканы қамтиды. Бұл логика Commodore компаниясының барлық Amiga модельдерінде өзгеріссіз сақталды.
Аудио
Паула төрт DMA басқарылатын 8 биттік PCM дыбыс арнасына ие. Екі дыбыс арнасы сол аудио шығысына, ал қалған екеуі оң аудио шығысына біріктіріледі, нәтижесінде стерео дыбыс шығысы пайда болады. Қолдау көрсетілетін жалғыз аппараттық үлгі форматы – 8 биттік сақталған екілік сан. Әр дыбыс арнасы тәуелсіз жиілікке және 6 биттік дыбыс деңгейін басқаруға (64 деңгей) ие. Ішкі аудио аппараттығы төрт күй машинасы арқылы іске асырылады, әрқайсысы сегіз түрлі күйге ие. Сонымен қатар, аппараттық жабдық арналар жұбындағы бір арнаның екінші арнаның периодын немесе амплитудасын модуляциялауына мүмкіндік береді. Amiga-да жиілік пен дыбысты жақсырақ басқару мүмкіндігі болғандықтан, бұл мүмкіндік сирек қолданылады, бірақ тремоло мен вибратоның әртүрлі түрлерін, тіпті FM синтезінің қарапайым әсерлерін жасау үшін пайдаланылуы мүмкін. Дыбысты шығарудың екі әдісі бар. Көбінесе DMA басқарылатын дыбыс қолданылады. Agnus талқылауында түсіндірілгендей, жадқа қол жеткізуге басымдық беріледі және төрт дыбыс арнасының әрқайсысы үшін сканерлеу жолына бір DMA ұясы бөлінеді. Стандартты NTSC немесе PAL дисплейінде DMA аудио ойнатуы секундына 28,867 (PAL: 28837) мәнге дейін, әр стерео шығыс үшін секундына 57674 (PAL: 57734) мәнге дейін шектеледі. ECS және AGA чипсеттерімен жоғары көлденең сканерлеу жылдамдығына ие бейне режимін пайдалану арқылы бұл жылдамдық арттырылуы мүмкін. Сонымен қатар, Паула жаңа үлгі қажет болған кезде, CPU-ға үзіліс жіберіп, төрт аудио шығыс буферінің кез келгеніне жаңа үлгіні жүктеуге сигнал бере алады. Бұл 57 кГц-ден жоғары шығыс жылдамдықтарына мүмкіндік береді және бағдарламалық араластыру арқылы қол жетімді дауыстардың санын арттырады. Amiga құрамында Паулаға сыртқы аналогты төмен өткізгіш сүзгі (қайта құру сүзгісі) бар. Сүзгі шамамен 3,3 кГц жиілігінде 12 дБ/окт Баттерворт төмен өткізгіш сүзгісі болып табылады. Сүзгі төрт арнаның барлығына біркелкі қолданылады. Amiga 1000-нан кейінгі модельдерде (Amiga 500-дің ең алғашқы нұсқасын қоспағанда), қуат LED-інің жарықтығы сүзгінің күйін көрсету үшін қолданылады. Сүзгі LED-тің жарықтығы қалыпты болғанда қосылады және күңгірттенгенде өшіріледі (алғашқы Amiga 500 модельдерінде LED толығымен өшеді). Amiga 1200-дан бұрын шыққан модельдерде де опционалды "LED фильтріне" қарамастан қосылатын статикалық "тонды тұтқа" типті төмен өткізгіш сүзгі бар. Бұл сүзгі 4,5 немесе 5 кГц кесу жиілігі бар 6 дБ/окт төмен өткізгіш сүзгісі болып табылады. Кейіннен әртүрлі деңгейде орнатылған екі арнаны біріктіру арқылы 14 биттік дыбысты ойнатуға мүмкіндік беретін бағдарламалық техника әзірленді. Нәтижесінде төрт 8 биттік арнаның орнына екі 14 биттік арна пайда болады. Бұл 16 биттік үлгідегі жоғары байтты максималды деңгейде, ал төменгі байтты минималды деңгейде ойнату арқылы жүзеге асырылады (екі диапазон да бір-бірімен сәйкес келеді, сондықтан төменгі байтты екі бит оңға жылдыру қажет). Биттік жылдыру операциясы CPU немесе блиттерге аз мөлшерде жүктеме береді, ал дәстүрлі 8 биттік ойнату толығымен DMA басқарылады. Бұл техника қайта бағытталатын аудио кіші жүйесі AHI-ге енгізілді, бұл үйлесімді қосымшаларға осы режимді түсінікті түрде пайдалануға мүмкіндік береді.
Сериялық порт
Серілік порт қарапайым, тек бағдарламаланған кіріс/шығыс арқылы жұмыс істейді және FIFO буфері жоқ. Дегенмен, кез келген бит жылдамдығын таңдауға болады, оның ішінде барлық стандартты жылдамдықтар, MIDI жылдамдығы, сондай-ақ өте жоғары, қолданушымен бапталған жылдамдықтар.
Чип атауларының шығу тегі
Agnus атауы "Address GeNerator UnitS" деген сөздерден шығарылған, себебі ол барлық мекенжай тізілімдерін сақтайды және арнайы чиптердің жадысына қол жеткізуді басқарады. Денис – Display ENabler сөзінің жасалма қысқартылған түрі, атау беру дәстүрін сақтау мақсатында қолданылған. Паула – Порт, Аудио, UART және Логика сөздерінің де ұқсас жасалма қысқартылған түрі, сонымен қатар бұл чипті жобалаған адамның қарындасы есіміден алынған.