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

User Tag List

Страница 21 из 98 ПерваяПервая ... 171819202122232425 ... ПоследняяПоследняя
Показано с 201 по 210 из 980

Тема: Emu80 v.4

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

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Понятно, что из-за отсутствия MODE 2, прерывания в машинах на КР580 нельзя использовать для незаметного опроса клавиатуры
    Небольшой комментарий: можно, если клавиатуру опрашивает сама программа. Я так делал на Партнере - полностью фоновый опрос клавиатуры, без необходимости терять на это драгоценное процессорное время. Особенно здорово при скроллинге стрелочками - если процессор успевает перерисовывать экран за время автоповтора клавиш, скорость автоповтора не снижается...

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

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Цитата Сообщение от barsik
    Понятно, что из-за отсутствия MODE 2, прерывания в машинах на КР580 нельзя использовать для незаметного опроса клавиатуры
    можно, если клавиатуру опрашивает сама программа
    Имелось в виду то, что при ОЗУ с 0 и отсутствии контроллера прерываний, прерывания нельзя использовать в системном ПО, т.е в ROM-BIOS и DOS работающей в старших адресах, т.к прерывания требуют постоянного присутствия какой-то ерунды по адресу 38.

    Но конечно в одной конкретной игре прерывания выравнивают темп игры и делают мгновенной реакцию на нажатия.

    Цитата Сообщение от Pyk Посмотреть сообщение
    без необходимости терять на это драгоценное процессорное время.
    Это невозможно. Общие потери процессорного времени при опросе клавиатуры по прерываниям могут даже увеличиться. Хотя визуально и в скорости реакции на клавиши игра при прерываниях выигрывает относительно версии с программным опросом.

    Преимущество клавиатуры на прерываниях в том, что игра тормозится хоть и немного больше, но зато равномерно при прогоне всех участков программы. Без прерываний в тех местах программы, где CALL F81B вызывается часто, - торможение большее, а в тех участках кода, где это делается редко, - торможение меньшее. Программисту трудно добиться баланса, чтобы темп игры не колебался, общее торможение не упало бы чрезмерно, а реакция на клавиши осталась удовлетворительной.
    Последний раз редактировалось barsik; 24.12.2017 в 14:00.

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

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Общие потери процессорного времени при опросе клавиатуры по прерываниям могут даже увеличиться
    Я имел в виду конкретно замену F803, где в подпрограмме Монитора задержка автоповтора и писк при нажатии реализованы с помощью циклов. Прерывания в данном случае позволили эффективно использовать это время в основной программе.

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

    По умолчанию

    перенос из темы "игра Элитэ на КР580", т.к там это оффтопик.

    Цитата Сообщение от Pyk
    можно... добавить прерывания в Специалист... назвать как-нибудь эту доработку (условно "Специалист 2017"), опубликовать спецификацию
    Новую платформу из-за нескольких резисторов объявлять не нужно. Чем больше платформ, тем меньше на них пользователей. Зачем платформа, если на ней будет только её автор? Пользователей СПЕЦИАЛИСТА осталось 3 человека (надеюсь после настройки плат новоделов станет чуть больше).

    Цитата Сообщение от Pyk
    Тогда если я или автор другого эмулятора заявит поддержку "Специалиста 2017"
    Вот смотрим эмулятор АМИГИ. В нём можно поменять кучу всего, процессоры, периферийные БИС, ROM, память, дисководы, винчестер. Всё настраивается во вкладках. Так сложилось оттого, что было много моделей и не проблема смена комплектации в конкретной машине.

    Почему же в отечественных эмуляторах надо вводить платформы. Нужен один эмулятор, но в нём вкладки, где всё дополнительное можно задать. Для СПЕЦИАЛИСТА тоже было бы удобно задавать во вкладках:

    - 3 типа цвета и один монохром
    - конструкция ПЗУ (многостраничное или нет)
    - выбрать содержимое ПЗУ
    - определить ОЗУ или ПЗУ в верхней области выше ПЗУ C000...CFFF
    - выбрать тип КНГМД
    - задать винчестер
    - задать контроллер на 'microSD'
    - задать ROM-диск и его содержимое
    - задать число доп.банок ОЗУ
    - задать внешний электронный диск
    - задать наличие прерываний
    - задать тиккер на МГ-входе
    - задать ВИ53 на 3 канала

    Так удобнее, чем какие-то платформы. Каждый сможет быстро выбрать вариант для отладки своей программы под своё конкретное железо. У пользователя может быть сделана всего одна или две доработки.

    Если же делать платформы, то их число перевалит за тысячу. Из школы мы знаем, что число сочетаний равно "n-факториал". Считайте. Потому вкладки удобнее, чем платформы задаваемые конфиг-файлами. Но это лишь предложение исходя из того, как это делается в иностранных эмуляторах.

    Предположительно реализация не создаст особых проблем, т.к каждое устройство в Вашем эмуляторе задается несколькими строчками в текстовом файле. Потому перенастройка во вкладках просто заканчивается записью соответствующего текстового файла, избавляя пользователя вникать в устройсво конфиг-файлов разных эмуляторов. К тому же часть железа уже и так выбирается во вкладках (например цвет 4/8/монохром).
    Последний раз редактировалось barsik; 19.12.2017 в 12:45.

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

    По умолчанию

    barsik, спасибо, я понял идею (в этом плане хорошо организованы настройки в эмуляторе Orion/Z от Error404).
    В планах подобное есть, но, увы, не в самых ближайших.

    Конечно, здесь все равно есть тонкая грань между существовавшими общепринятыми расширениями и современными предложениями вроде прерываний, пока не поддержанными ни софтом, ни железом. Но это все обсуждаемо и решаемо - можно вынести их в отдельную вкладку экспериментальных настроек и т.п.

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

    По умолчанию

    Недавно мне понадобился эмулятор СПЕЦИАЛИСТА работающий с РК-КНГМД. И естественно, выбор пал на великолепный много-платформенный эмулятор EMU80 от Pyk.

    В попытке проверить RAMDOS, RAMDOS-Commander, защищённые от копирования программы, их инсталляторы, МГ-компоновщик и SP-COPY, я столкнулся с проблемой загрузить программу с автостартом. На СПЕЦИАЛИСТЕ это делается без всяких директив, просто по сбросу.

    Возможно, чтобы разобраться в использовании эмулятора мне нехватило ума и информации. Но т.к инструкции нет, то в итоге я вообще не смог найти в эмуляторе EMU80 возможности загрузить даже одноблочный файл по сбросу с автостартом.

    В итоге пришёл к выводу, что такой возможности в эмуляторе EMU80 вообще нет из-за использованного алгоритма. А даже если бы такая возможность была, это всё-равно не позволило бы грузить МГ-программы защищённые от копирования и даже просто многоблочные программы. Т.к принцип эмуляции магнитофона здесь основан на перехвате единственной подпрограммы LDBYTE (C377, С806). Причём предполагается, что эта подпрограмма вызывается из подпрограммы ввода массива, в которой передаются адреса для ввода блока, а в конце массива следует контрольная сумма.

    Но в многоблочных программах только первый блок, что является программным загрузчиком остальных блоков, идёт в таком формате, а остальные блоки не содержат ни адресов, ни контрольных сумм (т.к первичный загрузчик их и без того знает).

    При такой концепции эмуляции магнитофона, магнитофон эмулируется не в реальном времени, оттого ни МГ-константы ввода/вывода CLD и CSV, ни скорость CPU вообще не играют роли, а в самом ПЗУ весь код подпрограммы ввода байта можно забить любой информацией (это даёт удобство при модификациях ROM-BIOS специально для эмулятора).

    А вот эмуляция обоих типов дисководов в эмуляторе EMU80 сделана полноценно, в реальном времени. Поэтому, кстати, такт эмулируемого CPU в конфиге понижать нельзя, - перестаёт работать дисковод. Потому в EMU80 работают форматёры дисков, а в EMU форматёры не работают.

    Но даже и в такой концепции, полагаю, нет проблемы сделать и автостарт одного блока и ввод многоблочных программ. Но надо вводить все байты идущие с ленты. Пилотоны можно опустить, а вот все синхробайты E6, необходимы. Таким образом именно отсутствие в формате RKS байта E6 приводит к неприятностям. Именно по этой причине в формате GAM все байты E6 были сохранены.

    При этом желательно эмулировать подпрограмму C377 с той же скоростью, с какой она прогоняется в реальной ЭВМ (для чего надо "посмотреть" на CLD в ячейке 8FFF). Однако концепция перехвата LDBYTE не позволит грузить МГ-файлы использующие нестандартный низкоуровневый формат записи. Потому имеющиеся возможности ленинградского монитора по чтению МГ-формата ZX-Spectrum и МГ-формата MSX не могут работать в эмуляторе EMU80.

    А пока процедура ввода по первому вызову C377 просто открывает файл с заданным именем, интерпретирует первые 4 байта как адреса блока и считав файл, далее, вероятно, по понижению стека на 1 уровень (что соответствует RET из п/п-ммы C414 ввода массива) а скорее всего по выходу на конкретный адрес делается возврат в программу 8-ми разрядки. Этим объясняется, что лениградский монитор СПЕЦИАЛИСТА (в котором 100% совмещены все стандартные входные точки, но также и все нестандартные точки), не работает на ввод с магнитофона.

    Можно и не зацикливаться на подпрограммах ввода байта (C377 и C806), а перехватывать подпрограммы ввода блоков - C3F9, c414, С422 и C824. Тогда по LDBYTE будет читаться служебная информация, а по входу в процедуры ввода блока читаться блок данных из файла.

    Предположив, что возможно удастся загрузить и автозапустить по сбросу файл в WAV-формате с помощью нажатия на ALT-W, я попробовал грузить те WAV-файлы, что без проблем грузились в эмулятор от b2m. Но почему-то получил сообщение, что формат файлов неправильный, хотя эти записи нормально грузятся и в реале.

    Вот такая ситуация по работе с магнитофоном. Выяснилось, что RAMDOS, даже если эмулировать внешний эл.диск на РУ7 или заменить его на внутренний RAM-диск из доп.ОЗУ, использовать на EMU80 не получится не только потому, что там другой формат магнитофона, но и потому, что программы там грузятся по сбросу.

    Пока получается, что для программ работающих с дисководом надо использовать EMU80 от Pyk, а для магнитофонных программ работащих в реальном времени - эмулятор EMU от b2m.

    Надеюсь, что описание возможностей упомянутых эмуляторов не вызовет озлобление их авторов в мой адрес. Если я кардинально заблуждаюсь и просто не умею пользоваться чужими программами без документации, прошу прощения и подробных инструкций.
    Последний раз редактировалось barsik; 24.12.2017 в 13:03.

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

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Понятно, что из-за отсутствия MODE 2, прерывания в машинах на КР580 нельзя использовать для незаметного опроса клавиатуры, как это в ZX-Spectrum. Так как в области 0038H - ОЗУ и сюда грузятся программы. Поэтому и в этом плане от прерываний нет толка.
    basrik, зарекался реагировать на Ваши посты, но не выдержал. Хоть немного ознакомьтесь с компьютерами на 580ВМ80, в которых есть прерывания, а потом уже пишите свои гениальные мысли.
    На векторе основная клавиатура (кроме УС, СС, РУС/ЛАТ) в 99.99% программ опрашивается по прерыванию rst 7 (rst 38 в мнемониках z80). Векторовские программы, где для опроса клавиатуры использовали другой метод, можно пересчитать по пальцам одной руки.
    Последний раз редактировалось ivagor; 24.12.2017 в 13:31.

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

    По умолчанию

    Цитата Сообщение от ivagor
    ... потом уже пишите свои гениальные мысли. На ВЕКТОРЕ основная клавиатура в 99.99% программ опрашивается по прерыванию RST 38
    Вы хоть внимательно читайте мои посты, а не по диагонали. Речь-то о резидентном системном ПО в ПЗУ в верхних адресах, а вовсе не о прикладных программах загруженных с 0. Любому ясно, что в прикладной программе загруженной с 0 нет проблем использовать прерывания. А вот как использовать прерывания, если программа работает в верхних адресах и ячейки 38...3A заняты ?

    Да и речь идёт о СПЕЦИАЛИСТЕ, а вовсе не о ВЕКТОРЕ и не о других компьютерах. Так что Ваше выступление - просто беспочвенный и невежливый наезд. Разве не так?

    Цитата Сообщение от ivagor
    На ВЕКТОРЕ... 99.99% программ
    99.99 процентов означает, что у Вектора 10 тысяч программ из которых только одна не использует прерывания. А я сдуру думал, что у ВЕКТОРА программ меньше, чем у ОРИОНА.
    Последний раз редактировалось barsik; 24.12.2017 в 14:18.

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

    По умолчанию

    Все как ожидалось.
    1.
    Цитата Сообщение от barsik Посмотреть сообщение
    Вы хоть внимательно читайте мои посты, а не по диагонали.
    Прочитал внимательно весь пост и процитировал законченное высказывание, на которое ответил.

    2.
    Цитата Сообщение от barsik Посмотреть сообщение
    Речь-то о резидентном системном ПО в ПЗУ в верхних адресах, а вовсе не о прикладных программах загруженных с 0.
    Цитата Сообщение от barsik Посмотреть сообщение
    Да и речь идёт о СПЕЦИАЛИСТЕ, а вовсе не о ВЕКТОРЕ и не о других компьютерах.
    Один из демагогических приемов. Жаль, конечно, что я не телепат, но увы.

    3.
    Цитата Сообщение от barsik Посмотреть сообщение
    Любому ясно, что в прикладной программе загруженной с 0 нет проблем использовать прерывания.
    А теперь исходная цитата:
    Цитата Сообщение от barsik Посмотреть сообщение
    Понятно, что из-за отсутствия MODE 2, прерывания в машинах на КР580 нельзя использовать для незаметного опроса клавиатуры, как это в ZX-Spectrum. Так как в области 0038H - ОЗУ и сюда грузятся программы. Поэтому и в этом плане от прерываний нет толка. И получается, что простейший аппаратный таймер лучше, чем прерывания, по крайней мере, это более надёжно, т.к могут попасться адаптированные от РК86 игры, где остался звук по DI/EI.
    Прогресс виден.

    4.
    Цитата Сообщение от barsik Посмотреть сообщение
    А вот как использовать прерывания, если программа работает в верхних адресах и ячейки 38...3A заняты ?
    Если в компьютере на ВМ80 есть прерывания, но нет контроллера прерываний и по адресам 38h-3Ah ПЗУ, то есть как минимум два варианта:
    4.1. Предусмотреть в процедуре обработки прерываний в ПЗУ вызов подпрограммы из области ОЗУ. По умолчанию там заглушка (ret), а если надо - ставим переход и используем.
    4.2. Предусмотреть отключение ПЗУ.
    Пример компьютера, где использовали сразу оба варианта - ПК8000.

    5.
    Цитата Сообщение от barsik Посмотреть сообщение
    Так что Ваше выступление - просто беспочвенный и невежливый наезд. Разве не так?
    Нет, не так.

    В дальнейшей дискуссии участвовать не намерен, т.к. не люблю демагогию и демагогов.

    - - - Добавлено - - -

    Цитата Сообщение от barsik Посмотреть сообщение
    99.99 процентов означает, что у Вектора 10 тысяч программ из которых только одна не использует прерывания. А я сдуру думал, что у ВЕКТОРА программ меньше, чем у ОРИОНА.
    Отвечать на эту демагогию (в данном случае - подмена предмета обсуждения) - себя не уважать, но в последний раз.
    Если бы даже всего ОДНА программа на ОДНОМ компьютере (Векторе, ПК8000, ПК8002 и т.д.) использовала опрос клавиатуры по прерываниям - этого было бы достаточно для опровержения утверждения, которое я только что еще раз процитировал (в 3й раз цитировать не буду). А на векторе намного>1 программы используют опрос клавиатуры по прерываниям. ч.т.д.

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

    По умолчанию

    Не надо лезть в чужую тему с глупостями даже не разобравшись о чём идёт речь. Причём уводя обсуждение от темы абстрактными рассуждениями о каком-то ВЕКТОРЕ. Речь о компьютере, где программы ничего не знают о прерываниях, потому область 38 в них занята. Кроме того этот пост продолжение этого, - я перенёс его из темы Элитэ, где этот пост оффтоп. А тему Элитэ Вы читали и писали в ней, а значит были в курсе, т.к тоже самое развёрнуто я ещё раньше объяснил в той теме. И из текста невозможно не понять, что речь идёт о ситуации, когда обработчик прерываний на адресе 38 исключён. Кроме того, уже в этой теме в посте #202 это ещё раз было разжёвано.

    Как можно было подумать, что кто-то на этом сайте не знает как работают прерывания с привязкой шины резисторами? Надёргав цитат и прокомментировав их глупостями, что Вы доказали? Что ошиблись и не имеете благородства признать это.

    Цитата Сообщение от ivagor
    Цитата Сообщение от barsik
    99.99 процентов означает, что у Вектора 10 тысяч программ из которых только одна не использует прерывания.
    Если бы даже всего ОДНА программа на ОДНОМ компьютере использовала опрос клавиатуры по прерываниям - этого было бы достаточно для опровержения утверждения, которое я только что еще раз процитировал
    Своим ответом я показал, что Вы не знаете даже арифметику, а Вы в очередной раз комментируете это глупостью и совсем мимо темы темы о арифметике и числе программ.
    Последний раз редактировалось barsik; 24.12.2017 в 20:08.

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

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

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

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

Похожие темы

  1. Emu80, старые версии
    от Pyk в разделе Эмуляторы отечественных компьютеров
    Ответов: 68
    Последнее: 11.03.2017, 00:33

Ваши права

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