Речь, полагаю, не про одну страницу, а единственное окно для смены страниц. Так правильней.
Да, именно музыку и прочее распихивают по страничкам, переключаемым по ходу программы. Музон, по сути - отдельная задача, тут проблем нет.
И это тоже: тексты и любая графика, не относящаяся к самому игровому процессу, выпихивается в дополнительные страницы.
Задача программиста - высвободить максимум памяти в "статичной" памяти, т.е. адресах от экрана и до #C000 (окна переключаемых страниц).
Нет, в старых играх - том же Диззи - все неплохо укладывается даже в 48к, поскольку просчитано заранее, да и анимация там небогатая.
Хоть дракон и огромный, но фаз спрайтов у него немного. Плюс могут применяться всякие хитрости для экономии памяти спрайтов.
Тут сразу стоит определиться: используем второй экран или нет. Если нет - проблем ноль, из любой страницы можно кидать на основной экран.
Если используем - начинаются трудности. Напрямую через одно окно вывод никак не сделать, поэтому обычно перебрасывают в буфер, а потом уже во 2-й экран.
Да, это дополнительные времязатраты, но проблема исчезает. А конкретная реализация уже зависит от программиста и поставленной задачи.
Именно так, основной код должен находиться выше экрана и ниже банка переключения страниц. Все, что можно выкинуть в страницы - туда и пихают.
Ну, скажем так, подпрограммы логики особо места не займут. Но при желании любые обработчики событий можно распихать по страничкам и вызывать как подпрограммы.
В основной памяти оставляем лишь то, что никак не передвинуть: стек, обработчик прерываний, драйвер верхней памяти, процедуры работы с экраном.
Последнее и будет жрать основную часть памяти, если это раскрытые для быстродействия циклы. Плюс зачастую таблицы с данными.
В общем, адресовать "больше, чем 48К" не получится по физическим причинам. Для этого и придумали страничную адресацию.



Ответить с цитированием