Хранение бордера

Картины, рисунки и наброски

Postby TS-Labs » Mon, 12.08.2013 15:11:09

Ну вот научишься писать процы, сразу вернемся к обсуждению. А пока прими на веру.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby Sergey78 » Mon, 12.08.2013 15:15:54

А как Т80 реагирует на OUT (C),0?
Sergey78
 
Posts: 422
Joined: Wed, 05.09.2012 20:04:40

Postby TS-Labs » Mon, 12.08.2013 15:16:06

Sergey78 wrote:Не будет, проверено на реале. На участке DUP 10000: LD A,I: EDUP прерывание не срабатывает.

Я извиняюсь, но я не понимаю, почему.
Префикс, пришел ИНТ, сбросил IFF, опкод, загрузили во флаг сброшенный IFF. Дальше полетели на ИНТ.
Но при чем здесь Пуноккио?... :dontknow:
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby Sergey78 » Mon, 12.08.2013 15:20:26

TS-Labs wrote:Префикс, пришел ИНТ, сбросил IFF, опкод, загрузили во флаг сброшенный IFF. Дальше полетели на ИНТ.

Это у NMOS так. И в случае прихода прерывания во время исполнения команды в P/V неправильное значение. В CMOS версии это пофиксили, похоже самым простым способом - процессор во время этих команд не реагирует на ИНТ, IFF2 не сбрасывается. В P/V всегда правильное значение.
Sergey78
 
Posts: 422
Joined: Wed, 05.09.2012 20:04:40

Postby TS-Labs » Mon, 12.08.2013 15:31:48

Sergey78 wrote:А как Т80 реагирует на OUT (C),0?

0 выставляет.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby TS-Labs » Mon, 12.08.2013 15:38:12

Sergey78 wrote:процессор во время этих команд не реагирует на ИНТ

А в каком именно месте в этом процессоре тогда распознается ИНТ? По правилам, в конце последнего машцикла опкода. Допустим, они запретили распознавание в конце префикса ED. Тогда, почему еще и не распознается после опкода LD A, I/R? В этот момент ведь ничего процу не угрожает.
Ну и да, я могу понять чтоб ИНТ игнорился на DUP 10000: DEFB #ED: EDUP, но почему на LD A, R?
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby Sergey78 » Mon, 12.08.2013 15:57:02

Это только разработчики процессора знают, почему так сделано. Из-за такого поведения CMOS процессора на KAY-1024 не работает игра Terra Cresta. Там ожидание прерывания сделано так:
Code: Select all
waitvbl: ld a,r
         ret m
         jr waitvbl

На KAY-1024 прерывание в этом месте не срабатывет и игра виснет.
Sergey78
 
Posts: 422
Joined: Wed, 05.09.2012 20:04:40

Postby introspec » Mon, 12.08.2013 16:39:00

Sergey78 wrote:Из-за такого поведения CMOS процессора на KAY-1024 не работает игра Terra Cresta. Там ожидание прерывания сделано так: [...]

Казнить, нельзя помиловать! :)
User avatar
introspec
 
Posts: 579
Joined: Sun, 14.07.2013 15:36:47

Postby g0blinish » Mon, 12.08.2013 16:44:25

кстати, глянул на bmp2scr, есть формат .mlt. оно чем-то поддерживается, нет? гугл не дал ответа.
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby Sergey78 » Mon, 12.08.2013 17:01:28

Для рисования бордюрных картинок есть утилитка BorderCreator в эмуляторе Z80Stealth. http://z80.emu-russia.net/
Правда там есть пара недостатков: код работает только на Пентагоне, используется OUT (C),0
Sergey78
 
Posts: 422
Joined: Wed, 05.09.2012 20:04:40

Postby g0blinish » Mon, 12.08.2013 17:04:56

Sergey78 wrote:Правда там есть пара недостатков: код работает только на Пентагоне, используется OUT (C),0

Пардон, кого это останавливало? :smoke:
[x] No Screenshot
User avatar
g0blinish
Упырь говнофорума
 
Posts: 3641
Joined: Tue, 18.06.2013 10:59:01

Postby noleg » Mon, 12.08.2013 17:53:40

ld bc,#FFFD
XOR A
OUT (C),A
LD B,#BF
OUT (C),0
LD B,#FF
IN A,(C)
[16:36:13] <TSL> 3. плаг под ВЦ будет писать пушкин. я ему звонил, он согласился
User avatar
noleg
 
Posts: 38
Joined: Mon, 12.08.2013 17:51:25

Postby noleg » Mon, 12.08.2013 17:59:17

момент второй. бордер на пенте сдвинут на пиксел относительно экрана. на разных клонах по-разному, на фирме не в курсе как
[16:36:13] <TSL> 3. плаг под ВЦ будет писать пушкин. я ему звонил, он согласился
User avatar
noleg
 
Posts: 38
Joined: Mon, 12.08.2013 17:51:25

Postby introspec » Mon, 12.08.2013 18:20:46

noleg wrote:LD B,#BF
OUT (C),0
LD B,#FF
IN A,(C)

Сижу, ржу :) Класс - реально остроумно. Т.е. на 128к вопрос яйца выеденного не стоит. А на 48к, развивая идею, можно сделать так же с портом EAR (интересно, есть хоть один эмулятор, отрабатывающий EAR корректно)? Ребята, я в восторге. Это будет хак года как минимум :)

Про пиксель знаю, увы, уже напоролся с MGDMA. Ничего с этим не поделаешь.
Спасает то, что ни один эмулятор этот пиксель не воспроизводит, а реалов с каждым годом всё меньше и меньше.
User avatar
introspec
 
Posts: 579
Joined: Sun, 14.07.2013 15:36:47

Postby noleg » Mon, 12.08.2013 18:30:03

EAR это что? как его читать обратно
[16:36:13] <TSL> 3. плаг под ВЦ будет писать пушкин. я ему звонил, он согласился
User avatar
noleg
 
Posts: 38
Joined: Mon, 12.08.2013 17:51:25

Postby introspec » Mon, 12.08.2013 18:49:35

noleg wrote:EAR это что? как его читать обратно

Если писать звук в 254 порт и тут же читать его обратно, бит отвечающий за ввод с магнитофона воспроизведёт то, что мы только что выдали на выход. Точнее, если выдать ноль, а потом единицу, смена бита на входе мгновенная, а если выдать единицу, а потом ноль, то ноль на входе появится с задержкой. Аналоговая цепочка, конденсатор, видимо.
Подробности: http://www.worldofspectrum.org/faq/refe ... erence.htm (на англ.)
На 48к по крайней мере это верно; по 128к нужно будет отдельно перепроверять.
Перепроверил: на 128к это не сработает. Ну и нормально. На 128к твоё решение так и так "чище".
User avatar
introspec
 
Posts: 579
Joined: Sun, 14.07.2013 15:36:47

Postby Black_Cat » Mon, 12.08.2013 21:22:01

introspec wrote:Перепроверил: на 128к это не сработает.

Что за 128 у тя?
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
http://zx.clan.su/forum/
User avatar
Black_Cat
 
Posts: 1110
Joined: Thu, 26.07.2012 23:39:01

Postby Black_Cat » Mon, 12.08.2013 21:25:36

introspec wrote:Если писать звук в 254 порт и тут же читать его обратно

А зачем тут-же? Можно и через 5 минут с таким же успехом.. А вот если запишешь D4=1 #FE, то ничего кроме единицы уже не прочитаешь.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
http://zx.clan.su/forum/
User avatar
Black_Cat
 
Posts: 1110
Joined: Thu, 26.07.2012 23:39:01

Postby introspec » Mon, 12.08.2013 21:42:47

Black_Cat wrote:Что за 128 у тя?

Да, действительно, я немного спешил: "Bit 6 of Port 0xfe of the +2A/+3 does not show the same dependence on what was written to Port 0xfe as it does on the other machines, and always returns 0 if there is no signal." (см. http://www.worldofspectrum.org/faq/refe ... erence.htm ). "Тут же читать" на тот случай, если юзверь слушает воткнутый в спектрум магнитофон. Шансы на успех чуть выше.

Короче, с моей точки зрения, вопрос о том как сделать бордерный просмотрщик без ограничений на цвета решён.
Буду сейчас писать код, а когда всё заработает, сброшу сюда пример.
User avatar
introspec
 
Posts: 579
Joined: Sun, 14.07.2013 15:36:47

Postby Black_Cat » Mon, 12.08.2013 22:19:27

TS-Labs wrote:Предлагаю хранить в формате run-length такого типа: цвет бордера, кол-во пикселей. 1 пиксель = 1 такт 7МГц или 0.5 такта 3.5 - этого достаточно. Цвет бордера с брайтом, ибо тиритищски такую картину можно вывести на АТМ. Чтоб потом 2 раза не вставать.

Возвращаясь к теме топика, предлагаю не заниматься бредоизобретательством, а сделать разрешение для всех без исключения .png картинок 384х304 типо на весь экран, и показывать их все вместе с бордюром. В сжатом виде для большинства картинок (т.е. которые без бордер эффекта) места займёт чуть больше чем просто экран, в несжатом - чуть больше чем 2 экрана.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
http://zx.clan.su/forum/
User avatar
Black_Cat
 
Posts: 1110
Joined: Thu, 26.07.2012 23:39:01

Postby psndcj » Mon, 12.08.2013 22:36:53

а смысл? учитывая что картинок которые бордер даже одноцветный используют на глаз менее 1%
User avatar
psndcj
 
Posts: 81
Joined: Sun, 28.07.2013 22:39:27
LOCATION: оттуда

Postby Black_Cat » Mon, 12.08.2013 22:47:06

psndcj wrote:а смысл? учитывая что картинок которые бордер даже одноцветный используют на глаз менее 1%

Полагаю суть вопроса в том, чтоб на глаз понимать, что картинка с бордерэффектом. Конечно, можно сделать 384х304 исключительно для таких картинок, но тогда одни картинки должны быть больше других, иначе юзер не поймёт в чём прикол, как например было бы на СС, если бы специально не объявляли, что картинка с бордерэффектом, хотя все картинки были одинакового размера. Если разноразмерные картинки устроят мороза - то вопрос исчерпан.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
http://zx.clan.su/forum/
User avatar
Black_Cat
 
Posts: 1110
Joined: Thu, 26.07.2012 23:39:01

Postby TS-Labs » Mon, 12.08.2013 23:46:15

Sergey78 wrote:На KAY-1024 прерывание в этом месте не срабатывет и игра виснет.

Т.е. на пентеве тоже должно.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby Sergey78 » Tue, 13.08.2013 00:06:24

У Кая очень короткий ИНТ - 2 цикла М1.
Sergey78
 
Posts: 422
Joined: Wed, 05.09.2012 20:04:40

Postby TS-Labs » Tue, 13.08.2013 04:35:11

Какие то ужоснахи на ночь %)
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

PreviousNext

Return to Graphics

Who is online

Users browsing this forum: No registered users and 1 guest

x