Развиваем Балтик

Старый спектрумистский форум

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24501
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

hobgoblin wrote: 08 Nov 2025 10:43 такто настоящий балтик se на еще 37 лет - модификация максимум плюс пять корпусов в dip
при максимальной похожести топологии
Я постараюсь Baltic SE 64KB таким сделать - все старые микросхемы на старых местах с той же нумерацией и несколько новых корпусов где-то сбоку (и инструкция будет как эти расширения припаять к любому классическому Балтику, включая режим 4 цвета на точку), а вот в Baltic SE 96KB уже будет всё переставлено под mATX и раздуто по максимуму (но нумерацию старых микросхем постараюсь сохранить, для единообразия)...
backa
Novelist
Posts: 37
Joined: 21 Mar 2017 16:39

Re: Развиваем Балтик

Post by backa »

hobgoblin wrote: 08 Nov 2025 10:43 думаю все закончится плюс пара CPLD, но это не балтик же будет
вот и я подумал так когда смотрел на свой свежесобранный БАЛТИК на оригинальной плате из 90-х - доработки займут по площади такую-же плату вторым этажом - А ЗАЧЕМ??
Напоиграться я уже собрал на макетках на Xilinx 2х CPLD(древних на 5В в связке с реальным Z80), на ALTERA Cyclone 10LP FPGA, и вот никак не запущу "чертов контроллер памяти" на Lattice XP FPGA)))
User avatar
Shaos
Admin
Posts: 24501
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

Shaos wrote: 08 Nov 2025 01:08 P.S. Вот думаю, а не сделать ли ещё один экспериментальный режим, когда мы меняем смысл бита мерцания FL?
Что если вместо мерцания он будет включать в соответствующем знакоместе БОРДЮР? :o
Тогда можно будет рисовать программные бордер-эффекты прямо везде :lol:
Вот видимо поэтому на классике (и на Скорпионе?) INT стоит непосредственно перед началом бордюра - чтобы можно было сразу после прерывания начать рисовать на бордюре. Пентагоновский вариант, когда оно стоит сразу после бордюра (в начале кадровой синхры), хорошо если нам надо знать момент, когда можно сразу начать рисовать пикселы где угодно без опасения что процесс рисования будет виден, однако почему бы тогда не поставить прерывание сразу в конце графической области? А сушесивующий варианет с прерыванием в начале графической области имеет смысл только если мы хотим рисовать софтверный мультиколор, который в Балтике ненужен т.к. там есть хардверный. Вобщем получается в зависимости от того хотим ли мы рисовать на бордюре или только в графике нам надо иметь прерывание или перед началом бордюра или сразу после графики (пентагоновский вариант наверное ненужен т.к. пентагоновские демки всё равно тут не пойдут из-за другой частоты и вейтовости - или нужен?)...
User avatar
Shaos
Admin
Posts: 24501
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

backa wrote: 08 Nov 2025 13:19
hobgoblin wrote: 08 Nov 2025 10:43 думаю все закончится плюс пара CPLD, но это не балтик же будет
вот и я подумал так когда смотрел на свой свежесобранный БАЛТИК на оригинальной плате из 90-х - доработки займут по площади такую-же плату вторым этажом - А ЗАЧЕМ??
Напоиграться я уже собрал на макетках на Xilinx 2х CPLD(древних на 5В в связке с реальным Z80), на ALTERA Cyclone 10LP FPGA, и вот никак не запущу "чертов контроллер памяти" на Lattice XP FPGA)))
А поделиться нработками с общественностью? Сырцы там, фоточки хотя бы ;)

P.S. Про эксперименты от backa отделил в другой топик: viewtopic.php?t=23737
User avatar
Shaos
Admin
Posts: 24501
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

Shaos wrote: 08 Nov 2025 10:09 Image

P.S. Кстати спринтеровский тхундер в безумной палитре CGA Palette 0 ничо так вышел :roll:
Ну раз уж чёрно-зелёно-красно-жёлтая поллитра норм считать палитрой по умолчанию, то тогда всё сильно упрощается - в общем как я и писал ранее палитра задаётся битами D5-D4-D3 порта #FF если выбран режим 3 (несуществующий на таймексе):

Code: Select all

        1 value        0 value
   (0)  Black   [000]  Black  [000]
D3 (1)  Cyan    [101]  Green  [100]
D4 (2)  Magenta [011]  Red    [010]
D5 (3)  White   [111]  Yellow [110]
Что даёт следующий набор 4-цветных палитр:

Code: Select all

Pal | px=00   | px=01   | px=10   | px=11  | Comment
----------------------------------------------------------
000 | Black   | Green   | Red     | Yellow | CGA Palette 0
001 | Black   | Cyan    | Red     | Yellow |
010 | Black   | Green   | Magenta | Yellow |
011 | Black   | Cyan    | Magenta | Yellow |
100 | Black   | Green   | Red     | White  |
101 | Black   | Cyan    | Red     | White  | CGA Palette 2
110 | Black   | Green   | Magenta | White  |
111 | Black   | Cyan    | Magenta | White  | CGA Palette 1
В этом случае 2 бита задающие цвет соответствующей точки переставляются местами и идут на цвета G (младший бит) и R (старший бит) соответственно, а цвет B получается путём взятия соответствующего бита из номера палитры, либо нуля (через один мультиплексор 4:1):

Code: Select all

00 -> R=0 G=0 B=0
01 -> R=0 G=1 B=D3
10 -> R=1 G=0 B=D4
11 -> R=1 G=1 B=D5
Как видим всё получается ОЧЕНЬ просто - даже удивительно :o

Интенсивность при этом должна быть везде 1, а мерцание надо бы аппаратно пригасить, чтобы не мерцало где ненадо...

P.S. Наверное можно упросить описание сказав, что это не номер палитры, а просто тупо "2 бита пиксела непосредственно описывают цвета R и G" :mrgreen:
А типа цвет B устанавливается в 0,D3,D4 или D5 в зависимости от значений тех 2 битов - или это наоборот ещё сильней всех запутает?
На самом деле я ведь точно так и описывал позавчера как в железе это сделать, хоть там ещё инверсия подразумевалась: viewtopic.php?p=181013#p181013
Хотя дополнительные мультиплексоры всё-таки понадобятся - должно же что-то подавать разные пары битов на входы RN и GN...

P.P.S. Я сначала хотел старшие биты номера цвета держать в поле пикселов, а младшие - в поле атрибутов, но тогда для записи одного произвольного 4-цветного пиксела придётся делать 2 чтения из памяти 2 записи в память т.к. 2 бита будут сидеть в разных байтах, но если сделать так, что биты описывающие пиксел сидят рядом - например байт из поля пикселов будет отвечать за чётные пикселы, а байт из поля атрибутов за нечётне, то всё становится несколько веселее - для записи одного пиксела теперь понадобится только одно чтение и одна запись, правда при загрузке с магнитофона у картинки сначала проявятся полоски чётных пикселов, и только во второй заход будет прорисована вся картинка...
backa
Novelist
Posts: 37
Joined: 21 Mar 2017 16:39

Re: Развиваем Балтик

Post by backa »

мой Балтик
You do not have the required permissions to view the files attached to this post.
backa
Novelist
Posts: 37
Joined: 21 Mar 2017 16:39

Re: Развиваем Балтик

Post by backa »

part2
You do not have the required permissions to view the files attached to this post.
backa
Novelist
Posts: 37
Joined: 21 Mar 2017 16:39

Re: Развиваем Балтик

Post by backa »

part3
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 24501
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

Ага - вижу SIMM :D

P.S. А вот это что такое на макетке собрано?