Просмотр полной версии : Секреты и трюки программирования (в том числе и игр) для РК-86
Режим с высотой строки 8 линий, наиболее близкий к PAL/SECAM стандарту:
85*39 = (79+6)*(38+1) = 15686*50.277 Гц
Один мой современный и придирчивый к сигналу телевизор показывает этот режим стабильно, в отличии от стандартного РК-шного.
Размер фреймбуфера 79*38 = 3002 байта
Aspect ratio псевдографического пикселя и знакоместа примерно 15:22 = 1:1.466
Во вложении пример для РК,Апогея и Микроши.
По ссылке (https://yadi.sk/d/43B0ui2K3G848v) фото с экранов - посмотреть, сколько видно, сколько обрезается.
УЭИТ для сравнения. Везде композитный вход (CVBS), кроме crt2 - это RGB монитор.
наиболее близкий к PAL/SECAM стандарту
Скажите что это за стандарт? Я почитал ГОСТ 7845-92, который тут уже упоминался, у меня получилось (68+16)(36+4). Откуда у всех такие бланки короткие? В чем необходимость?
...у меня получилось (68+16)(36+4). Откуда у всех такие бланки короткие?
То, что в ВГ75(i8275) создавалось для бланков в РК и подобных используется как синхроимпульсы. :v2_dizzy_aaaaa:
То, что в ВГ75(i8275) создавалось для бланков в РК и подобных используется как синхроимпульсы. :v2_dizzy_aaaaa:
Вотжеж срань то. Спасибо.
NEO SPECTRUMAN
18.03.2017, 23:46
Режим с высотой строки 8 линий, наиболее близкий к PAL/SECAM стандарту:
85*39 = (79+6)*(38+1) = 15686*50.277 Гц
и главное число тактов кратное 3-м
еще один хороший видео режим
Aspect ratio псевдографического пикселя и знакоместа 15:22 = 1:1.466
Не смог понять ход твоих мыслей, как у тебя получилось 15/22?
По теории у меня вышло 13:9 = 1.44(4) - очень близко, но не 15/22
Как считал: видимая часть строки: 52 мс или 69 + 1/3 символа
Видимых скан-линий - 288 или 288/8 = 36 строк
(69 + 1/3) / 36 * 3/4 = 13/9
Причем от конкретного режима вроде бы зависеть особо не должно.
...как у тебя получилось 15/22?
По теории у меня вышло 13:9 = 1.44(4)
( надо было мне написать ПРИМЕРНО )
По большому кругу - 88x60. :v2_dizzy_paratroope
- - - Добавлено - - -
Причем от конкретного режима вроде бы зависеть особо не должно.
Если знакоместо 6*8 - да, а в стандартном режиме знакоместо 6*10 , оно будет визуально более вытянуто.
krt17, к сожалению, у тебя ЛС недоступны, спрошу здесь.
Не поделишься своей тестовой утилиткой, пусть даже не окончательной версией? Надо бы кое-что потестировать в эмуляторе, как раз пригодилась бы, а скачать, пока она была доступна, не успел...
Без проблем. Формирование видео сигнала в РК абсолютно выбило меня, я пас, вернусь к zx. Желаю всем РК-шникам успехов в их нелегком деле :)
krt17, спасибо!
Да, в некотором смысле в спектруме все проще.
Если честно, то я сомневаюсь, что изучение формирования видео в РК приведет к реальному прорыву в написании игр вроде псевдографики высокого разрешения и т.п. - очень уж сложно все учесть.
Но по крайней мере достигнем лучшего понимания работы БИС и лучшей эмуляции - уже неплохо.
сомневаюсь, что изучение формирования видео в РК приведет к реальному прорыву в написании игр для псевдографики высокого разрешения
C псевдографикой высокого разрешения писать программы намного сложнее, чем чисто текстовые. Не делайте прорыв в псевдографике. Сделайте прорыв в играх с аппаратными спрайтами (по принципу Денди). Псевдографика - вынужденная мера, когда фонт всего один. А если есть несколько фонтов, то красивые графические спрайты намного приятнее, чем псевдографика 128*50 (и даже, чем 192*60).
Имею вопрос по, находящимся в разработке, немерцающим программам. Они, как я понял, рассчитываются на самый базовый журнальный вариант, куда и лишний проводок припаять не разрешено. Но ведь всякий нормальный пользователь имеет модификации. В частности, с помощью расхода куска проволоки, подающего на ВТ57 клок 2.66 МГЦ вместо 1.77, быстродействие увеличивается (на 13.5%). А если подать туда клок 3.2 МГЦ (16:5=3.2), то быстродействие возрастает ещё больше (на 20%). Ну а тот, кто имеет электро паяльник и в состоянии смонтировать отдельный задающий генератор с кварцем 16 МГЦ и заменить кварц у ГФ24 на 30 МГЦ (по ж.РАДИО 01.1991), тот получает ТУРБО в 2.5 раза (на 150%).
Так вот вопрос. Если Ваша игра не мерцает на базовом тормозном РК86 с реальным тактом в 1.3 МГЦ, то это значит, что она не будет мерцать и на моём РК86 с двойным быстродействием (или даже с акселератором на базе Z80B с тактом 9 МГЦ). Я так понимаю, что на более быстром РК процедура работы с экраном привязанная к КСИ, заведомо будет успевать выполняться за 3.84 МСЕК (время гашения по кадрам: 6 строк * 10 линий * 64 МКСЕК). Т.е на любой модификации РК, где реальная скорость прогона равна или незначительно превышает скорость базового РК86, то никаких мерцаний в игре, рассчитанной на базовый РК, - не будет? Или же сдвижка быстродействия немного в плюс-минус - расстрел? Т.е игра на чуть отличающемся железе будет мерцать по страшной силе.
Некоторые пользователи РК86, не имеющие RGB-монитора с частотой строк в 15.6 КГЦ, но сделавшие простейшую доработку до цвета (ЛИ1 + ЛП5), вынуждены смотреть цветные РК-игры на старых монохромных мониторах (вместо цветов - градации яркости). Однако ещё в 2014 году Alex_LG разработал простейший вариант подключения РК86 к цветному VGA монитору. Для чего достаточно заменить кварц 16 МГЦ на 24 и подпаять 15-ти контантный VGA-разъём (одновременно такая переделка даёт ТУРБО в 1.75 раза, для НЕТУРБО оставляют и старый кварц 16 МГЦ).
Я тоже не имею цветного CGA-монитора, потому после монтажа схемы для цвета, мне придётся подключать VGA-монитор. Кстати, РК86 - это единственный комп, где возможно использование VGA, тогда как на других бытовых компьютерах - это неразрешимая проблема. Так вот. При другой частоте строк (31 МГЦ) и кадров (50-70 ГЦ), как себя поведут немерцающие программы привязанные к КСИ?
Используя обнаружение КСИ через регистр статуса ВГ75, предположительно можно:
- опираясь на частоту кадров, определить реальный такт КР580
- опираясь на известный такт КР580 (1.77 или другой), можно точно рассчитать частоту кадров и частоту строк, на основании чего определить - видео вывод идёт на CGA или VGA.
Это возможно, потому что так делал Е.Седов, написавший программу точной подстройки скорости вращения колеса в дисководе. Т.е у РК86 всё-таки есть какая-то привязка к реальному времени.
А почему до сих пор никто не обратил внимание на вход для светового пера? Сигнал на этом входе тоже можно обнаруживать программно. Например, можно завести туда 50 Гц делённые на 10? С несложной схемой можно обнаруживать не только КСИ, но и самое начало кадрового бордюра.
Имею встречный вопрос по списку мерцающих\<мерцающих со СТРАШНОЙ силой> программ. Ну хотя бы первый десяток?
Вопрос не ясен. Приведена моя цитата и понятие встречный вопрос означает, что вопрос к тому, кто задавал первый вопрос. Таким образом логично предположить, что это вопрос ко мне. Но, если Вы прочитаете эту тему с начала, то Вы обнаружите, что я то как-раз считаю, что игры РК86 не мерцают и без использования апп.прерываний с частотой КСИ. Поэтому, к сожалению, не могу ответить на Ваш вопрос о том, какие игры РК86 мерцают. Это вопрос не ко мне, а к тем, что утверждает, что такие мерцающие игры существуют.
А то, что имеющиеся игры РК86 мерцают, т.к не используют модификацию экрана во время гашения экрана, утверждают "залётные" синклеристы. И целью этой темы, по крайней мере, на протяжении последних 20 страниц, является выяснить, как можно делать немерцающие игры. А попутно и доказать, что все кто программировал для РК86 ранее, - были недостаточно квалифицированы. Чтобы научиться делать немерцающие игры, а также обнаружить другие полезные для игр ресурсы железа РК86, и осуществляется в этой теме разборка временнЫх свойств применённых БИС с помощью изучения документации и тестовых программ прогоняемых на реале и в эмуляторах.
утверждают "залётные" синклеристы.
Я как залетный могу лишь вспомнить что кое кто тут предлагал вырубать экран вообще для его обновления, и якобы если на 1 фрейм то будет не заметно :) Мерцания не замечал, да и чему мерцать то если вся динамика , как правило, в 10 байтах.
Как делать "немерцающие" игры я думаю понятно всем за исключением barsik'а, и, судя по тому что отлавливание IR флага обычное дело, все так всегда и делали. Мы же тут разбирались как именно работает в РК i8275 и i8257 и как это тормозит проц. Разобрались уже давно. При всем при этом код и примеры были только от нео спектрумана, ДДП и меня, а от профи с 30 опытом только несколько нерабочих, непонятно для чего предназначенных фрагментов.
NEO SPECTRUMAN
19.03.2017, 20:15
Используя обнаружение КСИ через регистр статуса ВГ75, предположительно можно:
- опираясь на частоту кадров, определить реальный такт КР580
- опираясь на известный такт КР580 (1.77 или другой), можно точно рассчитать частоту кадров и частоту строк, на основании чего определить - видео вывод идёт на CGA или VGA.
ну думаю что можно взять и просто так рассчитать частоту проца
погрешность будет сильно большая
ну 1.7 от 2.5 думаю вполне отличить можно будет...
а за частоту строк...
Имею вопрос по, находящимся в разработке, немерцающим программам.
мерцают программы только у тех кто совсем не понимает что нельзя просто так кидать в видео память фон а потом сверху дорисовывать все остальное
если использовать буфер то проблемы этой никогда не будет
а с этим у РК проблем нет
у него небольшой экран
у него куча памяти
у него возможность двигать видео память куда пожелается (правда нужно уже писать программу которая будет постоянно синхронизироваться с КСИ(тоесть полный потактовый расчет всего кода и всех ветвлений и установка задержке для выравнивания или счетчиков тактов...))
проблема в том что писатели программ на РК кодили примитивно в лоб
да и не могу я сходу вспомнить "мерцающие программы"
вот для львова это повсеместная проблема...
там криво мерцает 90% софта...
С несложной схемой можно обнаруживать не только КСИ, но и самое начало кадрового бордюра.
обнаружение последний строки до КСИ хватает с головой
на этот момент изображение последней строки буферизировано
и можно спокойно менять содержимое видео памяти
и перенастраивать ДМА не боясь получить кашу на экране...
- - - Добавлено - - -
этом код и примеры были только от
щас у меня скоро появится еще немного свободного времени
и я вернусь
и запилю этот *****й pseudohires!!
(по крайней мере я на это надеюсь)
нужно еще провести несколько тестов на реальном железе...
и с осциллографом...
Не думаю что можно взять и просто так рассчитать частоту проца. Погрешность будет сильно большая
Почему же нельзя? Я уверен, что наоборот можно и точность будет идеальная +/- 0.01. Смотрите сами. Частота кварца и частота ВТ57 (т.е время захватов) меняется, а вот частота ВГ75 - это константа. До сих пор известно только 3 частоты - кварц 16 МГЦ стандарт, 20 МГЦ (когда знакоместо не 6*8, а 8*8 за счёт замены ИЕ4 на ИЕ5 + 2 диода) и 24 МГЦ, когда видео вывод идёт на VGA. И частота кадров всегда 50 ГЦ (точнее такая, что задана режимом ВГ75).
Так что при желании можно делать универсальные игры. Тогда при старте игра оценивает скорость КР580 и соответственно меняет константы торможения. Просто дорабатывать на универсальность игры, в которых есть уровни. Обычно уровни отличаются только тем, что в более высоком уровне константы торможения меньше.
обнаружения последней строки хватает с головой
Вы имеете ввиду, что хватает для программной замены аппаратного прерывания по КСИ.
В нормальной машине было бы лучше, т.к там сразу после последней строки начинается аппаратное гашение (строки на обратный ход луча по кадрам), т.е то что надо. А в РК86 бордюр программный, так что по IR мы определяем в РК86 только начало КСИ, т.е лишь середину периода гашения по кадрам, а не начало гашения.
Но, если Вы считаете, что этого хватает, то нет проблем.
вот для ЛЬВОВА это повсеместная проблема...
там криво мерцает 90% софта...
А почему программы для ЛЬВОВА мерцают больше, чем программы СПЕЦИАЛИСТА, ВЕКТОРА и ОРИОНА на КР580 ? Во всех 4-х - процессор КР580 и нет прерываний, а во ЛЬВОВЕ, наоборот, даже экран меньше, значит перерисовка экрана происходит быстрее, отчего мерцаний меньше.
К тому же ЛЬВОВ это отечественный ответ сэру Синклеру, т.е машинка чисто для игр (с маленьким экраном), значит никаких проблем в играх там быть не может.
NEO SPECTRUMAN
19.03.2017, 21:34
Я просто забыл что можно отключить экран и проц освободится...
- - - Добавлено - - -
Так что при желании можно делать универсальные игры. Тогда при старте игра оценивает скорость КР580 и соответственно меняет константы торможения. Просто дорабатывать на универсальность игры, в которых есть уровни. Обычно уровни отличаются только тем, что в более высоком уровне константы торможения меньше.
а были бы прерывания
и одни и те же игры(нормально написанные) работали бы на любой частоте проца
хоть на 0.5 МГц
хоть на 100600 ТГц
без какого либо изменения задержек...
грусть печаль....
- - - Добавлено - - -
А если его отключить то не с чем синхронизироваться!!! (или нет(щас гляну в мануал))
и уже нельзя ничего считать!!!
нет в мануале сказано они остаются!!!
- - - Добавлено - - -
Вы имеете ввиду, что хватает для программной замены аппаратного прерывания по КСИ.
как замена никудышняя
но хоть что то
В нормальной машине было бы лучше, т.к там сразу после последней строки начинается аппаратное гашение (строки на обратный ход луча по кадрам), т.е то что надо. А в РК86 бордюр программный, так что по IR мы определяем в РК86 только начало КСИ, т.е лишь середину периода гашения по кадрам, а не начало бордюра.
этот флаг прерывания
включается в последней строке знакомест
когда рисуется первая линия последней строки(по идеи)
и до начала КСИ там еще
и этот программный бордюр вон успешно видно на LCD-шниках по самое немогу(процентов 99 точно)...
и забейте на свое гашение
какое еще гашение???
гашение чего???
я генерировал примитивный видео сигнал без какого либо гашения (белый фон и синхроимпульсы - провалы до 0)
все прекрасно ловилось и гасилось (что телек сам не может погасить луч когда поймал синхроимпульс чтоле???(не я не уверен конечно...))
и никаких следов обратного хода луча и в помине не было
это ваше "гашение" нужно в цветных телеках чтоб находить уровень черного и там еще у них какая то фигня для цвета расположена(не помню как называется)...
просто нужно учитывать то что не на всех телеках видно весь экран
Косяк в Ужасм-е или снова у меня? или?
Ужасм портит, device zxspectrum48 виноват большую слишком прогу вы сделали :)
Да ну, 29 кБ - это большая ?? даже по меркам спека
device zxspectrum128 в данном случае спасет горе-программистов?
без disp #0000 - не портит. и даже вроде с disp #0004 - тоже нормально
org #4000 в начале я думаю спасет, че там сжасм делает не понятно.
NEO SPECTRUMAN
21.03.2017, 16:55
Проверяем тесты на железных апогеях
подход\код несколько брутальный и вероятность того что он даст нормальный результат стремится к 0
60207
возможно я там накосячил и оно вообще не может работать
но нормально отладить мне не на чем...
я так думаю это из за disp #0000
это только смещение для компилируемого кода
(оно рассчитано на компиляцию процедур которые будут потом перемещены)
lua видит память спектрума без какого либа смещения
нужно делать -/+4 в lua
мне задолбалось ловить глюки вызванные этим смещением
и я решил что проще отдать первые 4 байта
хотя можно компилировать
а потом при помощи другого исходника
в котором incbin результат работы пред компиляции
и считание контрольных сумм
все сделать в одном батнике, которым все и компилируют
может можно будет
после savebin
сразу же сделать incbin только что сохраненного по смещению 4
добавить адреса спереди и КС
ЭТО Я ОТВЕТИЛ НЕ ДОЧИТАВ О ЧЕМ РЕЧЬ...
мдаааа.....
01 0000 device zxspectrum48
02 0000 org #0000
03 0000 rkBegin
04 0000 00 00 db progBegin/#100,progBegin&#ff
05 0002 73 16 db (progEnd-1)/#100,(progEnd-1)&#ff
06 0004 binBegin
07 0004 disp #0000
08 0000 progBegin
09 0000 ;-------------------------------------------
10 0000 ; code here
11 0000 ; jp $
12 0000 incbin "RK-86.bin"
13 7317 ;-------------------------------------------
14 7317 progEnd
15 7317 ent
16 731B binEnd
17 731B cs = 0
18 731B lua pass3
19 731B~ mems=_c("binBegin")
20 731B~ meme=_c("binEnd")
21 731B~ cs=0
22 731B~ for i=mems,meme-2 do
23 731B~ cs=(cs+sj.get_byte(i)*257)
24 731B~ end
25 731B~ cs=(cs-cs%256+(cs+sj.get_byte(meme-1))%256)%65536
26 731B~ _pl("cs = "..cs)
27 731B cs = 11373
27 731B endlua
28 731B display cs
29 731B 0000E62C6D db 0,0,#e6,cs/#100,cs&#ff
30 7320 rkEnd
31 7320 savebin "prog.rk",rkBegin,rkEnd-rkBegin
Value Label
------ - -----------------------------------------------------------
0x0000 rkBegin
0x0000 progBegin
0x7317 progEnd
0x0004 X binBegin
0x731B X binEnd
0x2C6D cs
0x7320 rkEnd
прикольно сджасм крашится при попытке сделать lua allpass
может єто традиционные траблы со всякими include-ми?
нужно запихнуть все єто в виде defb и нлянуть
...нет bin2hex щас под рукой...
СКОРМИЛ СВЕЖЕМУ SJASM-У
https://github.com/mkoloberdin/sjasmplus/releases/tag/20170311
И ВРОДЕ ВСЕ НОРМ!!!!
Проверяем тесты на железных апогеях
подход\код несколько брутальный и вероятность того что он даст нормальный результат стремится к 0
60207
возможно я там накосячил и оно вообще не может работать
но нормально отладить мне не на чем...
Тесты 1, 3 и 4 на реальном Апогее ничего не показывают.
Тест 2 выдаёт такую картинку:
http://savepic.ru/13365596.jpg
При этом синхронизация периодически срывается.
Сейчас остальные попробую..
С остальными тестами то же самое - ничего нет на экране
NEO SPECTRUMAN
21.03.2017, 19:12
во втором и четвертом тесте
включено 0 тактов между запросами ПДП
видимо ДМА не успевает за строку перекинуть столько памяти (почему??? я брал с запасом...)
и как и сказано ВГ75 тушит єкран при потере данных...
в принципе раз второй пример более менее работает
можно попытаться копнуть в этом направлении
непонятно где все остальное только...
оно не мигает??
на частоте 200Гц случаем о_О???
оно не мигает??
на частоте 200Гц случаем о_О???
Нет, не мигает. Думаю ЖК-ТВ просто не понимает сигнал.
Чтобы удостовериться что я всё делаю правильно и Апогей рабочий, загрузил пару игр от vinxru:
http://savepic.ru/13352697m.jpg (http://savepic.ru/13352697.htm) http://savepic.ru/13341433m.jpg (http://savepic.ru/13341433.htm)
http://savepic.ru/13335289m.jpg (http://savepic.ru/13335289.htm) http://savepic.ru/13320953m.jpg (http://savepic.ru/13320953.htm)
NEO SPECTRUMAN
21.03.2017, 19:32
60208
еще вариант
- - - Добавлено - - -
Чтобы удостовериться что я всё делаю правильно и Апогей рабочий,
не просто видео сигнал получается сильно дырявым и не по ГОСТ-у
а еще я зря туда вставил атрибуты (с первого раза да еще и захотел мультиколор :v2_dizzy_facepalm:)
сразу после ССИ они наверное еще хуже делают
телек то проглатывает дырки посреди строки
но потери целой он уже...
60208
еще вариант
http://savepic.ru/13326696.jpg
NEO SPECTRUMAN
21.03.2017, 19:59
Мдаа....
- - - Добавлено - - -
дырка посреди картинки и текста
это кадровый синхроимпульс размером 8 линий
+ пустое место (чуть больше строки)
а только потом всякий мусор
после него должно быть 4 такие же картинки 90х64(в данном случае 30х64 с широкими пикселями)...(а их только одна(и то кусочек))
нет недопсевдохайрес мы то получили
ну его качество...
мягкоговоря...
оно вообще поймает теплый ламповый телек???
может я накосячил?
может я накосячил?
А в чём вообще идея?
Мельком посмотрел код. Сначала инициализируем контроллер дисплея на короткий экран в 6 строк, а потом отлавливаем начало вывода последней строки и не даём ему сделать вертикальный обратный ход. Подставляем контроллеру новые значения и он продолжает рисовать новый экран, который по факту оказывается продолжением старого. Так?
NEO SPECTRUMAN
22.03.2017, 00:12
Подставляем контроллеру новые значения и он продолжает рисовать новый экран, который по факту оказывается продолжением старого. Так?
Так.
и не даём ему сделать вертикальный обратный ход.
а тут нет
мы не можем(не знаем как) выкинуть КСИ как бы нам этого не хотелось
Основная проблема что максимальное число строк 64
А в режиме 1 линия пикселей на строку
мы хоть и можем что нибудь положить в строчный буфер
но получается 240 Гц кадровая развертка
и нужно как то продлить изображение
Тут все с расчетом на то что телек не успеет понять что перед ним левый короткий КСИ
а Зацепится за более широкий КСИ (телек может игнорить дырки в сигнале(правда изображение становится волнами(похожее видно в обоих изображениях вверху)))
Для успешной работы этого подхода
нужно искать более высокую частоту строчных(уменьшать ширину экрана) которую может ловить телек
чтоб еще уменьшить время существования лишних КСИ и чтоб телек за них не цеплялся
за одно это расширит hires область на экране
(расширение в 2 раза за счет высоты строки 2 пикселя(окошко как минимум 62x128 пиксели 3х1) видимо не прокатит из за увеличения ширины левых КСИ
хотя тоже можно ткнуть одну картинку по центру и глянуть
расширение в 3 раза(окошко 94х64 пиксели 3х3) могло бы дать РК-шкам такое же разрешение(плотность пикселей на сантиметр)))) по вертикали как в апогее со вторым набором шрифтов. Да и площадь такого экранчика уже бы была ~47 знакомест по горизонтали)
можно попытаться оставить только одно окошко по центру высотой 64 пикселей
возможно такое будет лучше синхронизироваться
нужно попробовать ткнуть белую полосу сразу после КСИ
у меня есть идея как переместить это окошко в центр
но качество видео сигнала станет еще ниже...
и вообще вся надежда на не исследованный пресет счетчиков
если при помощи него можно будет погасить КСИ, ССИ
то мы сможем сами программно генерировать дополнительные КСИ, ССИ которых нам не хватает
если при пресете сразу включаются КСИ, ССИ уже будет сложнее
но можно будет все равно по извращаться
нужно еще посмотреть что делает серия беспрерывных сбросов
или сбросов без указания параметров
и разные комбинации сбросов, разрешений, запрещений
тк судя по документации КСИ и ССИ никогда не прекращаются
стоп дисплей их не тушит
что делает с ними пресет счетчиков неизвестно...
Ещё один цветовой "чит" на Апогее:
http://savepic.ru/13350630m.jpg (http://savepic.ru/13350630.htm)
NEO SPECTRUMAN
23.03.2017, 17:19
Ещё один цветовой "чит" на Апогее:
Империя наносит ответный удар
60225
я только предполагаю что должно быть на экране...
как всегда эмуляция этого посредственная (2 эмуля - 2 разных картинки(и как по мне обе не те)...)
вполне возможно будет черный экран
Империя наносит ответный удар
60225
я только предполагаю что должно быть на экране...
как всегда эмуляция этого посредственная (2 эмуля - 2 разных картинки(и как по мне обе не те)...)
вполне возможно будет черный экран
Уже намного лучше - на экране есть стабильное полноэкранное изображение без срывов.
По ссылке ниже выложил видео.
видео тестов здесь (https://cloud.mail.ru/public/csLu/v3ETQ6HQU)
В принципе, там почти одно и тоже..
NEO SPECTRUMAN
23.03.2017, 19:35
Уже намного лучше - на экране есть стабильное полноэкранное изображение без срывов.
ну дык
тутт никаких извращений
просто у вг75 есть еще некоторые возможности
на которые разработчики рк положили большой и длинный
а это все что от них осталось...
вполне можно было найти применение выводам la0-la1...
я думал будут просто цветные кубики(на все знакоместо) поделенніе пополам полоской
а тут оказалось что еще и на lc0-lc3 cc0-cc6 продолжается вывод
и можно даже рисовать некоторые символы
- - - Добавлено - - -
В принципе, там почти одно и тоже..
но с некоторыми отличиями
на случай разной реакции
я еще предполагал что возможно на сс0-сс6 останется код предідущего символа...
- - - Добавлено - - -
Тоесть чит заключается в том что можно 80 (некоторіх)символов в строке со своими атрибутами(правда их всего два(голубой и мерцание))
так же можно перечеркнуть некоторіе символі полосочкой(положение ее управляется)
и их же можно обрезать полосочкой
вот ВНЕЗАПНО наступило расширение графических возможностей...
на стоковіх РК-шках наверное будет только одна полосочка и обрезка
и мигание?
и все єто в добавку к основному набору символов 00-7F:v2_dizzy_dance::v2_yahoo::v2_dizzy_turn::v2_ton g2:
- - - Добавлено - - -
порассматривал...
походу и биты атрибутов прут на сс0-сс6...
так что у каждого символа своя комбинация атрибутов
и это нельзя изменить...
- - - Добавлено - - -
на экране есть стабильное полноэкранное изображение без срывов
возможно и в тех можно добиться стабильности
там еще может быть кроме выпадение строки
еще и неправильная пауза между строчниками (мало того что дырка так еще и следующий строчник приходит посреди строки (мы то не знаем как ведет себя вг75 после сброса))
тут нужно дальше копать времянки
или отлаживать программу с осциллографом))))
как всегда эмуляция этого посредственная (2 эмуля - 2 разных картинки(и как по мне обе не те)...)
Тут вроде бы у меня в Emu80 v.4 картинка совпадает с оригиналом...
NEO SPECTRUMAN
23.03.2017, 23:14
Тут вроде бы у меня в Emu80 v.4 картинка совпадает с оригиналом...
а вот b2m эмулятор выдает фиг знает что...
- - - Добавлено - - -
Тут вроде бы у меня в Emu80 v.4 картинка совпадает с оригиналом...
может тогда поведайте то что известно вам?
чтоб нам не открывать заново велосипеды
Да, собственно, когда писал эмулятор, также просто на реальных Партнере и Апогее гонял тесты и смотрел, как они себя ведут. Но дело было где-то в мае-июне прошлого года, так что все могу и не помнить уже. А что касается конкретно псевдографических символов, то AFAIR кроме документированных в даташите состояний выходов VSP и LTEN (а также не используемых в РК LA0 и LA1), состояние выхода LTEN равно младшему биту самого псевдографического кода, RVV и GPA0/1 устанавливаются на основании последнего байта атрибутов, а на выходах СС0-СС6 присутствуют биты 0-6 псевдографического кода. Ну а далее опять все строго определено, и картинка формируется внешней схемой на основании состояний выходов ВГ75, описанных выше.
- - - Добавлено - - -
А вообще, если что знаю, то конечно расскажу.
Но всяких недокументированных особенностей там множество, так что разобрался я далеко не во всем :(
NEO SPECTRUMAN
24.03.2017, 00:38
Но всяких недокументированных особенностей там множество, так что разобрался я далеко не во всем
еще нужно составить список
все тонкости которые нужно проверить, учитывать и описать в мануале
управляющие коды 11****** все прогоняли (всякие концы строки)
там дешифрация команды только по нескольким битам?
Какие-такие недокументированные особенности? Книга "Микропроцессоры и микропроцессорные комплекты интегральных микросхем. Том1." под редакцией В.А.Шахнова, страница 122 -- куда уж подробнее рассказывает про все атрибуты и всё такое, есть таблички и даже какая-то схемка приведена. О чём речь?
Error404
24.03.2017, 11:53
А что касается конкретно псевдографических символов, то AFAIR кроме документированных в даташите состояний выходов VSP и LTEN (а также не используемых в РК LA0 и LA1), состояние выхода LTEN равно младшему биту самого псевдографического кода, RVV и GPA0/1 устанавливаются на основании последнего байта атрибутов, а на выходах СС0-СС6 присутствуют биты 0-6 псевдографического кода. Ну а далее опять все строго определено, и картинка формируется внешней схемой на основании состояний выходов ВГ75, описанных выше.
ЕМНИП используя программирование состояния выхода LTEN freddy расширил обрабатываемую ВГ75 кодовую таблицу с ущербных 128 символов (7 бит) до православных 256 символов (кодировка 8 бит).
И уж поскольку бордюр вами освоен :) , выскажу пожелание думаю не только от меня: Сумеете добиться режима 80х25 с нормальным использованием 8-битных символов (шириной не менее 6 точек на знакоместо) - орден вам или медаль на выбор, парни. В принципе и какие-то минимальные аппаратные аппаратные изменения на плате РК тоже допустимы.
Error404,Такие параметры подойдут
NEO SPECTRUMAN
24.03.2017, 19:25
О чём речь?
ОЙ ДА ЩАС
скачал...
прочитал 99%...
чуть не сломал язык про себя... (оригинальный интеловский мануал проще читается...)
конечно еще некоторые тонкости там осветлены...
но далеко не все...
ничего не сказано что при режиме "код знака" счетчик строк и коды символов прут на выход...
начальная установка счетчиков
описана как всегда...
...никак
и ничего в итоге не понятно...
ничего не сказано про загрузку превышающих значений
для положения курсора
для числа знакомест по горизонтали
я могу задать 128 знаков в ряду
как поведет себя вг75 при этом?????
прочитав тот мануал
ВОТ СКАЖИ МНЕ
ЧТО БУДЕТ ЕСЛИ В ВИДЕОПАМЯТЬ ПОЛОЖИТЬ $FF???
а еще мне понравилась диаграмма работы с надписью
* Не регламентируется
ладно предположим это значение может прыгать...
но в каких пределах и от чего зависит?
и какую достоверность можно найти в дремучей книжке?
сказанное в ней может быть с очепятками и не точностями
например вот
Первый запрос ПДП для знакоряда возникает на первом синхросигнале знака предыдущего знакоряда. Если же используется пакетный режим, то первый запрос ПДП возникает после некоторого числа синхроимпульсов знака, равного запрограммированной величине пакета.
А осциллограф нам прямо говоритчто запрос начинается через тоже время что и пауза между пакетами (хотя еще нужно удостовериться)
правда диаграмму не курил
может хоть на ней правильно...
нет блеснуть эрудицией не получилось...
дли пиление мультиколоров
это посредственное описание..
а тем более для для полной эмуляции...
все тоже самое что в фирменном мануале...
даже меньше...
НО НА РУССКОМ
- - - Добавлено - - -
ЕМНИП используя программирование состояния выхода LTEN freddy расширил обрабатываемую ВГ75 кодовую таблицу с ущербных 128 символов (7 бит) до православных 256 символов (кодировка 8 бит).
при кодах 1111**** (всякие концы строки)
младшие 7 бит тоже продолжают переть на СС0-СС6?
Где вы видели, чтобы в справочниках указывали, что будет если использовать недопустимые значения?
NEO SPECTRUMAN
24.03.2017, 21:34
Какие-такие недокументированные особенности?
куда уж подробнее рассказывает про все атрибуты и всё такое
Где вы видели, чтобы в справочниках указывали, что будет если использовать недопустимые значения?
взаимоисключающие параграфы...
и по моему я тоже погорячился...
Какие-такие недокументированные особенности? Книга "Микропроцессоры и микропроцессорные комплекты интегральных микросхем. Том1." под редакцией В.А.Шахнова, страница 122 -- куда уж подробнее рассказывает про все атрибуты и всё такое, есть таблички и даже какая-то схемка приведена. О чём речь?
Ну да, штатный режим работы при стандартной схеме подключения там неплохо описан. А недокументированные особенности, естественно, не описаны. Такого рода, например: "в каком состоянии находятся выходы сс0-сс6 при отображении псевдографических кодов?". При штатной схеме подключения эти выходы просто при этом не используются, но при этом на них же что-то есть! И на РК-подобных ПК оно влияет на картинку на экране.
используя программирование состояния выхода LTEN freddy расширил обрабатываемую ВГ75 кодовую таблицу с ущербных 128 символов (7 бит) до православных 256 символов (кодировка 8 бит).
Как говорил Остап Бендер: "Одни из Вас хорошо играют в шахматы, другие плохо. И ничто это не изменит... Если Вы каждый день не будете тренироваться в шашки.". Перефразируя бессмертную фразу: "Есть БИС 8-ми битовые и есть 7-ми битовые, и ничто это не изменит... Даже если мы будем каждый день тренироваться в шашки."
Никак из 7-ми битового кода в ВГ75 не сделать КОИ-8... Если не использовать истраченные на цвет атрибутные сигналы. Я уже предложил отнять один бит RVV у цвета и отдать его на коммутацию фонтов, что позволяет видеть на одном экране буквы из 2-х таблиц шрифтов по 127 символов в каждой. Но народ здесь собрался, в основном, ретроградный, они не могут пойти против печатного слова и того, что уже имеется в железе в промышленных аппаратах.
Есть один способ получить КОИ-8, но, увы, уж никак не на 80 символов в строке (см.ниже).
Сумеете добиться режима 80х25 с нормальным использованием 8-битных символов - орден вам или медаль на выбор
80-символов базовый РК86 никак не может. Но заменив кварц 16 МГЦ на 20, и введя аппаратное формирование ССИ, что требует расхода в АГ3, (или ТМ2, на них также отлично делаются одновибраторы), 80-символов получаются простейшей заменой 4-х байтов в ROM-BIOS (меняется режим ВГ75, офсет позиции в строке с +8 на +0, и строчный шаг с 78 на 80).
Что касается LTEN. Его никак не использовать, т.к он гасит экран (для мигания, псевдографики C0...FF, для пустых линий и т.п). Но его упоминание Вами навело меня на мысль: а вдруг можно переключать режимы псевдографическими символами (вместо кодов 0E/0F, как я предлагал ранее). Например, графическим кодом E0, можно включать альтернативный фонт. Для этого нужна ловушка на этот код на выходах CC0...CC6. Но надо ещё убедиться, что графические коды проходят на выходы CC0...CC6. Кто-нибудь это уже проверял или может проверить сейчас, используя анализатор?
Однако 80-символов полезны вовсе не для CP/M, чтобы работал "Super-Calc" или текстообработки. 64 символа в строке для текстообработки предпочтительнее (т.к шифт крупнее, что экономит зрение). Да и к самой CP/M пользователи РК относятся резко отрицательно, т.к привыкли к RK-DOS. Единственная польза от 80-ти символов в строке в том, что это позволяет красиво получить цветной режим 40*25 (чётные байты графика, нечётные цвет), а также даст псевдографику с разрешением 160*126, которая получается при разбиении знакоместа на матрицу 2*3, в режиме с высотой строки в 6 линий и видео режиме в 52 строки (42 из них видимы на экране). Лично мне не жалко истратить один корпус 1533 ТМ2, чтобы получить КОИ-8 в псевдографическом режиме 26 символов в строке на 15-ти строках.
В принципе и какие-то минимальные аппаратные изменения на плате РК тоже допустимы.
Введение 80-ти символьного режима, где у ВГ75 иной такт (1.66 МГЦ вместо 1.33), требует иного программирования ВГ75. Из-за этого все игры, которые сами перепрограммируют ВГ75, перестанут работать. Точнее сами игры при этом работают, но по кадрам и строкам нет синхронизации. Если регуляторы на видео мониторе доступны, то для использования старых игр можно периодически ими пользоваться, чтобы смотреть чужое ПО. Если же ручек регулировки на дисплее нет, то при доработке до 80-ти символов придётся добавить второй кварц со своим генератором и КП11 для переключения такта с 20 МГЦ на 16 МГЦ на входе ГФ24 и ССИ от выхода одновибратора на HRTC, чтобы вернуть все сигналы, как в базовом РК.
Error404
25.03.2017, 11:07
В-общем, РК86 по праву занимает нишу антикварной диковинки, чудодивной зверушки в общем зоопарке отечественных РК. Ну чтоже, спаяю и положу под стекло, как коллекционер бабочку на булавке. :)
NEO SPECTRUMAN
27.03.2017, 16:23
А вообще, если что знаю, то конечно расскажу.
а еще меня интересует переполнение атрибутного буфера
что именно в него заносится
и почему прокатывает большее количество в режиме видимых атрибутов
сходу не вьеду
а писать кучу тестов не хочется...
2 атрибутных кода подряд не возможны?
второй будет выводиться как простой символ?
как будут вести себя 3 кода?
атрибут, простой символ, атрибут?
как сочетаются атрибуты с псевдографикой(аппаратной)
после атрибута она будет выведена как простой символ
это мне где то попалось про обрезание 7-го бита...
и еще
курсор продолжает рисоваться при стоп дисплей?????
или нет?
а еще меня интересует переполнение атрибутного буфера
что именно в него заносится
и почему прокатывает большее количество в режиме видимых атрибутов
Из даташита на i8275 следует, что атрибутный буфер включается только в режиме "прозрачных" (невидимых) атрибутов. Значит в режиме видимых он (буфер) вообще никак не участвует в отображении. Здесь суммарное значение атрибутов и символов максимум 80 (что будет если указать размер строки больше 80 надо проверять).
- - - Добавлено - - -
и еще
курсор продолжает рисоваться при стоп дисплей?????
или нет?
Да, после этой команды всё изображение с экрана пропадает и курсор тоже (если речь идёт о команде 40h).
- - - Добавлено - - -
а еще меня интересует переполнение атрибутного буфера
что именно в него заносится
и почему прокатывает большее количество в режиме видимых атрибутов
сходу не вьеду
а писать кучу тестов не хочется...
2 атрибутных кода подряд не возможны?
второй будет выводиться как простой символ?
как будут вести себя 3 кода?
атрибут, простой символ, атрибут?
По-любому нужен тест, хотя бы для отображения одной-двух строк.
vinxru (если не ошибаюсь) и кто-то ещё (не помню) вроде копали вопрос с переполнением буфера и с двумя атрибутами подряд. Я тоже, года полтора назад (но всё вылетело из головы).
Чуть позже напишу небольшой тест.
- - - Добавлено - - -
а еще меня интересует переполнение атрибутного буфера
В этой строке 64 пары атрибут+символ. Коды символов с 64 по 127. Но отображаются только последние 16 символов (с 112 по 127) при этом четыре раза подряд. Первые 48 символов попросту теряются. Скрин с эмулятора, но он полностью соответствует изображению с реального Апогея.
http://savepic.ru/13381954.png
Вот содержимое строки:
db 0,0,0,0,0,0,0,0,156,64,149,65,153,66,148,67,152,68 ,145,69,144,70,140,71,133,72,137,73,132,74,136,75, 129,76,128,77,156,78,149,79,153,80,148,81,152,82,1 45,83,144,84,140,85,133,86,137,87,132,88,136,89,12 9,90,128,91,156,92,149,93,153,94,148,95,152,96,145 ,97,144,98,140,99,133,100,137,101,132,102,136,103, 129,104,128,105,156,106,149,107,153,108,148,109,15 2,110,145,111,144,112,140,113,133,114,137,115,132, 116,136,117,129,118,128,119,156,120,149,121,153,12 2,148,123,152,124,145,125,144,126,128,127,0,0,0,0, 0,0
NEO SPECTRUMAN
27.03.2017, 23:16
AAAAAAAAAAAA!!!
я понел в стек fifo ложатся не атрибуты\цвета а символы без 7-го бита
а в 80 байтном буфере ложатся только сами атрибуты от них
значет цветные чанки 78х38 свободно возможны
и вообще мне фиолетово что сьедаются буквы
я то думал что будут пропадать атрибуты (и нифига не мог понять...)
и вообще не нужно говорит что не возможно более 16 атрибутов в строке
нужно говорить что при большем количестве будет потеря символов
и то только тех которые сразу за атрибутом...
и в конце концов вопрос
что это за аутизм????
что курили разработчики?
почему 16 байт хватит всем?
и в конце концов вопрос
что это за аутизм????
что курили разработчики?
почему 16 байт хватит всем?
Просто очень древняя разработка. Еще в видеокартах hercules использовалась...
NEO SPECTRUMAN
27.03.2017, 23:43
в видеокартах hercules
да...
похоже корпусов на нее не жалели
в отличие от некоторых...
я понел в стек fifo ложатся не атрибуты\цвета а символы без 7-го бита
а в 80 байтном буфере ложатся только сами атрибуты от них
Совершенно верно, причем это подробно описано в даташите (стр. 8-237), даже тесты не нужны.
курсор продолжает рисоваться при стоп дисплей?????
или нет?
Вроде бы действительно не должен, но у меня в эмуляторе почему-то эта команда вообще не отрабатывает ;( Поправлю.
NEO SPECTRUMAN
28.03.2017, 00:41
Нельзя при всём желании в строке раскрасить все символы в разные цвета. А только 8 разных цветов на строку.
от куда такие выводы?
только что выяснили что как раз можно
16 без каких либо проблем
больше уже с некоторыми ограничениями...
ведь атрибут действует до конца кадра??? ведь
и тк будут заменяться первые символы в строке
перед которыми стоит атрибут
не более 8-ми изменений цвета на строку
Не более 16 изменений цвета на строку
NEO SPECTRUMAN
28.03.2017, 00:47
Вроде бы действительно не должен, но у меня в эмуляторе почему-то эта команда вообще не отрабатывает ;( Поправлю.
вчера встретил упоминание что "во время загрузки только мигает курсор"
а во время загрузки экран то выключен
- - - Добавлено - - -
Не более 16 изменений цвета на строку
такая формулировка вводит в заблуждение как раз
2 атрибутных кода подряд не возможны?
второй будет выводиться как простой символ?
как будут вести себя 3 кода?
атрибут, простой символ, атрибут?
Похоже что так - второй атрибут подряд отображается как символ (отбрасывается старший бит). Третий атрибут подряд снова срабатывает как атрибут.
вчера встретил упоминание что "во время загрузки только мигает курсор"
а во время загрузки экран то выключен
Если речь идет о загрузке с магнитофона, то до нахождения синхробайта просто выключен ПДП, а после синхробайта дается команда preset counters (E0), которая вообще отключает растр. Stop display в Мониторе РК-86 вроде бы нигде не используется.
Не более 16 изменений цвета на строку
Почему такая формулировка вводит в заблуждение? В том смысле, что нужно сделать оговорку, что без ограничений 16 изменений? Прсто ограничения очень уж серьезные...
ведь
и тк будут заменяться первые символы в строке
перед которыми стоит атрибут
А вот это не понял...
как сочетаются атрибуты с псевдографикой(аппаратной)
после атрибута она будет выведена как простой символ
О какой псевдографике речь?
У псевдографики (коды С0-EF) точно так же будет обрезан старший бит.
О какой псевдографике речь?
Там есть возможность рамочки окон рисовать. Но это обеспечивается надстройкой внешней логики.
OrionExt
28.03.2017, 01:36
Врядли:v2_dizzy_fisher:
Игры от РК красивей не станут. Ну, ловим тайминги от тролей. А где от лог анализатора инфа?)
ZEvS, а что там написано?
Там схема подключения линий LA0,LA1 от ВГ75 к сдвиговому регистру на выходе. Когда линии активны, то ПЗУ знакогенератора блокируется, и символ рисуется логикой. Для каждой строки LC0-LC3, их комбинация разная и получаются рамочки как в нортоне.
Скан выложил не качественный, вечером переделаю. :)
NEO SPECTRUMAN
28.03.2017, 13:50
Почему такая формулировка вводит в заблуждение? В том смысле, что нужно сделать оговорку, что без ограничений 16 изменений? Прсто ограничения очень уж серьезные...
потому что она прямо говорит нам что нельзя реализовать вот это
6032460325603266032760328
тут 78 изменений атрибутов за строку
где их нельзя???
и это очередной нубизм данной платформы...
а с правильным подходом вполне можно будет получить и больше 16 в демках, в графике, в играх но не в тексте
+еще есть остатки от аппаратной псевдографики с ее атрибутами без дополнительных затрат памяти
А на чернобелом будет облом...
а на РК так тем более...
6032960330603316033260333
на реале тестить не обязательно
60323
такой экран весит 6К :v2_eek:
DMA с трудом успевает его перекидывать...
процу работать некогда...
сначала хотел сделать для апогеевксого набора псевдографики 6х4
но потом оказалось что DMA просто не успеет...
- - - Добавлено - - -
Игры от РК красивей не станут.
ну если ничего не пытаться сделать
конечно сами не станут...
посмотри игры для спектрума 82 года
и посмотри до чего за много лет игростроители докатились
тут 86 год как начался(с качеством 82)...
так и идет до сих пор...
хотя вон на апогее какой то прогресс видно
- - - Добавлено - - -
А чем управляет атрибут подчеркивания?
Если оно работает то это может расширить возможности чанкования в 2 раза
Какого цвета курсор???
он не сбрасывает атрибуты когда мигает?
- - - Добавлено - - -
Кстате
буду много благодарен тому кто предоставит мне фотку
не погашеного луча во время обратного его хода (строчного\кадрового)
(с любого РК подключенного к теплоламповому РАБОЧЕМУ телеку)
от которого все чего то так трясутся...
если он и правда где то есть...
(в чем я лично сомневаюсь(разве что на телеке 61 года выпуска...))
можно найти и ему применение...
NEO SPECTRUMAN
28.03.2017, 15:47
возможно ВГ+ДМА еще допилить нада
возможно косяк самих файлов
я выкинул куски кода из другого теста
и вставил картинку
+тут 0 тактов пауза между пакетами
хз как у него со стабильностью и почему его не применили в РК по дефолту
еще наверное нужна другая последовательность
стоп
перепрограммирование вг75
перепрограммирование DMA
старт
а я пользуюсь такой же последовательностью как в ПЗУ Апогея...
там программируется вг75
включается отрисовка
а только потом программируется DMA
- - - Добавлено - - -
на псевдо-реале ниче так
а что за псевдо реал?
Кстате
буду много благодарен тому кто предоставит мне фотку
не погашеного луча во время обратного его хода (строчного\кадрового)
(с любого РК подключенного к теплоламповому РАБОЧЕМУ телеку)
от которого все чего то так трясутся...
Обратный по строкам, совсем чуть-чуть :v2_wink2: k.jpg http://rgho.st/7SQY2H8vr
Страшность в другом.
1) Не надо рисовать слева - будут тёмные тянучки на всю строку. Здесь, после строчного синхроимпульса, идет привязка к уровню чёрного.
2) Не надо рисовать справа - влияние на синхронизацию по строкам при подключении по композиту (CSVB, жёлтый "тюльпан") и S-Video (т.е. когда синхра смешана с видео).
По ссылке (http://zx-pk.ru/threads/27478-sekrety-i-tryuki-programmirovaniya-(v-tom-chisle-i-igr)-dlya-rk-86.html?p=905294&viewfull=1#post905294) я показывал сколько видно/обрезается на ТВ и тюнерах.
тут 78 изменений атрибутов за строку
Отлично! :)
на реале тестить не обязательно
pcts.zip
А надо бы. Ибо на реале и в Emu80 v.4 картинки отображаются неправильно (со смещением). Вероятно, скриншоты сделаны в Emu?
Откуда такая очень странная процедура программирования ВГ75+ВТ57? Можно, конечно, разобраться, почему она неправильно работает, но почему бы не пользоваться классическим и заведомо рабочим вариантом, который используется. например в Мониторе?
NEO SPECTRUMAN
28.03.2017, 22:27
Не надо рисовать слева
Не надо рисовать справа
ну это ясно
просто не рисование по бокам немного замедляет (быстрее сделать как есть)
и для тестов это не критично
они свою задачу выполнили...
. Здесь, после строчного синхроимпульса, идет привязка к уровню чёрного.
этим тоже можно делать эффекты :)
можно повысить яркость черного в строке))))
потом что нибудь запилю)))))
на машине со слабой графикой
нужно цепляться за все способы еще улучшить
- - - Добавлено - - -
скриншоты сделаны в Emu?
именно
и изза некачественной эмуляции
я и не заметил что где то накосячил
- - - Добавлено - - -
Откуда такая очень странная процедура программирования ВГ75+ВТ57? Можно, конечно, разобраться, почему она неправильно работает, но почему бы не пользоваться классическим и заведомо рабочим вариантом, который используется. например в Мониторе?
эта переписана из монитора
открыл b2m дебагер и написал по образу и подобию...
правда я потом 100500 раз менял все параметры...
- - - Добавлено - - -
Откуда такая очень странная процедура программирования
странно почему при этом нету смещения по горизонтали о_О
- - - Добавлено - - -
Вероятно, скриншоты сделаны в Emu?
нужно от него уже избавляться
ждем когда Emu80 v.4 начнет быстро запускаться и драгндропаться
ждем когда Emu80 v.4 начнет быстро запускаться и драгндропаться
Получается развивать эмулятор медленнее, чем хотелось бы - небольшой цейтнот :( В апреле должно быть получше со временем.
А вообще драгндроп начал делать. Вопрос: автозапуск после драгндропа нужен?
NEO SPECTRUMAN
28.03.2017, 23:18
Вопрос: автозапуск после драгндропа нужен?
нужен
но лучше если сброс и автозапуск при этом можно будет так же отключить
ато может возникнуть такая же эпопея как с недавним запуском sidbasic-а на эмуляторах спека...
- - - Добавлено - - -
А нет никакого редактора графики для ПЦ???
с атрибутами, переполнением fifo, сменой шрифтов(разных компов)
и сменой шрифтов как атрибутов по Партнерски
- - - Добавлено - - -
Pyk, может запилите подобное на основе своего эмулятора))))?
Даташит на ВГ75.
- - - Добавлено - - -
Не знаю почему, но картинки урезаются по размеру, а архив не хочет цепляться.
но лучше если сброс и автозапуск при этом можно будет так же отключить
Принято. Оно и логично - бывают же программы, у которых адрес запуска не равен начальному...
В принципе, драгндроп уже работает (даже самому понравилось), осталось чуть до ума довести.
Единственное - в силу специфика архитектуры эмулятора, файлы нужно будет бросать в предварительно открытое окно нужного ПК. То есть если бросить rkr в окно Апогея, то оно попытается запустить его в Апогее...
А нет никакого редактора графики для ПЦ???
Pyk, может запилите подобное на основе своего эмулятора))))?
Нет, запилить не возьмусь :( Но готов помочь если кто-то возьмется. Исходники при необходимости будут доступны - я их планирую открыть.
NEO SPECTRUMAN
29.03.2017, 00:15
Единственное - в силу специфика архитектуры эмулятора, файлы нужно будет бросать в предварительно открытое окно нужного ПК. То есть если бросить rkr в окно Апогея, то оно попытается запустить его в Апогее...
с одной стороні єто тоже хорошо
с другой не сильно
по хорошему нужно 2 варианта
но пока хоть какой то
єто уже неплохо
- - - Добавлено - - -
Не знаю почему, но картинки урезаются по размеру, а архив не хочет цепляться.
тут ограничение как на разрешение
так и на вес изображений
ограничение на архивы по весу 640К
все крупное нужно выкладывать на сторонние ресурсы
можно разбить архив на части
но объем всех вложений от одного пользователя тоже сильно ограничен.
3Ы:
на WOS-е, по моему, вообще нет вложений
можно разбить архив на части
но объем всех вложений от одного пользователя тоже сильно ограничен.
Ок, спасибо, буду выкладывать частями.
Первые 5 частей.
HardWareMan
29.03.2017, 06:36
ZEvS, зачем выкладывать вырезки из справочника, когда можно скачать его целиком (http://hwm.us.to/ftp/MMKIM.rar)? Может кому не только ВГ75 понадобится, ведь она работает только в связке с ВТ57. И впредь, лучше всегда говорить, откуда дровишки, чтобы не напрягать собеседников, ведь у них уже могут быть более актуальные данные.
ZEvS, зачем выкладывать вырезки из справочника, когда можно скачать его целиком (http://hwm.us.to/ftp/MMKIM.rar)? Может кому не только ВГ75 понадобиться, ведь она работает только в связке с ВТ57. И впредь, лучше всегда говорить, откуда дровишки, чтобы не напрягать собеседников, ведь у них уже могут быть более актуальные данные.
Ок, учту.
Кстати, пробую сейчас на железе. Оказывается у микроши работают мигающие символы и какие-то крикозябли.... Мигание получается с помощью сигнала VSP. Кстати частота мигания не совпадает с частотой мигания курсора.
NEO SPECTRUMAN
29.03.2017, 18:54
пофикшенные и несколько расширенные(в 2 раза больше цветов(если конечно подчеркивание ємулируется правильно)) картинки
60390603916039260393
60394
долго пытался понять что же не так...
чаво оно начинает читать с пол кадра...
видимо стоп дисплей работает несколько иначе чем я предполагал
хотя ресет после него правильно перенастраивает параметры
но что то потом идет не так
в придачу это что то эмулируется в emu80 o_O
еще нужно проверить как работает включение\выключение прерываний
в b2m разрешение прерываний сбрасывается сбросом и в итоге зацикленая синхронизация зависает
в emu80 не сбрасывается и то что висит в b2m тут запускается
и сбрасывается ли флаг сразу при чтении
или пока идет последняя строка его нельзя сбросить
и у нас сработают 100500 синхронизаций с последней строкой подряд...
еще нужно удостовериться
мигает ли курсор под атрибутом подчеркивание
для этого есть tst01.rka, tst02.rka в архиве
0001.rka
выводит все возможные атрибуты
нужно 2 фотки обоих состояний изображения
и еще видно ли в этом режиме курсор?(он под черными атрибутами)
- - - Добавлено - - -
Оказывается у микроши работают мигающие символы
они должны работать везде
а вот подчеркивание и инверсия...
ZEvS, а можно вот это например расшарить на dropbox?
долго пытался понять что же не так...
чаво оно начинает читать с пол кадра...
...
в придачу это что то эмулируется в emu80 o_O
Посмотрю и попробую разобраться, попозже только.
еще нужно проверить как работает включение\выключение прерываний
в b2m разрешение прерываний сбрасывается сбросом и в итоге зацикленая синхронизация зависает
в emu80 не сбрасывается и то что висит в b2m тут запускается
Согласно даташиту, кроме явной установки, флаг IE также автоматически устанавливается командой Start Display. Совершенно не уверен, что оно у меня отрабатывает правильно - проверю.
и сбрасывается ли флаг сразу при чтении
или пока идет последняя строка его нельзя сбросить
Сразу.
мигает ли курсор под атрибутом подчеркивание
для этого есть tst01.rka, tst02.rka в архиве
Мигает, тесты посмотрю чуть позже.
Кстати, в ответ на вчерашний вопрос: курсор формируется сигналом lten в режиме подчеркивания и rvv - в режиме инверсного блока.
- - - Добавлено - - -
то что висит в b2m тут запускаетс
а что там висит?
NEO SPECTRUMAN
29.03.2017, 20:19
а что там висит?
если после сброса(дисплея) не разрешить прерывания
то будет своеобразный di halt
Сразу.
там же возможно тоже ошибка
тк несколько чтений подряд
выдают установленный флаг(возможно!)...
если после сброса(дисплея) не разрешить прерывания
то будет своеобразный di halt
Я понял, я имел в виду, какие из тестов или программ так себя ведут.
тк несколько чтений подряд
выдают установленный флаг(возможно!)...
Нет такого - ни в железе, ни в Emu80, ни в Emu. Ровно одно чтение.
Кстати, выяснилось, что в Emu80 неправильно считывается флаг IE - проверю и поправлю.
Сейчас прогоню тесты - уже нашел кое-какие несоответствия с оригиналом в эмуляторе.
NEO SPECTRUMAN
29.03.2017, 20:45
Я понял, я имел в виду, какие из тестов или программ так себя ведут.
никакие
я везде ставлю разрешить прерывания
чтобы запустилось на реале с первой попытки
натыкался на этапе отладки
- - - Добавлено - - -
Нет такого - ни в железе, ни в Emu80, ни в Emu. Ровно одно чтение.
Если он установлен он не снимается больше сам по себе
или в следующем кадре
Замеченные расхождения:
0001.rka:
Оригинал - при одновременной установке атрибутов мерцания и подчеркивания подчеркивание мерцает
Emu80 и Emu - мерцает только символ, подчеркивание остается. У себя поправлю.
7.rka:
Оригинал и Emu80 - курсор присутствует
Emu - курсор не виден
(в то время как в 5.rka, например, курсор есть везде, в том числе и в Emu, а в 3.rka курсора нигде нет)
tst01.rka:
оригинал и Emu80 - курсор мигает
Emu - курсор не виден
- - - Добавлено - - -
Если он установлен он не снимается больше сам по себе
или в следующем кадре
Нет, сам по себе не снимается. Даже командой Disable Enterrupt. Может висеть бесконечно, снимается только чтением.
Или я неправильно понял вопрос?
- - - Добавлено - - -
я везде ставлю разрешить прерывания
чтобы запустилось на реале с первой попытки
Нет необходимости, Start Display вполне достаточно
Emu80 и Emu - мерцает только символ, подчеркивание остается. У себя поправлю.
Поправил, заодно и некоторые другие недоработки по ВГ75. В следующей сборке будет.
- - - Добавлено - - -
Видимо снова в параллельных Вселенных. У меня Ему на этих тестах на двух компьютерах крашиЦЦа. Еще на паре попробовать или у меня снова что то с кривизной?
Перекачать Emu с сайта и поставить заново?
ZEvS, а можно вот это например расшарить на dropbox?
Да, конечно.
Завтра рано утром еду в командировку, вернусь в пятницу вечером.
Выложу в субботу эти справочные данные, а также по ВТ57 - то-же самое.
NEO SPECTRUMAN
30.03.2017, 16:29
У меня Ему на этих тестах на двух компьютерах крашиЦЦа.
скачал ємуль и файлы
положил эмуль и файлы по неимоверно длинному пути(чуть больше и ємуль уже не находит конфиги) содержащем русские буквы и всякие ;%:№;:?№;%:;№"
включил совместимость с win95 (для большей глючности)
ничего не закрашилось и все работало (при драгндропе)
правда если делать загрузку вручную
почему то небыло синхронизации
бутто видео режим не меняется...
и вообще нормальный ємуль не должен валиться от загруженных в него файлов
любимый браузер пробовали закрывать?? : )))))))))))))))))))
NEO SPECTRUMAN
30.03.2017, 18:49
Надеюсь это показательная статистика?
2 машины
обе ХР : ))))))
никаких проблем
значет теперь есть повод переходить на эму80 : ))))))
- - - Добавлено - - -
А в башкирия2м сильно много аспектов эмулируются неправильно впридачу
NEO SPECTRUMAN
01.04.2017, 21:26
1) Не надо рисовать слева - будут тёмные тянучки на всю строку. Здесь, после строчного синхроимпульса, идет привязка к уровню чёрного.
Вот я добрался и до этого
Изображения с реального железа закаптуренные DDp с тв тюнера
((и очищенные от не фона) по бокам подставлено то что обрезалось)
там назывались rgb.jpg yc,jpg
6044060441
на которых видно что содержимое первых 5-х или последних 2-х знакомест
может переть на фон с задержкой в несколько строк и в инверсированном виде
вот 40 тестов в одном .rka для проверки возможностей этой фичи
60439
(переключение методом научного тыка или клавишами 1,2)
конечно на некоторых телеках может просто не быть никакого эффекта вообще
(что в общем то и видно на одном из телеков на фотках DDp)
вот нафотошопил как это можно использовать
http://zx-pk.ru/attachment.php?attachmentid=60442&d=1491070305
конечно не сильно впечатляет
но думаю можно будет сделать и немножко лучше
(возможно можно будет делать плавные градиенты одного цвета)
да и получить дополнительно более разнообразный фон без каких либо усилий..
...почему бы и нет?
Реквестируются
результаты (40 фоток\скриншотов) работы на разных телеках\тв тюнерах :v2_dizzy_roll:
и впилевание поддержки эффекта в emu80:v2_dizzy_dance:
Итого. на 4-х разных машинах с WinXP - крашиЦЦа невозбранно и навсегда. На двух других компах с Win 7 - работает.
Подтверждаю - мой косяк. Добрался сегодня до ХР с вижуал-сями, действительно отрисовывалось за пределами DX-поверхности при смене размера экрана. Семёрка отнеслась к подобному вандализму весьма толерантно. Если кто-то ещё пользуется моим эмулем - качайте с сайта исправленную версию.
Реквестируются
результаты (40 фоток\скриншотов) работы на разных телеках\тв тюнерах
Вот результаты на моем ТВ-тюнере:
https://yadi.sk/d/5BZy6k4G3GcV9A
К сожалению, нет возможности пока подключить в цвете - надо либо схему типа video doctor от vinxru паять либо что-то другое изобретать...
В принципе, есть PAL-кодер от nedopc, но по-моему, кто-то уже писал, что с сигналом Апогея он просто так работать не будет...
и впилевание поддержки эффекта в emu80
Что-то я не уверен, что эта дрожащая картинка стоит поддержки в эмуляторе. Хотя, если получится добиться стабильных результатов на разных устройствах... тогда можно будет подумать над этим...
NEO SPECTRUMAN
03.04.2017, 21:44
дрожащая картинка
а как проявляет себе дрожание?
оно дрыгается?
или на каждой картинке стабильное изображение?
и просто смещение строк
оно на каждой картинке?
некоторые из них и так могут вызывать смещение
- - - Добавлено - - -
К сожалению, нет возможности пока подключить в цвете
по идеи кроме фона еще будут окрашены и сами столбики
и того на картинке должно быть видно под 70 цветов ;)
а как проявляет себе дрожание?
Похоже, что это в самом Апогее какие-то наводки при пониженной яркости. В общем, вот:
https://yadi.sk/d/RRbkKNzy3GcXuG
NEO SPECTRUMAN
03.04.2017, 22:14
Расматриваю результаты.
В вашем случае на фон прет содержимое только двух последних знакомест
точнее участок в одно знакоместо между 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:
NEO SPECTRUMAN
08.04.2017, 22:40
тк тут дополнительных цветных результатов тестов по управлению яркостью фона
до сих пор нету
обсуждение получения Hires-а переезжает в другую тему
http://zx-pk.ru/threads/27593-programmnyj-hires-v-radio-86rk.html
тк тут дополнительных цветных результатов тестов по управлению яркостью фона
до сих пор нету
Может, никому это не нужно :rolleyes:
Реквестируются
результаты (40 фоток\скриншотов) работы на разных телеках\тв тюнерах
:mad:
и впилевание поддержки эффекта в emu80
Можно. И только ради того что бы показать *****код (рисование на бордюрах) :v2_thumb:
Ссылка на некоторые результаты (не вечная). (https://yadi.sk/d/GNB2vTyx3GnauW)
---
Upd: уточнил название чипа в тюнере. Обновил его драйвера и софт. В новом софте доступна опция режима горизонтальной синxронизации. Снял видео в режиме "Poor Signal".
тк тут дополнительных цветных результатов тестов по управлению яркостью фона
до сих пор нету
На маленьком жк-тв, к которому у меня подключён Апогей, никаких эффектов яркости не наблюдается. Во всех 40-а тестах вертикальные цветные полосы на чёрном фоне - уровень яркости у фона и самих полос одинаковый, сверху-донизу, и не меняется от теста к тесту.
Сейчас Апогей с отпаяной клавиатурой - как соберу его обратно, могу проверить на ещё двух жк-тв. Но есть вероятность что и там никаких эффектов заметно не будет.
NEO SPECTRUMAN
09.04.2017, 15:41
Можно. И только ради того что бы показать *****код (рисование на бордюрах)
Ну во первых эффект теплый и ламповый (то есть возникает на реальном железе)
во вторых если я буду что то делать я буду его использовать
и на помню что в eightyone эмулируются даже помехи от проца на экране...
(хотя и не на каждом видео на ютубе их и видно(у некоторых идеально чистый экран...))
- - - Добавлено - - -
что то мне сходу не дошло что тапки летят не в мою сторону...
Может, никому это не нужно
может
- - - Добавлено - - -
Да
результаты 0001.rka.SAA7135.RGB
впечатляют (меня):v2_eek:
я ожидал более слабого эффекта
такие симпатичные цветные градиенты
вот бы так вели себя все телевизоры!!! :v2_thumb:
60564605616055860560605636056260559
:mad:
а видео даже еще лучше
видно чаво нельзя делать
и как при этом срывается синхронизация
- - - Добавлено - - -
(не вечная).
оставьте 0001.rka.SAA7135.RGB
выглядит не плохо
весит не много
Вопрос к знатокам кухни программирования под РАДИО-86РК.
Столкнулся с великой странностью при работе с п/п Монитора. Заметил, что обращения к п/п вывода символа на экран (F809h) по каким-то неведомым причинам и поперёк всякой разумной логики сбрасываются биты порта.. клавиатуры (8002h)! Казалось бы при чём тут печать в экран и клавиатурный порт ВВ55? Сначала грешил на аппаратный глюк, но потом выяснилось, что и в эмуляторе точно также, значит дело не в железке.
И действительно, анализ "по-диагонали" содержимого п/п F809h показал, что прямо с первых строк идёт обращение к п/п F812h (тест клавы), а из неё к F81Bh (получение кода нажатой клавиши), в последней первым делом записывается 00h в тот самый порт клавиатуры (8002h). Это какая-то жесть!
Зачем это всё? Какой в этом сакральный смысл? От п/п вывода требуется только вывод символов или ESC-последовательностей. Или я чего-то не понимаю?
Какой в этом сакральный смысл? От п/п вывода требуется только вывод символов или ESC-последовательностей. Или я чего-то не понимаю?
Насколько я помню в РК86 работа с клавиатурой сделана грамотнее, чем в ОРИОНЕ. Суть в том, чтобы эмулировать работу аппаратной клавиатуры. Которая, в отличие от ОРИОНА и РК86 работает самостоятельно, не нуждаясь в процессоре. Такая клавиатура поставляет в каком-то порту бит статуса (флаг есть код или нет) и в каком-то порту выдаёт готовый ASCII-код. При аппаратной клавиатуре нажатия на клавиши не пропадают, а при программной клавиатуре пропадают, если процессор недостаточно часто проверяет клавиатуру.
Идея эмулирования такой клавиатуры заключается в том, что каждая подпрограмма ПЗУ должна вызывать исполнительную часть подпрограммы 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
NEO SPECTRUMAN
29.05.2017, 18:59
Может немного не в тему, но я тут подключил наконец-то апогей к тёплому ламповому, так что можно какие-то вещи на реале прогнать.
пока некогда всем єтим заниматься...
по крайней мере нужна свежая голова а не то что счас...
пока мож запустить єто
http://zx-pk.ru/threads/27478-sekrety-i-tryuki-programmirovaniya-%28v-tom-chisle-i-igr%29-dlya-rk-86.html?p=907239&viewfull=1#post907239
если повезет увидишь всякие градиенты
http://zx-pk.ru/attachment.php?attachmentid=60561&d=1491742461
если нет
то не увидишь
нормальный хайрес пока не получается сделать
нужно чтоб в вг75 попадали точно нужные данные
а умя туда попадает куча фигни да еще и не по тому смещению по которому нужно...
а без реала на расстоянии...
последние достижения модно увидеть под каким то спойлером в этой теме...
http://zx-pk.ru/threads/27593-programmnyj-hires-v-radio-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) издаётся звуковой сигнал.
Каким образом можно вывести символ псевдографики 07H?
Записать его код прямо в экранное ОЗУ?
Записать его код прямо в экранное ОЗУ?
Каким образом это можно осуществить средствами Бейсика?
Каким образом это можно осуществить средствами Бейсика?
Используя такие средства Бейсика, как POKE, например.
Используя такие средства Бейсика, как POKE, например.
Какую команду следует ввести, чтобы вывести упомянутый символ?
Какую команду следует ввести, чтобы вывести упомянутый символ?
Надо ввести команду POKE с соответствующими параметрами. Формат команды надо подсмотреть в описании бейсика, а адрес, в который будет записываться код, надо вычислить исходя из адреса начала экранного ОЗУ и желаемых координат строки и столбца для вывода символа.
- - - Добавлено - - -
yevrowl, рекомендую не пренебрегать поиском. Например, простой запрос гуглу с использованием ключевых слов БЕЙСИК, РК86 и POKE в числе прочего выдаст ссылку на полезную статью:
https://emuverse.ru/wiki/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_04-90/%D0%9E%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D 1%86%D0%B8%D1%8F_%D0%BE%D0%BA%D0%BE%D0%BD_%D0%B2_% D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0 %B0%D1%85_%D0%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
Какую команду следует ввести, чтобы вывести упомянутый символ?
Для вывода этого символа, например, в левый верхний угол видимой части экрана, нужно использовать POKE &77C2,7
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot