Цитата Сообщение от dwt
Очень интересуют ВСЕ особенности работы фирменного Спектрума: куда можно, куда нельзя размещать векторы прерываний; адреса начала/конца медленной/быстрой памяти, особенности работы экранной области, размер инта, и т.д. В общем - как можно больше информации о его работе. Нужно для правильного написания игры - хочется, чтобы она корректно работала на ВСЕХ машинах. Да, и еще хочется знать об особенностях работы музыкального процессора на фирменных Спектрумах, так как слышал (по-моему, читал это в каком-то Спектрофоне), что звучание несколько иное (что-то связано с частотой).
Привет, Ден !

Особенностей очень много !!! Кроме тормозящих страничек есть ещё разница в смещении начала экрана ! Кстати, торможение происходит только когда отоброжается SCREEN !!! То есть, если ты до начала отображения экрана повесиш плейер музыки в тормозяшую страничку, то ничего страшного не произойдёт ! На этом принципе работало много фирменных игр. Очень на высоком уровне писали такие люди как Pete Cooke или Batty !!! Самое страшное, если указать I на тормозящу память, например 41H и при этом сделать последовательность OTI, это встречаетс в TR-Dos'е, после чего запарывается и диск и память усеивается произвольными битами !!! А по-поводу разницы с +2 +3 и т.д., то они как братики, только добавлены всяческие интерфейсы. И ещё особенность, на фирмовом Speccy нельзя быстро опрашивать клавиатуру !!! На нём стоит дешифратор, и в саму клавиатуру заходит целая туча сигналов, и среди них есть твой IN, который является 0.001% всех этих сигналов. получается, что вероятность сбоя просто гигантская. Поэтому лучше всего многократно сделать IN, и по наибольшей вероятности повторений снятых данных выбрать нужные, после этой пачки желательно подождать пару сотен тактов. С клавиатурой есть ещё одна особенность, но я её точно не опишу, помню, что при чтении из 254-ого порта один из битов указывает на инверсию битов клавиш. Этот алгоритм точно есть в игре Saboteur-2, как, вообщем-то, у большенства игр фирмы Durrel. Как сейчас помню, что в своё время получил эту игру из Польши и не мог понять, почему на фирменном Speccy она работает, а на Pentagon'е не работала, думал что какая-то мудрёная защита, а оказалось всё очень просто. И ещё одна особенность, в доработанных Spectrum 48 до 128, в фирменных, вектор прерываний начинал сампроизвольно плавать в диапазоне 256-ти байт ! Поэтому нужно было стереть, апример, для 128-ого вектора кусок памяти от 32768 до 33024, к примеру числом 254. Тогда адрес прерывания будет 254+254*256. Изврат, но будет работать !!! Кстати, у меня стоит фирменный Speccy доработанный до 512, так что любые работы могу протестировать и в точности сказать что и где не так работает !!!