ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 24 окт 2018, 05:48

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Палитра ПК-01 "Львов"
СообщениеДобавлено: 05 июн 2012, 15:42 
Не в сети

Зарегистрирован: 04 сен 2008, 19:39
Сообщений: 131
Откуда: Владимир
Вынесено из темы "[url=http://lvovpc.ho.ua/forum/viewtopic.php?p=1708#p1708]Запуск эмулятора ПК-01 "Львов" на Dingoo A320[/url]".

[quote="Tim0xA"]Существует ли подробное описание принципа работы узла выбора палитры?

Посмотрите код эмуляции видеоподсистемы [url=https://code.google.com/p/qlv/source/browse/trunk/lviv/lvscreen.cpp]здесь[/url] или в драйвере "lviv" MESS. Код нередко понятнее описаний :)

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 июн 2012, 22:12 
Не в сети

Зарегистрирован: 07 дек 2010, 16:54
Сообщений: 202
[quote="Tim0xA"]1) Существует ли подробное описание принципа работы узла выбора палитры?

на этом сайте есть принципиальные схемы. в двух словах - там на логике собран генератор (на линии задержки), биты с порта и видеопамяти сигнал "делят", потом конденсатор, "выпрямитель" и дальше на линию цвета в телевизоре.
[code]private final static byte BLACK = 0;
private final static byte BLUE = 1;
private final static byte GREEN = 2;
private final static byte RED = 4;

// Calculates color value from palette port
static byte compute_color_index(int port, int color)
{
byte Result=BLACK; if ((port & 0x40) != 0) Result^=BLUE;
if ((port & 0x20) != 0) Result^=GREEN;
if ((port & 0x10) != 0) Result^=RED;
switch (color) {default: break;
case 0: if ((port & 0x08) == 0) Result^=RED;
if ((port & 0x04) == 0) Result^=BLUE; break;
case 2: Result^=GREEN; break;
case 3: Result^=RED; if ((port & 0x02) == 0) Result^=GREEN; break;
case 1: Result^=BLUE; if ((port & 0x01) == 0) Result^=RED; break;
}
return Result;
}[/code]

P.S. sheet1.jpg
http://content.wuala.com/contents/lvov_ ... t.rar?dl=1
корпуса D59 D60 D61 D62 (и дополнительно D29)
на схеме - справа сверху

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 июн 2012, 02:22 
Не в сети

Зарегистрирован: 04 июн 2012, 22:08
Сообщений: 44
Откуда: Украина
Вообщем-то я этот код и использовал. У меня он выглядит так - был притянут за уши к принципу формирования цвета Вектора и 16 разрядам цвета Динги. Цветам других эмуляторов соответствует, все вроде работает. Можно оптимизировать, но это сейчас неважно.

[code]
// Calculates color value from palette port
word COL(byte color)
{
byte BLACK = 0;
byte RED = 0x07;
byte GREEN = 0x38;
byte BLUE = 0xC0;

byte Result = BLACK;

byte port = PPI[0].Rout[1];
if ((port & 0x40) != 0) Result ^= BLUE;
if ((port & 0x20) != 0) Result ^= GREEN;
if ((port & 0x10) != 0) Result ^= RED;
switch (color)
{
case 0:
if ((port & 0x08) == 0) Result ^= RED;
if ((port & 0x04) == 0) Result ^= BLUE;
break;
case 1:
Result ^= BLUE;
if ((port & 0x01) == 0) Result ^= RED;
break;
case 2:
Result ^= GREEN;
break;
case 3:
Result ^= RED;
if ((port & 0x02) == 0) Result ^= GREEN;
break;
}
return ((Result & 0x07) << 13) | ((Result & 0x38) << 5) | ((Result & 0xC0) >> 3);
}
[/code]

Вопрос в другом... Вообщем-то реализация понятна. Но меня больше интересовал несколько другой аспект. Ну вот дают программисту "Львов ПК-01", ставят задачу написать софт. И сообщают, дескать, есть некий порт, куда записываешь некий байт и получаешь некую палитру. Но какой байт писать? Что его биты означают? Как палитра формируется? Какие цвета ты получишь? Ответов нет. Разработчики компьютера о чем-то же думали, когда это реализовывали, значит должен быть какой-то замысел.
Обычно программисту не предлагается заглядывать в схему и в исходники эмуляторов, а имеется какое-то внятное описание. А здесь его не дают. В описании бейсика есть команда COLOR и таблица, где можно выбрать 7 палитр, но ведь некоторые же в кодах пишут - им как быть? Вот как получена симпатичная палитра в игре Арктика [url]http://lvovpc.ho.ua/games/page.php?name=arctic[/url] ? Неужели тупым перебором? В бейсике это палитра №5, но что записать в порт, чтобы ее получить, когда ты программируешь в кодах? Выходит каждый программист решал эту задачу сам для себя. Кто-то решал, а кто-то нет. И возможно поэтому львиная доля игр, что я видел, так и остались в этих жутких кислотных RGB-шных тонах, потому что на палитры просто "забивали" и оставляли все "по-умолчанию".

Ну це таке... Эмулятор и так работает. Но просто интересно...

P.S. Вот у Вектора все было четко - есть палитра, есть соответствие физических и математических цветов, вес каждого цвета в байте и все понятно со слов.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 июн 2012, 09:31 
Не в сети

Зарегистрирован: 29 мар 2012, 21:35
Сообщений: 115
[quote="Tim0xA"]В бейсике это палитра №5, но что записать в порт, чтобы ее получить, когда ты программируешь в кодах?

Я посмотрел в отладчике, что выводится в порт 0С1h (поставил бряк на этот порт). Обработка оператора COLOR находится по адресу 0DE06h, там считываются три числа, потом получают индекс = второе*8+третье, а потом тупо по таблице берётся число и выводится в порт. Таблица по адресу 0DE54h такая:
[code]0000: 8F 8E 8D 8C CA C8 D3 8F
0008: 85 84 9F 9E C3 C1 DA 85
0010: 8A 88 93 CF CE CD CC 8A
0018: 83 81 9A C5 C4 DF DE 83
0020: FF FE E5 E4 BA B8 A3 FF
0028: F5 F4 EF EE B3 B1 AA F5
0030: F3 F1 EA AF AE B5 B4 F3
0038: FA F8 E3 BD BC BF BE FA[/code]

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Палитра ПК-01 "Львов"
СообщениеДобавлено: 06 июн 2012, 10:59 
Не в сети
Site Admin
Аватар пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщений: 994
Если посмотреть на рисунок, палитры не такие уж хаотические:

[img]http://i.piccy.info/i7/40e864322855aebaef99dbdb6319766a/1-5-8689/7954839/palette.png[/img]


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 июн 2012, 12:40 
Не в сети
Аватар пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщений: 1403
Откуда: Украина
[quote="Tim0xA"]И возможно поэтому львиная доля игр, что я видел, так и остались в этих жутких кислотных RGB-шных тонах, потому что на палитры просто "забивали" и оставляли все "по-умолчанию".

Нет, не все так просто! Я, к примеру, толком увидел "Львов" в цветах только в эмуляторе. А в годы былые он был у меня подключен к ч/б телевизору, поэтому о проблеме с палитрами я даже не задумывался. Думаю, не я один пользовался ПК-01 в таких условиях, и отсюда могут произрастать корни проблемы "все по-умолчанию".

upd. Именно эта тема дала нам [url=http://lvovpc.ho.ua/forum/viewtopic.php?f=1&t=85]101 твит[/url]! :D

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 июн 2012, 15:13 
Не в сети

Зарегистрирован: 04 июн 2012, 22:08
Сообщений: 44
Откуда: Украина
[quote="liberation"]в годы былые он был у меня подключен к ч/б телевизору, поэтому о проблеме с палитрами я даже не задумывался. Думаю, не я один пользовался ПК-01 в таких условиях, и отсюда могут произрастать корни проблемы "все по-умолчанию".

Логично. Кстати, я тоже писал свои первые бейсиковские игры для Вектора на ч/б телевизоре. Забавно было потом посмотреть, что получилось. Но у меня не было неожиданностей, т.к. я точно знал, какой цвет получу, какую бы я не запрограммировал палитру. Все было ясно из документации.

Сегодня нам хорошо - мы как чародеи извлекаем скриншоты палитр, дампы из отладчиков и куски кода из эмуляторов. Палитра? Да вот же она, все просто! А "древние люди", писавшие для Львова (на Львове же!) пусть даже имеющие цветной телевизор, скорее всего подбирали подходящую палитру опытным путем. Ну например в бейсике, при помощи программы, которая записывает байты в порт 193, и тут же получали результат для разноцветных квадратов. Ибо словами принцип работы этого порта просто не описуем.

[quote="Zelya"]Если посмотреть на рисунок, палитры не такие уж хаотические:
Картинка очень наглядна. Странно, что нет комбинации - все черные. Выходит нельзя было погасить весь экран, если используется более двух цветов. Зато можно выключать один или два цвета для некоторых пар палитр. Можно менять цвета местами, например палитры 8 и 24. Т.е. некоторые интересные эффекты можно было реализовать. Интересно, есть ли примеры софта, который динамически использует палитру? Демки какие-нибудь?

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 июн 2012, 15:58 
Не в сети
Аватар пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщений: 1403
Откуда: Украина
[quote="Tim0xA"]А "древние люди", писавшие для Львова (на Львове же!) пусть даже имеющие цветной телевизор, скорее всего подбирали подходящую палитру опытным путем. Ну например в бейсике, при помощи программы, которая записывает байты в порт 193, и тут же получали результат для разноцветных квадратов. Ибо словами принцип работы этого порта просто не описуем.

Эх, все идет к тому, чтобы писать очередное письмо [[url=http://lvovpc.ho.ua/forum/viewtopic.php?f=9&t=46]1[/url], [url=http://lvovpc.ho.ua/forum/viewtopic.php?f=4&t=63]2[/url]] разработчику этой чудо-ЭВМ! Еще какие-нибудь вопросы к творцу можете подкинуть? :D

[quote="Tim0xA"]Интересно, есть ли примеры софта, который динамически использует палитру? Демки какие-нибудь?
У нас есть тема "[url=http://lvovpc.ho.ua/forum/viewtopic.php?f=3&t=57]Multicolor для ПК-01 "Львов"[/url], но фактической информации о подобном явлении у нас пока нет. Жанр демок для "Львова" [url=http://lvovpc.ho.ua/forum/viewtopic.php?f=3&t=93]не чужд[/url], но из-за общей безалаберности мы ничего еще не выложили. Да и отсутствие полноценного эмулятора ПК-02 дает о себе знать. Однако недавно я находил маленькую демку, где что-то такое-этакое с цветами делается, надо будет ее обязательно выложить.

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 июн 2012, 16:30 
Не в сети

Зарегистрирован: 04 июн 2012, 22:08
Сообщений: 44
Откуда: Украина
[quote="liberation"]Эх, все идет к тому, чтобы писать очередное письмо [[url=http://lvovpc.ho.ua/forum/viewtopic.php?f=9&t=46]1[/url], [url=http://lvovpc.ho.ua/forum/viewtopic.php?f=4&t=63]2[/url]] разработчику этой чудо-ЭВМ! Еще какие-нибудь вопросы к творцу можете подкинуть? :D

Если будут - обязательно озвучу :) Я пока еще мало с ним знаком. И так случайно "зацепился" :) Вообще вот как-раз такими фичами, особенностями, и интересна каждая ПЭВМ по-своему, что отличает их от себе подобных. Львов - отсутствием бордюра, прерываний, оригинальной палитрой. Вектор - аскетичным загрузчиком, скроллом, оригинальным форматом записи, глюками при программировании ОЗУ цвета (и тут палитра отличилась, будь она неладна! :lol: ).

[quote="liberation"]Однако недавно я находил маленькую демку, где что-то такое-этакое с цветами делается, надо будет ее обязательно выложить.
Демки выжимают максимум из железа. Любопытно было бы глянуть.

[quote="b2m"]Я посмотрел в отладчике, что выводится в порт 0С1h (поставил бряк на этот порт)
Я не нашел упоминания об этом в документации, но судя по схеме нулевое значение бита 7 этого порта должно выключать звук встроенного динамика. Однако у тебя в эмуляторе звук не выключается.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 июн 2012, 16:34 
Не в сети
Аватар пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщений: 1403
Откуда: Украина
[quote="Tim0xA"][quote="b2m"]Я посмотрел в отладчике, что выводится в порт 0С1h (поставил бряк на этот порт)

Я не нашел упоминания об этом в документации, но судя по схеме нулевое значение бита 7 этого порта должно выключать звук встроенного динамика. Однако у тебя в эмуляторе звук не выключается.
Кстати, было такое дело! Хотя подробностей уже не помню.

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Палитра ПК-01 "Львов"
СообщениеДобавлено: 06 июн 2012, 17:41 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
А можно ли уведеть процедуры по переводу байта-цветности в пикселы (и наоборот)написанные на Паскале (дельфи)? Чтобы самому вело не изобретать?...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Палитра ПК-01 "Львов"
СообщениеДобавлено: 06 июн 2012, 18:27 
Не в сети
Аватар пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщений: 1403
Откуда: Украина
[quote="sas9568635"]А можно ли уведеть процедуры по переводу байта-цветности в пикселы (и наоборот)

Наш НИИ сломал себе мозг в попытках понять, что это значит. Зачем эта процедура нужна?

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Палитра ПК-01 "Львов"
СообщениеДобавлено: 06 июн 2012, 19:19 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
[quote="liberation"][quote="sas9568635"]А можно ли уведеть процедуры по переводу байта-цветности в пикселы (и наоборот)

Наш НИИ сломал себе мозг в попытках понять, что это значит. Зачем эта процедура нужна?
Объясняю. :-) Пишу , точнее собираюсь писать PasToLV, где будет вывод эмулятор-форму-экранЛьвов, которая (PaintBox: TPaintBox)...
Надо эмулировать функцию OUT ($C2) (так вроде на экран выводитсяво львове) преобразовывать цвет-байт-Львова в 4-пиксела-(PaintBox: TPaintBox)...
Думал может существует быстрый и эфективный перевод из одного в другое...
Иль как это делалаеться в эмуляторах?...
[code]
----T---T---T---T---T---T---T---¬
¦ 7 ¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦ 0 ¦ Байт экранного ОЗУ
L-T-+-T-+-T-+-T-+-T-+-T-+-T-+-T--
¦ ¦ ¦ L---+---+---+---*
¦ ¦ L-------+---+---* ¦
¦ L-----------+---* ¦ ¦
L---------------* ¦ ¦ ¦
¦ ¦ ¦ ¦
--+-T-+-T-+-T-+-¬
¦ 1 ¦ 2 ¦ 3 ¦ 4 ¦ Пикселы на экране
L---+---+---+----

[/code]
Также итересует какая-то таблица цетов что-ль... при каких ФОНОВЫХ цветах, какие возможны цвета пикселей...
Хух.. ели выразился чего я хотел... :-) надеюсь меня поняли.:-)

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Палитра ПК-01 "Львов"
СообщениеДобавлено: 06 июн 2012, 19:37 
Не в сети

Зарегистрирован: 20 апр 2012, 16:00
Сообщений: 372
Откуда: Конотоп
[quote="a99"] Посмотрите код эмуляции видеоподсистемы url=https://code.google.com/p/qlv/source/browse/trunk/lviv/lvscreen.cpp или в драйвере "lviv" MESS. Код нередко понятнее описаний :)

Видимо вот это оно и есть но я в СИ не бум-бум на ПАСе есть такое?

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Палитра ПК-01 "Львов"
СообщениеДобавлено: 09 июн 2012, 12:01 
Не в сети

Зарегистрирован: 04 июн 2012, 22:08
Сообщений: 44
Откуда: Украина
При грамотном подходе даже при помощи 4 цветов можно творить чудеса. Впечатляет!

[img]http://i.piccy.info/i7/2282f0a73f4e35990a1efc433bbdc109/1-5-8810/5103200/hb.png[/img]


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2, 3  След.

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Free counters!
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB