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

User Tag List

Страница 13 из 21 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 208

Тема: EmuZGL alpha preview

  1. #121
    Master
    Регистрация
    11.04.2006
    Адрес
    Novosibirsk
    Сообщений
    966
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ARTi Посмотреть сообщение
    Все равно пришлось бы проверять, что в Z80 это осталось без изменений, хотя да - времени на проверку ушло бы гораздо меньше, чем на полноценное исследование "черного ящика". Можно, пожалуйста, ссылку?
    "Ссылка" осталась в бумажном виде в институтской методичке более-чем 10-летней давности по микропроцессорной технике. Но взята она была явно "не из головы", из какого-то справочного пособия. Я сейчас с трудом помню как она была зацеплена на АЛУ и как мультиплексировалась эта шина, но по моим воспоминаниям из блок-схемы было можно по крайней мере сделать предположение, что содержимое регистра М попадает в регистр F. Проверять конечно все равно бы пришлось, но уже не в слепую лазить, а вполне предметно. Нисколько не хотел огорчить товарища boo-boo, он большую работу сделал.

    Надо копать прежде всего в сторону i8080 и i8085, по ним в свое время документации много написали. Кстати, как мне кажется в даташите на z80 тоже есть эта блок-схема. Характерная, с большой шиной в виде широких стрелок крест-накрест.

    Кстати, если с memptr наблюдаются "аномалии" которые не уклаываются в нормальную логику, значит надо именно смотреть на это со стороны разработчика процессора. Там то как раз все должно быть логично, надо просто понимать как он работает "внутри".

    Добавлено через 8 минут
    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Для того чтобы написать эмулятор, надо иметь толковое описание устройства. Схема не всегда поможет, там есть элементы интегральной логики, из схемы вам никто не расскажет, как работает AY или ULA. То, что там было нарисовано на схеме процессора Z80, можете выкинуть в корзину и забыть.
    Коллега, я нисколько не хотел вас огорчать. Просто толковое описание устройства - это принципиальная схема. Если бы я начал вам давать определение производной функции в точке обьясняя на пальцах с терминологией из детского сада, я бы ушел с двумя баллами с экзамена.

    Так и тут. Есть словесное описание устройства для программистов, которые его программируют. И есть совершенно однозначное и недвусмысленое описание в виде его принципиальной схемы и спецификаций по которым оно изготовлено. Мне кажется что по крайней мере неразумно не обращать внимания на дополнительный источник информации. Сопоставляя схему и спецификацию кроме того можно узнать много интересного. Особенно как в данном случае, есть неполная специйикация, и есть неполная схема. Они взаимно дополняют друг друга.

    PS: я реверсил и делал дубликаты устройств на заказных микроконтроллерах не имея спецификации ни на что вообще. Не имея никаких схем и описаний (они были спрятаны вендором потому-что ноу хау и вообще тайна жуткая). Сложно, но можно :-) Знаю о чем говорю.
    Последний раз редактировалось ram_scan; 15.05.2008 в 16:49. Причина: Добавлено сообщение

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

  3. #122
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ARTi Посмотреть сообщение
    никаких коз
    вот и первая коза: сам-то сервис-монитор этим способом не пользуется. Причём по нажатию на V меняет fast на normal и наоборот, но у меня-то турба не отключается...


    Добавлено через 3 минуты
    Цитата Сообщение от ARTi Посмотреть сообщение
    не потрудитесь дочитать до конца
    я сначала не потрудился и дочитал. А потом подумал, что это за ноги такие, взял картинку микросхемы (их оказалось две совсем разных), и нашёл, что обозначения соответствуют по номерам ног линиям адреса. Ну допустим, A-это данные, а D-адрес, и я балерина, будем верить, что автор сего писания н перепул ничего, и если так помыслить, то биты идут сверху вниз от младшего бита к старшему. А можно было бы и без всяких ногов написать по-обще-человечески.
    Последний раз редактировалось Vladimir Kladov; 15.05.2008 в 17:06. Причина: Добавлено сообщение
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  4. #123
    Member Аватар для ARTi
    Регистрация
    06.05.2006
    Адрес
    Санкт-Петербург
    Сообщений
    127
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    вот и первая коза: сам-то сервис-монитор этим способом не пользуется. Причём по нажатию на V меняет fast на normal и наоборот, но у меня-то турба не отключается...
    А у Вас какой версии этот сервис-монитор? Просто из той же статьи и подобных других я так понял, что воротили что хотели от версии к версии.
    Не отключается турбо - т.е. монитор не пытается делать чтения порта #1FFD?

    PS: я реверсил и делал дубликаты устройств на заказных микроконтроллерах не имея спецификации ни на что вообще. Не имея никаких схем и описаний (они были спрятаны вендором потому-что ноу хау и вообще тайна жуткая). Сложно, но можно :-) Знаю о чем говорю.
    Да уж. Однако муторно это. Я понимаю крики души навроде "пишите нормальную документацию" - все же устаешь порой от постоянного поиска, сопоставления и фильтрации информации. Бывает даже все ясно и коротко написано, с красивыми схемами и понятными фразами, а потом выясняется, что на деле работает вообще не так, как написано. Бедные разработчики подобного криво документированного девайса небось постоянно икают, причем по-черному...

  5. #124
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ARTi Посмотреть сообщение
    А у Вас какой версии этот сервис-монитор? Просто из той же статьи и подобных других я так понял, что воротили что хотели от версии к версии.
    Не отключается турбо - т.е. монитор не пытается делать чтения порта #1FFD?
    В той, которой ещё нет. Нет, не пытается, кроме как на старте: 3 раза читает из 1FFD, 2 раза из 7FFD. Прикол-то в том, что при заходе в монитор по NMI, команду V понимает и выполняет, но при этом из этих портов вообще не читает. И даже у себя где-то сохраняет и показывает новое состояние.

    Второй непонятный (и неприятный) момент. Попытка выполнить RST 8;DB 88h;RET просто всё вешает. В unreal и spectaculator - сбрасывает. Где написано (начерчено, если на то пошло), что должно происходить по команде RST 8? Я реализовал впечатывание страницы сервисного пзу. Может, этого мало? Кто-нибудь под Скорпион что-нибудь программировал, его сервис-монитором пользовался, ау?
    Последний раз редактировалось Vladimir Kladov; 15.05.2008 в 21:02. Причина: в темноте печатал, клавиши не видно было
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  6. #125
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,556
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    181 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Sidewize @ SPiN 0.666, 48K & 128K mode

    Нифига не мигает.
    Прихожу без разрешения, сею смерть и разрушение...

  7. #126
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,574
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    1,207
    Поблагодарили
    394 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    вот и первая коза: сам-то сервис-монитор этим способом не пользуется. Причём по нажатию на V меняет fast на normal и наоборот, но у меня-то турба не отключается...
    Сервис-монитор всегда работает в режиме турбо! Если отключить турбо и выйти из монитора, то отключение турбы произойдёт только по выходу из теневика. А если снова войти в монитор, то турба врубится вновь и снова вырубится при выходе.
    Последний раз редактировалось CityAceE; 16.05.2008 в 04:08.
    С уважением, Станислав.

  8. #127
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Разобрался я с вызовом сервиса: не надо было впечатывать сервисную страницу ПЗУ, в скорпионе в отличие от западных сервисов предпочли исковеркать прошивки ПЗУ, нежели дешифровать команду rst8. А не работало без этого "воркараунда" потому, что я решил, что коли 7FFD залочен битом 5, то 1FFD тоже. После небольшой переделки кода заработало, и даже сервис-монитор обращается при переключении командой V на чтение к портам 1FFD/7FFD. Он потому и не обращался, что блокировка действовала (у меня почему-то всё время выходило, что я переходил в бэйсик-48, и порт оказывался залочен, в итоге всё не так работало. Теперь и из бэйсик-48 работает).

    Осталось невыясненным, каким образом монитор решает, может или не может плата работать в турбе. Если просто учесть ввод из 1FFD и 7FFD, то в турбо режим при старте он не переходит, и даже выключает турбу, если включить её с ресетом извне. И при заходе в сервис-монитор решает, что турба недоступна, cnhока с командой V - белыми буквами. Если же сделать как в KAY, ещё и выводом в бит 2 порта 1FFD управлять турбой, то комп оказывается в турбе с холодным стартом, и опция V доступна, и якобы переключается (и теперь обращается даже к портам 1FFD/7FFD на чстение). Но вот беда: реально комп оказыватся всё время в турбе, т.к. сервис во время рвботы постоянно пишет в 1FFD (10h и 12h), и по правилам KAY, как я их понял, это включает турбу.

    В общем, чтобы окончательно добить проблему с турбой в скорпе, мне надо как-то понять, как сервисное ПЗУ детектирует факт наличия турбы на плате. Если точно удастся это определить, то можно и воркараунд с каевским управлением турбы отключить, и всё тогда должно заработать.

    Добавлено через 2 минуты
    Цитата Сообщение от CityAceE Посмотреть сообщение
    Сервис-монитор всегда работает в режиме турбо! Если отключить турбо и выйти из монитора, то отключение турбы произойдёт только по выходу из теневика.
    Это я догадался. Вся проблема теперь в недоступности этой функции.

    Добавлено через 5 минут
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    Sidewize @ SPiN 0.666, 48K & 128K mode

    Нифига не мигает.
    Я тогда смотрел версия со сломанным кодом, адаптированную под отечетственные клоны. У меня теперь тоже не мигает. И как у них наблюдается инетресный эффект: иногда человечек становится на вертикальную линию короче.
    Последний раз редактировалось Vladimir Kladov; 16.05.2008 в 09:45. Причина: Добавлено сообщение
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  9. #128
    Activist Аватар для Higgins
    Регистрация
    03.05.2007
    Адрес
    St. Petersburg
    Сообщений
    297
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Сообщение от Higgins
    введение задержек на IR не могло ощутимо повлиять на производительность.

    Ну как же не могло? Вот например PUSH dd - pc:4,ir:1,sp-1:3,sp-2:3, в случае отсутствия задержек по IR (т.е. когда I <$40 или > $7F), совершенно эквивалентно pc:5,sp-1:3,sp-2:3. А в случае, когла задержка такая нужно, на экране всё равно снег. Да ещё и регенерация нарушена. Т.е. ситуация для Спектрума совершенно недопустимая. Если предположить, что включили ненадолго, чтобы просто получить снег, то никакого мультиколора всё равно не увидим в этот момент, опять же только снег. Нет, для целей эмуляции Спектрума эмулировать задержки по IR не надо.
    Давайте сначала отделим котлеты от мух. Прежде всего, речь идет о производительности эмулятора, не самих программ. И действительно, хоть сколько-нибудь грамотное введение задержек на IR мало мальски ощутимого замедления дать не может. Тем более, как вы сами пишете, явление это не частое.

    Потом, с чего вы взяли, что обновление памяти во время эффекта снега нарушено? В этом деле значение регистра I никакого значения не имеет.

    А что касается выбора того, что нужно и не нужно эмулировать, то это вопрос нетехнический. Я заранее готов принять любой взгляд на это.

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Вот, я реализовал правильно IO контенции, и всё пошло
    Отлично!
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  10. #129
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Добавлено через 6 минут
    Цитата Сообщение от Higgins Посмотреть сообщение
    грамотное введение задержек на IR мало мальски ощутимого замедления дать не может. Тем более, как вы сами пишете, явление это не частое.
    Подумайте, что говорите. Или я просто инкрементировал переменную на 5 вместо 4 (к примеру), или добавил код, который выбрал из таблицы значение по индексу от текущего такта и прибавил его, а потом ещё один инкремент. И независимо от того, какое значение I сейчас (или вы ещё один IF забабахать предложите? Во-первых, не быстрее, во-вторых, в ПЦ приведёт к тормозам из-за условного перехода. Да, я знаю, предсказание переходов... Фигня это предсказание, если речь идёт о нескольких сотнях мелких процедурок, которые выполняются для каждой инструкции, и практически каждый раз разная процедура). Да, на глазок замедление не заметишь, но, скажем, на глазок особенно и разницу от этого эффекта не ощутишь. В том же vectron эффект снега наблюдается секунды - успеет кто-нибудь разглядеть, насколько точно на экране размещаются "снежинки"? Я вот не успеваю. А сколько ещё таких игр/программ, которые задействуют снежок? 0? Ну, вот и всё моё основание.

    Добавлено через 4 часа 7 минут
    Обновление. Версия 212K. Успешно завершены разборки с вызовом сервис-монитора Скорпиона, с управлением из него турбо-режимом, турбо-режим переключается теперь программно в произвольном месте кадра, не ожидая завершения кадра. Исправлено добавление hobeta-файлов на диск (число файлов в каталоге не увеличивалось). Исправлены задержки по вводу-выводу в оригинальном Спектруме. Добавлены NMI to SERVICE (F8) и NMI to DOS (Magic button, F9). Добавлен монохромный режим отображения (маска цвета задаётся в ini-файле, т.е. это могут быть оттенки одного из 7 основных цветов, например, зелёного).
    Последний раз редактировалось Vladimir Kladov; 16.05.2008 в 22:04. Причина: Добавлено сообщение
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  11. #130
    Member Аватар для ARTi
    Регистрация
    06.05.2006
    Адрес
    Санкт-Петербург
    Сообщений
    127
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    Да, я знаю, предсказание переходов...
    Согласен, в таком деле предсказание переходов, простите за выражение, нюхает писю.
    Однако учет IR заставляет заметно пересмотреть эмуляцию команд вообще, что хотя вряд ли приведет к ускорению эмуляции, тем не менее, от этого может быть польза. Нам все время тыкали носом вот этим:
    Код:
            ORG 32768
            DI
            LD B,0
        L1: XOR A
            LD R,A
            DEC HL
            LD A,H
            OR L
            JR NZ,L1
            DJNZ L1
            EI
            RET
    А с учетом IR присовокупить данный эффект уже не так сложно.

    Только лично у меня вопрос: как в данном примере память теряет содержимое? В какой последовательности (побитно, побайтно), в какой конкретно области памяти и для каких моделей это актуально?
    Последний раз редактировалось ARTi; 17.05.2008 в 01:24.

Страница 13 из 21 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. MEMos alpha demo
    от jim в разделе Софт
    Ответов: 11
    Последнее: 16.09.2007, 14:18
  2. Quick Commander v4.00 (preview)
    от Знахарь в разделе Софт
    Ответов: 12
    Последнее: 11.11.2005, 13:40

Ваши права

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