:v2_dizzy_facepalm: и как это может быть связано с
где в твоей упоротой формуле учитываются состояния битов?
- - - Добавлено - - -
а насчёт палитры анрыла подозреваю, что код для атм и профи один и тот же, но в атм всего 64 цвета
Вид для печати
3 бита дают значения от 0 до 7. Это весь спектр в 8bpp. В 24bpp спектр это значения 0-255.
Для перевода из 24bpp в 8bpp, нужно спектр 0-255 разбить на 8 частей, а значения конкретных цветов привести к ближайшим. Что и делает приведённая формула, когда в ней стоит цифра 7. Формулы стандартные, их можно найти в любой литературе по теме.
Цифра 6 же кодируется в двух битах как 11. По этому нет реакции на изменение третьего бита. И от сюда же сдвиг цвета по спектру, так как частей теперь только 7.
два фактора:
1. отсутствие реакции на изменение 3 бита
2. сдвиг цветов по спектру. При чём сам сдвиг и получаемые при нём цвета весьма показательны.
Позволяют предположить, что в формулах пересчёта при отображении на экране есть ошибка. И она очень похоже на то, что в формулах стоит 6 вместо 7. Не сомневаюсь, в том что там используются точно такие же формулы которые я привёл, так как других для RGB стандарта просто нет, а выполнять преобразование нужно.
Конечно же ошибка может быть и в другом месте, но я бы начал проверку от сюда. И если ошибки нет, прошёлся бы по всей цепочке по работе с цветом и выводом на экран.
Wut da fuk am i reading?
Человек на какой-то другой планете живёт, чесслово... Цветовое пространство, где R и G представлены тремя битами, а B - двумя называется RGB332. TrueColor - 24 бита цвета, каждый компонент представлен 8 битами, это ещё называется RGB888. В общем случае используются старшие 3 (или 2) бита от полного 8-битного значения каждого цвета, а не лунные "формулы".
на 7 частей, и перевод тебе сейчас обратный нужно рассматривать
цифра 6 в ДВУХ битах вообще никак кодироваться не может, потому что максимальное двухбитное число это ТРИ
всяких есть (логарифмических, например), да и значения можно тупо задавать таблицей без всяких формул
и предположить так можно много чего, например, что вместо 7 там вовсе даже 3 (а не 6)
ну, может быть, недоработку в коде я и найду, но пересобирать это вряд ли
Как в эмуляторе выставить,чтобы чтобы память была только 48кб? В .ini написано что не меньше 128.
Есть где ни буть нормально описание?
В частности, не могу наладить работу клавы. Отключил Shift и Ctrl, но в эмуле всё равно есть реакция на Shift. Где настраиваться "ATM PC/XT keyboard controller"?
Нужно описание встроенного отладчика и его возможностей по взаимодействию с кодом. Например, можно ли в него перейти прямо из кода.
Из файлов которые можно назвать "ридми" у меня в поставке только "help_eng.html". Есть ещё комментарии в "*.ini" файлах, но мне их не хватило. Вот я и спрашиваю, если иные файлы с описанием, и если есть где их брать. Поиск по инету ни чего не дал.
Собственно пытаюсь наладить работу с IBM клавой на Профи. Так как клавиш на ней больше чем на стандартной клавиатуре, на некоторые просто нет аналогов - а они нужны для настойки в ini файле. Как быть?
Попробовал поставить галочку напортив "IBM клава для ATM", частично стало лучше, но есть явное не совпадение кнопок по кодам. Отдельных настроек для этого случая не нашел. И не понял как переключиться обратно, так как отрубаются все расширенные кнопки уже в самом эмуляторе.
Вот мне нужно оттранслировать пошагово проблемное место. Для STS я ставлю точку останова, вываливаюсь по ней в монитор и быстро решаю проблемное место. Что тут ерестикового? Как по другому "поймать" нужное место?
Такой же функционал мне бы хотелось иметь в Unreal'е. Так же, кроме описания кнопок ни чего иного найти для монитора не смог.
- - - Добавлено - - -
Отлично подойдут. Где о них почитать? Как они выглядят, что бы я их поставил у себя в коде?
Ну если этого не достаточно, остается последний вариант: читай исходники: https://github.com/tslabs/zx-evo/tre...pentevo/unreal
Честно, удивлен. С учётом того, что я не разбираюсь в Cи, требовать его знания для использования конечного продукта этом моветон.
Продукт весьма хорошего технического уровня, а вменяемого описания нет. Сегодня закончил статью с описанием ряда программы в CP/M, так в 60% есть более чем исчерпывающая документация.
Я понял, что так как исходники открыты, ни кто ни за что не отвечает. А на документацию банально забили. "Кто в лес, кто по драва."(с)
В исходниках был найден файл "unreal_r.txt", в котором есть описание точек останово. Из которого я сделал вывод, что ставить точки можно только из самого монитора. В коде их поставить нельзя. Возвращаемся к необходимости работать с STS внутри спекки.
Сам документ весьма полезен.
Это спектрум, тут так заведено...Цитата:
Я понял ... ни кто ни за что не отвечает. А на документацию банально забили. "Кто в лес, кто по дрова."(с)
Например: делаю я вывод на экран. У меня идут кукой-то глюк, который явно в процедуре вывода. Я перед call (или на вход в процедуру) ставлю точку останова, и как вывалюсь в монитор, пошагово прохожу процедуру. Проблема может быть как в самой процедура, так и в передаваемых даных. Чаще всего этого достаточно чтобы выявить косяк. Иначе мне нужно вручную найти процедуру в уже компилированном коде, что как правило не тривиальная задача.
Брейкпойнты из sjasm кода тоже были в курлесовском билде.
- - - Добавлено - - -
Он же не это хочет? Я так понял он хочет какие-то опкоды в z80 чтобы были спец-командой для брейкпойнта, что как бы ересь.
- - - Добавлено - - -
В оригинальной поставке есть unreal_e.txt (там очень подробно) и unreal_r.txt (там менее подробно). Скачай на vtrd.in оригинальную версию, как вариант.
Хоть убей не пойму почему. Ты же сам в указанной ветке обсуждал похожую идею. Только зачем делать для одной программы, если можно сделать для всех сразу?
Темп более она реализована почти во всех (знаю одну программу где нет) известных мне мониторах как на спекки, так и в CP/M.
У меня где-то есть, могу покопаться. Но в принципе зачем, забей в сурсы патч, он приложен, и скомпилируй. Зумам в билд написал в теме, посмотрим, может внедрят сами.
Ну для своих положим да, а вот для всех - нет. Получаем сразу проблемы совместимости со старым софтом, ксорками и сам придумай чем. Нексты пошли этим же путём и мне это тоже не нравится.Цитата:
А чего собственно как бы ересь? Почему бы и не повесить на один из опкодов вход в монитор? Для своих программ для отладки вполне нормальный вариант.
Вчитайся. Идея была совсем не в этом, а в генерации bplist по команде в sjasmplus. И это было сделано.Цитата:
Ты же сам в указанной ветке обсуждал похожую идею.
Вот именно. И какая совместимость у тех мониторов? Как насчет поставить брейкпойнт в середину стекового вывода например, всё отлично? Монитор в эмуляторе тем и крут. то вообще никакого влияния не оказывает и его как бы нет, он абсолютно прозрачен для отлаживаемой программы. В отличие от.Цитата:
Темп более она реализована почти во всех (знаю одну программу где нет) известных мне мониторах как на спекки, так и в CP/M.
Ну а как ты будешь ее делать для своих фич? Тебе тогда нужно будет либо иметь свой кастомный билд эмулятора, куда ты забьешь эти коды статически, либо же делать какие-то параметры при запуске эмулятора на то, какой набор байтов считать брейкпойнтом. В любом случае тебе тут надо владеть техникой хотя бы собирания эмулятора из сурс-кодов. Ты-то наверное владеешь, а вот автор вопроса сугубо вряд ли.
А зачем она вообще нужна? Ведь делаться под конкретную модель монитора?
Встречный вопрос? А какая совместимость у вашего решения? Так же с конкретной программой (ассемблером), вот я нее могу её использовать, так как не могу использовать ваш ассемблер. В чём разница для конечного пользователя?
А в чём проблема? Обычно монитор ставит ловушку, как правило 2 байта. Хороший монитор делает не установку, а подмену, тогда наличия ловушки проходит прозрачно для пользователя. В данном случае можно реализовать только установку. Поставить её в эмуле можно через несуществующий код команды процессора, а уже в мониторе менять их на NOP или пропускать на уровне эмулятора. Да, код на этапе отладки подрастёт на 2 байта, но на его работе это ни как не скажется. Иногда может и окажутся критичны эти 2 байта, но в 99.999999999% будет работать без проблем. За то решение универсальное и не накладывает дополнительные требования на ассемблер.
Если в процессе генерации формируется текстовый с координатами точек останова, на подобие как для меток. Можно подробнее о его структуре, где он должен лежать, как его грузить и т.п.? Может я смогу его "подделать" на базе данных своего ассемблера.
Нет, ты сейчас предлагаешь перепилить эмулятор ради твоего решения, а не какой-нибудь STS.
Текстовый файл с брейкпойнтами можешь хоть вручную создавать. И про совместимость я имею ввиду изменения в эмуляторе, где ты предлагаешь отладчику эмулятора выскакивать по каким-то только тебе ведомым наборам байт, тем самым сломав нормальную работу у остальных программ, которые не должны так реагировать.Цитата:
Встречный вопрос? А какая совместимость у вашего решения? Так же с конкретной программой (ассемблером), вот я нее могу её использовать, так как не могу использовать ваш ассемблер. В чём разница для конечного пользователя?
Там создается файл с брейкпойнтами. Это вообще в ассемблере просто удобно делать, а не обязательное условие.Цитата:
А в чём проблема? Обычно монитор ставит ловушку, как правило 2 байта. Хороший монитор делает не установку, а подмену, тогда наличия ловушки проходит прозрачно для пользователя. В данном случае можно реализовать только установку. Поставить её в эмуле можно через несуществующий код команды процессора, а уже в мониторе менять их на NOP или пропускать на уровне эмулятора. Да, код на этапе отладки подрастёт на 2 байта, но на его работе это ни как не скажется. Иногда может и окажутся критичны эти 2 байта, но в 99.999999999% будет работать без проблем. За то решение универсальное и не накладывает дополнительные требования на ассемблер.
Она там банальная, просто список хекс-адресов типа BD28 через перевод строки.Цитата:
Если в процессе генерации формируется текстовый с координатами точек останова, на подобие как для меток. Можно подробнее о его структуре, где он должен лежать, как его грузить и т.п.? Может я смогу его "подделать" на базе данных своего ассемблера.
Но у тебя нет того билда эмулятора, т.к. там ссылка протухла. И у меня нет.
@tae1980 как мне правильно указали, я отстал от жизни на годы. Это уже вкручено в нормальные билды unreal от deathsoft давным давно.
Так что качай последний билд, формируй bpx.ini и пользуйся.Цитата:
version 0.37.5 23 feb 2011 (deathsoft)
+ Добавлена поддержка сохранения/загрузки списка брекпоинтов bpx.ini
формат:
r0=0x1000-0x1100
r - r/w/x
0 - номер процессора (0 - спектрум, 1 - ngs)
адрес начала диапазона, адрес конца диапазона
(можно указывать только адрес начала, если брекпоинт на 1 байт)
И прочитай news.txt в папке doc, все "новые" фишки описаны там.
Shadow Maker, Спасибо!!! Будем изучать. Как раз разбираюсь с вопросом передачи имён меток
- - - Добавлено - - -
Правильно я понял: r0=0x0129. Нужна трассировка с адреса 0129h, нулевая страница.
И такой вопрос. А как Унреал поймёт для какой программы установлена точка останова? Я же пишу под CP/M и мне, что бы запустить программу нужно:
1. Загрузить ОС, драйвера, библиотеки и прочее.
2. Загрузить файловый менеджер.
3. Выбрать диск С:
4. И только выбрать и сейчас запустить программу в которой мне нужна точка останова.
Нет. r - это значит на чтение. Если тебе надо на вызов, то ставь x. то есть x0=0x6000 для брейкпойнта на выполнение по адресу 6000.
Унриал ничего не поймет, он просто ставит тебе точку останова и всё. То есть если ты поставил брейкпойнт на x0=6000 а у тебя файловый менеджер загрузился и выполняется по этому адресу - то он тоже выполнится. Но зачем тебе грузить файловый менеджер мне неведомо, это ж CP/M, ты можешь в командной строке написать C:
В настоящее время заброска данных в образ полу автоматизирована и требует ручных действия. Так что проще кинуть файл на диск и уже потом выбирать в менеджере, так как имена могут быть разные. Это легче чем постоянно набивать имена в ком.строке и есть доступ к иным сервисным программам.
Надеюсь на полную автоматизацию работы с образами, в ближайшее время. Тогда можно будет генерировать нужный настройки ОС, не грузить лишнего и настроить автостарты.
Эх... уже понял, что решение для чистого спекка и если грузиться сразу из sna. Я в пролёте. Но хоть метки настроил в мониторе. Так же "без фантазий", но жить можно. Придется ускорять работы по переносу STS.
День добрый.
Версия эмуля: 0.37.6 запускаю на вин10-64. В режиме 48к загружаю из .tzx zeus, набиваю примеры, ассемблирую, запускаю - всё как бы работает и это меня устраивает.
Проблема начинается когда хочу сохранить свою работу. Выгрузки на ленту вроде как нету по этому делаю снапшот. При запущеном zeus`e виртуальный спек после загрузки снапшота повисает с вертикальными красными полосами и чёрным экраном (успевает промелькнуть синее окно запущенной программы). Если перед снапшотом выйти в бейсик, то после загрузки снапшота вроде всё нормально, бейсик работает, но при запуске зеуса виртуальный спек уходит в рестарт.
В чём может быть проблема? Или как мне решить задачу сохранения исходного кода который я набиваю в ассемблере?
для начала проверь на самой последней версии эмуля
http://dlcorp.nedopc.com/viewtopic.php?f=27&t=1525
Заработал снапшот, спасибо, помогло.
Попутно освоил запись чтение исходника на образ диска. Вот только не понял как создать новый образ. Переименовал имеющийся образ и отформатировал.
Всем доброго времени суток!
Не могу настроить Autofire на кнопки мыши. Это вообще возможно?
ps В играх с кемпстон мышью (Redshift например). На клаве Autofire работает, а вот как настроить на кемпстон мышь не пойму.
Добрый день.
Такой вопрос, использую фильтр во вкладке видео "Quad size" - картинка меня устраивает, но стоит переключиться в отладчик, окно опять становится маленьким приходится всматриваться в текст.
Можно это как то поправить настройками?
Скрытый текст
А это что за прикол такой? GS в Анриле отменили уже?
Пробовал и х32 и х64 экзешник и bass.dll
лет 5 не запускал, и тут такое...
похожая ситуация была в плейере от X-Trade, его я фиксил https://vtrd.in/gs/XTRPLAY+.zip
Не знаю, как запустить программу, переключающую экраны(и страницы). Когда захожу в Basic48, порт 7FFD в отладчике показывает красным и залоченным на #30(блокировка на zx48). Как сделать, чтоб заработало? Режим Pentagon 128 (KAY пробовал, то же самое).
Ответ: создать загрузчик на Бейсике и запускать его из TR-DOS. Он уже загрузит код. Порт 7FFD при это м не блокируется.
Почему то тут нет ссылок на последнюю версию. Вот http://dlcorp.nedopc.com/viewforum.php?f=8
Вопрос у меня. Игровой монитор 144гц подключен к видеокарте через dvi>hdmi переходник. В ДосБокс(Дисплей-прориcовка-suraface) и Анририал эмуляторе для Спектрума не работает полноэкранный режим, при переходе на него пропадает сигнал на мониторе. В ДосБокс не работает в полном экране только suraface прорисовка, остальное работает, в Анририал эмуляторе для Спектрума никакие режимы прорисовки не работают в полном экране. Почему, никто не подскажет?
Добрый день! Подскажите, пожалуйста, есть ли в отладчике возможность переключить отображение всех чисел из 16-ричной формы в 10-ричную