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

User Tag List

Страница 20 из 98 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя
Показано с 191 по 200 из 978

Тема: Emu80 v.4

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

    По умолчанию

    NEO SPECTRUMAN, только что проверил: Windows XP, Chrome 49 (последняя версия полуторагодичной давности с поддержкой Windows XP) - все ок, zip скачивается, без регистрации...
    А по большому счету, сайт и не нужен - пользуйтесь git из командной строки

  2. #192
    zx_
    Гость

    По умолчанию

    Pyk, вопрос такой необычайный. в старом описании РК НГМД упомянута возможность подключения данного контроллера к Специалисту.
    тема про подключение
    http://zx-pk.ru/threads/28485-rk-kng...042#post939042

    а возможно ли в эму подключить РК КНГМД к Специалисту? С целью выявления возможных схемотехнических неявных проблем , проверки софта

    Спасибо

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

    По умолчанию

    zx_, в вышеприведенной ссылке обсуждается контроллер на ВГ75, не имеющий никакого отношения к контроллеру РК НГМД.
    Теоретически подключить РК НГМД к Специалисту попробовать можно, можно и в эмуляторе поддержать (даже наверное на уровне конфигов), только вот я ничего не слышал про такое подключение и тем более про софт, который бы его использовал...
    Есть какой-то софт, который нужно проверить?

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

    По умолчанию

    Цитата Сообщение от Pyk
    в вышеприведенной ссылке обсуждается контроллер на ВГ93, не имеющий никакого отношения к контроллеру РК-КНГМД
    Ссылка указана не та, а тема правильная. Указана ссылка на последний (в тот момент) пост, вместо ссылки на первый пост темы. А там как раз пошёл оффтоп (хотя и тоже про носители, флэш-память и КНГМД на ВГ93).

    Цитата Сообщение от zx_
    С целью выявления возможных схемотехнических неявных проблем, проверки софта
    Думаю, скорее это надо для знакомства с RK-DOS виртуально.

    Т.к пока платы "Восточный ЭКСПРЕСС" ещё не сделали и пройдёт ещё немалый срок, пока их изготовят и перешлют заказчикам. Затем пайка и отладка. Затем требуется спаять и настроить плату РК-КНГМД, что тоже может стать долгостроем. Поэтому до окончательной настройки можно будет познакомиться с RK-DOS только в эмуляторе.

    Цитата Сообщение от Pyk
    я ничего не слышал про такое подключение и тем более про софт, который бы его использовал
    Используется тот же самый софт и то же самое железо о которых Вы уже точно слышали и который уже давно эмулируете в Вашем эмуляторе. Вся задача сводится к - перенести это без изменений на другую ЭВМ с тем же процессором, хотя и с чуть большим тактом.

    Речь идёт о той же самой версии RK-DOS и РК-КНГМД, что Вы уже поддержали для РК. Адрес порта КНГМД тот же самый (F000) и сама RK-DOS та же самая (и естественно работает в тех же адресах). Отличия только в такте CPU. Надеюсь это можно сделать без модификаций кода, за счёт CONFIG-файла.

    Я тоже заинтересован, как в эмуляторе РК-КНГМД, так и в некоторой модификации архитектуры самого СПЕЦИАЛИСТА. Во-первых, в СПЕЦИАЛИСТЕ хотелось бы иметь ROM-диск ОРИОНА подключенный на FE00. Во-вторых, "открытие ОЗУ" в адресах D000...F7FF, включаемое битом INTE. Это позволяет иметь как большое ПЗУ в 14 кб, так и дополнительное ОЗУ в 10 кб. Понятно, что ПЗУ нужно для резидентных программ, а ОЗУ для загрузки туда DOS (CP/M и других). В 1990 я имел аналогичную CP/M, только для КНГМД от КОРВЕТА, а не от РК86. Ну и как задел на будущее неплохо бы подцепить ВИ53 в качестве гуделки на адрес FD00 с входными тактами 2 МГЦ на все 3 канала.

    Хотя оригиналом RK-DOS прошитый в ПЗУ E000 и E800 вполне можно пользоваться, но СПЕЦИАЛИСТ обладая гораздо большими возможностями позволяет кое-что положительно изменить. В частности, отсутствие дисководов с сигналом READY вызывает некоторые трудности при использовании. Приходится делать "химию" и аппаратно вводить формирование сигнала READY с задержкой на 0.5 сек из сигнала выборки DS0. Это неудобно и неудачно потому, что готовность формируется, даже когда дискеты нет.

    Поэтому в более новых версиях RK-DOS сигнал READY формируется из сигнала INDEX, т.е когда диск стоит и колесо разгоняется до номинальной скорости. Для РК86 это невозможно было использовать, т.к там использован Z80, а при переделке в коды КР580 полученный объём зашкаливает за объём ПЗУ в 4 кб. RK-DOS уже ужата до предела и мне удалось выдавить из неё всего десяток байтов, чего недостаточно для процедуры эмуляции READY. Потому несчастные пользователи РК вынуждены разыскивать именно антикварный дисковод с READY или же паять "химию" на КМОП-микросхеме.

    Однако на СПЕЦИАЛИСТЕ ситуация иная. Здесь не только ПЗУ как грязи, но свободно и ОЗУ выше рабочих ячеек РК-монитора до RAMTOP СПЕЦИАЛИСТА, т.е участок ОЗУ 76D0...8F5F. В этом ОЗУ удобнее всего и разместить RK-DOS. Для чего достаточно прошить в ПЗУ E000 всего 4 байта, так чтобы по адресу E001 стояла команда JMP 7800. А в адреса 7800...8F5F из ROM-диска загружается исполнительная часть RK-DOS. Все программы RK-DOS вызывают BDOS командой CALL E001 и им без разницы где размещается остальной код RK-DOS.

    При этом мы выигрываем в объёме кода RK-DOS до ~6 кб, чего достаточно даже для расширения CCP на команды ERA, REN и COPY (отчего соответствующие SYS-файлы не нужны). Но самое удобное в том, что ПЗУ при этом не тратится, что позволяет прошить в эти 10 кб CP/M, которая будет грузиться из ПЗУ D004...F7FF в ОЗУ D004...F7FF (т.к CP/M рассчитана на ОЗУ) или, если для простоты схемы ПЗУ D000...F7FF отсутствует, то ещё удобнее грузить CP/M из ПЗУ ROM-диска (именно поэтому и нужен ROM-диск).

    Возможен некоммутируемый вариант, когда есть 3 ПЗУ C000, C800, D000 а далее некоммутируемый кусок ОЗУ в 8 кб (D800...F7FF). Для размещения BDOS/BIOS CP/M этого достаточно, хотя драйвер консоли VT52 размещать негде. Такой вариант удобен для ручной доработки на плате "Восточный ЭКСПРЕСС". Т.к доп.ППА для ROM-диска нет, можно поставить буфер АП6 и через него подключить автоинкрементный ROM-диск от ИРИШИ.

    Т.о, чтобы это отладить, требуется эмулятор, т.к пока проверить в реале нет возможности. Кроме того, требуется перетранслировать ряд дисковых программ RK-DOS для ОРИОНА в цвете на СПЕЦИАЛИСТ без цвета, а это существенная переделка и "вслепую" это не отладить.

    Однако это ещё не всё. Желательно "поставить" в РК-КНГМД как кварц 8 МГЦ, так и кварц 10.5 и 12 МГЦ. При кварце 8 МГЦ формат 400 кб, при 10.5 МГЦ формат 560 кб, а при кварце 12 МГЦ формат 640 кб. Теретически ещё можно поставить кварц 16.5 МГЦ для формата 880 кб для CP/M, но скорости CPU в 2 МГЦ для такого формата не хватит.

    Вот коротенько, вот в этом и суть проблемки. Не сочтите за наглость и сделайте лишь то, что необременительно. Как я понимаю, для варианта с ПЗУ достаточно поменять цифры частот кварцев в конфиге. А вот "открытие ОЗУ" потребует серьёзной доработки эмулятора, т.к это уже существенное изменение архитектуры.

    Также был бы благодарен, если бы для эмулятора ОРИОНА (обязательно на Z80) был бы поставлен тот же РК-КНГМД, но по адресу F600 (вместо никому не нужного третьего порта) с теми же частотами кварца в РК-КНГМД.

    Не стоит обижать и фанатов РК86. Для них можно сделать более совершенную версию RK-DOS, если добавить ПЗУ по адресу С400...DFFF, что даст 11 кб сплошного ПЗУ. Порт ВГ75 останется в области C000...C3FF. Схему можно посмотреть здесь а ссылку на описание схемы послал по личке, т.к выкладывать её в форуме запрещено.
    Последний раз редактировалось barsik; 01.12.2017 в 17:03.

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

    По умолчанию

    Цитата Сообщение от zx_ Посмотреть сообщение
    а возможно ли в эму подключить РК КНГМД к Специалисту?
    zx_, посмотрел повнимательнее исходники - думаю, что это возможно. Если будет желание поэкспериментировать - сделаем.

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

    По умолчанию

    Раньше пользовался эмулятором B2M, но он не эмулирует РК-КНГМД ни для РК86, ни для СПЕЦИАЛИСТА, ни для ОРИОНА. Поэтому попробовал недавно эмулятор EMU80 для эмуляции СПЕЦИАЛИСТА. Эмуляция дисковода сделана отлично, но в ходе эксплуатации возникли некоторые пожелания к отладчику эмулятора.

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

    Во-первых очень хотелось бы иметь возможность выбора мнемоники ассемблера. Всем привычна мнемоника Z80, а мнемонику КР580 ценят всего лишь несколько закоснелых фанатиков ретроградов.

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

    Например, G - старт прогона с текущего PC, X - переход к просмотру и редактированию регистров и флагов, T - один шаг трассировки, 1...999<ВК> - прогнать нужное число команд, P - (pass) прогнать подпрограмму без трассировки (остановка также если стек сброшен программно, т.к некоторые подпрограммы сбрасывают адрес возврата и переходят в другое место программы не возвращаясь в точку откуда был CALL), U - пропустить текущую команду без прогона, B - задать одну или несколько точек останова. В западных тоже экранных отладчиках так и сделано.

    Неприятно, что команда HALT не делает автоматический вылет в отладчик. Ведь машина без прерываний, зачем же просто её подвешивать. Ясно, что HALT поставил программист отлаживающий программу.

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

    В этом случае отладчик реально нужен только для ковыряния чужих программ, а не для отладки своих. Если при написании программы надо отследить по регистрам, что происходит, то я действую так. Ставлю в программу макрокоманду STOP, например, STOP 5, где 5 это номер стоп точки. Макрокоманда расширяется так: PUSH IY : LD IY,5 : HALT : POP IY.

    При прогоне по достижении HALT эмулятор вылетает в монитор-отладчик эмулятора и я сразу вижу в какой из стоп-точек произошёл останов. Стоп точки можно задать и вручную. Посмотрев код встроенным дизассемблером, я ввожу команду G,adr1,adr2, после чего продожается прогон с текущего PC (хотя и адрес старта можно указать до первой запятой), но при этом поставлены стоп точки на адреса 'adr1' и 'adr2'.

    Также не нашёл какой командой вызывается встроенный миниассемблер, а "лепить заплатку" в машинных кодах неудобно. И вообще не хватило описания команд отладчика, краткая подсказка на нижней строке не заменяет HELP.

    Например, так и не понял как заполнить область памяти константой, как скопировать блок памяти на другое место. При просмотре программы на работает PageDown а перемещение балки указателя курсорными клавишами вверх-вниз медленно и не нашел команды, как сразу задать адрес куда перейти для просмотра.

    Естественно, речь не о том, чтобы из экранного отладчика сделать командный, а чтобы добавить команды. Было бы уже намного удобнее, если бы хотя-бы ввести вылет в отладчик по HALT и команду U (пропустить текущую команду), т.к иначе с команды HALT никак не уйти, приходится вручную изменять регистр PC, что долго.
    Последний раз редактировалось barsik; 11.12.2017 в 01:24.

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

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

    По умолчанию

    barsik, большое спасибо за пожелания, всегда рад обратной связи. Прокомментирую вопросы и то, что уже сделано:

    - Мнемоника в отладчике переключается клавишей "Z" (и да, я наверное "ретроград", для 8080 я использую его родные мнемоники
    - Встроенного миниассемблера, заполнения памяти константой и копирования блоков памяти пока нет

    А вообще с пожеланиями согласен - в определенных обстоятельствах все это могло бы понадобиться и было бы удобным. Как и не помешали бы также точки останова по данным, например. Записываю себе в планы, но когда до чего из этого дойдут руки, сказать не берусь Будет настроение доработать отладчик - что-нибудь из этого реализую... То, что сделать относительно просто, постараюсь сделать побыстрее
    Последний раз редактировалось Pyk; 11.12.2017 в 00:00. Причина: опечатка

  9. #198
    zx_
    Гость

    По умолчанию

    Pyk, к вам еще вопрос публичный образовался, возможно ли в эмуляторе Специалиста реализовать прерывания от КСИ ?
    http://zx-pk.ru/threads/28514-igra-e...l=1#post941328

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

    По умолчанию

    zx_, пока нет.
    Насколько сложно сделать, зависит от цели их использования: просто сделать прерывания 50 Гц несложно, а вот синхронизировать их с растром, чтобы можно было делать что-то в интервале гашения и т.п. - намного сложнее (поскольку в оригинальном Специалисте не было никакой возможности синхронизации с растром, то и эмуляция экрана в эмуляторе для него сейчас сделана упрощенно).

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

    По умолчанию

    Мне лично ничего во время гашения экрана делать не требуется, без разницы когда относительно кадра они приходят. Потому для меня, что прерывания 50 ГЦ, что без прерываний программный контроль МГ-входа, куда подан меандр 5 ГЦ - дают одну и ту же пользу, - позволяют оценивать время. Только с прерываниями переделка обходится дороже на 8 резисторов. В БК-010 тоже есть простейший аппаратный таймер - низкочастотный меандр поданный на какой-то вход и этого оказалось вполне достаточно для программ реального времени.

    Да и прерывания годятся лишь для СПЕЦИАЛИСТА, но не годятся ни для РК86, ни для ОРИОНА, т.к там выход INTE занят для других, более странных целей. Там для счёта времени выход - только простейший аппаратный таймер в виде такта 5 ГЦ на входе МГ.

    Прерывания при КР580 считаю полезными не для этого, а только если нет тика 5 ГЦ на входе МГ. Тогда прерывания позволяют бесплатно считать время (как это сделано в MSDOS, по системному тику 1/18 секунды). Это бы сделало программные часы точными и без введения тика 5 ГЦ на МГ-входе, а также существенно упростило бы вывод музыки, как программный, так и через ВИ53.

    Наличие прерывания могло бы упростить драйвер консоли CP/M, позволив эмулировать аппаратную клавиатуру, которую требует CP/M. Но это было надо до 1991, а после эта проблема с успехом была решена программно. Так что и для этого прерывания уже не нужны.

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

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

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

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

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

Похожие темы

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

Ваши права

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