Важная информация
Страница 20 из 32 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя
Показано с 191 по 200 из 311

Тема: РАДИО-86РК на Z80

  1. #191
    Guru Аватар для Vladimir_S
    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,161
    Благодарностей: 692

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    позволяя слышать INTE звук на Z80.
    Вложения
    Делал я такое - полное г.

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

    barsik, Монитор оттранслировал,сам он работает, но на нем не стартует мой FDOS, а на нем весь нужный мне софт.

  2. #192
    Master Аватар для barsik
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    590
    Благодарностей: 169

    По умолчанию

    Цитата Сообщение от Vladimir_S
    Делал я аппаратный эмулятор INTE для Z80 - это полное Г.
    Вообще-то РК86 и не может выводить чистые тона, только хриплые. Так как каждые 64 МКСЕК ПДП рвёт вывод звука на 45 МКСЕК. Чтобы программно вывести чистый тон на РК86 надо остановить ПДП (экран погаснет) и регенерировать динамические ОЗУ программно. А вот на ОРИОНЕ аппаратный эмулятор INTE для Z80 работал отлично, выдавая чистые тона.

    Цитата Сообщение от Vladimir_S
    Предложенный ROM-BIOS для Z80 сам работает, но на нем не стартует мой FDOS, отчего не загрузить весь нужный мне софт.
    Возможно, что я сделал фатальную ошибку при замене на JR-команды. Но изменений в коде я не делал, лишь заменял на JR и переносил куски кода, так что вероятность этого не очень велика.

    Хотелось бы знать подробности о Вашей ДОС, какое железо, принцип работы и используемые подпрограммы ПЗУ. Используются ли п/п-ммы работы с МГ-лентой?

    Не могу проверить ROM-BIOS для Z80 в реале (нет такого железа), а в своём эмуляторе РК86 на ОРИОНЕ проверить ROM-BIOS нельзя, т.к он эмулирует КР580 и не допускает использования произвольного кода ПЗУ F800. В эмуляторе B2M даже с конфигом для Z80 также проверить нельзя. Т.к директивы загрузки не работают и программы для проверки не загрузить. Потому что эмулятор B2M жёстко привязан к коду базового ПЗУ F800. Если подпрограммы RDBYTE (FB98) или WRBYTE (FC46) сдвинуть хотя бы на один байт, то при старте директив I или O произойдёт улёт. Причём нельзя сдвигать не только эти входы, но и ещё какие-то другие (долго выяснять какие именно).
    Последний раз редактировалось barsik; 15.01.2017 в 03:45.

  3. #193
    Guru Аватар для Vladimir_S
    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,161
    Благодарностей: 692

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Хотелось бы знать подробности о Вашей ДОС, какое железо, принцип работы и используемые подпрограммы ПЗУ.
    Тут нужно знать историю возникновения этой ДОС - я вначале хотел замутить ее на AT29C040, но у некоторых форумчан их не оказалось и тогда остановились на AM29F040. Формат записи файлов как в ОРДОС. Одна микросхема на плате (INT), другая подсоединяется к порту (ЕХТ). Вначале все управление было через командную строку, затем я написал ЧБ оболочку, а потом и раскрасил ее.

    http://zx-pk.ru/threads/26099-radio-...l=1#post891189
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	FLASH.jpg 
Просмотров:	57 
Размер:	42.0 Кб 
ID:	59379  

  4. #194

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Если подпрограммы RDBYTE (FB98) или WRBYTE (FC46) сдвинуть хотя бы на один байт, то при старте директив I или O произойдёт улёт.
    Перехват этих процедур тоже задан в конфиге, это можно убрать, но тогда придётся грузить так-же долго, как и на реальном РК. Автоматическое конвертирование .rk файлов в эмуляторе есть: нужно только при включении "воспроизведения" на тулбаре выбрать не .wav, а .rk. Правда там скорость фиксированная, подходящая для стандартного РК, так что для Z80 нужно будет поиграть с константой чтения.

  5. Этот пользователь поблагодарил b2m за это полезное сообщение:
    barsik (11.01.2017)

  6. #195
    Master Аватар для barsik
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    590
    Благодарностей: 169

    По умолчанию

    Цитата Сообщение от Vladimir_S
    я написал чёрно-белую оболочку, а потом и раскрасил её
    Посмотрел скрин-шот Вашей цветной оболочки для ДОС. Цвет на РК86 очень впечатляет. Увы у меня никогда цвета на РК не было (т.к монитор был монохром). А атрибут инверсии (по журналу 'Радиолюбитель' 1993) использовал. Но в итоге отказался от использования атрибутов, в пользу более простого решения, которое не только более удобно для программиста даёт инверсию, но и даёт нормальную псевдографику, что не менее важно. У меня тоже есть оболочка для квазидиска в 64К (из 2-х 62256, подключенных через ППА), причём с рамочками и окнами. И всё достигнуто благодаря наличию альтернативного фонта (расход деталей - кусок проволоки 10 см). А атрибут инверсии RVV выгодно использовать для переключения фонтов. Трёх остальных атрибутов (HLGT,GPA1,GPA2) хватает на 8 цветов.

    В Вашей оболочке желательно было бы изменить режим дисплея, точнее изменить число линий растра на символьную строку. Сделать 8 линий растра вместо 10. Это позволяет выводить вертикальные линии без разрывов. При этом, при числе строк в 25, экран на 20% плющится по вертикали, но зато тогда можно выводить 28 строк и они будут видны. Чтобы избавиться от 2-х пустых линий между строками, есть и другое решение. Можно прошить в ПЗУ вместо фонта 6*8, фонт 6*10, что надо было сделать еще в 1988.

    Можно сделать вывод и в 32 строки, но тогда экранную область придётся перенести в иное место. Если оставить экран в вершине ОЗУ, то бОльший размер экрана затрёт служебные ячейки ROM-BIOS (в области 7600) и подпрограмами ПЗУ нельзя будет пользоваться. В этом случае придётся в программе иметь копию стандартных подпрограмм ПЗУ F800 в области ОЗУ. И это выгоднее, чем делать как делают графические РК- игры, которые переносят экран ниже служебных ячеек 7500 (оставляя 7500...7600 для стека). Выгоднее потому-что для оболочки тогда остается всё ОЗУ за вычетом большого экрана и размера стандартных п/п-мм ПЗУ (это менее 1 кб кода). А в случае переноса экрана ради сохранения ячеек 7600 и возможности вызывать стандартные п/п-мы ПЗУ, свободное ОЗУ оказывается на 2 кб меньше. Что сокращает буфер копирования, который и так при размере оболочки в 7 кб (10 кб в случае CP/M и RK-DOS) маленький, что сокращает скорость копирования.

    Для меня таких проблем не было, т.к на РК86 я всегда имел самую разумную доработку РК - дополнительное ОЗУ в области 8400...BFFF, т.е 15 кб. В котором прокачивались две страницы доп.ОЗУ по 15К (это ОЗУ просто открывается при РУ5-тых, а при РУ3-тьих ставится 1 корпус 62256). Без этого нельзя иметь ни пригодную к использованию CP/M, ни РК-ДОС с размером более 4К. Поэтому, если надо расширить экран в НОРТОН-е, то его выгоднее перенести в верхнее ОЗУ, где экран не мешает ни служебным ячейкам и не сокращает ОЗУ для буферов НОРТОНА.

    Извиняюсь, что чуть не по теме, но хочу рассказать о моём представлении идеальной архитектуры для РК86, реализуемой на базовой плате за 1.5 часа работы паяльником (у меня почти всё это на плате уже давно реализовано)

    Планирую иметь на своём РК86 Z80 и ОЗУ 94/124К следующим образом. Две пол-банки по 32К в адресах 0...7FFF на РУ5-тых и еще 30К на 62256 в окне 8400...BFFF. Но надеюсь, что мой РК86 потянет целых 2 штуки 62256 (или W24257) напаянные в 2 этажа. В РК86 всякая доп.нагрузка шины чревата большими проблемами с надёжностью. Но т.к дисковода у меня уже нет (все сдохли), то и РК-КНГМД подключать не надо, за счёт чего я поставлю 62256 (она уже ранее стояла на моей плате РК86 и панелька 28-ног распаяна).

    Отчего я и надеюсь, что мой РК без КНГМД потянет на шине ещё две 62256. Конечно, при наличии буферов для РУ5-тых проблемы с перегрузкой шины отпали бы. Но увы, пока не нашлось ни одного крутого аппаратчика, который бы поставил в РК86 буфер для ОЗУ. Что собственно говоря должны были сделать сами авторы РК86, если были они не увлекались "фатальной минимизацией". Две штучки 589АП16 не намного увеличили бы стоимость РК86.

    Цельно-полубанковая коммутация тоже удобна, т.к тогда программа работающая во второй пол-банке может использовать все 32К (а при дальнейшем развитии этой идеи и 64К). Экран отображается из пол-банки 0, а программа работает в пол-банке 1.

    Без наличия Z80 реально поддержать такую архитектуру программой в ПЗУ нельзя, т.к там просто нет места. Но при наличии Z80 в ПЗУ освобождается 150 байт, куда без труда "засунется" всё что надо. Теоретически РК86 допускает установку второго ПЗУ на F000, но практически это неразумно, т.к нагружает шину и фатально снижает надёжность.

    Как я понял, про то почему не работает предложенный ROM-BIOS для Z80 пока информации нет.

    Сообщите про Вашу клавиатуру. Вдруг Вы используете ПЛИС, которые привязаны к входным точкам в ПЗУ. Такой метод подключения IBM клавиатуры тоже возможен. Тогда ПЛИС контроллирует доступ в адреса 8000...83FF и дополнительно контроллирует входные точки внутри ПЗУ.

    Цитата Сообщение от B2M
    Адреса перехвата п/п-мм ввода и вывода на МГ-ленту задаются в конфиге
    Нашёл в конфиге РК86 такие строчки

    Код:
    cas : tape-recorder {
      biproc[FB98-FCA4]=rk
      boproc[FC46-FCA4]=rk
    Как задать начальный адрес п/п-мм RDBYTE и WRBYTE из этого ясно. Но зачем указан интервал. Как я понял в этом интервале в РК86 размещаются именно эти подпрограммы (и никакой другой код с другим назначением). Но ведь указанные области перекрываются. Если перехватывать интервал, то как Вы отличаете когда ввод, а когда вывод? Я в подобном случае перехватывал только вход, а выход из процедуры (чтобы закрыть файл) делал по входу PUSK_VG (0FBCEH - это куда делается JMP из входной точки F82D).

    То есть, если я делаю ROM-BIOS для Z80, то чтобы можно было его проверить в эмуляторе, я обязан полностью повторить код из ПЗУ РК86 (хотя теперь могу размещать RDBYTE и WRBYTE в любых местах ПЗУ).

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

    Интересно каким образом будет читаться звуковой WAV-файл (пусть и медленно), если я уберу эту строчку из конфига? Вероятно, тогда отлавливаются все чтения порта C (где бит магнитофона, а также биты отдельных кнопок УС, СС, РУСЛАТ), но как вы узнаёте, что читается МГ, а не спец.кнопки клавиатуры?

    Цитата Сообщение от B2M
    Автоматическое конвертирование .rk файлов в эмуляторе есть: нужно только при включении "воспроизведения" на тулбаре выбрать не .wav, а .rk.
    Про возмоэность грузить реальные звуковые файлы *.WAV и даже DAT-файлы в формате файлы *.rk (это те, что почти GAM-формат Пыхонина, но без первого байта E6) я даже и не знал, т.к никакого ДОС-текста по эмулятору B2M до сих пор нет.

    Я понял, что как-то эмулируется чтение с МГ (иначе как бы программы попадали в ОЗУ в бездисководном варианте), и попробовал по директиве I грузить GAM-файлы. И это получилось. Я и решил, что эмулятор поддерживает GAM-формат.

    У меня есть записи программ РК86, СПЕЦИАЛИСТА и ОРИОНА в WAV-формате с частотой дискретизации 44 КГЦ. Могу ли я их загрузить в соответствующие эмуляторы B2M?
    Вложения Вложения
    Последний раз редактировалось barsik; 11.01.2017 в 19:58.

  7. #196
    Guru Аватар для Vladimir_S
    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,161
    Благодарностей: 692

    По умолчанию

    Мой РК собран в корпусе Апогея м соответственно клава у него родная. Я схему так до сих пор и не нарисовал, только начал. Но некоторые доработки там уже есть, так что предварительный вариант могу выложить.
    Вложения Вложения
    Последний раз редактировалось Vladimir_S; 11.01.2017 в 18:43.

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

  9. #197

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Как задать начальный адрес п/п-мм RDBYTE и WRBYTE из этого ясно. Но зачем указан интервал.
    Изначально планировалось, что будет указываться начало и конец процедуры, т.е. второе число - адрес команды RET. Но на практике оказалось, что нужно не только вернуться из процедуры, но иногда и установить флаги. Так что можно считать, что второе число - это просто адрес, куда произойдёт переход после перехвата. Сигнатура после знака "равно" означает, для какого компьютера предназначен перехват, т.к. могут использоваться разные входные и выходные регистры (как правило, либо А, либо С, на входе А может содержать параметр для поиска синхробайта).

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

    Цитата Сообщение от barsik Посмотреть сообщение
    как Вы отличаете когда ввод, а когда вывод?
    biproc - ввод байта, boproc - вывод байта. Есть ещё tproc для пропуска пилот-тона, iproc и oproc для перехвата ввода и вывода блока (сначала был именно такой перехват).

    Цитата Сообщение от barsik Посмотреть сообщение
    я обязан полностью повторить код из ПЗУ РК86
    Нет, но нужно соблюдать соглашения по передаче параметров, ну и соответственно указать адрес процедур в конфиге.

    Цитата Сообщение от barsik Посмотреть сообщение
    вставить в этот интервал другую подпрограмму
    Просто изменить адреса в конфиге. Либо вообще удалить эти две строки.

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

    Есть ещё контроль байтов по указанным адресам. Это когда БИОС выключается и на его месте оказывается ОЗУ или другая страница БИОСа. Пример можно подсмотреть в конфиге Вектора: строка, где .check="проверяемые байты".

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

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

  10. Этот пользователь поблагодарил b2m за это полезное сообщение:
    barsik (11.01.2017)

  11. #198
    Master Аватар для barsik
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    590
    Благодарностей: 169

    По умолчанию

    Цитата Сообщение от B2M
    Вообще, если я хочу поэкспериментировать с конфигом, я просто копирую его под другим именем. Он также появится в списке при запуске эмулятора
    Это-то как раз сразу ясно. Я тоже так делал, позаменяв в конфигах слово 'K580wm80a' на 'Z80' и слово 'BIOS.ROM' на 'ZBIOS.ROM' и записав результат в другой файл.

    Цитата Сообщение от B2M
    можно считать, что второе число - это просто адрес, куда произойдёт переход после перехвата.
    Спасибо за разъяснение. Меня ввело в заблуждение тире, что указывает на интервал адресов, а на самом деле логичнее иметь там запятую.

    Не нашёл в списке конфигов варианта РК86 с РК-КНГМД, а ведь это основной вариант. Это варианты с ORDOS и ROM-диском - экзотические. А вариант с РК-КНГМД - основной, стандартный и всемирно распространённый вариант использования РК86. Почему-же он не поддерживается, тогда как экзотические варианты поддерживаются? А ведь эмуляция программного КНГМД намного проще, чем эмуляция БИС ВГ93. Да и на этом форуме все фанаты РК86 давно обзавелись РК-КНГМД.

    Что Вы можете сообщить народу насчёт эмуляции РК-КНГМД и эмуляции ПЗУ в 4 Кб по адресу E000 в Вашем эмуляторе B2M? Нельзя ли это ПЗУ ввести без модификаций EMU.EXE, лишь за счёт изменения конфиг-файла? Если бы эмуляция РК-КНГМД была, то на ней можно было бы проверить версию РК-ДОС для Z80.

    Кроме того, нельзя ли простой модификацией конфига ввести в эмулятор B2M ОЗУ по адресу 8400...BFFF. Пусть хотя-бы некоммутируемый кусок ОЗУ (т.е нет двух страниц ОЗУ в окне). Это уже было бы очень удобно и к тому же подтолкнуло-бы владельцев на открытие на своих реальных РК86 ОЗУ по этим адресам (а те у кого ОЗУ не на РУ5, а на РУ3, поставили бы в свои РК86 статическое ОЗУ типа 62256, W24257 или W24512)?

    Цитата Сообщение от Vladimir_S
    Мой РК собран в корпусе Апогея м соответственно клава у него родная
    Вопрос про клавиатуру был, чтобы убедиться, что у Вас не клавиатура на ПЛИС, что могло бы стать причиной несовместимости. А раз работает обычный ППА и опрос клавиатуры программный (не эмулированный), т.е опрос делает сам процессор, то это не может быть причиной несовместимости с Вашей ДОС.

    Увидев схему я обнаружил там 8085 без клока. Непонятно зачем он, если есть Z80. 8085 это же тот же самый КР580, лишь под другим соусом. Я в курсе, что там есть 2 излишние команды RIM и SIM и один излишний выходной сигнал. Эти команды, если я верно помню, нужны для последовательного вывода. А нельзя ли применить этот выход как сигнальный, как применили выход INTE в КР580? С его помощью можно было бы быстро переключать полу-банки (например ОЗУ/ПЗУ).

    Удобно наличие программно переключаемого клока 1.75, 3.5 и 7 МГЦ. Нет ли сбоев при программном переключении скорости? Для ускорения работы выгодно ВТ57 тактировать более высокой частотой.

    Удивился, что ОЗУ на статике, а не на РУ5. Раз у Вас две 62256, то значит есть ОЗУ выше 8000 или же Вы используете две пол-банки по 32 Кб в адресах 0...7FFF. Интересно, как Вы используете это ОЗУ, в смысле какая архитектура его включения (понятно, что вопрос излишний, вероятно это уже описано на предыдущих страницах этой темы, но я пока не читал). С ОЗУ при архитектуре РК особо умного ничего не придумать, а вот огромное ПЗУ 64 Кб включаемое в окне 32К это, видимо, удобно. Интересно, это в нём Вы храните файлы в формате ORDOS? Я бы большое ПЗУ в РК86 стал прокачивать кусками по 8 Кб в окне E000...FFFF.

    Я в начале 90-х тоже пытался поставить 62256 в РК86, чтобы избавиться от сбоев ОЗУ. Но у меня ничего не получилось. Сам РК работал, но изображения на экране не было. Пришлось выделять для экрана область 76D0...7FFF из РУ5-тых, а остальное ОЗУ делать из 62266. Но это тоже оказалось не лучшим решением, т.к полно игр, которые меняют адрес экранной области и оттого не работали.
    Последний раз редактировалось barsik; 12.01.2017 в 02:54.

  12. #199

    По умолчанию

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

    Цитата Сообщение от barsik Посмотреть сообщение
    А вариант с РК-КНГМД - основной, стандартный и всемирно распространённый вариант использования РК86. Почему-же он не поддерживается, тогда как экзотические варианты поддерживаются? А ведь эмуляция программного КНГМД намного проще, чем эмуляция БИС ВГ93.
    Я пробовал добавить, но с наскоку как-то не вышло, и я оставил эту идею. Не всегда то, что проще аппаратно, легче реализовать в эмуляторе.

    Цитата Сообщение от barsik Посмотреть сообщение
    Что Вы можете сообщить народу насчёт эмуляции РК-КНГМД и эмуляции ПЗУ в 4 Кб по адресу E000 в Вашем эмуляторе B2M? Нельзя ли это ПЗУ ввести без модификаций EMU.EXE, лишь за счёт изменения конфиг-файла?
    ПЗУ можно добавить в конфиге, а эмуляция НГМД потребует модификации эмулятора.

    Цитата Сообщение от barsik Посмотреть сообщение
    Кроме того, нельзя ли простой модификацией конфига ввести в эмулятор B2M ОЗУ по адресу 8400...BFFF.
    Можно. В секции CPU обычно указано mem=mm, то есть за раскладку памяти отвечает секция mm (обычно типа MemMap). Вот в ней и задаётся карта памяти. Первый индекс - номер карты (для тех компьютеров, где карта памяти переключается), второй - диапазон адресов (младший байт не учитывается, т.е. нужно задавать в виде xx00-xxFF). То есть нужно добавить памяти (допустим она будет называться mem8400):
    Код:
    mem8400 : Memory {
      size=3C00
    }
    а в секции mm добавим строку
    Код:
      map[0][8400-BFFF]=mem8400
    Ну и надо будет убрать или скорректировать адреса устройств, которые попадают в эту область.

  13. Этот пользователь поблагодарил b2m за это полезное сообщение:
    barsik (12.01.2017)

  14. #200
    Guru Аватар для Vladimir_S
    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,161
    Благодарностей: 692

    По умолчанию

    barsik, Пзу делится пополам потому, что при снятой перемычке П1 это Апогей, а при установленной РК86. И в РК86 в ПЗУ Е000-EFFF ДОС2.9, D000- DAFF FDOS. Ну и пока все. Насчет ОЗУ - D4 по схеме 0000-7FFF, а D5 в режиме Апогея 8000-ЕAFF, А в режиме РКшки 8400-9FFF и А400-BFFF.
    Т.е. D4 и D5 расположены линейно друг за другом.

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

    Цитата Сообщение от barsik Посмотреть сообщение
    Нет ли сбоев при программном переключении скорости?
    Пробовал пока только директивой М, но думаю проблем не возникнет. С чего бы вдруг сбои появятся?
    Последний раз редактировалось Vladimir_S; 12.01.2017 в 06:46.

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

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

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

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

Похожие темы

  1. Радио-86РК: Видеовыход
    от m.d. в разделе Радио-86РК
    Ответов: 13
    Последнее: 21.05.2015, 09:19
  2. Радио-86РК: По страницам журнала "Радио"
    от Viktor2312 в разделе Радио-86РК
    Ответов: 79
    Последнее: 13.02.2014, 09:34
  3. эмулятор радио-86рк
    от sergey2b в разделе Эмуляторы отечественных компьютеров
    Ответов: 4
    Последнее: 09.06.2011, 15:59
  4. Радио 86РК
    от Shnurkov в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 02.01.2009, 14:52

Ваши права

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