Даташит на ВГ75.
- - - Добавлено - - -
Не знаю почему, но картинки урезаются по размеру, а архив не хочет цепляться.
Даташит на ВГ75.
- - - Добавлено - - -
Не знаю почему, но картинки урезаются по размеру, а архив не хочет цепляться.
Принято. Оно и логично - бывают же программы, у которых адрес запуска не равен начальному...
В принципе, драгндроп уже работает (даже самому понравилось), осталось чуть до ума довести.
Единственное - в силу специфика архитектуры эмулятора, файлы нужно будет бросать в предварительно открытое окно нужного ПК. То есть если бросить rkr в окно Апогея, то оно попытается запустить его в Апогее...
Нет, запилить не возьмусь :( Но готов помочь если кто-то возьмется. Исходники при необходимости будут доступны - я их планирую открыть.
с одной стороні єто тоже хорошо
с другой не сильно
по хорошему нужно 2 варианта
но пока хоть какой то
єто уже неплохо
- - - Добавлено - - -
тут ограничение как на разрешение
так и на вес изображений
ограничение на архивы по весу 640К
все крупное нужно выкладывать на сторонние ресурсы
можно разбить архив на части
но объем всех вложений от одного пользователя тоже сильно ограничен.
3Ы:
на WOS-е, по моему, вообще нет вложений
ZEvS, зачем выкладывать вырезки из справочника, когда можно скачать его целиком? Может кому не только ВГ75 понадобится, ведь она работает только в связке с ВТ57. И впредь, лучше всегда говорить, откуда дровишки, чтобы не напрягать собеседников, ведь у них уже могут быть более актуальные данные.
пофикшенные и несколько расширенные(в 2 раза больше цветов(если конечно подчеркивание ємулируется правильно)) картинки
Вложение 60390Вложение 60391Вложение 60392Вложение 60393
Вложение 60394
долго пытался понять что же не так...
чаво оно начинает читать с пол кадра...
видимо стоп дисплей работает несколько иначе чем я предполагал
хотя ресет после него правильно перенастраивает параметры
но что то потом идет не так
в придачу это что то эмулируется в emu80 o_O
еще нужно проверить как работает включение\выключение прерываний
в b2m разрешение прерываний сбрасывается сбросом и в итоге зацикленая синхронизация зависает
в emu80 не сбрасывается и то что висит в b2m тут запускается
и сбрасывается ли флаг сразу при чтении
или пока идет последняя строка его нельзя сбросить
и у нас сработают 100500 синхронизаций с последней строкой подряд...
еще нужно удостовериться
мигает ли курсор под атрибутом подчеркивание
для этого есть tst01.rka, tst02.rka в архиве
0001.rka
выводит все возможные атрибуты
нужно 2 фотки обоих состояний изображения
и еще видно ли в этом режиме курсор?(он под черными атрибутами)
- - - Добавлено - - -
они должны работать везде
а вот подчеркивание и инверсия...
ZEvS, а можно вот это например расшарить на dropbox?
Посмотрю и попробую разобраться, попозже только.
Согласно даташиту, кроме явной установки, флаг IE также автоматически устанавливается командой Start Display. Совершенно не уверен, что оно у меня отрабатывает правильно - проверю.
Сразу.
Мигает, тесты посмотрю чуть позже.
Кстати, в ответ на вчерашний вопрос: курсор формируется сигналом lten в режиме подчеркивания и rvv - в режиме инверсного блока.
- - - Добавлено - - -
а что там висит?
Я понял, я имел в виду, какие из тестов или программ так себя ведут.
Нет такого - ни в железе, ни в Emu80, ни в Emu. Ровно одно чтение.
Кстати, выяснилось, что в Emu80 неправильно считывается флаг IE - проверю и поправлю.
Сейчас прогоню тесты - уже нашел кое-какие несоответствия с оригиналом в эмуляторе.
Замеченные расхождения:
0001.rka:
Оригинал - при одновременной установке атрибутов мерцания и подчеркивания подчеркивание мерцает
Emu80 и Emu - мерцает только символ, подчеркивание остается. У себя поправлю.
7.rka:
Оригинал и Emu80 - курсор присутствует
Emu - курсор не виден
(в то время как в 5.rka, например, курсор есть везде, в том числе и в Emu, а в 3.rka курсора нигде нет)
tst01.rka:
оригинал и Emu80 - курсор мигает
Emu - курсор не виден
- - - Добавлено - - -
Нет, сам по себе не снимается. Даже командой Disable Enterrupt. Может висеть бесконечно, снимается только чтением.
Или я неправильно понял вопрос?
- - - Добавлено - - -
Нет необходимости, Start Display вполне достаточно
скачал ємуль и файлы
положил эмуль и файлы по неимоверно длинному пути(чуть больше и ємуль уже не находит конфиги) содержащем русские буквы и всякие ;%:№;:?№;%:;№"
включил совместимость с win95 (для большей глючности)
ничего не закрашилось и все работало (при драгндропе)
правда если делать загрузку вручную
почему то небыло синхронизации
бутто видео режим не меняется...
и вообще нормальный ємуль не должен валиться от загруженных в него файлов
любимый браузер пробовали закрывать?? : )))))))))))))))))))
Вот я добрался и до этого
Изображения с реального железа закаптуренные DDp с тв тюнера
((и очищенные от не фона) по бокам подставлено то что обрезалось)
там назывались rgb.jpg yc,jpg
Вложение 60440Вложение 60441
на которых видно что содержимое первых 5-х или последних 2-х знакомест
может переть на фон с задержкой в несколько строк и в инверсированном виде
вот 40 тестов в одном .rka для проверки возможностей этой фичи
Вложение 60439
(переключение методом научного тыка или клавишами 1,2)
конечно на некоторых телеках может просто не быть никакого эффекта вообще
(что в общем то и видно на одном из телеков на фотках DDp)
вот нафотошопил как это можно использовать
http://zx-pk.ru/attachment.php?attac...2&d=1491070305
конечно не сильно впечатляет
но думаю можно будет сделать и немножко лучше
(возможно можно будет делать плавные градиенты одного цвета)
да и получить дополнительно более разнообразный фон без каких либо усилий..
...почему бы и нет?
Реквестируются
результаты (40 фоток\скриншотов) работы на разных телеках\тв тюнерах :v2_dizzy_roll:
и впилевание поддержки эффекта в emu80:v2_dizzy_dance:
Подтверждаю - мой косяк. Добрался сегодня до ХР с вижуал-сями, действительно отрисовывалось за пределами DX-поверхности при смене размера экрана. Семёрка отнеслась к подобному вандализму весьма толерантно. Если кто-то ещё пользуется моим эмулем - качайте с сайта исправленную версию.
Кто-то. Подчистил.
Вот результаты на моем ТВ-тюнере:
https://yadi.sk/d/5BZy6k4G3GcV9A
К сожалению, нет возможности пока подключить в цвете - надо либо схему типа video doctor от vinxru паять либо что-то другое изобретать...
В принципе, есть PAL-кодер от nedopc, но по-моему, кто-то уже писал, что с сигналом Апогея он просто так работать не будет...
Что-то я не уверен, что эта дрожащая картинка стоит поддержки в эмуляторе. Хотя, если получится добиться стабильных результатов на разных устройствах... тогда можно будет подумать над этим...
а как проявляет себе дрожание?
оно дрыгается?
или на каждой картинке стабильное изображение?
и просто смещение строк
оно на каждой картинке?
некоторые из них и так могут вызывать смещение
- - - Добавлено - - -
по идеи кроме фона еще будут окрашены и сами столбики
и того на картинке должно быть видно под 70 цветов ;)
Похоже, что это в самом Апогее какие-то наводки при пониженной яркости. В общем, вот:
https://yadi.sk/d/RRbkKNzy3GcXuG
Расматриваю результаты.
В вашем случае на фон прет содержимое только двух последних знакомест
точнее участок в одно знакоместо между 2-мя
(видно по 20-му тесту)
как и предполагалось в инверсированном виде
при этом вполне можно смешивать 2 разных цвета (видно по 21-му тесту)
разрешение довольно высокое
можно рассмотреть каждую пиксельную строку
задеркжа в одну строку
(видно на тестах 29,32)
при плавной смене цветов искажений(смещение по оси Х) практически не видно
Для вашего случая тесты 5,7,8,9,10,11,12,13,14,15,16,17,18,28,31,34,37,40
к сожалению не актуальны
самое интересное что в данном случае
фон остается не изменным кроме варианта когда за границей экрана ничего нет вообще (черный бордюр)
вот тогда фон немножко прибавляет яркости
а яркость нормально меняется только у светящихся точек...
...интересно что это за кубоид справа снизу о_О
в видео памяти его нет...
- - - Добавлено - - -
как по мне хорошее изображение
стабильное но с какими то шумами
(чего я не впилил обычный экран без каких либо эффектов о_О)
щас быстренько сделаю закину
вот
Вложение 60468
00 - без каких либо эффектов
с него же стартует
- - - Добавлено - - -
вот последние достижения
как минимум 56 цветов (4 раза подряд) во всей своей красе
Вложение 60471
правда на чернобелом телевизоре:v2_tong2:
тк тут дополнительных цветных результатов тестов по управлению яркостью фона
до сих пор нету
обсуждение получения Hires-а переезжает в другую тему
http://zx-pk.ru/threads/27593-progra...adio-86rk.html
Может, никому это не нужно :rolleyes:
:mad:
Можно. И только ради того что бы показать *****код (рисование на бордюрах) :v2_thumb:
Ссылка на некоторые результаты (не вечная).
---
Upd: уточнил название чипа в тюнере. Обновил его драйвера и софт. В новом софте доступна опция режима горизонтальной синxронизации. Снял видео в режиме "Poor Signal".
На маленьком жк-тв, к которому у меня подключён Апогей, никаких эффектов яркости не наблюдается. Во всех 40-а тестах вертикальные цветные полосы на чёрном фоне - уровень яркости у фона и самих полос одинаковый, сверху-донизу, и не меняется от теста к тесту.
Сейчас Апогей с отпаяной клавиатурой - как соберу его обратно, могу проверить на ещё двух жк-тв. Но есть вероятность что и там никаких эффектов заметно не будет.
Ну во первых эффект теплый и ламповый (то есть возникает на реальном железе)
во вторых если я буду что то делать я буду его использовать
и на помню что в eightyone эмулируются даже помехи от проца на экране...
(хотя и не на каждом видео на ютубе их и видно(у некоторых идеально чистый экран...))
- - - Добавлено - - -
что то мне сходу не дошло что тапки летят не в мою сторону...
может
- - - Добавлено - - -
Да
результаты 0001.rka.SAA7135.RGB
впечатляют (меня):v2_eek:
я ожидал более слабого эффекта
такие симпатичные цветные градиенты
вот бы так вели себя все телевизоры!!! :v2_thumb:
Вложение 60564Вложение 60561Вложение 60558Вложение 60560Вложение 60563Вложение 60562Вложение 60559
а видео даже еще лучшеЦитата:
Сообщение от DDp
видно чаво нельзя делать
и как при этом срывается синхронизация
- - - Добавлено - - -
оставьте 0001.rka.SAA7135.RGB
выглядит не плохо
весит не много
Вопрос к знатокам кухни программирования под РАДИО-86РК.
Столкнулся с великой странностью при работе с п/п Монитора. Заметил, что обращения к п/п вывода символа на экран (F809h) по каким-то неведомым причинам и поперёк всякой разумной логики сбрасываются биты порта.. клавиатуры (8002h)! Казалось бы при чём тут печать в экран и клавиатурный порт ВВ55? Сначала грешил на аппаратный глюк, но потом выяснилось, что и в эмуляторе точно также, значит дело не в железке.
И действительно, анализ "по-диагонали" содержимого п/п F809h показал, что прямо с первых строк идёт обращение к п/п F812h (тест клавы), а из неё к F81Bh (получение кода нажатой клавиши), в последней первым делом записывается 00h в тот самый порт клавиатуры (8002h). Это какая-то жесть!
Зачем это всё? Какой в этом сакральный смысл? От п/п вывода требуется только вывод символов или ESC-последовательностей. Или я чего-то не понимаю?
Насколько я помню в РК86 работа с клавиатурой сделана грамотнее, чем в ОРИОНЕ. Суть в том, чтобы эмулировать работу аппаратной клавиатуры. Которая, в отличие от ОРИОНА и РК86 работает самостоятельно, не нуждаясь в процессоре. Такая клавиатура поставляет в каком-то порту бит статуса (флаг есть код или нет) и в каком-то порту выдаёт готовый ASCII-код. При аппаратной клавиатуре нажатия на клавиши не пропадают, а при программной клавиатуре пропадают, если процессор недостаточно часто проверяет клавиатуру.Цитата:
Сообщение от Denn
Идея эмулирования такой клавиатуры заключается в том, что каждая подпрограмма ПЗУ должна вызывать исполнительную часть подпрограммы STATUS (F812) и проверять нет ли нажатия. Если такое нажатие есть, то вызывается F81B, считывается код нажатой клавиши и кладётся в буфер клавиатуры. После чего подпрограмма STATUS всегда будет выдавать готовность символа до тех пор пока не будет вызова F803. Поэтому даже когда вызов F803 произойдёт уже после того, как пользователь отпустил клавишу, будет считан правильный код, т.к он будет считан не с клавиатуры, а взят из буфера.
А в порт C клавиатуры кидается код, чтобы была верная индикация регистра светодиодом РУС-ЛАТ. Т.к нажатие могло быть и на клавишу РУС-ЛАТ, а светодиод должен загораться в момент нажатия на РУС-ЛАТ, а не несколько секунд позднее. Т.к клавиша РУС-ЛАТ не в основном поле, то для неё нет автоповтора, потому ждётся пока клавишу отпустят. Это свойство используется для останова ролика экрана при долгом TYPE.
Таким образом подпрограммы ПЗУ РК лезут в клавиатуру даже тогда, когда об этом не просят ради того, чтобы не потерять нажатия клавиш (например при долгом TYPE огромного текста). Такая работа с клавиатурой упрощает установку CP/M на РК86. А в ОРИОНЕ этого нет и в первых версиях CP/M для ОРИОНА работа с клавиатурой сделана неграмотно (так же неграмотно как это в мониторе), отчего есть проблемы двойных нажатий или дребезг и только с 1992 работа с клавиатурой сделана более менее грамотно. А в OS-DOS это так и осталось неграмотно.
В ACP/M и последующих ДОС использован следующий принцип борьбы с бешенным автоповтором и двойными нажатиями. Если по CONIN введён код клавиши, то в счётчик заносится 256. После чего независимо от того, нажата клавиша или нет, функция STATUS в течение 256-ти вызовов выдаёт флаг, что символа в буфере нет. И лишь по 257-мому вызову STATUS начинается реальный опрос клавиатуры. Так грамотно устраняется бешенный автоповтор.
Думаю, что такую идею в РК86 использовали по аналогии с другими компьютерами или же из опасения, что скоростей РК86 не хватит. Но в вообще-то делать такой опрос клавиш не стоило. Можно было проще, как в ОРИОНЕ. Потому что в BDOS CP/M есть свой буфер клавиатуры, который по вызову STATUS также кладёт символ в свой буфер. Т.е делает то же самое, что делает ПЗУ РК86. В итоге получается двойная буферизация. Программа CP/M перед вводом освобождает клавиатуру. Она действует так. Сначала вызывает STATUS и если получает флаг неготовности, то уходит на CONIN. А если получен флаг, что в буфере клавиатуры есть символ, то вызывается CONIN, символ считывается и отбрасывается и только потом делается переход на CONIN. Освобождение клавиш делается, чтобы прежние нажатия не влияли. А при двойной буферизации, освобождение клавиатуры не достигается. Таким образом, в IBM PC буфер клавиатуры на 16 нажатий, в базовой CP/M - на одно нажатие, а в CP/M РК86 на два нажатия. Правильнее, для опустошения буфера считывать с CONIN до тех пор пока STATUS не выдаст признак отсутствия символа в буфере.
Сакральный смысл есть. Из-за этого смысла программы РК86 работают с клавиатурой в стиле CP/M, хотя это и не требуется. Для этого сначала в долгом цикле вызывается STATUS и когда получен флаг, то делается уход на CONIN. Смысл при этом в том, что пока идёт периодический в цикле опрос STATUS, процессор может делать и другую работу. Например, мигать курсором, если курсор не аппаратный, обслуживать периферию (в частности, делать фоновую печать на принтер, как это делает программа фоновой печати CP/M), а также в играх гонять спрайты по экрану.
Но в РК86 курсор сдуру сделали аппаратным, отчего процессору просто нечего делать в цикле контроля STATUS-а клавиатуры. Проще просто сделать JMP на CONIN. Именно из-за такого трюка многие игры от РК86 не работают на ОРИОНЕ, а нуждаются в небольшой доработке. Курсор следовало сделать программным, т.к тогда можно было бы использовать 11 символов псевдографики (расход деталей кучка диодов и резистор), потому что горизонтальная линия псевдографики и позиция курсора задаётся одним и тем же числом. Потому стоит выбор, или рисование сплошных рамок псевдо графикой, или аппаратный курсор.
А программный курсор выгоднее, чем аппаратный. Программный курсор зажигается по первому-же вызову STATUS или CONIN, гасится перед исполнением CONOUT, а мигает по вызовам STATUS и CONIN. Разницы между программным курсором и аппаратным курсором нет. Только удобнее программно менять форму курсора и не надо принимать специальных мер, чтобы отключить курсор.
Denn, это сделано для того, чтобы приостанавливать вывод на экран при нажатии на клавишу "РУС/ЛАТ".
Как по мне -- это идиотское решение, только затормаживает вывод на экран стандартными средствами, в своём МОНИТОРе я это херню убрал.
Может немного не в тему, но я тут подключил наконец-то апогей к тёплому ламповому, так что можно какие-то вещи на реале прогнать.
https://goo.gl/photos/Vm31JgknHTByWFpP8
пока некогда всем єтим заниматься...
по крайней мере нужна свежая голова а не то что счас...
пока мож запустить єто
http://zx-pk.ru/threads/27478-sekret...l=1#post907239
если повезет увидишь всякие градиенты
http://zx-pk.ru/attachment.php?attac...1&d=1491742461
если нет
то не увидишь
нормальный хайрес пока не получается сделать
нужно чтоб в вг75 попадали точно нужные данные
а умя туда попадает куча фигни да еще и не по тому смещению по которому нужно...
а без реала на расстоянии...
последние достижения модно увидеть под каким то спойлером в этой теме...
http://zx-pk.ru/threads/27593-progra...adio-86rk.html
Каким образом на Бейсике для РК-86 можно реализовать INKEY$ (опрос клавиатуры на предмет выбора цифр)?
Код:1910 K$ = INKEY$
1920 IF K$ = CHR$(49) THEN GOTO 2030
1930 IF K$ = CHR$(50) THEN GOTO 2080
1940 IF K$ = CHR$(51) THEN GOTO 2130
1950 IF K$ = CHR$(52) THEN GOTO 2180
1960 IF K$ = CHR$(53) THEN GOTO 2230
1970 IF K$ = CHR$(54) THEN GOTO 2280
1980 IF K$ = CHR$(55) THEN GOTO 2330
1990 IF K$ = CHR$(56) THEN GOTO 2380
2000 IF K$ = CHR$(57) THEN GOTO 2430
2010 IF K$ = CHR$(27) THEN CLS : END
2020 GOTO 1910
Каким образом можно вывести символ псевдографики 07H?
При команде PRINT CHR$(7) издаётся звуковой сигнал.
Надо ввести команду POKE с соответствующими параметрами. Формат команды надо подсмотреть в описании бейсика, а адрес, в который будет записываться код, надо вычислить исходя из адреса начала экранного ОЗУ и желаемых координат строки и столбца для вывода символа.
- - - Добавлено - - -
yevrowl, рекомендую не пренебрегать поиском. Например, простой запрос гуглу с использованием ключевых слов БЕЙСИК, РК86 и POKE в числе прочего выдаст ссылку на полезную статью:
https://emuverse.ru/wiki/%D0%A0%D0%B...BD%D0%B0_Basic
Радио-86РК / Радио 04-90 / Организация окон в программах на Basic
В статье в Таблице 4 есть хороший пример использования средств бейсика для РК86:
Код:Таблица 4
10 REM ПРИМЕР ИСПОЛЬЗОВАНИЯ ОКОННОГО ДРАЙВЕРА
20 REM В ПРОГРАММАХ НА BASIC "МИКРОН"
30 В=4А800 : REM АДРЕС ОБЛАСТИ СВЯЗИ
40 A=USR(B): REM ИНИЦИАЛИЗАЦИЯ ДРАЙВЕРА
50 WX=5 :WY=22: REM КООРДИНАТЫ ОКНА
69 LX=20:LY=6 : REM РАЗМЕРЫ ОКНА
70 FOR I=1 ТО 5
80 РОКЕ В+9,WХ+(I-1)*2: РОКЕ В+10,WY-(I-1)*2
90 POKE B+11,LX: POKE B+12,LY
100 NW=USR(B+3): REM ОТКРЫВАЕМ ОКНО NW
110 PRINT CHR$(&,1F) ;"ВЫВОД В ОКНО"
120 PRINT "НОМЕР ";NW
130 PAUSE 2
140 NEXT I
150 FOR I=1 ТО 5
160 NW=USR(B+6): REM ЗАКРЫВАЕМ ОКНА
170 PAUSE 1
180 NEXT I
190 REM ВОССТАНАВЛИВАЕМ КОДЫ ИНТЕРПРЕТАТОРА
200 A=USR(B)
210 STOP