Пока вы тут спорите об эмуляторах, я потиху начал разбираться с графикой, и как это всё прикрутить к Millfork.
Прошерстив кучу текстов и поковыряв исходники ASM, что генерит Graph2Font, получил такую картину:
https://i.postimg.cc/7Ym6cS8L/1.png
Для начала определяем режим работы Antic, для примера обычный текстовый режим 2.
Создадим anticMap (DisplayList) в виде array(byte), в котором опишем режим отображения блока из 8 линий.
Там же зададим карту с тайлами array(byte) charMap, где какой символ будет расположен (0x00 - пустое место).
И останется лишь задать адрес расположения в памяти $D402, $D403
Надо отдать должное MillFork без проблем даёт работать с «указателями» на расположение массива в памяти и даже больше
внутри самого массива можно указать на расположение в памяти (вот такая рекурсия).
Для чего это нужно я не совсем пока понял, но примерах, что мне встречались, DisplayList для Antic заканчивается JPM на начало самого себя.
Так не менее интересный момент. Когда я захотел использовать свой шрифт, то выяснился нюанс. Поскольку память ATARI устроена таким образом,
что адрес расположения шрифта задаётся только страшим байтом адреса в $D409, то это внесло некоторые ограничения и шрифт должен располагаться кратно 0x0400.
Встала дилемма, у нас-то не ассемблер и ALIGN не сделать. Однако, как выяснилось Millfork писали умные люди и уже обо всём позаботились. Достаточно при
создании массива указать выравнивание и проблема решена ;)
Ну и поигравшись с разными значениями ANTIC можно получить не менее умилительные шрифты ;)Код:array(byte) font align(0x0400) = [
https://i.postimg.cc/g2jJPrmH/2.png
p.s. с прерываниями я пока не заморачивался, хотел разобраться для начала с базовой частью.

