RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Май 2024
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031  

Календарь Календарь

Последние темы
» Вити больше нет!
автор bug19 Пн Фев 20 2023, 19:54

» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47

» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05

» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03

» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02

» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52

» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36

» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37

» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33

» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00

» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58

» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17

» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07

» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08

» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09

» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02

» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47

» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11

» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33

» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38

» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12

» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01

» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22

» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08

» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08

Самые активные пользователи за месяц
Нет пользователей

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


Флейм только по теме "Радио-86РК".

Страница 7 из 16 Предыдущий  1 ... 6, 7, 8 ... 11 ... 16  Следующий

Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Пн Янв 04 2021, 20:08

151
Флейм только по теме "Радио-86РК". - Страница 7 Orig_b10
обратите внимание на правый предпоследний столбец. Вот это скорее всего и есть отличие схемы без регистра. Тот же код запущенный на схеме с ир1 (смотрите фото выше) как раз и показывает правильно.
Кстати. Обратил сейчас внимание на светодиод рус лат на клавиатуре.... Он перемигивает под....звуки игры. В связи с чем что то я задумался, а какого х... Я подозревал что то не то, потому как он странно себя вел при переключении на рус...он немного притухал в режиме рус. Надо бы разобраться.
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Вт Янв 05 2021, 00:29

152
Так под какую схему цветового адаптера сделан Boulder Dash ?

То, что цвета игры не совпали с вашим апогеевским адаптером наводит на мысль, что там правильное толкалинско/акименковское разбиение атрибутов на цвета, раз с вашими неправильными апогеевскими цветами не совпало. Но тут же в предыдущем посте, Вы пишете, что с 155 ИР1 цвета отображаются нормально (т.е без сдвижки раскраски на знакоместо). И фото из последнего поста якобы сделано без ИР1 отчего действие цветового атрибута закончивается раньше, чем положено, отчего последняя колонка больших цветных фрагментов окрашена неправильно. Видя это как раз на этом последнем фото можно сделать вывод, что раз без ИР1 искажения цвета, то значит игра сделана для схемы с ИР1 от Апогея. Но тогда не стыкуется по разбиению цветов, потому, что если ИР1 взят от Апогея, то и цвета должны быть апогеевские. Или это четвёртый вариант, где кодировка цветов толкалинская, но добавлен ИР1 из схемы Апогея.

Просветите народ на счёт того под какую схему сделаны цветные игры РК86 !!!

А взглянув на последнюю картинку из предпоследнего поста у меня создалось впечатление, что там раскрашены не спрайты, т.е не маленькие участки экрана, а целые строки на всю длину, т.е от первой позиции до 64-й.

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

То, что третий параметр FF, говорит о том, что высота знакорядов задана в 16. С такой огромной высотой знакорядов не получится VGA режим 640*350, а получится лишь режим 640*480, т.к 30*16= 480 !!! По четвёртому параметру $D8 и согласно вот этой табличке из даташита:

Флейм только по теме "Радио-86РК". - Страница 7 Zzzz.1609793987

узнаём, что длина HRTC установлена на 18, отчего общее число знакомест в строке становится 78+18= 96. Из этого уже не проблема посчитать какой кварц нужен при ширине знакоместа в 8 пикселей и частоте строк в 31.5 КГЦ. Получается, что нужен кварц 24.192 МГЦ. Возможно у Вас стоит кварц 24 МГЦ.

В результате режим VGA у Вас вовсе не 10H (640*350), а 11H (точнее 12H, т.е 640*480 в 16 цветах). А в той статье, что я выше цитировал, там режим 10H. Из-за такой высокочастотности возможно у Вас ВГ75 уже не тянет, отчего и проблемы с курсором. VRTC у Вас установлен на два знакоряда, как и в варианте из цитированной статьи с режимом в 350 линий. Полное число строк для совместимости то же - 30. Итого полное число строк в кадре 32. При этом полное число линий в кадре равно 32*16= 512, что соответствет при частоте строк 31.5 КГЦ частоте кадров 61.5 ГЦ, вместо требуемых для режима 11H точно 60-ти Герц (но это явно допустимо).
ведущий_специалист пишет:Я с детства помню и понимаю некоторые команды ассемблера в хексе, поэтому найти настройки в коде не составило большого труда.
Ну это воощще, блин,  за окном же не 1986 год. Уже есть отладчики имеющие встроенный мини-дизассемблер. Увы, они в какой-то плохо понятной мнемонике, потому я в начале 90-тых специально написал отдельный мини-дизассемблер, что выдаёт диз-асм в мнемонике Z80, а подключается он, как доп.директива в монитор М3 ОРИОНА (который имеет возможности по добавке директив в монитор). Тогда в монитор добавляется директива "." (точка) которая выдаёт листинг в нормальной мнемонике (причём можно листать даже вверх). Этого мне хватало и в принципе, чтобы изучать чужой код достаточно мини-дизассемблера и полный отладчик даже не нужен, т.к большинство его команд дублирует монитор.

И как раз отладчик надо иметь в любой реальной РК86, если на ней программируют. Если у Вас уже есть ПЗУ на E000...F7FF, давайте странслирую в эти адреса иришин отладчик (он влезет, т.к менее 4 Кб). Штефановский родной эр-кашный отладчик мощнее и даже поиск цепочки байтов в нём есть, но я не уверен влезет ли он в объём 6 Кб и его ещё надо дизассемблировать правильно. Мне всегда хватало иришиного отладчика (что адаптирован из DDT CP/M).


Последний раз редактировалось: barsik (Вт Янв 05 2021, 00:33), всего редактировалось 1 раз(а)
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Вт Янв 05 2021, 00:31

153
barsik пишет:Так под какую схему цветового адаптера сделан Boulder Dash ?
Вот честно, не скажу. Но я запустил это под эмулятором рк86. И последний скриншот это из эмулятора.
Флейм только по теме "Радио-86РК". - Страница 7 Bd_emu10
У меня схема повторяет цвета апогея и стоит ир1 фото сделаны в работе именно под этим видеоадаптером.
Да, игра сделана так, что раскрашены участки полосами. 
Кварц у меня в адаптере 24МГц.
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Вт Янв 05 2021, 00:34

154
barsik пишет:
И как раз отладчик надо иметь в любой реальной РК86, если на ней программируют. Если у Вас уже есть ПЗУ на E000...F7FF, давайте странслирую в эти адреса иришин отладчик (он влезет, т.к менее 4 Кб). Штефановский родной эр-кашный отладчик мощнее и даже поиск цепочки байтов в нём есть, но я не уверен влезет ли он в объём 6 Кб и его ещё надо дизассемблировать правильно. Мне всегда хватало иришиного отладчика (что адаптирован из DDT CP/M).
Будет очень неплохо, если Вы поможете с отладчиком в ПЗУ. Мало того я нашел отличный С исходник с дизассемблером 8080. Его можно смело скомпилить для рк так как он совсем уж прост, а в паре с отладчиком от Вас будет отличный инструмент.
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Вт Янв 05 2021, 06:33

155
Так как переделка под VGA актуальна для многих владельцев РК86 и со временем будет становиться всё актуальнее (ибо разъём SCART уже давно перестали ставить на телевизоры, в то время как VGA-мониторы ещё долго будут в ходу), а нужную информацию трудно найти, она неполная и похоже многое надо досоображать и делать самому, то про переделку РК86 под VGA видео выход полезно было бы создать отдельную тему, где описать все варианты. А вариантов по крайней мере уже два - в режим 10H и в режим 11H. Потому нужно привести все схемы доработок, нужные дампы ПЗУ F800 и ПЗУ знакогенераторов с фонтами 8*14 и 8*16.

Так как получается, что есть два варианте переделок под VGA (с фонтом 8*14 и с фонтом 8*16), то получается, что и графические игры под VGA надо переделывать в два варианта (или достаточно прилагать информацию, где в игре процедура установки режима ВГ75, кому надо сам настроит).

При режиме с 480 линиями можно иметь режим ВГ75 с 51-й строкой и высотой фонта в 9 линий, что позволяет не только вывести блочно-символьную графику 192*102 (истратив на это 64 кода из 128), но и текст, прошив фонт 8*9 в оставшиеся 64 кода ПЗУ знакогенератора. При телевизоре в режиме 51-й строки текст не вывести ибо тогда высота знакоместа всего лишь 4 линии. В этом VGA лучше.

Зато при VGA 480 нельзя установить корветовский формат экрана 64*16, т.к при 480 линиях минимальное число строк это 480:16= 25 (потому что ВГ75 не программируется на знакоряд выше, чем в 16 линий растра). Кстати, в "Корвете" такой формат экрана сделали глядя на TRS-80 (на это намекается в книге  "Знакомьтесь: персональная ЭВМ Корвет". Ахманов, Персианцев, Рахимов, Рой, Скурихин. Физматлит, 1989. 240 стр. с илл. ISBN 5-02-014207-7). А чем меньше строк, тем меньше раз за кадр тормозится процессор и скорость прогона выше. Если считать, что ускорение пропорционально соотношению полных чисел строк (30 строк и 19 строк), то скорость прогона при экране в 16 строк возрастает аж на 13%.
ведущий_специалист пишет:
barsik пишет:Так под какую схему цветового адаптера сделан Boulder Dash ?

Вот честно, не скажу. Но я запустил это под эмулятором РК86. И последний скриншот это из эмулятора.
Получается, что Boulder Dash сделан под стандартное для РК толкалинское кодирование цветов, но в схему добавлен регистр 155 ИР1 сдвигающий раскрашиваемые позиции. Надо бы посмотреть на вашем компьютере и другие игры (и лучше других авторов), чтобы понять какой стандарт цветового адаптера сложился реально, т.е задан программами, а не статьями в журнале.
ведущий_специалист пишет:Будет очень неплохо, если Вы поможете с отладчиком в ПЗУ.
У меня есть только исходники иришиного отладчика и отладчика DDT почти в оригинале (естественно адаптированном для работы без CP/M). Они имеют мини-ассемблер/дизассемблер в мнемонике КР580. Отладчик в мнемонике Z80 занимает 10 Кб и его будет некуда прошить. Иришин отладчик может работать из ПЗУ, а DDT только из ОЗУ. Прямо в посте выложить не могу, т.к в пост исходники не влезают (Виктор ввёл ограничение на число символов в посте, хотя лучше бы ограничил объём выкладываемых без спойлера картинок).

У меня сейчас (после недавней переустановки Win XP) нет Яндекс.диска (отказывается инсталлироваться, видимо какого-то нужного DLL не находит), потому выложил  в облаке mail.ru.

Иришин отладчик немного меньше по объёму, чем DDT (хотя имеет на несколько команд больше). Впрочем оба занимают менее 4 Кб кода. Но иришин отладчик может работать из ПЗУ, хотя область BASE должна быть в ОЗУ (там рабочие ячейки и модифицируемый код для команд IN/OUT, этого кстати нет в DDT, директивы I и O добавили разработчики ИРИШИ). В исходнике закомментированы иришины директивы R и W, что пишут блок на МГ-ленту (ибо у ИРИШИ совсем иные стандарты на МГ-подпрограммы в ПЗУ и формат МГ-записи). Описание иришиного отладчика можно найти здесь. Помните, что директивы I и O для работы с портами в РК86 попадают в память (с Z80 это не так, а с 8085 это может не так).

Чтобы не трахаться с трансляцией, я странслировал иришин отладчик на несколько адресов, что возможно подойдут, а именно - на A000 (для ОЗУ), на 6500 (для ОЗУ), на A000 (для ПЗУ) и на E000 для ПЗУ с раб.ячейками в ОЗУ на 7500.
ведущий_специалист пишет:я нашел отличный С исходник с дизассемблером 8080. Его можно смело скомпилить для РК, так как он совсем уж прост, а в паре с отладчиком от Вас будет отличный инструмент.
Это лишнее, ибо дизассемблер на Си написан для какой-нибудь ДОС и зачем полноценный дизассемблер нужен в реальном РК86, достаточно мини-дизассемблера в отладчике. Дизассемблер РК уже написан на ассемблере (и это всего 2 Кб в дизассемблере Микрон, а если это делать на Си, то будет 10 Кб). И зачем вообще дизассемблер для реала, неважно плохой или хороший? Ибо есть IDA. Для дизассемблирования кодов Z80/8080 я пользуюсь древним IDA из 1995 года (последующие хуже, только загромождают исходник и новые прибамбасы не нужны для 8-ми разрядных CPU).


Последний раз редактировалось: barsik (Пт Янв 08 2021, 17:02), всего редактировалось 1 раз(а) (Обоснование : очистил от флейма, хотя он и был под спойлером)
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Сб Янв 09 2021, 00:52

156
Наконец то собрал себе программатор ПЗУ. Всего то нужно было откопать платку с стм32, выкинуть ардуину, на которой был собран предыдущий программатор, переписать программу программатора с нуля под стм32, и вот оно чудо. Оно работает, и мною подконтрольно каждое действие программы программатора.
Если психовать конечно можно теперь собрать супер пупер навороченный программатор для любых типов флэш и епром, а также уф ром. Старый добрый стм может все ))). Пока что обойдусь прошиванием 28с16 и 28с64. Поглядываю конечно на 27с256, у меня их штук 5 валяется, есть еще несколько флэшей 29й серии. Доберусь когда до ром диска заделаю что нибудь покруче.
Наконец то я смогу начать эксперименты с фонтами и заменю этот ужасный кем то собранный неправильно фонт.
Также давно лежит скомпилированный монитор, который пока что умышленно подменяет адреса портов клавиатуры и второго ППА, освобождая адресное пространство в 16кб. Наконец то я смогу блин проверить эти 16 кб, а также прописать епром няшками и запустить ее с адреса 0хе000. УРА короче. Пока вы там все ругались я целое дело провернул ))).
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Сб Янв 09 2021, 01:15

157
ведущий_специалист пишет:прописать епром... и запустить с адреса 0хе000
Не забудьте нюансы начального пуска. Когда мы расширяем ПЗУ с F800 до E000...FFFF, то по сбросу происходит старт уже не с F800, а с E000. Потому в ПЗУ 2764 устанавливаемом в этом окне на адресе E000 должен обязательно быть JMP F800. Иначе по сбросу у Вас начнёт исполняться какой-то код, что прошит в ПЗУ на E000 без инициализации ячеек ROM-BIOS и БИС ВГ75.

Так что или меняйте схему нач.пуска так, чтобы сигнал НП приводил к выборке адреса F800 или выбросите тот странслированный код, что я странслировал выше на адрес E000 и перетранслируйте его на адрес E003. Можно просто в том коде на адресе E000 поставить JMP F800, а в монитор добавить директиву (например "." точка) для выполнения входа в доп.код, что прошит в E003...F7FF.
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Сб Янв 09 2021, 22:12

158
Барсик, вопрос к Вам, я прошиваю скомпилированный монитор, ужатый Вами, прошиваю в микросхему, вставляю. Вижу инициализацию.... надпись рк86. И никакой реакции на клавиатуру. Есть ли нюансы в данном исходнике? Реагирует только на светодиод рус/лат и всё. В исходниках менял лишь 4 байта настройки монитора и всё. Нашел вот такой странный код... 
LD HL,7 shl 8 + 1
я не силен в асме z80 такое ощущение что это 2 разных строки и как такое компилится только.
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Вс Янв 10 2021, 00:32

159
ведущий_специалист пишет:вот такой странный код... 
LD HL,7 shl 8 + 1
я не силен в асме z80 такое ощущение что это 2 разных строки
оператор SHL (а есть и SHR) это мнемоника от иностранных слов SHIFT LEFT (SHIFT RIGHT) и выполняет сдвиг первого операнда на число раз второго операнда. В данном случае число 0007H сдвигается влево на 8 разрядов, отчего получается число 0700H. А затем в данной команде к результату прибавляется число 1, отчего получается число 0701H.

Если бы мы написали сначала 1 +... , то понадобились бы скобки, чтобы указать порядок операций. Эта строка компилится любым ассемблером CP/M, возможно кроме самодельных любительских уж совсем примитивных в которых нет вычислений выражений.
ведущий_специалист пишет:никакой реакции на клавиатуру. Есть ли нюансы в данном исходнике? Реагирует только на светодиод рус/лат и всё.
Это хреново. Обычно такое бывает, если ППА клавиатуры не запрограммировался в режим или неверна его адресация. В данном случае, если есть реакция на  клавишу <РУСЛАТ> , то это значит, что ППА на адресе и что он в режиме ввода по порту PCH. Не знаю, что бывает с ППА, если в него не записали упр.слово в РУС задающее режим.

Возможно ППА после сброса не в полной отключке, а находится в режиме ввода, т.к на его выходах единицы (что и используется как сигнал НП в Специалисте). Потому вероятно, режим ППА у Вас всё-же не запрограммировался. Хотя, если светодиод РУ/ЛАТ загорается и гаснет, то это значит, что PCL запрограмирован на вывод, а вряд ли по сбросу ППА устанавливается, что старшие разряды PC на ввод, а младшие на вывод.

Я в реале код этих последних ПЗУ не проверял (не на чем было), только в эмуляторах. Если речь о ПЗУ в котором освобождено 285 байт, то я посмотрел сейчас в исходнике (не том, что выкладывал, а том, что в моём архиве) и увидел, что там есть команды программирующие ППА по сбросу.


LD A,8AH
LD (PU),A


Последний раз редактировалось: barsik (Вс Янв 10 2021, 00:55), всего редактировалось 1 раз(а)
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Вс Янв 10 2021, 00:48

160
оно то компилится но клавиатура не работает.

изменил знакогенератор. псевдографические символы сделал полностью 16 точек, думал тем самым уберутся разрывы между строками... хрен там, разрывы остались хоть и меньше...это меня сильно печалит, так как ставит крест на использовании символов 8х16. попробую поиграться конечно с настройками но что то мне кажется что нифига не получится.
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Вс Янв 10 2021, 00:54

161
Мне бы саму подпрограмму ткнуть носом, какая именно настраивает ппа и как сканирует клаву, может сам бы глянул что да как.
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Вс Янв 10 2021, 01:04

162
ведущий_специалист пишет:оно то компилится но клавиатура не работает.
это понятно, как иначе то?
ведущий_специалист пишет:псевдографические символы сделал полностью 16 точек, думал тем самым уберутся разрывы между строками... хрен там, разрывы остались хоть и меньше...это меня сильно печалит, так как ставит крест на использовании символов 8х16
С разрывами разберёмся после, надо всё по порядку. Сначала важнее разобраться с клавиатурой.

А разрывов быть не должно, возможно Вы не так формируете фонт. Куда и что у Вас идёт на адрес А10 ПЗУ. Тут два варианта. Или на старой плате просто соединяем LC3 с А10 ПЗУ и тогда фонт своеобразный в котором для каждого символа первые 8 линий прошиты в первый килобайт (аналог базового фонта), а оставшиеся линии фонта прошиваются во второй килобайт. Мне для этого пришлось нацарапать для РК86 спец.программку, что из обычного фонта с шагом 16 делает такой своеобразный фонт.

Или второй вариант фонта, это когда адреса на ПЗУ РФ2 A3...A9 сдвигаются вверх. Т.е та цепь, что шла на A3 теперь идёт на А4, А4 - на A5, А4 - на А6... А9 - на А10. А на освободившийся адрес А3 подаётся LC3 от ВГ75. Тогда годится традиционный фонт с шагом 16 (причём неважно для режима 10H где фонт высотой в 14 линий или для режима 11H, где фонт высотой в 16 линий).

В эмуляторе странслированную вами прошивку проверяли?


Последний раз редактировалось: barsik (Вс Янв 10 2021, 01:10), всего редактировалось 1 раз(а)
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Вс Янв 10 2021, 01:07

163
подсунул эмулятору..не работает клава.
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Вс Янв 10 2021, 01:16

164
ведущий_специалист пишет:Мне бы саму подпрограмму ткнуть носом, какая именно настраивает ппа и как сканирует клаву, может сам бы глянул что да как.
Режим задаётся в 118 строке, четвёртой командой исполняемой после сброса. А сканирование матрицы бегущим нулём как раз и делает п/п-мма AFE97. В ней единица в младшем байте (в рег.L) как раз и есть этот бегущий ноль. А 7 в рег.H это число сдвигов, чтобы просканировать все 8 линий.

Какой ассемблер Вы использовали. Может быть Вы использовали левый самодельный ассемблер в котором приоритеты выполнения операций не совпадают со стандартом. И тогда м.быть к 8 прибавляется 1 и уж затем на полученное число разрядов 8+1= 9 сдвигается число 7. Попробуйте скобки, типа LD HL,(7 shl 8) +1.

Не... лучше без SHL или скобок просто напишите LD HL,0701H. Скиньте ваш код, я тоже хочу посмотреть отладчиком в эмуляторе.


Последний раз редактировалось: barsik (Вс Янв 10 2021, 01:27), всего редактировалось 1 раз(а)
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Вс Янв 10 2021, 01:23

165
угу...прописал вот так LD HL,00701H; 7 shl 8 + 1
клавиатура заработала (в эмуляторе)
но на любую директиву матерится вопросиком, что то еще не то.
https://cloud.mail.ru/public/aitD/AhK8enPQk
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Вс Янв 10 2021, 01:52

166
Достаточно сравнить два ПЗУ по 2 Кб, чтобы найти адреса, где есть отличия. Так я думал.

Скачал ваше ПЗУ, укоротил его до 2 Кб, откинув из него в UltraEdit-е излишние 62 килобайта заполненные нулями. И загрузив в эмулятор ОРИОНА оба кода, сравнил и... получил ~2 Кб несовпавших ячеек. Это значит, что Вы что-то сдвинули в коде, а не только заменили 4 байта. Так и оказалось - сдвижка на 2 байта, потому сравнением место несовпадения не найти.

Проще было бы воспользоваться тем же стандартным инструментарием (M80/L80), что были в моём дистрибутиве и, изменив исходник как надо, просто запустить в DosBox-е BAT-файл. А так, при попытке переноса на какой-то иной ассемблер, возникли ошибки вызванные, во-первых, убогостью этого применённого Вами ассемблера.

А во-вторых, подгоняя исходник рассчитанный для ассемблера Microsoft M80 под этот примитивный ассемблер, Вы внесли ошибку. Видимо считая, что данный ассемблер в силу его убогости не имеет даже условной компиляции (уж настолько то убожество вряд-ли возможно в ассемблере для Windows, скорее он просто не понимает оператор "IF" в первой позиции строки, полагая, что это метка)... так вот, увидев, что блоки IF не работают, Вы закомментировали все проверки на сдвижки кода имеющиеся в этом исходнике ROM-BIOS и случайно закомментировали одну нужную строку. А также развернули макрокоманды, видимо считая, что и макрокоманд в этом ассемблере нет. Что тоже вряд-ли (все современные ассемблеры МАКРО), вероятно там просто другой синтаксис.

Вот здесь на строке 259, закомментируя условный блок, Вы по ошибке закомментировали одну нужную команду ассемблера.


;if     high (BASE+34H) eq high BASE
;       LD      E,34H
;    else
;       .printx *      Wrong BASE (Low BASE need be < 0E0H) !
;endif

Это кстати, была проверка нужная потому, что в п/п-мме GETLIN используется упрощённая проверка на конец буфера ввода. А именно, - контроллируется на максимум только младший байт указателя по буферу. Что значит, что весь буфер должен быть в пределах одной Page в 256 байт, иначе контроль не сработает и возможно что-то нужное будет затёрто. Потому этим условным блоком и проверяется, что старший байт начала буфера ввода равен старшему байту конца буфера (что и означает, что весь буфер в пределах страницы).

Я так понял, что это исходник транслируемый для проверки в эмуляторе ибо высота знакорядов здесь поставлена не на 16 (как надо Вам для VGA 480), а на 8, хотя правильно было бы - на 10, как и было в оригинале. Если уж ставить высоту знакоряда 8 вместо 10, то и число знакорядов надо было изменить с 30 на 38 (и получится режим для сплошной псевдографики без межстрочных разрывов). Но и это не поможет, ибо в таком режиме монитор вообще работать не может, т.к 38 строк не влезают на место отведённое для 30 строк.. И на реале с такими цифрами синхронизации не будет, ибо частота кадров в таком режиме будет 63 ГЦ вместо 50. А эмулятору всё-равно, потому на эмуляторе проблемы установки режимов и синхронизации не проверить.

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

Сказали бы мне под какие адреса надо странслировать. У меня Win XP, потому могу прогонять CP/M программы и заменить пару букв и странслировать это займёт 5 секунд времени. А те кто имеет не Win XP, то если он не хочет пользоваться DosBox, тот обречён на убогие самодельные компиляторы Си и убогие самопальные любительские компиляторы ассемблера.

Но меня утомила русская кодировка в которой ваш исходник. Ни один из имеющихся у меня редакторов эту кодировку не признал. Понятно, что это что-то вроде 16-ти битовой кодировки типа Unicode. Многие редакторы признают это UTF, но русских букв ни один редактор не даёт. Ни один онлайн перекодировщик кодировок также не признал эту кодировку. Ни один браузер также не смог определить кодировку. Я даже скачал несколько крутых редакторов (точнее это они думают, что они крутые, а на самом деле они убогие) и не помогло. В итоге я понял, что это вообще не кодировка. Очевидно Вы перекодировали в UTF неверно указав исходную кодировку и в итоге перекодировалось в бред вместо русских слов.

Я использую альтернативную кодировку MSDOS, которая научно называется CP866. Она самая удобная для программирования, в ней работает MSDOS и ещё она имеет псевдографику для рамок и буквы европейских языков. Потому, чтобы перекодировать в иную кодировку надо указать что исходная кодировка CP866. Но для 8-ми разрядок кодировка Unicode совершенно непригодна - при трансляции, даже если компилятор это "съест", выходной код будет неверным.

Для работы в Windows в альт.кодировке удобнее всего древний UltraEdit (новые не надо). Он не только лучший редактор для программиста, но и редактирует тексты как в ANSI (CP 1251), так и в кодировке MSDOS и содержит встроенныё перекодировщик кодировок, имеет встроенный HEX-редактор и записывает и прогоняет макрокоманды (это цепочки нажатий клавиш, что надо повторять сотни раз - например ищем символ ";" и удаляем его и все символы после него до конца строки (для Си есть уже встроенная команда удаления комментов). Скачивайте, кустомизируйте по вкусу (нажать прав.кнопку на пустом месте верхней балки), ставьте фонт Lucida Console 16, нежирный, тип килиллический и пишите программы и тексты. MSDOS кодировка будет когда ставите галочку напротив OEM в вкладке "Вид", иначе Windows кодировка (называемая ANSI).

А исходник в UTF-кодировке который Вы выложили не транслируется с помощью M80. Потому что в тексте полно байтов меньше 20H, т.к в этих дурных кодировках первый байт 00 и полно ещё других недопустимых для ASCII-текстов кодов (например 04, 07, $0B  и др). М80 не выносит недопустимых кодов и вне текстовых строк кодов >128. Пришлось редактором удалить все недопустимые коды, тогда странслировалось без проблем.

Не было в 1970-тые, 1980-тые и 1990-тые годы никаких 16-ти разрядных текстовых кодировок. Потому все компиляторы транслируют исходники в ASCII. И только в XXI-веке придумали такой маразм как 16-ти разрядные кодировки (это специально, чтобы порадовать китайцев и японцев у которых десятки тысяч иероглифов). Программировать надо в ASCII !!! При программировании не нужны 65535 символов. Зачем программировать в Unicode?

Да и просто тексты на русском языке зачем писать в 16-битовых кодировках? Не для иностранцев пишем, а если у них будут проблемы при чтении, то сами и перекодируют. Почему мы должны страдать ради их удобств? Когдая смотрю китайские сайты вижу чушь и мне ничего не понятно. Китайцы не подстраиваются. Почему же мы сдуру так хотим подстраиваться под удобство китайцев? Во всех языках программирования применяются символы ASCII 20...7F, а те у кого язык не на латинице могут использовать в текстовых строках и коды 80...FF.
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Вс Янв 10 2021, 11:13

167
А в эмуляторе EMU от B2M Вы уже научились проверять коды ПЗУ F800 под VGA дисплей?

Я уже выше (вот здесь) упоминал, как перенастроить конфигом эмулятор EMU под шрифт VGA. Только я полагал, что у Вас режим 10H и соответственно фонт высотой в 14 линий. Кстати там ошибка, т.к даже для фонта высотой в 14 линий надо указывать фонтовый шаг fontheight равным 16.


fcrt : K580wg75 {
 dma=dma[2]
 font=font.frame[0]
 fontwidth=8
 fontheight=16
 hilight=crt.ggh
}

Потому что надо понимать, что параметром fontheight указывается не высота фонта на экране, а шаг фонта в файле знакогенератора, по которому эмулятор высчитывает позицию выводимого символа в этом файле. Высоту фонта на экране задаёт настройка ВГ75, т.е если в 3-м параметре указано 10, то высота знакорядов и будет 10, будь хоть шаг фонта (fontheight) указан в 8 или 12 или даже 32.

Если у Вас фонт из двух частей (когда LC3 заведён не на A3, а на А10), то эмулятор не поможет проверить фонт. Т.е, если у Вас фонт сделан так (т.е состоит из 2-х участков), то в эмуляторе такой фонт никак не проверить. Потому что эмулятор считает фонт неизвращённым - он умножает код символа на шаг (fontheight) и затем выводит в виде символа последовательно столько байтов, сколько соответствует настройке ВГ75.

Также в соответствии с шагом (8 или 16) надо изменить размер коммутируемого фрейма знакогенератора, он соответственно будет или 400 или 800.


font : Memory {
 ~rom="Radio/FONT8X16.DAT"
 frame[0].size=800
 frame[0].page=DOPPPA.portC[7]
}


Тут PC7 переключает фреймы знакогенератора, - основной фонт и альтернативный. При шаге фонта в 16 байт, фонт займёт 4 Кб (уместится в одну 2732 или две РФ2).

Могу странслировать ROM-BIOS РК86 для телевизора с фонтом 8*16 и проверить фонт и работу ROM-BIOS в эмуляторе. При этом будет всего 16 строк, а не 25 строк. Т.е в исходнике придётся ввести ещё параметр число строк режима.

Куда в вашем реале заведён выход LC3 ВГ75 ?
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Вс Янв 10 2021, 11:33

168
https://i.servimg.com/u/f40/20/27/23/61/romvga10.png
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Вс Янв 10 2021, 12:01

169
Понятно.

Просто обычно, когда делают улучшение или удвоение фонта на уже имеющейся плате по базовой схеме, то выгоднее не резать 11 цепей и не кидать 11 проводков, а достаточно одного разреза (отрез А10 от земли) и кинуть один проводок между LC3 и адресом A10 ПЗУ 573 РФ2. При этом и получается фонт из двух частей. Т.е 8 линий графики символа 00 расположены в адресах ПЗУ фонта 000...007, а остальные 2 линии 9-я и 10-я графики символа 00 находятся по адресам 400...401 того же ПЗУ РФ2. У меня так сделано (чтобы рисовать рамки в режиме 64*25 без разрывов), но формируется такой хитрый фонт для прошивки отдельной простенькой программкой.

А когда делается удвоение фонта, т.е не расширяется фонт по высоте, а просто добавляется альтернативный фонт той же высоты 8 линий, то на A10 ПЗУ фонта заводится управление - переключатель фонта (это м.быть атрибут RVV или PC7 запасного ППА).
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Вс Янв 10 2021, 12:15

170
Заработал монитор. Раскомментировал строчку и все начало работать. Шрифты программы (комментариев) я не трогал, очень хотелось почитать кракозябры поэтому попробывал в notepad++ подобрать шрифты - в результате все сбилось безвозвратно. Правильно сделали что удалили все комменты, ибо они бессмыслены в дос кодировке. Да,да - я очень рад что хоть этот ассемблер откомпилировал эту прошивку и мне не пришлось ставить вин хп и тд.Возможно я позже разберусь с макросами и прочими условиями, наверняка ассемблер это умеет.
Эмулятор б2м я не ставил, думаю того что у меня сейчас есть будет достаточно.
Сегодня доработаю монитор так, как хотел, попробую порты переключить вверх, тем самым освободив 16кб.
С фонтами уж очень хочется разобраться(даже не с фонтами а с настройкой вг75). Кстати, могу дать платку чтобы Вы смогли себе собрать данную версию (там вг75 обвязка по цвету и свой генератор). Если проблемы с деталями - могу впаять все то что у меня есть. С вг75 проблема на авито я их так и не купил, думаю дело времени. Так что если платка нужна - дайте знать.
Флейм только по теме "Радио-86РК". - Страница 7 Pcbvga10
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  Viktor2312 Вс Янв 10 2021, 12:35

171
...очень хотелось почитать кракозябры...

Они великолепно читаются, без лишних телодвижений открываем в блокноте и ставим шрифт Terminal

Спойлер:

Viktor2312
RIP

Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Вс Янв 10 2021, 12:42

172
ведущий_специалист пишет:комменты, ибо они бессмыслены в DOS кодировке
Не проблема перекодировать исходник с русскими словами в любой стандартной кодировке в любую другую кодировку (только желательно 8-ми битовую, а не 16-ти битовую Unicode, что использует самый идиотский редактор notepad++ - он нужен только китайцам и японцам, он предельно паршивый, но некоторых людей он привлекает раскраской ключевых слов для разных ЯВУ, хотя это есть в любом нормальном редакторе). Только указывать при перекодировании надо правильно исходную кодировку, тогда и результат перекодировки получится верным. Мне хватает простешего крошечного редактора BRED с встроенной перекодировкой кодировок. А если он не может, то полно онлайн перекодировщиков.
ведущий_специалист пишет:рад что хоть этот ассемблер откомпилировал эту прошивку и мне не пришлось ставить Win XP
Возможность прогона старых программ для MSDOS на любой новой Windows вполне заменяет DosBox.
ведущий_специалист пишет:Эмулятор B2M я не ставил, думаю того что у меня сейчас есть будет достаточно.
А какой у Вас эмулятор? Если EMU80 или любой другой, то я не знаю как в них менять размер фонта (и можно ли вообще его в них менять).
ведущий_специалист пишет:Кстати, могу дать платку чтобы Вы смогли себе собрать данную версию (там ВГ75 обвязка по цвету и свой генератор).
Не, не. Ни в коем случае. И Вам надо от доп.платки избавляться. Ведь есть ВГ75 на плате. 155 ИР13 должна потянуть 3 МГЦ паралл.записи и 24 МГЦ такта сдвига. Тогда нет никакого смысла в доп.платке. А 24 МГЦ как раз удобны для клока КР580 - просто меняем кварц 16 на 24.

И одним ударом получаем и клок КР580 в 2.66 МГЦ (это подъёмно для КР580) и одновременно получаем и частоты VGA и никаких доп.микросхем вообще не надо. И болтающаяся как сопля доп.платка с ВГ75 вообще низачем не нужна. Если ставится другой проц (8085 или Z80), то и так доп.платку приходится монтировать. Мне и цвет негде монтировать. Если ещё и для ВГ75 доп.платку ставить, то это вообще будет монстр.
ведущий_специалист пишет:С ВГ75 проблема на авито я их так и не купил
У меня в Р86К уже стоит ВГ75 и есть на замену (если сдохнет), а вот резервной ВТ57 я не запасся (буду надеяться, что не сдохнет).
Viktor2312 пишет:Они великолепно читаются, без лишних телодвижений открываем в блокноте и ставим шрифт Terminal
Зачем такие извращения (применять некрасивые фонты лишь из-за того, что в них кодировка OEM)? Легко найти красивые OEM-фонты или даже переставить в виндовс-фонте символы самому.

Достаточно иметь и для программирования всегда пользоваться UltraEdit-ом (см.выше). Он позволяет и кодировки Windows и MSDOS и даже КОИ-8, если добавить в папку "Fonts" фонты КОИ-8 (например от Лексикона или Микромира). Для программиста нет ничего лучше UltraEdit, это именно программистский редактор на все нужды. Я им 25 лет пользуюсь и ничего лучше не встречал. А notepad++ это самое последнее дело. Хуже этого уродства нет вообще ничего. Даже редактор Микрон от Барчукова и Фадеева из 1987 года перетранслированный для MSDOS лучше.

Скачать DosBox 0.74
Скачать UltraEdit 9.1


Последний раз редактировалось: barsik (Пн Янв 11 2021, 19:44), всего редактировалось 1 раз(а) (Обоснование : добавлялл ссылки)
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Вс Янв 10 2021, 14:36

173
Завел монитор на работу 48кб, перекинув порты клавиатуры и доп ППА в адреса выше Сххх. 
Вроде как завелось. Клавиатура опрашивается из адреса С200, доп ППА висит на С400.
набрал код в области А000 запустил - работает. Выполнение FA000,BFFF,0 работает, можно посмотреть директивой D.
Но вот наблюдаются артефакты при пользовании директивой М, изображение скачет по экрану непредсказуемо возвращаясь на место.
Экран перенести с полтычка не удалось (в область B600) ну и переменные монитора соответственно. Скорее еще что то менять надо.
Флейм только по теме "Радио-86РК". - Страница 7 48k10
решил сюда же дополнить. Короче проблема в том, что при сбросе не очищается экран. Надо фиксить, а так вуаля, это работает.
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty .

Сообщение  barsik Вс Янв 10 2021, 18:30

174
ведущий_специалист пишет:Короче проблема в том, что при сбросе не очищается экран.
Чтобы экран очищался надо в подпрограмме CLS изменить число 76D0 на SA:
CLS:    LD      HL,76D0H
CLSLOO: XOR     A
        LD      (HL),A
        INC     HL
        OR      H
        JP      P,CLSLOO
HOME:   LD      DE,308H
        LD      HL,SCBASE
        RET

ведущий_специалист пишет:Но вот наблюдаются артефакты при пользовании директивой М, изображение скачет по экрану непредсказуемо возвращаясь на место.
Что синхронизация срывается периодически или виновата именно директива М?

Вы случайно не в бордюр символы кладёте? Если символы отличные от $00, $20 или $FF класть в бордюр, то любая синхронизация на моно мониторе сорвётся. Но у Вас же д.быть ССИ и КСИ раздельные от видео, при этом символы в бордюре не должны срывать синхронизацию.
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб

Вернуться к началу Перейти вниз

Флейм только по теме "Радио-86РК". - Страница 7 Empty Re: Флейм только по теме "Радио-86РК".

Сообщение  ведущий_специалист Вс Янв 10 2021, 21:20

175
Всё бы хорошо но... Очистка происходит...хотя не, не происходит.
Все что было на экране остается, а первое включение заполняется символом ";"
Да им ожет я что то не понимаю, но ксором очистить экран? Не понимаю....
ведущий_специалист
ведущий_специалист
Мастер+

Сообщения : 303
Дата регистрации : 2020-10-16
Откуда : Санкт Петербург

Вернуться к началу Перейти вниз

Страница 7 из 16 Предыдущий  1 ... 6, 7, 8 ... 11 ... 16  Следующий

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения