PDA

Просмотр полной версии : Ассемблер Радио-86РК



Страницы : 1 [2]

zebest
10.05.2020, 13:53
Ну да, немного многовато действий для программиста :)
Можно делать бОльшую часть в редакторе VS code, ну кто умеет и привык.
Я собираю в обычном редакторе, одной кнопкой собирается, другой - запускается в эмуле.


Кстати, а что делает bin2rk.com?
Я так думаю - делает заголовок файла. :0) Для Апогея, или RK или Микроша. у них есть небольшие, но различия.
Заголовки можно делать сразу и прямо в коде, ну плюс еще неск строк к основномуу коду.

FASM нашел, сторонним поиском, как всегда )
https://zx-pk.ru/threads/26805-paket-dlya-i8080-winasm-studio-fasm-g.html
там макросы прАвда под Специалист, но можно и под люБой другой видимо)


и то до этого был RISC PIC...
потом кучу лет 8ножечные процессоры с 2кБ ROM и 128байтам RAM

Ну для кого то и микроволновку запрограммировать - уже подвиг. Со стиралкой я пожалуй не справлюсь.
Если все равно на чем кодить - ну могу пример в мнемониках Z80 в личку кинуть. Мне на чужих примерах всегда удобнее учитЬся, но всем по разномуу

Vladimir_S
10.05.2020, 14:23
Кстати Прекрасный ассемблер действительно прекрасный.

SegaBoy
10.05.2020, 14:45
пишу код на сайте rk86.ru, тк он хотя бы ошибки показывает,
но там не поддерживается апогей =)
потом перекидываю в www.asm80.com, там компилирую в intel hex
потом перегоняю hex2bin
и далее под dos-box перегоняю с помощью bin2rk.com в RKA =)))
проверяю в Emul80 =)
бинго =)
но для того, что бы скомпилировать, нужно сделать кучу действий, чувствую, что
что-то делаю не так =)

Попробуйте здесь Прекрасный ассемблер (http://sensi.org/~svo/i8080/)
Если нажать на "рыбу", то можно выбрать и Апогей. Ассемблерный текст можно странслировать и в .rk, и в .hex, и в .bin, и в .wav, и даже сразу проиграть звуком.
То есть не нужно всех выше описанных вами телодвижений. Получили файл .rk - кинули его в эмулятор если надо проверить/отладить. Подключили Апогей к звуковому выходу - и прямо в ассемблере нажали Play.

Vladimir_S
10.05.2020, 15:56
А еще лучше здесь:
https://svofski.github.io/pretty-8080-assembler/

Pyhesty
11.05.2020, 11:25
Всем больше спасибо)
пока остановился на прекрасном ассемблере )
есть, конечно, проблема с тем, что сохраняться он сам не сохраняет
(или можно, что бы он хотя бы в кеше куда-то сохранял?)
ещё такой, а куда ссылается указатель кучи? где обычно её располагают?
ps: оооо! я открыл для себя в Emul80 отладчик! =) вот это песня, разработчику респект =)))

Vladimir_S
11.05.2020, 13:44
есть, конечно, проблема с тем, что сохраняться он сам не сохраняет
Пиши на NOTEPAD++ под расширением ASM. Написанное копируешь и вставляешь в прекрасный ассемблер вместо
родного текста.

Pyhesty
11.05.2020, 19:08
немного офтопа, расскажу чем занимался всю ночь...
я Апогей как первую неделю вижу =) ну думаю, нужно написать что-нибуть, покодить ассемблер
в прекрасном ассемблере...
ну думаю, звук тут аппаратный, точно ничего сложного быть не может...
ага-ага... интересно, почему я подумал, что звук это самое простое в этом компе =)))
ну, вот, во вложении мало ли кому будет интересно, то что я смог собрать на три спикера =)
ps: прога не зациклена, когда память заканчиватеся (через минуты три, улетает за край памяти...)

72575

zebest
11.05.2020, 19:41
Для одной ночи неплохо, но есть гораздо лучшие примеры той же BadApple. Тут на форуме же)
А так то да, ВИ-шку программировать забавно по своемуу :)

Pyhesty
11.05.2020, 19:51
"но есть гораздо лучшие примеры той же BadApple"
ссылочки бы =)))
я тут новенький =)
ps: если совсем оффтоп - то в личку)

zebest
11.05.2020, 20:45
Яблоко не помню кто делал, может один известный "Ушелец".Но вот тема от другого автора
https://zx-pk.ru/threads/29077-igraem-melodii-na-vi53.html

Pyhesty
17.05.2020, 18:29
Коллеги, подскажите, как быстро и эффективно в РК-86 (точнее Апогей БК01)
поменять вывод экрана с другой области памяти, условно с e1d0 на d1d0
что бы обеспечить что-то вроде двойной буферизации? =)
спс

SegaBoy
17.05.2020, 19:51
Коллеги, подскажите, как быстро и эффективно в РК-86 (точнее Апогей БК01)
поменять вывод экрана с другой области памяти, условно с e1d0 на d1d0
что бы обеспечить что-то вроде двойной буферизации? =)
спс
Нужно в третий канал ПДП ($f006) записать новый адрес экрана.

b2m
17.05.2020, 20:05
Скопировать п/п настройки ВГ75,ВТ57 и изменить в ней адрес.

Pyhesty
17.05.2020, 20:26
Нужно в третий канал ПДП ($f006) записать новый адрес экрана.
спасибо!
достаточно записать примерно так?


lxi h, $f006
mvi m, $d1
mvi m, $d0

а в какой момент правильнее? сразу после получения импульса начала кадра?
интересно, как себя ведёт контроллер, когда ему посреди кадра меняют адрес... хмм...? =)

SegaBoy
17.05.2020, 20:44
спасибо!
достаточно записать примерно так?


lxi h, $f006
mvi m, $d1
mvi m, $d0

Да, этого вполне достаточно.



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

Вот можете попробовать пример:


begin:
lxi h, $eaf3
lxi d, $d1d0
lxi b, 2340
copy:
mov a, m
dcx h
ani 01111111b
stax d
inx d
dcx b
mov a, c
ora b
jnz copy
check:
lda $ed02
rlc
rlc
jc key
mvi a, $d0
sta $f006
mvi a, $d1
sta $f006
jmp check
key:
rlc
jc check
mvi a, $d0
sta $f006
mvi a, $e1
sta $f006
jmp check

Нажатие кнопок УС и СС переключает экраны.

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


Скопировать п/п настройки ВГ75,ВТ57 и изменить в ней адрес.
Если нужно создать два-три или более одинаковых по параметрам экранов, но находящихся по разным адресам в памяти, а потом быстро переключаться между ними, то менять настройки ВГ75 и ВТ57 целиком не выгодно. Проще и быстрее посылать в третий порт ПДП адрес нового экрана.

SegaBoy
18.05.2020, 00:45
lxi h, $f006
mvi m, $d1
mvi m, $d0

Только надо «ногами вперёд», точнее младшим байтом

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



а в какой момент правильнее? сразу после получения импульса начала кадра?
интересно, как себя ведёт контроллер, когда ему посреди кадра меняют адрес... хмм...? =)
Регистры канала 3 контроллера ПДП хранят значения для канала 2. Обновление данных в канале 2 значениями из канала 3 происходит уже после окончания текущего цикла ПДП, в момент получения нового запроса от ВГ75.
Можно рассмотреть такой сценарий - пока происходит отображение буфера 1, можно сколь угодно долго вычислять и заполнять буфер 2. Когда все манипуляции закончены, то устанавливаем в канал 3 контроллера ПДП адрес буфера 2. После этого можем подождать кадровый синхроимпульс и начать заполнять буфер 1.

Pyhesty
18.05.2020, 02:50
Нажатие кнопок УС и СС переключает экраны.

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

Если нужно создать два-три или более одинаковых по параметрам экранов, но находящихся по разным адресам в памяти, а потом быстро переключаться между ними, то менять настройки ВГ75 и ВТ57 целиком не выгодно. Проще и быстрее посылать в третий порт ПДП адрес нового экрана.

чувак, ты крут! спасибо за пример! работает =)))
ps: пример прикольный =)

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

может кому-то будет интересно, пробовал быстро что-то вывести на экран,
уперся в "простую" проблему - не могу быстро очистить экран, в итоге перебрал разные
вариант, нашел не самый очевидный (хотя может быть это с моей точки зрения самоучки, он не очевидный)
этот метод раз в пять быстрее, чем очистка путем прямой записи в память

собственно, в чем вопрос, может быть есть более простые способы быстрой очистки экрана?
спс


clear_screen:
lxi h, 0
dad sp
shld sp_temp ; сохраняем позицию sp
lhld vid_end_addr ; грузим позицию конца кадра в адрес sp
sphl
lxi h, $2020 ; грузим пробелы в hl
mvi b, 15 ; количество строк 30/2 = 15
clr_scr0
mvi c, 9 ; элементов в строке 72/8=9
clr_scr1
push h ; зачищаем одной командой два байта...
push h ; зачищаем одной командой два байта...
push h ; зачищаем одной командой два байта...
push h ; зачищаем одной командой два байта...
push h ; зачищаем одной командой два байта...
push h ; зачищаем одной командой два байта...
push h ; зачищаем одной командой два байта...
push h ; зачищаем одной командой два байта...
dcr c
jnz clr_scr1 ; вот этот прыжек съедает кучу тактов почему-то, приходится "расширять" тело цикла, что реже приходилось прыгать
dcr b
jnz clr_scr0
lhld sp_temp ; восстанавливаем sp
sphl
ret

HardWareMan
18.05.2020, 06:15
Pyhesty, в Специалисте это было испокон изначально:
https://jpegshare.net/images/4a/ee/4aee5751630889744974cda24620caf7.png

Pyhesty
18.05.2020, 12:09
нормально =))) очередное изобретательство велосипедов =)
спс, ну значит у меня норм вариант =)
ps: я не знаю как раньше что-то разрабатывали без эмуляторов ) это же просто ужас,
так ты что ли на листочке считать...
pss: кстати, а где можно почитать про сколько тактов частоты процессора (я так понимаю 1.7МГц) на команду?
и сколько времени идёт чтение одного байта команды? я так понимаю, он вычитывает один байт команды, смотрит
однобайтовая или нет, читает следующий байт (и так до трех), потом выполняет? сколько читается один байт по адресу PC?
если это команда между регистрами, то все одинаково выполняются? а если с записью/чтением в память?
я понимаю, что это азы ) но букваря под рукой нет )

zebest
18.05.2020, 12:16
Ну посчитаешь. И? Из подсчитанного плюс процентов 30? на пдп докидывать надо, елси экран не погашен. Так что неблагодарное это дело. А растактОвка в известных цветных таблицах должна быть.
Например (https://journals.12kv.ru/img/016.jpg)

Pyhesty
18.05.2020, 15:50
О! за таблицу большое спасибо!
теперь стало всё для меня понятнее =) при кажущихся больших 1.7МГц тактовой, фактически
остаётся около 170к операций в секунду минут 30% на ПДП остаётся около 120к операций =)
ни о каких заявленных на коробке 300-500т операций в секунду речь не идёт =)
в любом случае интересненько... эх... где же этот комп был в мои 90е =)))

zebest
18.05.2020, 16:30
300-500т операций в секунду
Это обычно речь ведут об операциях типа регистр-регистр, которые за 4 такта выполняются, ну и не учитывая реальное торможение ПДП, чисто проц считают.
Есть где-то тема, число Пи считают на разных 8-ми битных машинах. Для сравнительной оценки быстродействия "в-лоб" - самое то.

ivagor
18.05.2020, 20:29
Если нужен каждый такт и стандартное изображение не нужно (или никакое изображение не нужно), то на РК-подобных есть пара вариантов борьбы с ПДП
1. Увеличить период регенерации, сделать регенерацию пореже
2. Если программа постоянно читает или пишет озу в определенных пределах, то можно временно отключить ПДП

Pyhesty
19.05.2020, 18:12
"Если нужен каждый такт и стандартное изображение не нужно "
да, для расчёта биткоинов самое-то =)
это если представить сколько у нас Апогеев ещё в стране - майнить и майнить =)

Ратмир
12.06.2020, 21:24
Не могу разобраться с редактором ассемблера. В части удаления строк.
АР2+D метку ставит, далее смещаюсь на строчку вниз. метка тоже появляется.
потом опять жму АР2+D, нихрена ничего не меняется. Нажимаю СТР естно отменяет удаление\ и возвращаемся опять к разбитому..

Vladimir_S
13.06.2020, 03:12
потом опять жму АР2+D, нихрена ничего не меняется.
АР2+D отмечаешь, АР2+E исполняешь. Журнал Радио 1988 №3 стр. 31.

Ратмир
13.06.2020, 07:40
Спасибо Владимир!
Да действительно у меня новый редактор на Микрокоме. АР2+Е исполняет!
Апогей не трогаю, т.к. на на нем нет сохранения текста программ, нужно МГ подключать. Лежит в коллекции.
А здесь АР2+О и все ок!
Подскажи пожалуйста, давным давно ты мне показывал как выводит строчку на экран, а как вывести несколько строк?
может пример есть.
и очистка экрана отличается от Апогея?

Vladimir_S
13.06.2020, 07:56
Не понял о каких строчках речь.

Ратмир
13.06.2020, 09:02
Любых надписей.
Допустим 1 строка: Всем привет!
2-ая строка ZX.PK.RU
3-ая строка Радио РК-86

пример был на 8-ой странице

Vladimir_S
13.06.2020, 09:29
Ратмир, понял.
1BH,59H,20H+номер строки,20H+номер позиции,'blablabla',0

Ратмир
13.06.2020, 18:07
Владимир
Пока со скрипом, нашел в журнале радио за 89 год №1 стр.34 небольшую прогу.
пытался вытащить из нее первоначальный кусок, но фиг вам! как говорил Шарик. 5 ошибок.
кусочек текста показывает, потом выныривает в Монитор.
http://img.radiokot.ru/files/30570/thumbnail/28bz5p2zuj.JPG (http://img.radiokot.ru/files/30570/28bz5p2zuj.JPG)
http://img.radiokot.ru/files/30570/thumbnail/28bz5t2c80.JPG (http://img.radiokot.ru/files/30570/28bz5t2c80.JPG)

ivagor
13.06.2020, 18:29
Каждая строка с данными должна начинаться с DB (и, кстати, сообщение должно заканчиваться нулем). После CALL PRINT надо как-то завершить программу, например выйти в монитор, иначе начнет "выполняться" область данных.

Vladimir_S
13.06.2020, 18:35
иначе начнет "выполняться" область данных.
Совершенно справедливо.

Ратмир
13.06.2020, 19:03
Подправил. Ошибок 00
но выводит все равно только одну строчку....
http://img.radiokot.ru/files/30570/thumbnail/28c0rk2rpg.JPG (http://img.radiokot.ru/files/30570/28c0rk2rpg.JPG)
http://img.radiokot.ru/files/30570/thumbnail/28c0rn5le7.JPG (http://img.radiokot.ru/files/30570/28c0rn5le7.JPG)

Vladimir_S
13.06.2020, 19:08
Ратмир, Убери все нули и запятые перед ними, кроме последней строки. Ноль в конце строки означает конец действия подпрограммы 0F818H.

Ратмир
13.06.2020, 19:19
Нолики не там поставил!
все дожал!
http://img.radiokot.ru/files/30570/thumbnail/28c12k1f5x.JPG (http://img.radiokot.ru/files/30570/28c12k1f5x.JPG)

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

Со стороны наверное смешно выглядит.
Но я не программист, мне 50% скидка.
Теперь осталось эти строчки цветными сделать.

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

p.s. хорошая статейка.
Там и паузу как сделать
и опрос клавы
и очистку экрана
куча подпрограмм.
многое конечно еще не понятно, но можно разобраться

Vladimir_S
13.06.2020, 19:44
Ратмир, Когда в восьмидесятых у меня наблюдались сбои, и я борясь с ними, набросал маленькую программку - у меня звездочка бегала из левого верхнего угла по периметру экрана. И в пятницу уходя с работы я оставлял до понедельника бегать ее. Проверял не сбойнет ли комп. Попробуй написать нечто подобное.
И кстати:
Апогей не трогаю, т.к. на на нем нет сохранения текста - есть простое решение.https://zx-pk.ru/threads/17316-apogej-bk01-i-apogej-bk01ts-vneshnij-rom-disk.html?p=1062235&viewfull=1#post1062235

Ратмир
13.06.2020, 20:06
Vladimir_S, помню, видел твое устройство. НО пока столько проектов не законченных...
Но сделаю! чуть разгребу завалы.
и программу попробую написать.
Но мозги к 44 годам закисли.. атас!

Vladimir_S
13.06.2020, 20:08
Ратмир, 44 это розовая юность.

Ратмир
14.06.2020, 06:40
Vladimir_S, чтоб сделать мои строчки цветными, возможно твой пример адаптировать к моему.
Или алгоритм совсем другой?
Я не увидел в твоем примере вывод строки 0F818H.

Vladimir_S
15.06.2020, 09:50
Ратмир, С помощью п/п F818 атрибуты цвета не переносятся, нужно нечто вроде этого:

Ратмир
15.06.2020, 10:02
Вот это крутяк!

Vladimir_S
15.06.2020, 10:13
Ратмир, Но учти, адреса видеопамяти и уход в монитор РКшечные.

Ратмир
15.06.2020, 10:15
Так я на Микрокоме, вроде все работает.

Ратмир
15.06.2020, 20:49
Ратмир, Но учти, адреса видеопамяти и уход в монитор РКшечные.
по ходу у Микрокома по другому
не хотит, хотя ошибок пишет ноль
http://img.radiokot.ru/files/30570/thumbnail/28ebf9g5f5.jpg (http://img.radiokot.ru/files/30570/28ebf9g5f5.jpg)

Здесь секрет?
http://img.radiokot.ru/files/30570/thumbnail/28ebng3588.JPG (http://img.radiokot.ru/files/30570/medium/28ebng3588.JPG)

Vladimir_S
16.06.2020, 03:24
Ратмир, Зачем такие сложности? Убери ORG 1000Н и запускай G1100.

Ратмир
16.06.2020, 03:56
G 1100 тоже ругается.
На экране мишура разноцветная, и клинит прям.

Vladimir_S
16.06.2020, 04:07
Покажи результат трансляции без ORG 1000H.

Ратмир
16.06.2020, 05:25
Vladimir_S, только вечером, я уже уехал на работу.

Ратмир
16.06.2020, 21:13
Покажи результат трансляции без ORG 1000H.
Сразу на смог написать, выключили свет в поселке, живем как при Ильиче.
Без ORG, G1100 норм запустился. пишет пару ошибок но все равно запускается/
и в чем была моя ошибка?
http://img.radiokot.ru/files/30570/thumbnail/28ffgcqlqm.jpg (http://img.radiokot.ru/files/30570/28ffgcqlqm.jpg)

Получается у РадиоРК86 8 цветов, включая белый и черный

Vladimir_S
16.06.2020, 23:30
и в чем была моя ошибка?
У ассемблера буфер трансляции начинается с адреса 1100. Если задаешь ему ORG 1000H, то результат трансляции начинается с 1000, а это значит, что и транслированный результат необходимо перенести начиная с 1000. Поэтому я и написал - зачем такие сложности.

Rokl
03.07.2020, 20:58
http://img.radiokot.ru/files/30570/thumbnail/28ffgcqlqm.jpg (http://img.radiokot.ru/files/30570/28ffgcqlqm.jpg)

Получается у РадиоРК86 8 цветов, включая белый и черный
Привет, Ратмир.
Уточняю. Это у Микрокома 8 цветов символов.)))
у него ещё инверсия есть (8 цветов поля и черные символы на нем) и мерцание. В одной строке может быть не более 16 атрибутов, но последним всегда должен быть атрибут 80h (выключение атрибутов). По подпрограмме вывода текста 0F818h на микрокоме выводятся все символы от 0, до FFh. Будь осторожен с символами больше 7Fh.

Ратмир
04.07.2020, 06:12
Rokl, привет!
у тебя нет случаем карты экрана. А то верхние строчки у меня залазят на часы. Т.е мне нужно поле где я могу символами играться.

Rokl
06.07.2020, 10:44
Rokl, привет!
у тебя нет случаем карты экрана. А то верхние строчки у меня залазят на часы. Т.е мне нужно поле где я могу символами играться.

Есть. Радио 1988г № 4.
Начала всех строк без бланкирующих ячеек 1 строка -77C9 и далее 2 строка - 7817h, 78f5h, 78b3h, 7901h, 794eh, 799dh, 79ebh, 7a39h, 7a87h, 7ad5h, 7b23h, 7b71h, 7bbfh, 7c0dh, 7c5bh, 7ca9h, 7cf7h, 7d45h, 7d93h, 7de1h, 7e2fh, 7e7dh, 7ecbh, последняя строка - 7f19h.

Vladimir_S
06.07.2020, 11:38
Ратмир, Таблица экрана в журнале Радио 1988 №4.

IREK
08.02.2021, 16:28
Всем привет! Подскажите пожалуйста как работает вот эта программа: REDASM.RKR74661

Vladimir_S
12.02.2021, 15:09
IREK, Раз дамп начинается с 100Н, то и запуск у программы G100.

IREK
12.02.2021, 15:52
Это понятно, что нужно ввести потом? если например вводить числа пишет "готов".

Ратмир
05.02.2024, 19:01
Vladimir_S, Привет! Вопрос по Микрокому85
Ты не помнишь куда редактор ассемблера сохраняет файл, директивой АР2+О?. Все диски просматриваю в ОРД ДОСе, пусто.
А в редакторе директивой АР2+I файл находит.

P.s. нашел алгоритм! В диск В записываются.
https://zx-pk.ru/threads/13148-radio-rk-86-kompyuter-s-protsessorom-1821vm85/page35.html

Батарейка, села в труху (не заражалась) и еще вокруг нее все дорожки окислились, можешь проверить у себя.

Ратмир
07.02.2024, 19:21
Есть. Радио 1988г № 4.
Начала всех строк без бланкирующих ячеек 1 строка -77C9 и далее 2 строка - 7817h, 78f5h, 78b3h, 7901h, 794eh, 799dh, 79ebh, 7a39h, 7a87h, 7ad5h, 7b23h, 7b71h, 7bbfh, 7c0dh, 7c5bh, 7ca9h, 7cf7h, 7d45h, 7d93h, 7de1h, 7e2fh, 7e7dh, 7ecbh, последняя строка - 7f19h.

Первые две строки, выводятся со смещением вправо. Пока разбираюсь. И через пол часа работы Микроком начинает глючить.., даже часы встали
https://pic.maxiol.com/thumbs2/1707329962.3114886338.20240207231359.jpg (https://pic.maxiol.com/?v=1707329962.3114886338.20240207231359.jpg&dp=2)
https://pic.maxiol.com/thumbs2/1707330052.3114886338.20240207231525.jpg (https://pic.maxiol.com/?v=1707330052.3114886338.20240207231525.jpg&dp=2)

Подправил адреса вывода текста, норм.
https://pic.maxiol.com/thumbs2/1707330827.3114886338.20240207233037.jpg (https://pic.maxiol.com/?v=1707330827.3114886338.20240207233037.jpg&dp=2)
https://pic.maxiol.com/thumbs2/1707330882.3114886338.20240207232620.jpg (https://pic.maxiol.com/?v=1707330882.3114886338.20240207232620.jpg&dp=2)
Часы запустил, но почему они встали?! по адресу F78Dh-80

Ратмир
08.02.2024, 21:56
Вопрос к спецам по Ассемблеру Радио РК86
Возможно убрать разрыв между двумя вставками из двух наборов символов (символа 17Н)?
понятно что программно можно заполнить всю строку символами 17Н, но мне нужно соединить именно двумя вставками.
https://pic.maxiol.com/thumbs2/1707418529.3114886338.20240208233903.jpg (https://pic.maxiol.com/?v=1707418529.3114886338.20240208233903.jpg&dp=2)
https://pic.maxiol.com/thumbs2/1707418057.3114886338.20240208233836.jpg (https://pic.maxiol.com/?v=1707418057.3114886338.20240208233836.jpg&dp=2)

Pyk
09.02.2024, 00:00
Ратмир, я так понимаю. что в разрыве - атрибут 81H?
Если в 2 словах, то вообще можно, но для этого нужно перепрограммировать ВГ75 для работы с прозрачными атрибутами и учесть уйму разных нюансов для работы в таком режиме.

Ратмир
09.02.2024, 02:51
Ратмир, я так понимаю. что в разрыве - атрибут 81H?
Если в 2 словах, то вообще можно, но для этого нужно перепрограммировать ВГ75 для работы с прозрачными атрибутами и учесть уйму разных нюансов для работы в таком режиме.
Между двумя голыбыми полосками. Я даже вторую немного наложил на первую. Получается подпрограмма вывода, перед началом вставляет пробел.
Если это невозможно, тогда вопрос если ВГ75 перевести в графический режим, останется 8 цветов или нет?

SegaBoy
09.02.2024, 06:10
Получается подпрограмма вывода, перед началом вставляет пробел.
Это не подпрограмма вставляет пробел, это значение 81h выглядит на экране как пробел.

Ратмир
09.02.2024, 06:14
Теперь ясно. Т.е. убрать не возможно.

SegaBoy
09.02.2024, 06:25
Теперь ясно. Т.е. убрать не возможно.
В этом режиме ВГ75 нет, а в режиме с прозрачными атрибутами, как выше писал Pyk - да.

Ратмир
09.02.2024, 06:44
В этом режиме ВГ75 нет, а в режиме с прозрачными атрибутами, как выше писал Pyk - да.

Т.е надо прошивку Монитора менять?

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

И еще, что за белая шляпа выскакивает?, если пробел после символов не вставить тотчто в кавычках

SegaBoy
09.02.2024, 07:48
Т.е надо прошивку Монитора менять?
Нет, прошивку менять не надо. Обычно программы использующие другой режим сами его и перенастраивают. То есть надо написать свою процедуру инициализации ВГ75 и ВТ57.



И еще, что за белая шляпа выскакивает?, если пробел после символов не вставить тотчто в кавычках
Про шляпу не понял, что имеется в виду. Есть примеры?

Ратмир
09.02.2024, 08:09
Нет, прошивку менять не надо. Обычно программы использующие другой режим сами его и перенастраивают. То есть надо написать свою процедуру инициализации ВГ75 и ВТ57.


Про шляпу не понял, что имеется в виду. Есть примеры?

https://pic.maxiol.com/thumbs2/1707455338.3114886338.20240209100648.jpg (https://pic.maxiol.com/?v=1707455338.3114886338.20240209100648.jpg&dp=2)

SegaBoy
09.02.2024, 13:28
https://pic.maxiol.com/thumbs2/1707455338.3114886338.20240209100648.jpg (https://pic.maxiol.com/?v=1707455338.3114886338.20240209100648.jpg&dp=2)
Это кусок атрибута 80h наехал. Похоже на то, что в схеме компа что-то не так сделано. То есть новый атрибут вступает в силу до того, как закончилось отображение предыдущего знакоместа. Недавно это в параллельной теме по РК86 обсуждали.

Ратмир
09.02.2024, 14:46
Это кусок атрибута 80h наехал. Похоже на то, что в схеме компа что-то не так сделано. То есть новый атрибут вступает в силу до того, как закончилось отображение предыдущего знакоместа. Недавно это в параллельной теме по РК86 обсуждали.

Вот вот, а пробел если в конце вставить, уже этого атрибута не видно.

SegaBoy
09.02.2024, 14:54
Вот вот, а пробел если в конце вставить, уже этого атрибута не видно.
Ну так лучше же схемотехнику исправить, а не пробелом лечить. Иначе не получится на экране отобразить нечто разных цветов вплотную, без пробелов между.

Ратмир
09.02.2024, 15:35
В конце пробелом не проблема, а вот перед это проблема

Shaos
09.02.2024, 18:10
Это кусок атрибута 80h наехал. Похоже на то, что в схеме компа что-то не так сделано. То есть новый атрибут вступает в силу до того, как закончилось отображение предыдущего знакоместа. Недавно это в параллельной теме по РК86 обсуждали.Видимо регистра нет, который биты атрибутов защёлкивает как в Апогее

Ратмир
09.02.2024, 18:42
Видимо регистра нет, который биты атрибутов защёлкивает как в Апогее

А в Апогее будет норм? У меня есть несколько Апогеев, можно посмотреть..

p.s. Блок питания куда то дел, проверить не смогу.
Буду разбираться на Микрокоме.

Shaos
10.02.2024, 07:34
Вот тут есть про то как этот регистр в любой РК86 воткнуть:
https://zx-pk.ru/threads/35104-r86rk-dorabotka-do-tsvetnosti.html?p=1179384&viewfull=1#post1179384

Ратмир
10.02.2024, 09:09
Вот тут есть про то как этот регистр в любой РК86 воткнуть:
https://zx-pk.ru/threads/35104-r86rk-dorabotka-do-tsvetnosti.html?p=1179384&viewfull=1#post1179384

За той темой слежу, но там не увидел решение проблемы.
П/п F82D она настраивает ВГ75?

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

Если КР580ВГ75 запрограммировать для «прозрачного» (невидимого) режима атрибутов поля, то места включения в текст атрибутивных кодов на экране будут невидимы. Это достигается за счет стеков FIFO. Каждое ЗУ на один знакоряд имеет сопряженный с ним стек FIFO емкостью 16 знаков по 7 бит.

В «прозрачном» режиме входной буфер–контроллер при заполнении буферного ЗУ во время проведения ПДП «просматривает» загружаемые знаки и при обнаружении кода атрибута поля следующий за ним знак помещает в стек FIFO. Когда знакоряд переключается на отображение, выходной буфер–контроллер анализирует выводимую информацию и, обнаружив атрибутивный код поля, принимает его для исполнения, а на выходы кода СС0 – СС6 подает знак из стека FIFO, устраняя таким образом пробельное знакоместо на экране."
из нее же
https://pic.maxiol.com/thumbs2/1707543476.3114886338..jpg (https://pic.maxiol.com/?v=1707543476.3114886338..jpg&dp=2)

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

Когда вставляю просто фон, то разрыв уменьшается! Как так?
https://pic.maxiol.com/thumbs2/1707545292.3114886338.20240210110551.jpg (https://pic.maxiol.com/?v=1707545292.3114886338.20240210110551.jpg&dp=2)

SegaBoy
10.02.2024, 11:54
Когда вставляю просто фон, то разрыв уменьшается! Как так?

Код вставляемых строк можно посмотреть?

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



Блок питания куда то дел, проверить не смогу.

Могу запустить на Апогее и показать. Только нужен код примера для эксперимента.

Shaos
10.02.2024, 11:55
А фон микрокомовский? Он иначе чем цвет ведь делается - ему видать задержка ненужна...

Ратмир
10.02.2024, 13:32
Не надолго вынужден откланятся. Однокласники едут выпуск 91г. Как освобожусь отвечу. Есть мысль точками рисовать с фоном, белыми точками на светлых тонах, черными на темных, надо посмттреть коды фонов.

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


Код вставляемых строк можно посмотреть?

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


Могу запустить на Апогее и показать. Только нужен код примера для эксперимента.

Код 91Н, черная надпись на голубом фоне

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


А фон микрокомовский? Он иначе чем цвет ведь делается - ему видать задержка ненужна...
Rokl бы точно ответил, как автор Микрокома.
Но он редко заходит.

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

Фиг вам называется, все равно вставляет, когда другой цвет выбираем
https://pic.maxiol.com/thumbs2/1707558826.3114886338.20240210145211.jpg (https://pic.maxiol.com/?v=1707558826.3114886338.20240210145211.jpg&dp=2)
https://pic.maxiol.com/thumbs2/1707559122.3114886338.20240210145634.jpg (https://pic.maxiol.com/?v=1707559122.3114886338.20240210145634.jpg&dp=2)

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

На Апогее адреса экрана наверное размещены в другом месте

SegaBoy
10.02.2024, 13:54
Фиг вам называется, все равно вставляет, когда другой цвет выбираем
https://pic.maxiol.com/thumbs2/1707558826.3114886338.20240210145211.jpg (https://pic.maxiol.com/?v=1707558826.3114886338.20240210145211.jpg&dp=2)
https://pic.maxiol.com/thumbs2/1707559122.3114886338.20240210145634.jpg (https://pic.maxiol.com/?v=1707559122.3114886338.20240210145634.jpg&dp=2)
Так вроде же вчера мы про это говорили, что коды атрибутов будут отображаться как пробелы в "непрозрачном" режиме, если не перенастраивать ВГ75. Если инициализация ВГ75 не изменилась, то будет "всё равно вставлять".

Ты какого результата хочешь добиться то?

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



Когда вставляю просто фон, то разрыв уменьшается! Как так?
https://pic.maxiol.com/thumbs2/1707545292.3114886338.20240210110551.jpg (https://pic.maxiol.com/?v=1707545292.3114886338.20240210110551.jpg&dp=2)
Походу это не разрыв уменьшается, а та самая "шляпа" про которую ты раньше говорил. Белая она была так как был код 80h (белый текст), а теперь она чёрная (код 91h - чёрный текст).

Shaos
10.02.2024, 20:37
На Апогее адреса экрана наверное размещены в другом местеДа - там E1D0-EAFF

Ратмир
10.02.2024, 23:27
Код вставляемых строк можно посмотреть?

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


Могу запустить на Апогее и показать. Только нужен код примера для эксперимента.

Жду

SegaBoy
11.02.2024, 01:09
Жду
Я имел в виду код программы, а не атрибута.

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

Так то на Апогее тоже самое будет - в режиме непрозрачных атрибутов каждый атрибут это пробел

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

Может мы друг друга не поняли? Речь шла про белую "шляпу" в конце красной строки, так ведь. Я предположил что это в схеме дело. Shaos предположил что нет регистра как в Апогее. Ты не нашёл блок питания, а я сказал что могу запустить эту программу на Апогее и показать. Кода в том сообщении нет - только палец тычет в экран.

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

Вот блин - и на Апогее есть эта шляпа, но правда в полпикселя толщиной (((

80350

Первая строка без пробела в конце, вторая с пробелом.

Shaos
11.02.2024, 10:11
А поближе можно то место где полпикселя видно? На приаттаченной фотке всё размылось...

Alikberov
11.02.2024, 22:41
Решил попрактиковаться и двое суток посвятил черновому (не особо напрягаясь) варианту дизассемблера.
Код специально вызывается с адреса 0038 инструкцией RST 7 для демонстрации объёма кода - в ПЗУ 1 Кб вполне уместится.
Между инструкцией и операндом стоит один единственный пробел (всегда) - нет выравнивания до четырёх: Расчёт на возможную замену знака пробела на табуляцию там, где она нормально поддерживается.

В качестве демонстрации код использует служебные ячейки Журнального Монитора для трюкового запуска директивой «G,<начало>,<конец>» для дизассемблирования любого фрагмента памяти, как видно на скриншоте…
Прерывание - по F4/УС+C.

Внимание!
Параметр «<начало>» нельзя указывать ниже 0010 и выше 7600/!\

Shaos
13.02.2024, 07:05
Вообще кому интересно последить за тем как пишут дизассемблеры для РК "на ходу", то вот в этой теме можно увидеть потоки мыслей и варианты в процессе улучшения:

http://www.nedopc.org/forum/viewtopic.php?f=93&t=22376

Особо отличился Vital72 с дизассемблером 8080/8085 размером 734 байта, но остальные тоже поразмяли мозгами, например b2m предложил урезанный вариант только 8080 размером 678 байт :)

Ратмир
13.02.2024, 07:25
Я имел в виду код программы, а не атрибута.

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

Так то на Апогее тоже самое будет - в режиме непрозрачных атрибутов каждый атрибут это пробел

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

Может мы друг друга не поняли? Речь шла про белую "шляпу" в конце красной строки, так ведь. Я предположил что это в схеме дело. Shaos предположил что нет регистра как в Апогее. Ты не нашёл блок питания, а я сказал что могу запустить эту программу на Апогее и показать. Кода в том сообщении нет - только палец тычет в экран.

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

Вот блин - и на Апогее есть эта шляпа, но правда в полпикселя толщиной (((

80350

Первая строка без пробела в конце, вторая с пробелом.

Почему оранжевый цвет? И каким образом я смогу выслать код? Я сохраняю на ram/rom диске.