Доработки схемы Орион 128

Т.е. проверить эту версию можно без проблем осциллографом, а решить 4-мя резюками на с выходов на землю.
У меня была мысля, что 1533ир13 слишком быстрые и защелкивают данные раньше, чем они фиксируются на входах.
 
Дерзайте дерзайте, впрочем как говорится через терни к звездам, получите бесценный опыт...
 
Упрощаем схему мультиплексора адресов ОЗУ. Все 5 1533КП11 (74ALS257) меняем на 3 штуки GAL20V8. Остаются свободными входы и выходы, которые можно пустить на увеличение объема ОЗУ до 2 МБ.
Прошивка GAL:
Код:
Name     GAL_KP11 ;
PartNo   00 ;
Date     19.09.2026 ;
Revision 01 ;
Designer Fizik_S ;
Company  RST-2 ;
Assembly None ;
Location  ;
Device   g20v8a ;

/* *************** INPUT PINS *********************/
PIN  1 = A0; /* */
PIN  2 = A1; /* */
PIN  3 = A2; /* */
PIN  4 = A3; /* */
PIN  5 = A4; /* */
PIN  6 = A5; /* */
PIN  7 = A6; /* */

PIN  8 = B0; /* */
PIN  9 = B1; /* */
PIN 10 = B2; /* */
PIN 11 = B3; /* */
PIN 13 = B4; /* */
PIN 14 = B5; /* */
PIN 23 = B6; /* */

PIN 15 = AB; /* */


/* *************** OUTPUT PINS *********************/
PIN 22 = Y0 ; /* */
PIN 21 = Y1 ; /* */
PIN 20 = Y2 ; /* */
PIN 19 = Y3 ; /* */
PIN 18 = Y4 ; /* */
PIN 17 = Y5 ; /* */
PIN 16 = Y6 ; /* */

/*                    */
Y0  =  A0  & !AB # B0 & AB;
Y1  =  A1  & !AB # B1 & AB;
Y2  =  A2  & !AB # B2 & AB;
Y3  =  A3  & !AB # B3 & AB;
Y4  =  A4  & !AB # B4 & AB;
Y5  =  A5  & !AB # B5 & AB;
Y6  =  A6  & !AB # B6 & AB;

ORION_GAL4.PNG
 

Вложения

Засинхроненный, регистровый пиксель стабилен и по уровню и по времени.
Комбинаторный - нет.
 
Последний раз редактировалось:
Следующая доработка: убираем мультиплексоры U56, U57 в формирователе сигналов RGBI и ставим вместо них одну GAL20V8
А двухцветный режим в двух палитрах и четырёхцветный режим в двух палитрах там тоже реализованы?
 
Последний раз редактировалось:
Спасибо за разъяснение. Синхрон добавлю.
Палитры остались. Если не ошибаюсь они выбираются перемычками на оригинальной схеме. В ГАЛ-ку я впихнул полный функционал выходных мультиплексоров. Пожалуй, добавлю еще отключаемую инверсию выходных сигналов.
 
Покажи исходник для галки, пожалуйста.
 
Пардон... Почему-то не выложил в соответствующем посте.
Прошивка GHAL для замены мультиплексоров в формирователе RGBI:

Код:
Name       GAL_KP2_Video ;
PartNo     00 ;
Date       18.09.2026 ;
Revision   01 ;
Designer   Engineer ;
Company    RST-2 ;
Assembly   None ;
Location   ;
Device     g20v8a ;

/* *************** INPUT PINS *********************/
PIN  1 = N102; /* */
PIN  2 = N103; /* */
PIN  3 = N104; /* */
PIN  4 = N105; /* */
PIN  5 = N106; /* */
PIN  6 = N107; /* */
PIN  7 = N108; /* */
PIN  8 = N109; /* */
PIN  9 = N84; /* */
PIN 10 = A1; /* N101 */
PIN 11 = B1; /* N124 */
PIN 13 = N110; /* */
PIN 14 = SW1; /* */
PIN 23 = SW2; /* */

/* *************** OUTPUT PINS *********************/
PIN 22 = B; /* */
PIN 21 = G; /* */
PIN 20 = R; /* */
PIN 19 = I; /* */



IN0 =!N110  & !B1 & !A1;
IN1 =!N110 & !B1 &  A1;
IN2 =!N110 &  B1 & !A1;
IN3 =!N110 &  B1 &  A1;

/* BLUE OUT */
B = N106 & IN0 # N102 & IN1 # N84 & IN2 # N109 & IN3;

/* GREEN OUT */
G = N107 & IN0 # N103 & IN1 # N84 & IN2 # !N109 & IN3;

/* RED OUT */
R =  N108 & IN0 # N104 & IN1 # N109 & IN2 # N84 & IN3;

/* I OUT */
I = N109 & IN0 # N105 & IN1 # SW1 & IN2 # SW2 & IN3;
 
Очень красивые и лаконичные формулы!
Минус один корпус и минус один вЕнтиль ТЛ2.
Ещё бы засинхронить RGBI.
 
Можно ещё вместо гашения по N110 сделать цвет бордюра перемычками (пины 15-18 как раз свободны). Но не всякому монитору/телевизору это понравится.
 
Очень красивые и лаконичные формулы!
Минус один корпус и минус один вЕнтиль ТЛ2.
Ещё бы засинхронить RGBI.
Я по образованию математик, поэтому принципы такие:
- формула должна быть понятной
- если есть возможность, сложную формулу нужно разбить на несколько простых частей.

Вариант с синхронизацией RGBI уже готов и работает. Хочу впереть в эту ГАЛ-ку еще инверсию сигнала, но она пока "сопротивляется". Пытаюсь вспомнить для каких целей нужно инвертировать видеосигналы RGBI.
В GAL22V10 инверсия сигналов влезет, но не хочется ее ставить.
 
Можно ещё вместо гашения по N110 сделать цвет бордюра перемычками (пины 15-18 как раз свободны). Но не всякому монитору/телевизору это понравится.
Не будем превращать Орион в Спектрум! Мне бордюр вообще не нравится. Тем более его нужно поддержать программно, а с этим здесь туговато будет.
 
Тем более его нужно поддержать программно, а с этим здесь туговато будет.
Я же указал ПЕРЕМЫЧКАМИ. Этими же перемычками можно выставить нулевой/чёрный цвет, получается всё то же гашение.
Я просто внёс предложение...
 
Последний раз редактировалось:
Я по образованию математик, поэтому принципы такие:
- формула должна быть понятной
- если есть возможность, сложную формулу нужно разбить на несколько простых частей.
Твои исходники - наглядные ДНФ, которые являются структурой галок.
 
Палитры остались. Если не ошибаюсь они выбираются перемычками на оригинальной схеме.
Палитры выбираются сигналом N84. А перемычки у мультика задают яркость в двухцветном и четырёхцветном режимах.
 
Для старых ламповых телевизоров даже и запариваться нет смысла.
Во вложении измененная схема с синхронизацией сигналов RGBI пиксельклоком.

Исходник для ГАЛочки.
Код:
Name       GAL_KP2_Video ;
PartNo     00 ;
Date       18.09.2026 ;
Revision   01 ;
Designer   Engineer ;
Company    RST-2 ;
Assembly   None ;
Location   ;
Device     g20v8a ;

/* *************** INPUT PINS *********************/
PIN  1 = CLK;
PIN  2 = N102; /* */
PIN  3 = N103; /* */
PIN  4 = N104; /* */
PIN  5 = N105; /* */
PIN  6 = N106; /* */
PIN  7 = N107; /* */
PIN  8 = N108; /* */
PIN  9 = N109; /* */

PIN 10 = A1; /* N101 */
PIN 11 = B1; /* N124 */

PIN 14 = SW1; /* */
PIN 23 = SW2; /* */

PIN 16 = N84; /* */
PIN 15 = N110; /* */



/* *************** OUTPUT PINS *********************/
PIN 22 = B; /* */
PIN 21 = G; /* */
PIN 20 = R; /* */
PIN 19 = I; /* */



IN0 =!N110  & !B1 & !A1;
IN1 =!N110 & !B1 &  A1;
IN2 =!N110 &  B1 & !A1;
IN3 =!N110 &  B1 &  A1;

/* BLUE OUT */
B.D = N106 & IN0 # N102 & IN1 # N84 & IN2 # N109 & IN3; 

/* GREEN OUT */
G.D = N107 & IN0 # N103 & IN1 # N84 & IN2 # !N109 & IN3;
 
/* RED OUT */
R.D = N108 & IN0 # N104 & IN1 # N109 & IN2 # N84 & IN3;

/* I OUT */
I.D = N109 & IN0 # N105 & IN1 # SW1 & IN2 # SW2 & IN3 ;

Orion_GAL_41S.PNG
 

Вложения

Подкину еще пару ГАЛ-ок в схему. В них впихнул кадровую развертку и сдвигатель растра от 0 до 32 строк с шагом 4 строки.
Величина сдвига растра выбирается DIP переключателем DSW3 на 3 ключа в двоичном коде:

SW2 SW1 SW0 Сдвиг
On__On___On___32
On__On___Off___28
On__Off___On___24
- - - -
Off__Off__Off____0

Прошивка GAL7 (Счетчик строк):
Код:
Name     GAL7 ;
PartNo   00 ;
Date     24.09.2026 ;
Revision 01 ;
Designer Fizik_S ;
Company  RST-2 ;
Assembly None ;
Location  ;
Device   G22V10 ;


/* *************** INPUT PINS *********************/
PIN  1  =  CLK ; /*                              */
PIN  2  =  VGA;  /* =0 - TV mode, =1 - VGA mode */
PIN  3  =  RES; /* RESET COUNTER */

/* *************** OUTPUT PINS *********************/
PIN 14 = Q0;
PIN 15 = Q1;
PIN 16 = Q2;
PIN 17 = Q3;
PIN 18 = Q9;
PIN 19 = Q8;
PIN 20 = Q7;
PIN 21 = Q6;
PIN 22 = Q5;
PIN 23 = Q4;

/*------------*/
FIELD Q = [Q0..Q9];

Q0.D = !VGA # !Q0;
Q1.D = Q1&!Q0 # Q0&!Q1;
Q2.D = Q2&(!Q0 # !Q1) # !Q2&Q1&Q0;
Q3.D = Q3&(!Q2 # !Q1 # !Q0) # !Q3&Q2&Q1&Q0;
Q4.D = Q4&(!Q3 # !Q2 # !Q1 # !Q0) # !Q4&Q3&Q2&Q1&Q0;
Q5.D = Q5&(!Q4 # !Q3 # !Q2 # !Q1 # !Q0) # !Q5&Q4&Q3&Q2&Q1&Q0;
Q6.D = Q6&(!Q5 # !Q4 # !Q3 # !Q2 # !Q1 # !Q0) # !Q6&Q5&Q4&Q3&Q2&Q1&Q0;
Q7.D = Q7&(!Q6 # !Q5 # !Q4 # !Q3 # !Q2 # !Q1 # !Q0) # !Q7&Q6&Q5&Q4&Q3&Q2&Q1&Q0;
Q8.D = Q8&(!Q7 # !Q6 # !Q5 # !Q4 # !Q3 # !Q2 # !Q1 #  !Q0) # !Q8&Q7&Q6&Q5&Q4&Q3&Q2&Q1&Q0;
Q9.D = Q9&(!Q8 # !Q7 # !Q6 # !Q5 # !Q4 # !Q3 # !Q2 # !Q1 # !Q0) # !Q9&Q8&Q7&Q6&Q5&Q4&Q3&Q2&Q1&Q0;

/* -----reset  ---- */

Q.AR  = RES;


/* PRESET NOT USED*/

Q.SP = 'B'0;

Прошивка GAL8 (Формирователь синхроимпульсов и сдвигатель растра):
Код:
Name     GAL8 ;
PartNo   00 ;
Date     25.09.2026 ;
Revision 01 ;
Designer Fizik_S ;
Company  RST-2 ;
Assembly None ;
Location  ;
Device     G22V10;



/* *************** INPUT PINS *********************/
PIN   2 = V3;
PIN   3 = V4;
PIN   4 = V5;
PIN   5 = V6;
PIN   6 = V7;
PIN   7 = V8;
PIN   8 = V2;
PIN   9 = V1;
PIN  10 = V0;

PIN  11 = HSYNC;
PIN  13 = VGA;

PIN  16 = SW0;
PIN  15 = SW1;
PIN  14 = SW2;


/* *************** OUTPUT PINS *********************/
PIN  23  = !VSYNC;
PIN  22  = VRES;
PIN  21  = N115;

/* Vertical sycnhro pulse TV Mode */
TV=!VGA;
SEL0 =  !SW2 & !SW1 & !SW0;
SEL1 =  !SW2 & !SW1 &  SW0;
SEL2 =  !SW2 &  SW1 & !SW0;
SEL3 =  !SW2 &  SW1 &  SW0;
SEL4 =   SW2 & !SW1 & !SW0;
SEL5 =   SW2 & !SW1 &  SW0;
SEL6 =   SW2 &  SW1 & !SW0;
SEL7 =   SW2 &  SW1 &  SW0;

TVS_ALL= TV & V8 & !V7 & !V6 & !V5;

KSI0 = SEL0 & TVS_ALL & ( !V4 & !V3 & !V2 );
KSI1 = SEL1 & TVS_ALL & ( !V4 & !V3 &  V2 );
KSI2 = SEL2 & TVS_ALL & ( !V4 &  V3 & !V2 );
KSI3 = SEL3 & TVS_ALL & ( !V4 &  V3 &  V2 );
KSI4 = SEL4 & TVS_ALL & (  V4 & !V3 & !V2 );
KSI5 = SEL5 & TVS_ALL & (  V4 & !V3 &  V2 );
KSI6 = SEL6 & TVS_ALL & (  V4 &  V3 & !V2 );
KSI7 = SEL7 & TVS_ALL & (  V4 &  V3 &  V2 );

KSI_TV = KSI0 # KSI1 # KSI2 # KSI3 # KSI4 # KSI5 # KSI6 # KSI7;

/* Vertical sycnhro pulse VGA Mode */


/* --------- */

VSYNC = KSI_TV;

/* Reset vertical count */
/* TV mode */
VRESTV = TV & V8 & !V7 & !V6 & V5 & V4 & V3 & !V2 & !V1 & !V0;

/* VGA mode */



/* --------- */

VRES = VRESTV;

/* Synchro pulse for TV_out */
N115 = TV & !VSYNC & HSYNC;


Пока реализована кадровая развертка только для TV режима.

В схеме присутствуют GAL5, GAL6 - они еще без прошивки.

ORION_GAL50.PNG
 

Вложения

Назад
Вверх