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

User Tag List

Страница 6 из 11 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 108

Тема: Эмулятор Специалиста - EmuStudio

  1. #51
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,181
    Спасибо Благодарностей отдано 
    264
    Спасибо Благодарностей получено 
    457
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А реально существовали программы, которые детектили тип цветной приставки по содержимому ПЗУ? Или это просто теоретические размышеления? (У меня в emu80 при переключении 2/4/8-цветных режимов содержимое ПЗУ, естественно, не меняется...)

  2. #52
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,566
    Спасибо Благодарностей отдано 
    1,225
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    686 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    А реально существовали программы, которые детектили тип цветной приставки по содержимому ПЗУ? Или это просто теоретические размышеления? (У меня в emu80 при переключении 2/4/8-цветных режимов содержимое ПЗУ, естественно, не меняется...)
    У меня тоже не меняется) Естественно)

  3. #53
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Кстати, вот именно поэтому, я и призывал включить в эмуляторы возможность оперативной замены ПЗУ. В моём эмуляторе Ориона (для MSDOS) в встроенном командном отладчике специально есть директива R - рестарт, как бы нажатие на кнопку сброс. Если ввести R с параметром не равным нулю, то грузится альтернативный ROM-BIOS (файл с именем ROM_F800.ALT, вместо обычного ROM_F800.DAT). Это удобно, если надо убедиться, что программа не работает с конкретным ПЗУ.

    А вообще, очень сомнительно, что оригинальные программы из исторического периода используют такой трюк. Т.к тогда 8-ми цветных программ просто не было. Потому-что схема на 8 цветов была опубликована лишь в августе 1990, когда уже распространилась мода собирать ZX и появился Орион, из-за чего популярность Специалиста в городах фатально упала. А так как программисты-любители были сосредоточены именно в крупных городах, то их число мгновенно упало до нуля.

    Потому основная масса пользователей Специалиста была с периферии, но среди них не было программистов. Потому что там лишь изолированые пользователи, лишённые возможности обмена опытом с другими и оттого не имеющие моральной поддержки и доступа к информации. Да и техническая грамотность населения ниже. Именно поэтому 99% программ Специалиста в XX веке написано именно в 80-тые. А в 1991 появился Специалист-MX, где цвет совсем иной, сигнал НП иной и ПЗУ другое. Потому новых игр с 1991 года вообще не появилось ни одной. Оцвечиванием старых программ Специалиста под 8 цветов и написанием новых занялись уже только в этом веке

    А точно узнать ответ на этот вопрос можно только практически, - проверкой всех монохромных программ с модифицированным ПЗУ.
    Последний раз редактировалось barsik; 06.03.2018 в 02:53.

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

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    А реально существовали программы, которые детектили тип цветной приставки по содержимому ПЗУ? Или это просто теоретические размышеления?
    Теоретические. Возможно обновлю свои конверсии игрушек, чтобы детектили. Придется вместе с ними правленый дамп пзу прикладывать.

  5. #55
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik
    Потому детектирование команды EI в ПЗУ следует считать большой ошибкой. Лучше в дамп каждой игры встраивать флаг, изменив который пользователь сам настроит игру под своё цветовое железо.
    Цитата Сообщение от ivagor Посмотреть сообщение
    Возможно обновлю свои конверсии игрушек, чтобы детектили
    Чтобы детектили как? Совсем не понял Вашу логику.

    В позапрошлом посте я утверждал, что так делать неправильно и вредно. И с этим все согласились. А в предыдущем посте я предположил, что так никто никогда и не делал. Т.е до сих пор, как и положено, не было привязки программ к конкретному коду в ПЗУ. Зачем же уже в новое время заниматься вредительством и сознательно портить имеющиеся программы?

    Да и какой в этом смысл? Существующим эмуляторам этим Вы не навредите. Да и тем пользователя, что будут прогонять Ваши программы привязанные к конкретному ПЗУ это тоже не навредит, т.к у них уже есть Ваши старые программы в нормальном виде.

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

    Я вообще не вижу проблемы, что её надо решать привязкой программ к коду ПЗУ и тратить на цели обнаружения схемы цвета прерывания.

    Да, это неприятно, что "горе-изобретатели" 8-ми цветной схемы сдуру не только загубили выход INTE, привели к тому, что команда DI, что есть в многих фирменных программах приводит к завису, но и сделали такой цвет несовместимым с базовым Специалистом, хотя всем ясно, что любые доработки должны быть совместимы (а тем более до такой степени, что вызывают улет программ).

    Да, неприятно, что в реале запуск 8-ми цветной программы на Специалисте с моно или 4-х цветным адаптером приводит к улёту. Но это проблема только для идиотов, которым лень сделать схему сброса НП такой же как в РК86 по сигналу /WR процессора, а не отдельным программно управляемым сигналом.

    Я не вижу необходимости ни детектировать цвет, ни вводить в игры вопросы типа "А у тебя не будет зависа, если эта программа использует 8 цветов?". Когда у пользователя 8-ми цветные игры будут улетать, он быстрее сделает себе правильный сигнал НП. Кстати, посмотрите, многие игры для XT, при старте задают вопросы о типе адаптера и никто не обиделся. Так, что проще всего ввести в игры вопрос при старте игры.

    Сейчас все эмуляторы Специалиста не эмулируют ни бит PC4, ни INTE. В противном случае, в них по DI или в цветных программах происходил бы улёт. И так это надо и оставить.

    И если уж так хочется детектировать 8 цветов, то вот Вам решение проблемы.

    Программно нельзя определить наличие 8-ми цветов в схеме цвета, но зато я знаю как грамотно детектировать незанятость бита PC4 под сигнал начальный пуск, чего достаточно для того, чтобы быть уверенным, что при запуске 8-ми цветной программы не произойдёт улёт. А то, что пользователь не увидит цветов, если нет соответствующей цветовой приставки, то это его проблемы.

    Для контроля сигнала НП надо сознательно вывести единицу на бит PC4, что отключит всё ОЗУ из адресного пространства и включит вместо него ПЗУ.

    Для детектирования использования бита PC4 в качестве НП, разместим в ОЗУ по адресу 024B, следующую программу:

    Код:
    .
    A024B:	LD	A,82H
    	LD	(0FF03H),A
    	CPL
    	LD	(0FF02H),A
    A0254:	RET
    и сделаем CALL на адрес 24B.

    При этом команда RET стоящая после команды LD (0FF02H),A, что выводит в PC4 единицу, расположена на адресе 0254. По включению в адресное пространство ПЗУ, на этом адресе оказывается подпрограмма C254, которая во всех разновидностях ПЗУ Специалиста одинакова: там записывается 82H по адресу FF03, что программирует весь порт C на вывод, делая PC4=0 и отключая тем самым ПЗУ.

    Там такой код (когда ПЗУ включено с нуля):

    Код:
    .
    A0254:	LD	A,82H
    	LD	(0FF03H),A
    	RET
    Таким образом, если ПЗУ включится вместо ОЗУ, то будут исполнены эти 3 команды, если же нет, то будет просто RET командой из ОЗУ. Если при возврате в регистре A содержится 82H, значит бит PC4 ППА занят на начальный сброс и 8-ми цветную программу стартовать нельзя.

    Вышеприведённую программу можно сократить до 3-х команд (с'экономив 4 байта), если задать режим ППА, где порт C работает на ввод. При этом сигнал на выходе PC4 тоже станет единицей (висящий в воздухе TTL-вход является единицей).

    Таким образом нет проблем.

    Вообще полезно было бы программно включать ПЗУ с адреса 0, но только до адреса 8000, хоть битом PC4, хоть выходом INTE. Чтобы ПЗУ включалось не на всё адресное пространство, а только в области ниже 8000, достаточно двух диодов. Тогда можно иметь 32 кб ПЗУ и разместить в нём набор подпрограмм для GUI, кучу оконных экранных драйверов, разные DOS и другие резидентные программы. Тогда занятие выхода INTE хотя бы приносило пользу.

    Полезно выделить этот вопрос о сигнале НП и борьбы с зависом при запуске 8-ми цветных программ на монохромном и 4-х цветном Специалисте в отдельную тему.
    Последний раз редактировалось barsik; 06.03.2018 в 14:22.

  6. #56
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,181
    Спасибо Благодарностей отдано 
    264
    Спасибо Благодарностей получено 
    457
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Возможно обновлю свои конверсии игрушек, чтобы детектили.
    Не надо детектить IMHO. Лучше 2 версии сделать при необходимости.

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

    По умолчанию

    У меня в основном спортивный интерес (хочу выкрутится и обойтись без добавления/замены файла пзу в эмуляторах). Старые версии игрушек (без детекта) в любом случае останутся.

  8. #58
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,566
    Спасибо Благодарностей отдано 
    1,225
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    686 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию EmuStudio v0.15g

    Обновил версию эмулятора (в первом посте) до 0.15g.

    • Поддерживаются цветные режимы 4 и 8 цветов
    • Сканлинии теперь можно отключить
    • Описание новых режимов в первом посте
    • В архив добавлены две цветные игры (а некоторые из тех, что были, тоже стали цветными).

    Не сделано:
    • ВВ55 все еще не обнуляет порты после записи в управляющий регистр. Т.к. нет тестов, проведенных на реале.

  9. #59
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    ВВ55 все еще не обнуляет порты после записи в управляющий регистр. Т.к. нет тестов, проведенных на реале.
    Какие нужны тесты на реале? Могу что-то проверить на Z80.

    В чём заключается неясность? При задании режима порта на вывод, на его выходах сразу возникают нули и они же оттуда и читаются..

    Цитата Сообщение от Titus Посмотреть сообщение
    Описание новых режимов в первом посте
    Почитал описание клавиатуры. Не очень понял что там с клавишей <НР>. В любом случае нужна полноценная эмуляция или возможность её включить. Судя по тексту, у Вас там полная или частичная "химия" с перехватом входных точек, хотя тогда непонятно как работают игры с прямым доступом к матрице.

    Цитата Сообщение от Titus Посмотреть сообщение
    Если вы нажали комбинацию клавиш с Shift'ом, для которой у Специалиста есть клавиша без Shift'а, сперва Специалисту будет передано отпускание Shift'а (хотя вы его и держите), затем только через 6 кадров, когда Специалист поймет, что Shift отпущен, будет передан символ '@'.
    Непонятная фраза.

    Не понял тут, что значит термин "Специалисту будет передано" и как Вы узнаете, что "Специалист уже понял", что Shift отпущен? Куда передано? Передано в рег.А на выходе из подпрограмм опроса клавиш, или как положено, имитировано соответствующим битом порта при его чтении.

    На всякий случай напомню как читается клавиатура. Очень простая подпрограмма опроса выдаёт код буквенного символа в нижнем регистре (т.е в диапазоне 40...5F). После выхода из опроса делается LD A,(PB) : AND 00000010B, и если получится 0 (что значит, что клавишу <НР> держат), то для символов с кодом более 40H и менее 80H делается XOR 20H (на самом деле прибавляется 20H, но грамотнее XOR), что переводит код в верхний регистр.

    По поводу удобства на PC-клавиатуре. Я эту проблему решал в 90-тые в эмуляторе ОРИОНА. Сделал соответствие клавиш по латинским надписям. Остальные клавиши по положению на РК-клавиатуре. Получилось и понятно и привычно. И решил задачу полноценного использования PC-клавиатуры в эмуляторе в программах специально странслированных для работы в эмуляторе. Тогда совпадают вообще все надписи. Это достигается тем, что в программе определяется, что это эмулятор и тогда по таблице коды возвращаемые п/п-ммой F81B перекодируются.

    Почему Вы клавишу TAB на PC-клавиатуре отдали под <ПВ>? Клавиша TAB должна быть клавишей <TAB>. Как иначе пользоваться редактором? А вот клавиша <ПВ> вообще, наоборот, совсем не нужна. Клавиша повтор была на антикварных ЭВМ (например на Apple-II первых моделей). Видимо А.Волков с какой-то рэтро-ЭВМ это и заимствовал.

    В нормальных мониторах Специалиста и драйверах сделан нормальный автоповтор, отчего клавиша <ПВ> вообще не используется. Алгоритм автоповтора такой. Если клавишу нажать, то сразу же возвращается код (именно по нажатию, а не отпусканию). А если удерживать клавишу более 0.75 секунды, то начинается автоповтор, быстрая выдача кода клавиши с периодом в 0.15...0.20 секунды.

    Скрытый текст


    По поводу клавиатуры, у Специалиста проблема с отсутствием клавиши <Control> необходимой в CP/M. Тут есть два выхода. Если есть DOS с дисководом, то МГ-вход не нужен. Тогда, что более удобно, клавиша <Control> вешается туда (на PB0). Если же МГ-вход нужен, то в качестве <Control> приходится использовать клавишу <НР>.

    Причём одновременно она же используется и в качестве <РУСЛАТ>. Тогда нажатие и отпускание <НР> меняет флаг RUSLAT драйвера. Если этот флаг выставлен, и нажата буквенная клавиша, то выдаются русские буквы КОИ-8 с кодами C0...FF. Если же удерживая <НР> нажать буквенную клавишу, то возращается код минус 40H, т.е <НР> при этом работает как <Control>. Но при этом неудобно вводить заглавные буквы, т.к клавиши SHIFT нет.
    [свернуть]
    Последний раз редактировалось barsik; 08.03.2018 в 05:22.

  10. #60
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,181
    Спасибо Благодарностей отдано 
    264
    Спасибо Благодарностей получено 
    457
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    barsik, на клавиатуре PC знак @ нажимается с шифтом, а на клавиатуре Специалиста - без. При нажатии Shift на клавиатуре PC в эмулятор передается это нажатие. Если потом нажимается "2" (@), то нужно сначала передать в эмулятор отжатие шифта, а уж потом саму "@". Titus говорит о том, что сразу это сделать не получается, нужна пауза. Похоже, что у меня из-за того же не работает как положено этот режим в "Специалисте", хотя в РК-86, например, все отлично.

Страница 6 из 11 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмулятор Союз-Неон ПК-11/16 - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 335
    Последнее: 01.04.2024, 11:33
  2. Эмулятор УКНЦ - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 1191
    Последнее: 15.02.2024, 13:32
  3. Эмулятор МС-0515 - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 143
    Последнее: 09.02.2023, 10:44
  4. Эмулятор ТИА-МЦ-1 EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 104
    Последнее: 15.01.2022, 01:17
  5. EmuStudio-ZX
    от Titus в разделе Эмуляторы
    Ответов: 597
    Последнее: 09.03.2020, 17:30

Ваши права

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