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

User Tag List

Страница 4 из 4 ПерваяПервая 1234
Показано с 31 по 37 из 37

Тема: ZXNEXT

  1. #31
    Guru Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    8,231
    Благодарностей: 3050
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Black_Cat Посмотреть сообщение
    Единственное в какойто мере оправданное применение 6845 в Спеке может быть в видеосканере по типу как в ZX-NEXT'е, о чём я тебе собсно и сказал . Ума хватит сделать - дык и сделай , а назло или ещё как - мне побарабану
    Ну как по твоему его хочу пользовать, если ты просматривал мои потуги в теме про 6845 контроллер, он собственно и занимается генерацией видео. А здесь говоря про идеи, это подразумевались - как програмные алгоритмы, так и схемотехнические. Если тебе интересно пообщаться о применении 6845 в Спеке, то есть на то тема специальная. А здесь вроде тема про другое.

    Добавлено через 1 минуту
    Цитата Сообщение от Keeper Посмотреть сообщение
    Я немного посмотрел прошивку и не понял ровным счетом ничего Пробовал загружать в кеш в unreale но в начале получил безконечный цикл... Я пока думаю чего б придумать
    Я думаю, там надо глобально дизассемблировать для начала, хотябы получить исходный текст, чтобы совместно со схемой уже рассматривать.
    Последний раз редактировалось Mick; 04.05.2008 в 21:14. Причина: Добавлено сообщение
    Сайт поддержки моих изделий - http://micklab.ru/
    Форум поддержки - http://forum.tslabs.info/viewforum.php?f=51

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

  3. #32
    Master Аватар для Keeper
    Регистрация
    16.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Благодарностей: 372
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    Я думаю, там надо глобально дизассемблировать для начала, хотябы получить исходный текст, чтобы совместно со схемой уже рассматривать.
    Думаю что лучше разбираться постепенно. А то вот разные подводные камушки будут попадаться...


    Код:
    0000    LD        SP,HL
    0001    LD        A,I
    0003    RETNZ
    0004    IM        2
    0006    LD        B,A
    0007    DJNZ      0008     тут dnjz идет на следующий байт
    0008    RST38               который 0xFF - при дизассемблировании
                                      будет бок, все равно дамп смотреть надо
    
    0038    JP        (HL)       hl = 0

  4. #33
    Guru Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    8,231
    Благодарностей: 3050
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Keeper Посмотреть сообщение
    Думаю что лучше разбираться постепенно. А то вот разные подводные камушки будут попадаться...


    Код:
    0000    LD        SP,HL
    0001    LD        A,I
    0003    RETNZ
    0004    IM        2
    0006    LD        B,A
    0007    DJNZ      0008     тут dnjz идет на следующий байт
    0008    RST38               который 0xFF - при дизассемблировании
                                      будет бок, все равно дамп смотреть надо
    
    0038    JP        (HL)       hl = 0


    Ты не забывай, что еще надо отслеживать M1, а это значит что байт данных параметра для DJNZ будет из другой области памяти, а точнее из 408h => FEh. Посему может и непонятно. Они же хитрецы не звбывай

    Так что эмулятор вряд ли поможет, тут наверное ручками придется.


    P.S. Только что заметил неточность, вместо байта EFh, написанного мной должен быть байт FEh. Исправил это недоразумение. Извиняюсь
    Последний раз редактировалось Mick; 05.05.2008 в 14:45.
    Сайт поддержки моих изделий - http://micklab.ru/
    Форум поддержки - http://forum.tslabs.info/viewforum.php?f=51

  5. #34
    Master Аватар для Conan
    Регистрация
    22.01.2005
    Адрес
    Moscow
    Сообщений
    1,995
    Благодарностей: 341
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    надо отслеживать M1, а это значит что байт данных параметра для DJNZ будет из другой области памяти, а точнее из 408h => EFh.
    Правильное замечание. Но прежде всего надо осознать несколько ключевых подходов к программированию в такой системе:
    1. Всегда следим за шиной адреса. Ибо все, что на нее попадает, может либо вызвать NMI, либо отразиться на экране. То есть надо представлять временные диаграммы (с точки зрения тактов и ША) для КАЖДОЙ КОММАНДЫ.
    2. Ключевым элементом является переключение ША из «0» в «1» и наоборот. С первого взгляда вроде бы все просто: любой JP или JR. По факту сразу же вылезает IR. Поэтому единственной парой команд (из всех, что есть у Z80) которые могут использоваться для этого будет:
    LD I,A
    JP (HL)
    Других однозначных последовательностей не существует. Разумеется, перед подобным переходом надо подготовить значения в регистрах.
    3. В видеопроцессоре нет ОЗУ. Это значит, что все динамические данные передаются только через регистры Z80. Насколько я помню, задействованы практически полностью оба набора (основной и альтернативный).
    4. По поводу возникновения NMI подробно расспросил JTN, ответы есть в теме «Расскажите про ZX Next».
    5. Видеопроцессор регенерирует ОЗУ. Это значит, что даже вне экранных адресов он перебирает адреса в ОЗУ. Перед тем, как будет сгенерирован Reset для основного Z80, видеопроцессор уже проводит несколько (не помню уже сколько) циклов регенерации.
    6. Надо уточнить (уже не помню) изначальные значения регистров, включая флаговый.

  6. #35
    Master Аватар для Keeper
    Регистрация
    16.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Благодарностей: 372
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    Ты не забывай, что еще надо отслеживать M1, а это значит что байт данных параметра для DJNZ будет из другой области памяти, а точнее из 408h => EFh. Посему может и непонятно. Они же хитрецы не звбывай

    Так что эмулятор вряд ли поможет, тут наверное ручками придется.
    Вот тут я долго сомневался, я почему-то решил что /M1 генерится для всех байтов команды а не только для КОП. Спасибо.

    Извиняюсь за тормоза, но я последний раз использовал асм Z80 в году эдак 2002 (xas rulez!!!) По-этому буду постепенно вспоминать

    Эмулятор поможет т.к. для развернутой прошивки адрес данных получается добавлением 1024 к адресу следующего(их) байтов Увы, удобней врядли получится

    Добавлено через 10 минут
    Цитата Сообщение от Conan Посмотреть сообщение
    1. Всегда следим за шиной адреса. Ибо все, что на нее попадает, может либо вызвать NMI, либо отразиться на экране. То есть надо представлять временные диаграммы (с точки зрения тактов и ША) для КАЖДОЙ КОММАНДЫ.
    Я пока в первых байтах прошивки, там вроде NMI и INT не грозят

    Я ещё повторю вопросы, интересно для общего развития: зачем /HALT CPU завели на D7 VCPU и зачем инверсный Q4 завели на D0 VCPU? Про NMI вы написали что это отдельная история, которую хотелось бы прочитать, хотя я снова перечитаю тему "Расскажите про ZX-NEXT" может я что-то пропустил.
    Последний раз редактировалось Keeper; 05.05.2008 в 00:15. Причина: Добавлено сообщение

  7. #36
    Master Аватар для Conan
    Регистрация
    22.01.2005
    Адрес
    Moscow
    Сообщений
    1,995
    Благодарностей: 341
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Keeper Посмотреть сообщение
    зачем /HALT CPU завели на D7 VCPU
    Это сделано для управления видеопроцессором. Через эту цепочку можно передавать различные команды в виде последовательностей HALT с CPU. Изначально планировалось использовать для запроса номера прошивки (как часть защиты, связывая номера в NEXT ROM Video и ROM CPU). Но потом от этого отказались, хотя кусок кода возможно и остался в ПЗУ. Практически использовалось для задачи видеорежима, когда требовалось переключение между 640*200 и 640*400 (интерлейс). Что зашито в конкретной ПЗУ сказать сложно.
    Цитата Сообщение от Keeper Посмотреть сообщение
    зачем инверсный Q4 завели на D0 VCPU? Про NMI вы написали что это отдельная история, которую хотелось бы прочитать, хотя я снова перечитаю тему "Расскажите про ZX-NEXT" может я что-то пропустил.
    Q4 заведен на D0 VPU для синхронизации. Дело в том, что видеопроцессор должен быть синхронизирован до такта с другими элементами компьютера (например, записью данных в регистр атрибутов и сдвиговой регистр пикселей). Алгоритм синхронизации очень простой, нужно лишь обнаружить момент переключения Q4 с помощью IN, а затем в зависимости от фазы выровнять кол-во тактов до определенного места в программе.
    Есть и вторая функция у Q4: VPU отслеживает его (блокировку) для перехода в CGA (640*200).
    Цитата Сообщение от Keeper Посмотреть сообщение
    Про NMI вы написали что это отдельная история, которую хотелось бы прочитать, хотя я снова перечитаю тему "Расскажите про ZX-NEXT" может я что-то пропустил.
    Про NMI вот тут JTN спрашивал:
    http://zx.pk.ru/showpost.php?p=3717&postcount=60

    P.S. INT на VPUприходит постоянно, как обрабатывается сказать не могу – код не я готовил. Изначально в основном цикле прерывания были запрещены. Скорее всего, только при старте используется.

  8. #37
    Guru Аватар для fan
    Регистрация
    11.02.2005
    Адрес
    Москва
    Сообщений
    3,783
    Благодарностей: 332
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Схемка с описанием .
    Прошивки тут .
    Вложения Вложения
    • Тип файла: rar zxnext.rar (593.0 Кб, Просмотров: 324)
    Последний раз редактировалось fan; 25.08.2011 в 05:51.
    Спек128 - испанская выдумка, навязанная Сэру Клайву. © Shaos
    REAL HARDWARE MUST LIVE ! - http://SBLive.narod.ru/ZX-Spectrum/

  9. Эти 2 пользователя(ей) поблагодарили fan за это полезное сообщение:
    perestoronin (23.05.2013), ZXFanat (31.07.2011)

Страница 4 из 4 ПерваяПервая 1234

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

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

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

Ваши права

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