Важная информация

User Tag List

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 31 по 40 из 46

Тема: Особенности фирменного Спектрума

  1. #31
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Robus Посмотреть сообщение
    Какраз #7ffd, пошло от пентагона, поскольку создатели обломались посмотреть на устоявшиеся стандарты ... Так, что есть такая знаменитая игра как Target Renegade, где да же и не пахнет портом #7ffd, вот именно пентагоны, доработанные до 512 хорошо пролетали ... И на всякий случай, перед работой с простым портом #fd делаеш всего-то один OUT (#7ffd), с нужными битами в верхних двух битах, а после OUT (#fd) велеколепно работает, за исключением левых пентагонов !
    ЭТО в каком месте в таргете порт #fd - там полная адресация везде
    С уважением,
    Jerri / Red Triangle.

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32
    Member
    Регистрация
    02.03.2005
    Адрес
    Екатеринбург
    Сообщений
    133
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Robus Посмотреть сообщение
    Бывает ещё так, что длина инта слишком мала. Допустим вы делаете LDIR, и в этот момент пришёл инт. Который в тактах меньше тактов LDIR'а ... Тогда инт пропустится ...
    Уточняю, что длина INT-а должна быть не менее чем длина самой длинной команды, а это, вроде бы, 23 такта.
    По поводу LDIR-а, т.к. он может оперироват большущими блоками и выполняться куда больше чем 23 такта, то выполняется он так:
    1. читается код команды (LDIR) из памяти
    2. читается байт из (HL)
    3. пишется байт в (DE)
    4. увеличивается HL, DE, уменьшается BC
    5. если BC = 0 то PC = PC + 2
    6. Анализируется INT, если = 0 то выполняется прерывание

    Таким образом, когда BC <> 0 счетчик PC не изменяется и повторно читается та же самая команда (LDIR) из памяти.

  4. #33
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexCrush Посмотреть сообщение
    1. читается код команды (LDIR) из памяти
    2. читается байт из (HL)
    3. пишется байт в (DE)
    4. увеличивается HL, DE, уменьшается BC
    5. если BC = 0 то PC = PC + 2
    6. Анализируется INT, если = 0 то выполняется прерывание
    Не совсем.

    1. Запрещаются прерывания
    2. Читается префикс команды
    3. Читается команда
    4. Разрешаются прерывания
    5. Выполняются пункты 2-4 из твоего списка
    6. Если BC != 0, то PC -= 2

  5. #34
    Member
    Регистрация
    02.03.2005
    Адрес
    Екатеринбург
    Сообщений
    133
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Не совсем.
    Может и так, сейчас уж точно не помню.
    В любом случае, суть в том, что LDIR выполняется не непрерывным блоком а как большое кол-во LDI, между которыми возможно прерывание.
    Сорри что увел тему немного в сторону от особенностей фирменного спека
    С новым годом всех!

  6. #35
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,842
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,814
    Поблагодарили
    1,043 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    1. Запрещаются прерывания
    2. Читается префикс команды
    3. Читается команда
    4. Разрешаются прерывания
    5. Выполняются пункты 2-4 из твоего списка
    6. Если BC != 0, то PC -= 2
    т.е. прерывание может быть обработано после выборки команды, но до ее выполнения? Можно ссылочку на источник информации? Просто в Z80 Family CPU User Manual (um0080.pdf) написано (Timing / Interrupt Request/Acknowledge Cycle): The CPU samples the interrupt signal (/INT) with the rising edge of the last clock cycle at the end of any instruction.

  7. #36
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    т.е. прерывание может быть обработано после выборки команды, но до ее выполнения?
    Ммм... Наврал, похоже. Прерывания разрешаются в конце действа. Точнее, после выполнения всех действий команды принимается в расчет установленный сигнал на ноге INT. С этим и связано упомянутое ранее требование к длине инта- если сигнал на ноге пропадет до конца выполнения текущей команды, то прерывание не засчитается. Вроде так...

  8. #37
    Master
    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Вроде так...
    Только так !!!

    У фирменного спека есть прекрасная особенность ... Если сделать HALT в момент торможения, то есть когда отрисовывается пиксель экрана, то число тактов при окончании исполнения HALT будет делиться на 4 !!! В итоге, если вы хотите сделаьть мультиколорный эффект, то просто делаете один HALT в середине отрисовки экрана, и вы ввалитесь в прерывание чётко с первыйм тактом самого инта. Таким образом вы всегда будете синхронизированы с лучём, и можете рисовать на брдюре и на экране одновременно, - пиксель в пиксель ... На пентагоне такое сделать нельзя !!! Всегда будет несовпадение как минимум на 4 пикселя !!!

    Original Speccy - BEST ...
    AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.

  9. #38
    Guru Аватар для bigral
    Регистрация
    12.07.2006
    Адрес
    г. Киев, Украина
    Сообщений
    2,147
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    82 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Robus Посмотреть сообщение
    У фирменного спека есть прекрасная особенность ... Если сделать HALT в момент торможения, то есть когда отрисовывается пиксель экрана, то число тактов при окончании исполнения HALT будет делиться на 4 !!! В итоге, если вы хотите сделаьть мультиколорный эффект, то просто делаете один HALT в середине отрисовки экрана, и вы ввалитесь в прерывание чётко с первыйм тактом самого инта. Таким образом вы всегда будете синхронизированы с лучём, и можете рисовать на брдюре и на экране одновременно, - пиксель в пиксель ... На пентагоне такое сделать нельзя !!! Всегда будет несовпадение как минимум на 4 пикселя !!! Original Speccy - BEST ...
    Hi Robus, вот чего никогда не мог сделать так это понять что ты хотел сказать с первого раза

    Вот и тут пришлось мне 10 минут думать над этой фразой. На скоко я понимаю речь тут идет о том что если сделать HALT до того как ULA прочитает последний байт в текущем кадре то схема торможения проца выровняет последующие выполнения операций NOP таким образом что при поступлении сигнала прерывания процессор начнет выполнять процедуру обработчик прерывания всегда в один и тот же такт по отношению к кадровому синхроимпульсу и самому сигналу прерывания. Если же сденать HALT в нижней части border-a под paper-ом то никакого торможения и выравнивания выполнения NOP-ов не произойдет и учитывая что сигнал прерывания может прийти на 1,2,3,4 такте команды NOP можно ожидать различное время начала выполнения процедуры обработчика прерывания а значит и срыв синхронизации эфектов multicolora.

    Но вот вопрос как по другому можно синхронизироватся? Порт 0xff ?

  10. #39
    Banned Аватар для Black_Cat
    Регистрация
    15.06.2006
    Адрес
    S.Pb
    Сообщений
    5,791
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    как по другому можно синхронизироватся? Порт 0xff ?
    #FF ниже и выше экрана тебе аналогично не поможет

  11. #40
    Master
    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    Но вот вопрос как по другому можно синхронизироватся?
    Пентагон прекрасная штука ... Если бы можно было как-то кинхронизироваться на нём, то я бы его считал лучшим из спеков ...
    AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Национальный Фонд Спектрума
    от copperfeet в разделе Люди
    Ответов: 49
    Последнее: 04.05.2008, 08:58
  2. Firmware для Спектрума
    от CityAceE в разделе Оси
    Ответов: 30
    Последнее: 25.07.2005, 10:14
  3. Продаются 2 модема для спектрума
    от Alpha в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 23.03.2005, 02:40
  4. Ремонт фирменного 48-го
    от kgbplus в разделе Зарубежные модели
    Ответов: 2
    Последнее: 11.03.2005, 20:43

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •