Освой компьютер
Когда Вы пишете свою программу, особенно работающую с \"железом\" напрямую,
первым делом обязательно проверьте ее работоспособность на всех доступных
конфигурациях. AMIGA - это не БК, которая существует всего в двух-трех
фиксированных конфигурациях, имеет один-единственный процессор, раз и
навсегда фиксированную структуру видеопамяти, одну-единственную версию ПЗУ
для каждой конфигурации и так далее (кстати, замечу специально для бывших
и нынешних \"обитателей\" БК: архитектура использованного на БК процессора
DEC PDP-11 в какой-то мере послужила основой для архитектуры процессоров
Motorola 680x0, и они довольно похожи). И если такие подходы на
БК, как вызов процедур из ПЗУ по абсолютным адресам, прямая работа с
видеопамятью и т.п. проблем не вызывает и является вполне \"стандартным\"
подходом, то различных вариаций \"железных\" конфигураций Амиги (в том числе
во многом и несовместимых между собой) может быть множество. И между ними
есть только два связующих звена: чипсет и операционная система. Более
того, чипсет тоже не так постоянен и неизменен, как казалось бы. Поэтому
имеет смысл рассмотреть то, что изменяется. Процессор. В былые времена на Амиге применялся только один процессор -
68000. С тех пор у нас в руках оказалась вся \"гамма\" процессоров этой
серии - 68010, 68020, 68030, 68040 и 68060. В общем, все перечисленные
процессоры тоже совместимы \"снизу вверх\", но есть и некоторые тонкости.
Процессоры 68000 и 68EC020 имеют 24-битную шину адреса, а это означает,
что старший байт адреса попросту игнорируется. Хранение в этом байте
\"левых\" значений автоматически вызовет неработоспособность программы на
старших моделях процессоров. В программах иногда встречался даже такой
вариант: под хранение адреса в памяти отводилось всего три байта, а
старший, в лучшем случае, просто обнулялся. Очевидно, такая программа
(опять же в лучшем случае) на более современной конфигурации будет
работать только в младших 16 мегабайтах адресного пространства (а
fast-память частенько находится за этим пределом).
AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.
|