Важная информация

User Tag List

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 21 по 30 из 59

Тема: Вопрос по ПЛМке ATM-Turbo 2

  1. #21
    Veteran Аватар для KALDYH
    Регистрация
    04.02.2008
    Адрес
    Кемерово
    Сообщений
    1,591
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так, докладываю, схему срисовал, вчистовую перерисовал чтобы легко читалась, осталось ее еще раз проверить, сверить с моими черновыми записями (без окончательной схемы я бы в них не разобрался) и можно выкладывать. На сегодня пока всё.

    - - - Добавлено - - -

    Нашел в заброшенной папке турбо-паскаля программу. Если мне не изменяет память, она по заданным (править прямо в коде) функциям ПЛМ-ки рисует на экране визуальное отображение бордюра и синхросигналов.
    Код:
    program plm;
    uses graph,crt;
    var x,y,gd,gm,th,tv:integer;
    rg0,vv,b2,h6,h5,h4,b3,v4,v3,v2,v5,v8,vs,bl,hs,he,z1,z2,bufh,bufv:boolean;
    
    procedure counter;
    begin
    if (h4 and h5 and h6)=true then th:=0 else inc(th);
    b2:=(th and 2)=2;
    b3:=(th and 4)=4;
    h4:=(th and 8)=8;
    h5:=(th and 16)=16;
    h6:=(th and 32)=32;
    if (not bufh and hs)=true then inc(tv);
    bufh:=hs;
    v2:=(tv and 4)=4;
    v3:=(tv and 8)=8;
    v4:=(tv and 16)=16;
    v5:=(tv and 32)=32;
    vv:=((tv and 64=64) or (tv and 128=128));
    v8:=(tv and 256)=256;
    if (not bufv and vs)=true then tv:=0;
    bufv:=vs;
    end;
    
    begin
    gd:=detect;
    initgraph(gd,gm,'');
    {setfillstyle(1,7);
    bar(0,0,448,320);
    setfillstyle(1,15);
    bar(136,64,392,256);
    bar(0,0,64,320);
    setfillstyle(1,10);
    bar(0,0,32,320);
    bar(0,304,448,320);}
    rg0:=true;
    repeat;
    counter;
    delay(5);
    
    vs:=v3 and v4 and v5 and not vv and v8 and rg0
    or v2 and v3 and not vv and v4 and v5 and v8 and not rg0
    or not v2 and not v3 and not vv and not v4 and not v5 and not v8;
    
    hs:=not h6
    or not b3 and not h4 and not h5 and h6 and not rg0
    or b3 and not h4 and not h5 and h6 and rg0
    or h4 and not h5 and h6
    or h5 and h6;
    
    x:=th;
    y:=tv;
    line(th*8,tv,th*8+8,tv);
    {writeln(x,' ',hs,' ',y);}
    
    until keypressed;
    closegraph;
    end.
    Отошёл от дел.

  2. #22
    Veteran Аватар для KALDYH
    Регистрация
    04.02.2008
    Адрес
    Кемерово
    Сообщений
    1,591
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Продолжаю изучение своих записей. Для начала, помнится, я разбирал по сигналам исходную прошивку. Попробую разобрать ее вновь. Начнем с горизонтальных (ну, строчных) сигналов, отделим их от вертикальных:
    Код:
    BL CS = true ; гашение
    ; по строкам
    BL = ~h4 ~h5 h6 rg0
    BL = ~b3 ~b2 h4 ~h5 h6 rg0
    BL = b3 ~h4 ~h5 h6 ~rg0
    BL = ~b3 h4 ~h5 h6 ~rg0
    BL = b3 ~b2 h4 ~h5 h6 ~rg0
    ; по кадрам (пока не разбираем)
    BL = ~v3 ~vv v4 v5 v8
    BL = ~vv ~v4 ~v5 ~v8
    
    HS CS = true ; строчная синхронизация
    HS = ~h6
    HS = ~b3 ~h4 ~h5 h6 ~rg0
    HS = b3 ~h4 ~h5 h6 rg0
    HS = h4 ~h5 h6
    HS = h5 h6
    
    HE CS = true ; бордюр
    ;боковые стороны (зависят от счетчика символов)
    HE = h4 h5 ~h6 rg0
    HE = ~h5 h6
    ;верхняя и нижняя стороны (зависят от счетчика строк)
    HE = ~vv v8 
    HE = rg0 ~vv
    HE = ~rg0 ~vv ~v5 ~v8
    HE = ~rg0 ~vv ~v4 v5 ~v8
    HE = ~rg0 ~v3 ~vv v4 v5 ~v8
    Формируются строчные сигналы из сигналов B2 (учитывается только в BL), B3, H4, H5, H6, зависят от RG0 (1 - экран ZX, 0 - расширенные экраны ATM). Что это за сигналы? Они приходят со счётчиков. Разобрав работу счётчиков потактно, получим картину меандров и нарисуем ее по клеточкам (срисовываю со своих записей, поэтому разборку работы счетчиков оставлю читателям). Ну а теперь просто накладываем на нее логические условия ПЛМки (для примера указаны условия сигнала HS и HE) и получаем картину синхроимпульсов и краев бордюра (для удобства скопируйте в текстовый редактор с моноширинным шрифтом и поставьте размер шрифта побольше)
    Код:
          B2| ////////////////////////////////
          B3| _¯_¯_¯_¯_¯_¯_¯_¯_¯_¯_¯_¯_¯_¯_¯_¯
          H4| __¯¯__¯¯__¯¯____¯¯__¯¯__¯¯____¯¯
          H5| ____¯¯¯¯____¯¯____¯¯¯¯____¯¯____
          H6| ________¯¯¯¯¯¯________¯¯¯¯¯¯____
          HS| ¯¯¯¯¯¯¯¯¯_¯¯¯¯¯¯¯¯¯¯¯¯¯_¯¯¯¯¯¯¯¯
    (RG0=0) |                                 
          HS| ¯¯¯¯¯¯¯¯_¯¯¯¯¯¯¯¯¯¯¯¯¯_¯¯¯¯¯¯¯¯¯
    (RG0=1) |                                 
    условия | \__1___/234455\___1__/234455\_1_
          BL| _________¯¯\___________¯¯\______
    (RG0=0) |                                 
          BL| ________¯¯\___________¯¯\_______
    (RG0=1) |                                 
          HE| ________¯¯¯¯__________¯¯¯¯______
    (RG0=0) |                                 
          HE| ______¯¯¯¯¯¯________¯¯¯¯¯¯______
    (RG0=1) |                                 
    условия |       11\_2/        11\_2/
    Длина одного символа на рисунке - 16 тактов или 4 знакоместа (один пиксель равен одному полутакту). Сигнал B2 в масштаб не укладывается, но конечная картина от него мало зависит, поэтому я отобразил период _/¯\ символом /, а период /¯\_ символом \. Посчитав по клеточкам, получаем, что длина строки - 224 такта, что совпадает с Пентагоном. Для дальнейших расчётов надо учесть, что сигнал формирования бордюра дальнейшими регистрами задерживается на одно знакоместо (4 такта) плюс один пиксель. Референсные параметры экрана Пентагона (не помню откуда мной взято): 32 такта - импульс гашения по строкам, 36 тактов - бордюр от гашения до экрана, 128 тактов - экран, 28 тактов - бордюр до строчного синхроимпульса, в сумме 224 такта. У ATM, получается, так: 40 тактов - гашение, 28 (24+4 задержки) - бордюр до экрана, 128 - экран, 28 (32-4 задержки) - бордюр до импульса синхронизации. Отличия, как видим, минимальны, и касаются они только длительности гасящего импульса - у ATM он чуть длиннее. Удлиняется он за счёт сигнала B2, поэтому для вящей совместимости и, главное, для упрощения схемы, я его из обработки выкинул. Больше никаких отличий ATM-Turbo 2 от Pentagon в части формирования строчных сигналов нет, поэтому эти строки в исходнике прошивки оставляем как есть.
    Последний раз редактировалось KALDYH; 06.11.2016 в 20:51.
    Отошёл от дел.

  3. #23
    Guru
    Регистрация
    16.12.2009
    Адрес
    Харьков
    Сообщений
    4,731
    Спасибо Благодарностей отдано 
    355
    Спасибо Благодарностей получено 
    369
    Поблагодарили
    238 сообщений
    Mentioned
    11 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от KALDYH Посмотреть сообщение
    Больше никаких отличий ATM-Turbo 2 от Pentagon в части формирования строчных сигналов нет
    а кол-во строк тоже 320, или 312, как у оригинального спека?

    - - - Добавлено - - -

    у меня просто атмки нет, но хочется разобраться.

    - - - Добавлено - - -

    можно глянуть в тесте 4.30

    - - - Добавлено - - -

    Цитата Сообщение от KALDYH Посмотреть сообщение
    Референсные параметры экрана Пентагона (не помню откуда мной взято): 32 такта - импульс гашения по строкам, 36 тактов - бордюр от гашения до экрана, 128 тактов - экран, 28 тактов - бордюр до строчного синхроимпульса, в сумме 224 такта.
    когда я переделывал синхрогенератор профи под пент, смотрел на вот это страничку - http://www.worldofspectrum.org/rusfaq/index.html#21
    Цитата Сообщение от KALDYH Посмотреть сообщение
    У ATM, получается, так: 40 тактов - гашение, 28 (24+4 задержки) - бордюр до экрана, 128 - экран, 28 (32-4 задержки) - бордюр до импульса синхронизации.
    то, что гашение 40 тактов, это совсем не страшно, на самом деле на телевизоре этого не будет заметно, а вот на вга-кодере будет вертикальная черная полоса. остальное да, отлично вписывается в строку пентагона, но надо уточнить кол-во строк. допустим в синхрогенераторе профи сброс строк я двигал прошивкой, а здесь как бы он не был сделан жестко на D61.3 и D61.4...
    Profi must live!

    Моё железо...

    1. Profi 5.06/1Mb(DRAM)+Profi5.06(UP)/HDD/3`5FDD/CF512Mb/SD-CARD
    3. Profi 6.2 Rev. B/1Mb/3`5FDD/HDD3.2Gb
    4. Profi 5.05(down)/1Mb+Profi 5.03(UP)/Pentagon_Fix
    Все укомплектованы:
    Profi_ZX-BUS/ZXMC2/NemoIDE/SounDrive
    [свернуть]

    Ссылка на Telegram-канал поддержки пользователей Profi.

  4. #24
    Veteran Аватар для KALDYH
    Регистрация
    04.02.2008
    Адрес
    Кемерово
    Сообщений
    1,591
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проверил свою схему - вроде без ошибок. Вот она, в формате KiCad (можно плату сделать, хехе) и экспорт в PDF. Ах да, назначение и смысл элемента U5C с неподключенным выходом - хоть убей не помню.
    Замена ПЛМ.pdf
    Замена ПЛМ.zip

    - - - Добавлено - - -

    Цитата Сообщение от solegstar Посмотреть сообщение
    а кол-во строк тоже 320, или 312, как у оригинального спека?
    А вот тут есть отличия, которые собственно и надо переделать! Завтра разберу вторую часть своих заметок.
    Цитата Сообщение от solegstar Посмотреть сообщение
    когда я переделывал синхрогенератор профи под пент, смотрел на вот это страничку -
    Ага, спасибо! Точно, по ней я и ориентировался.
    Последний раз редактировалось KALDYH; 06.11.2016 в 21:48.
    Отошёл от дел.

  5. #25
    Veteran Аватар для KALDYH
    Регистрация
    04.02.2008
    Адрес
    Кемерово
    Сообщений
    1,591
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так, займемся вертикальными сигналами...
    Код:
    ; кадровая синхронизация
    VS CS = true
    VS = v3 v4 v5 ~vv v8 rg0
    VS = v2 ~v3 v4 v5 ~vv v8 ~rg0
    VS = ~v2 ~v3 ~vv ~v4 ~v5 ~v8
    
    ; гасящий импульс
    BL CS = true
    ; по строкам - рассмотрены выше
    BL = ~h4 ~h5 h6 rg0
    BL = ~b3 ~b2 h4 ~h5 h6 rg0
    BL = b3 ~h4 ~h5 h6 ~rg0
    BL = ~b3 h4 ~h5 h6 ~rg0
    BL = b3 ~b2 h4 ~h5 h6 ~rg0
    ; по кадрам
    BL = ~v3 ~vv v4 v5 v8
    BL = ~vv ~v4 ~v5 ~v8
    
    ; бордюр
    HE CS = true
    ; вертикальные рамки - рассмотрены выше
    HE = h4 h5 ~h6 rg0
    HE = ~h5 h6
    ; горизонтальные рамки
    HE = ~vv v8
    HE = rg0 ~vv
    HE = ~rg0 ~vv ~v5 ~v8
    HE = ~rg0 ~vv ~v4 v5 ~v8
    HE = ~rg0 ~v3 ~vv v4 v5 ~v8
    Тут входных сигналов у нас больше - V2, V3, V4, V5, VV=(V6|V7)=~((~V6)&(~V7)), V8, и управляющий RG0 (напомню, 1 - экран ZX, 0 - экраны ATM). Но и структура у них проще - рассмотрев работу счётчиков, можно убедиться, что это простые меандры. Длительность одного полупериода:
    V0 - 1 строка
    V2 - 4 строки
    V3 - 8 строк (одно знакоместо)
    V4 - 2 знакоместа
    V5 - 4 знакоместа
    V6 - 8 знакомест (треть экрана)
    V7 - 16 знакомест
    V8 - 256 строк
    Раз это у нас простые меандры, набор сигналов со счётчиков можно записать как двоичное число - номер строки. Перепишем логические условия, обозначив прямой сигнал как 1, а инвертированный как 0. Неиспользуемые сигналы пометим крестиком. В первую очередь нас интересует сигнал VS - сформированный от него сигнал INT сбрасывает счётчики, соответственно, он и определяет число строк в системе.
    Код:
    VS:	100111XXX RG0=1	;312 строк
    	1001101XX RG0=0	;316 308 строк
    	0000000XX ;длина импульса 4 строки
    Как видно, в разных видеорежимах число строк разное - в расширенных экранах чуть больше. Не знаю, зачем это сделали, наверное для симметрии положения экранной области на экране. В принципе, для общности можно сделать одинаковое, тем более что нам нужно с запасом пентагоновские 320 строк. У Pentagon INT формируется по фронту кадрового синхроимпульса, а не по спаду, и имеет согласно вышеприведенной таблице длину 16 строк. Дальше я для переделки эти логические условия упростил путём переделки схемы компа: INT оставил как было, а сброс счётчиков сделал по спаду синхроимпульса. (Или я синхроимпульс переносил? Не помню. Надо провода на плате изучать, короче.) Вычитаем, получаем 320-16=304 строки и итоговое условие имеет вид 10011XXXX и все три строчки для вертикальной синхронизации заменяются условием
    Код:
    VS = v4 v5 ~vv v8
    , которое я и реализовал в хард-логике.
    Дальше бордюр.
    Код:
    HE:	100XXXXXX		строки 256-до конца
    	X00XXXXXX RG0=1		строки 0-63
    	0000XXXXX \		строки 0-31
    	00010XXXX  RG0=0	строки 32-48
    	000110XXX /		строки 48-55
    Получается, что различия в двух режимах - в том, что в расширенном режиме экран расширяется на одно знакоместо (8 строк) вверх, итого получаем 25 текстовых строк.
    Ну и гашение.
    Код:
    BL:	100110XXX	;начинается с 304 строки до синхроимпульса
    	00000XXXX	;длится 16 строк после СИ
    Сделал его по-топорному: полагаем, что строчное гашение равняется строчному синхроимпульсу.

    Ну вот вроде и всё почти... Осталось описать, как я переносил сброс счетчиков с переднего фронта синхроимпульса на задний. Это мне уже надо плату из компа вынимать и там провода смотреть. Сигнал Z я не реализовывал - слишком сложно, поэтому оригинальные прошивки с моей заменой больше не работают!

    Вот сейчас, набирая этот пост, я понял, что когда-то немного перемудрил со схемой и все можно было сделать еще проще и не вмешиваясь в плату. Господа, напомните: у ATM прерывание по фронту синхроимпульса или по спаду?
    Последний раз редактировалось KALDYH; 08.11.2016 в 19:51.
    Отошёл от дел.

  6. #26
    Guru
    Регистрация
    16.12.2009
    Адрес
    Харьков
    Сообщений
    4,731
    Спасибо Благодарностей отдано 
    355
    Спасибо Благодарностей получено 
    369
    Поблагодарили
    238 сообщений
    Mentioned
    11 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от KALDYH Посмотреть сообщение
    у ATM прерывание по фронту синхроимпульса или по спаду?
    вообще, сигнал /INT воспринимается процом по спаду. и судя по схеме, в итоге формируется сигнал /intz для проца из сигнала /int без каких либо изменений, ну кроме задержки на элементах. получается int формируется тогда, когда vs переходит в 0. я так понимаю и vs и hs выходят с плмки правильной полярности, т.е. отрицательной?
    Profi must live!

    Моё железо...

    1. Profi 5.06/1Mb(DRAM)+Profi5.06(UP)/HDD/3`5FDD/CF512Mb/SD-CARD
    3. Profi 6.2 Rev. B/1Mb/3`5FDD/HDD3.2Gb
    4. Profi 5.05(down)/1Mb+Profi 5.03(UP)/Pentagon_Fix
    Все укомплектованы:
    Profi_ZX-BUS/ZXMC2/NemoIDE/SounDrive
    [свернуть]

    Ссылка на Telegram-канал поддержки пользователей Profi.

  7. #27
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    206
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:

    Код:
    VS:	100111XXX RG0=1	;312 строк
    	1001101XX RG0=0	;316 строк
    	0000000XX ;длина импульса 4 строки
    Вот только 1001101XX RG0=0 ; - это будет 308 строк.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  8. #28
    Master
    Регистрация
    07.08.2007
    Адрес
    Москва
    Сообщений
    926
    Спасибо Благодарностей отдано 
    59
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KALDYH Посмотреть сообщение
    Проверил свою схему - вроде без ошибок. Вот она, в формате KiCad (можно плату сделать, хехе) и экспорт в PDF. Ах да, назначение и смысл элемента U5C с неподключенным выходом - хоть убей не помню.
    Замена ПЛМ.pdf
    Замена ПЛМ.zip
    Таки схема рабочая, можно использовать вместо ХЛ8? Кто-нибудь делал?

  9. #29
    Activist
    Регистрация
    17.07.2018
    Адрес
    г. Воронеж
    Сообщений
    270
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    37
    Поблагодарили
    33 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Была тема ещё одна, там были рабочие прошивки для замены, только распиновка не помню, но могу прозвонить плату. Архив назывался 711_corrected или похоже

  10. #30
    Master
    Регистрация
    07.08.2007
    Адрес
    Москва
    Сообщений
    926
    Спасибо Благодарностей отдано 
    59
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kulich Посмотреть сообщение
    прошивки для замены
    Прошивки? Там же схема на обычной логике, нет?

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Turbo Sound
    от CHRV в разделе Звук
    Ответов: 388
    Последнее: 05.09.2023, 22:07
  2. turbo ружим
    от Sayman в разделе Несортированное железо
    Ответов: 10
    Последнее: 20.05.2008, 05:37
  3. GRM и Turbo ВГ
    от roxx в разделе Несортированное железо
    Ответов: 3
    Последнее: 13.08.2006, 22:26
  4. 128 vs 256 turbo
    от FoX FluFFy^s в разделе Несортированное железо
    Ответов: 45
    Последнее: 16.02.2006, 13:06

Ваши права

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