Программирование на Ассемблере
Конечно, можно обойтись и без библиотечных
функций, написав собственные, однако программирование custom-чипов
напрямую - задача весьма трудоемкая.
Подробнее о правомерности программирования custom-чипов напрямую Вы
можете прочитать в разделе 9. 1.3.2. Память. Для начала рассмотрим память Amiga A1000. Стандартная конфигурация этого
компьютера содержит 512 килобайт RAM, расположенные по адресам $00000-
$7FFFF, или 0-524287. Если память расширена до 1 мегабайта, первые 512
килобайт расположены там же, однако вторая половина памяти может
располагаться с любого адреса между $200000 и $9FFFFF. В системах AmigaDOS,
начиная с версии 1.2, используется специальная схема автоконфигурации, что
позволяет расширять память, не заботясь об адресах. Chip-память.
Custom-чипы обращаются к памяти независимо от процессора, что позволяет им
работать практически одновременно. Однако custom-чипы могут адресовать
только первые 512 килобайт памяти. Таким образом, графика и звуковые данные
должны размещаться в этой области памяти, которая получила название chip RAM.
Более новые модификации Amiga - A500+, A600 используют ECS (Enhanced
Chipset) вместо OCS (Original Chipset). ECS-чипы позволяют адресовать до
двух мегабайт chip-памяти. Hа A1200 и A4000, оснащенных AGA-чипсетом,
уже штатно стоит 2 мегабайта chip-памяти. Fast-память.
Память, к которой имеет доступ только центральный процессор, называется
fast RAM. Обычно fast RAM располагается по адресу $200000.
Размещение Fast RAM с адреса $200000 позволяет установить только до
восьми мегабайт памяти. На более современных системах с процессорами
68020 и выше Fast RAM может располагаться за пределами 16-мегабайтного
адресного пространства, и объем ее практически неограничен. Рассмотрим общую карту памяти Amiga: $000000-$07FFFF chip-память
$080000-$1FFFFF зарезервировано
$200000-$9FFFFF место для fast-памяти
$A00000-$BEFFFF зарезервировано
$BFD000-$BFDF00 PIA B (четные адреса)
$BFE001-$BFEF00 PIA C (нечетные адреса)
$C00000-$DEFFFF зарезервировано для расширений
$DFF000-$DFFFFF hardware-регистры
$E00000-$EFFFFF зарезервировано
$E80000-$EFFFFF порты расширений
$F00000-$F7FFFF зарезервировано
$F80000-$FFFFFF системное ПЗУ (ROM) Операционная система Amiga поддерживает многозадачность, так что место
размещения программ в оперативной памяти не фиксировано.
|