Цитата Сообщение от troosh Посмотреть сообщение
Только если по какой-то причине включаешь IM 2, когда таблица с адресами для него ещё не готова. Кроме того, нужно запрешать прерывания (но режим при этом меня не нужно), если зачем-то решил изменить адреса в этой таблице, - есть риск что прерывание придёт и один из байтов адреса будет иметь уже новое значение, а другой старое.
Да, это важное замечание. Я формирую таблицу до перехода в режим IM 2 и после этого её уже никогда не трогаю.

Но если я из IM 2 перейду в IM 0, а потом назад в IM 2, всё будет ок? Не нужно устанавливать регистр I или делать что-то подобное?

jerri, благодарю за советы как сделать спектрумную игру лучше. Но цель другая - кроссплатформенность. Покажи мне хотя бы один исходник игры для ZX, который ты, а ещё лучше - кто-то ещё, смог бы за вечерок-два осмыслить и переписать для другой платформы, желательно не-Z80-based. Можешь гнать хоть с мегабасика на пуребасик, хоть на чём хочешь. Притом хорошо если переписать понадобится ну 30% кода, ну ладно, 40%. Но не 100%. Ага, нету такого? То-то же. Самый кроссплатформенный язык Си в этом тебе тоже плохой помощник, потому что на нём пишут для ZX как на асме.

Моя конверсия Dash делается совсем по другим соображениям, это, скорее, исследовательский проект, чем игровой. Оригинальный его исходник на Си, я вам доложу, ещё та песня. Он настолько укоренён в DOS, что там ничего человеческого нет, ну почти

Затык №1. Не связанный с Обероном, jerri. Сегодня оптимизировал вывод тайла 16x12 точек и опять нашёл баг в SDCC. Подождём-с фикса. Эх, и вот так всё время.