«Кроха» — недо-Специалист

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

User avatar
fifan
Devil
Posts: 909
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: «Кроха» — недо-Специалист

Post by fifan »

Поменялось только одно - появился библиотечный элемент. Указанная мною ошибка не исчезла, смысла в дальнейшем копании в запуске схемы я не вижу.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

fifan wrote:...смысла в дальнейшем копании в запуске схемы я не вижу.
Нуууу... это зря... :-? PVV совершенно правильно говорит:
PVV wrote:Есть исходник, могу выложить и последнюю версию, с доработками от IgorR76, и можно попробовать собрать dll из исходников, тогда уж все должно заработать.
...
Версии proteus у всех разные, и это гораздо проще сделать для своей версии чем пытаться вставить библиотеку от не своей версии.
У меня и вовсе Windows 98 и Proreus 6.7 Pro - да, сполпинка дисплей как dll не заработал,
но выложены тут же в форуме исходники, и все тонкости мы обсудили...
Перекомпилировал исходники и сам нарисовал на свой вкус коробку с 4 выводами.

Чтобы быть уверенным, что дисплей работает, а не схема компьютера глючит - собрал простой ТV-генератор полос:

 ТV-генератор полос
tv_disp6.gif

Избавляться от глюков надо по шагам - я не раз про это говорил... все ж может случиться... :wink:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

fifan wrote:Проект работает, но как и у меня ничего не показывает на экран.
Странное поведение, вобще говоря, у этого драйвера дисплея... :osad:
И по тексту-то он простой, как 5 копеек - никаких подводных камней нет явно... :-?

В общем дошли у меня сегодня руки попробовать проект «Крохи» от PVV под Proteus 7.7
на ноутбуке с двухядерным Интел Атом на 1.8ГГц, хотел я эмуляцию пошустрее увидеть.
Запускаю... схема работает, а дисплей - нет. На черном фоне сверху вниз пробегает
одинокая строка, и этот процесс повторяется...

Ну ладно - для проверки загружаю вот эту схему из моего поста выше, которая точно
работала на старом ноутбуке, где Вынь 98, Пень II на 366 Мгц и Proteus 6.7.
А она - точно так же не работает, пробегает одинокая строка, и этот процесс повторяется,
хотя dll-библиотека скомпилирована лично мной! :o

В общем - пол дня сегодня убил на это, но безрезультатно... :oops:

И самое обидное, что я часа 3 угробил разыскивая сами схемы от «Крохи» ! :roll:
Надо выложить здесь, чтобы второй раз не шаманить в роли бомжика-нищеброда... :mrgreen:

 Оригинальная схема «Крохи» от Caro
kroha_00.gif

 Схема «Крохи» из проекта PVV
kroha_01.gif

You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

Lavr wrote:Странное поведение, вобще говоря, у этого драйвера дисплея... :osad:
И по тексту-то он простой, как 5 копеек - никаких подводных камней нет явно...
В общем пришлось исходники драйвера дисплея настойчиво покурить...

Я не знаю, у кого из вас они какие, и насколько уже правлены, но в моём варианте строчная
и кадровая синхронизация явно перепутаны. :-?
Всё-таки как-то общепринято, что H-SYNC - это строчная синхронизация, или синхронизация
по Hоризонтали, а V-SYNC - это кадровая синхронизация, или синхронизация по Vертикали.
Но из текста драйвера следует явно противопложенный расклад... :o

Code: Select all

//---- читаем состояния выводов -----------
    BOOL st_v =ishigh(en_video->istate());   //---- VIDEO
    BOOL st_sh=ishigh(en_sync_h->istate());  //---- SYNC_H
    BOOL st_sv=ishigh(en_sync_v->istate());  //---- SYNC_V
    BOOL st_pc=ishigh(en_pclk->istate());    //---- PCLK

  if (!st_sh) //- SYNC_H ^^\__ низкий уровень H_SYNC
    {
      if (!hst)
      {
       fsize=0;
       hst=1;
      }
    }
     else //- SYNC_H __/^^  высокий уровень H_SYNC
    {
      hst=0;
    if (!st_sv) //---- SYNC_V ^^\__ низкий уровень V_SYNC
      {
      if (vst==0)
       {
       lsize=0;
         vst=1;
       fsize+=SIZE_X; //- увеличивается на число точек в строке
           c=0x45;
      for (i=0; i<SIZE_X; i++)
       *(lin + fsize + SIZE_X + i) = c;
       }
      }
       else
      {
       vst=0;
      if (!st_pc)  //---- PCLK ^^\__ низкий уровень
        {
        if (st_v) c=0x45; else c=0xda;
          *(lin + fsize + lsize + SIZE_X) = c;
            lsize++;
        //if (lsize<SIZE_X) lsize++;
        }
      }
    }
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

rw6hrm wrote:...извиняюсь, конечно, но что требуется перелопатить в дисплейной части схемы, чтобы выводить не 48 символов в ширину, а нормальные 80х25?
В самом верху файла изменить SIZE_X и SIZE_Y на столько - сколько вам надо.
Посчитайте сами, смотря какая у вас матрица символа (5х7 или 8х8), а потом задайте нужные размеры по X и по Y.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

rw6hrm wrote:
Lavr wrote:В самом верху файла
:mrgreen: я имел в виду "железную" схему "Крохи".
Я не телепат - каков вопрос, таков и ответ... :mrgreen:

А по "железному" вопросу - всё сложнее: надо увеличить тактовую, чтобы в тот же интервал строки
впихнуть большее число точек,
увеличить видео-буфер в памяти, ну и переконструировать выборки КСИ, КГИ, ССИ и СГИ под новую
частоту, чтобы они остались на своих местах в полном телевизионном сигнале.

Похожие расчеты я делал вот здесь: viewtopic.php?f=71&t=9407&start=30
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

PVV wrote:...с оригинальной схемой не сошлось - без управления /OE на D19 в ОЗУ ничего не писалось,
но с этим еще можно смириться, списав на несоответствие в работе модели SRAM 6264 и 537РУ10
IC 537РУ10 в схеме «Крохи» включена совершенно грамотно: она не терпит длинный /CS
и мрёт за 7 секунд с /CS на земле.
При обычной выборке - сначала /CS, а потом - /ОЕ, который есть /RD от процессора,
она может поймать "тиристорный эффект" и подохнуть сама, поэтому её влючают, так
как нарисовано на схеме «Крохи» чаще всего - её внутренняя организация так позволяет.
Понятно, что 6264 так включать совершенно не требуется... :wink:


P.S. Кстати, я улыбнулся: К555ИД4 исправлена ручкой на схеме - самая любимая ошибка всех времён и народов! :lol:
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: «Кроха» — недо-Специалист

Post by shoorick »

Lavr wrote:При обычной выборке - сначала /CS, а потом - /ОЕ, который есть /RD от процессора,
она может поймать "тиристорный эффект" и подохнуть сама
я ставил РУ10 параллельно РФ2 в спеце (до 8 штук), ОЕ заводил как раз с чтения, а CS - с ИД4, здыхания не отмечал... может, у меня были клёвые РУ10? раз как-то погорели, конечно, когда провод питания упал на плату, ну там и КП2 повыгорали и еще чево-то, уже не помню 8)
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

shoorick wrote:я ставил РУ10 параллельно РФ2 в спеце (до 8 штук), ОЕ заводил как раз с чтения, а CS - с ИД4, здыхания не отмечал...
Я тоже слышал такое мнение и не только от тебя... но то, что я процитировал - пишут про РУ10
в справочной литературе.
А вобще мне это напоминает следующий диалог:

- Сифилис, если его не лечить, приводит к летальному исходу.
- А у меня был сифилис, так мне его вылечили за 5 уколов!
:wink:

А ещё анекдот:
- Береженного - Бог бережет! Говаривала одна монашка в келье, надевая презерватив на свечку...

Это я к чему? Да у меня тоже есть РУ10 и я ни одной не сжег... но если мы глянем в схему ЮТ-88,
то РУ10 там включены так же, как и в «Крохе».
И если люди пишут, что РУ10 горят, особенно в АОН-ах, где /CS, бывало, намертво вешали на землю,
значит факт этот имеет место быть? Никто же не пишет такое про ту же 6264 ?
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: «Кроха» — недо-Специалист

Post by shoorick »

не знаю... аоностроение прошло мимо меня :roll:
возможно, эти красивые былины возникли на почве замены РУ8 на РУ10 и наоборот?
так были подключены РФ2 в моем спеце, я из-за этого у Ру10 две ноги отгибал вверх и паял крестики из проволочек :D
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

shoorick wrote:не знаю... аоностроение прошло мимо меня :roll:
А жаль... там было мнооооого интересного и зогадошного помимо РУ10...
Если что-то прошло мимо тебя, то это не значит, что такого не было.
Я вот, к примеру, сифилисом не болел, но это же не отменяет наличие КВД в стране... :mrgreen:
iLavr
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: «Кроха» — недо-Специалист

Post by PVV »

rw6hrm wrote:...извиняюсь, конечно, но что требуется перелопатить в дисплейной части схемы, чтобы выводить не 48 символов в ширину, а нормальные 80х25? Хочется доделать свою машинку под СР/М, а делать видеовывод на Атмеге328 ну как-то некошерно (хотя возможностей получается на два порядка больше, в основном из-за переноса части вычислительных функций с основного процессора на видео)...
переделать просто не получится, а как Вы представляете эти 80х25? организация памяти линейная? или с некими пропусками для шага кратного степени двойки? поддержка курсора будет? цвет символа и\или фона? от всего этого сильно аппаратная часть меняться будет, за увеличение частоты пиксельклока и формирование КСИ и ССИ уже сказали, с этим все понятно...
и в довесок, с внешним миром как общаться, по RS232? клавиатура своя или только отображение символов?

вообще все это уже выходит за пределы обсуждения 'Крохи' и надо вынести в отдельную тему...
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

rw6hrm wrote:Тем более, что с Атмегой уже всё готово, но это другая история...
Я вот тоже за последние 3 дня Атмег накушался... по самое "нихачу"... :lol:
А всё почему?
Два года назад зашел я перед НГ в магазин радиотоваров и купил 6 штук Атмег -
чисто потому, что у меня их не было, а после НГ обычно всё дорожает.... 8)
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

В общем, с пинками, костылями, матюками, подпорками и танцами с бубном «Кроха» у
меня тоже заработала... :wink:
Решил выяснить структуру её видео-ОЗУ. Под видео-ОЗУ у «Крохи» отведено 2048 байт
ОЗУ по адресам 0E800-0EFFFH.
Чтобы осталось памяти для стека и переменных программы в ПЗУ-картридже, видео-буфер
ограничивают 25-ю строками по 48 позиций в строке - это 48х25=1600 байт.
Но в принципе видеоадаптер «Крохи» способен показать все 32 строки по 48 позиций в строке.
(строки - символьные, а не графические).
Лишнее прячут гасящими импульсами развертки.

Написал тест, заполняющий всё видео-ОЗУ у «Крохи» символами от 20Н - это пробел, до 7FH.
В закогенераторе «Крохи» символов в нижнем регистре нет - только заглавные.

На скриншоте серым цветом - то, что выдает «Кроха» при заполнении видео-ОЗУ.
Зелёным цветом я на левое слишком длинное гасящее поле в графредакторе прилепил
знакогенератор «Крохи», который посмотрел через эмулятор «Специалиста».
KroxaScr.gif
Организация экрана довольно странная - всё что выводится с 0E800 - находитсяв самом
правом столбце, а потом изображение переходит в крайний левый столбец и далее - по
столбцам идёт подряд.

Через «Специалист» также немного почитал код программы из ПЗУ. Смутила установка стека:
LXI SP,Е9Е0
Стек линейно увеличивается вниз, но от Е9Е0 до верха видео-ОЗУ 0EFFFH не набирается этих
самых даже 48х25=1600 байт по минимуму! :o

Под Windows 7 оба драйвера дисплея не работают, причем тот, что поновее при долгом ожидании
видео-чуда таки может наглухо завесить систему. Под Вендой 98 - работают нормально.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: «Кроха» — недо-Специалист

Post by Lavr »

Lavr wrote:Организация экрана довольно странная - всё что выводится с 0E800 - находитсяв самом
правом столбце, а потом изображение переходит в крайний левый столбец и далее - по
столбцам идёт подряд.
Из этого теста стало понятно, что на экране память организована столбцами по 32 символа,
нумерация символов идет сверху вниз линейно 0-31, переход в другой столбец.. и т.д.

Теперь я усложнил тест, чтобы понять, как расположены сами столбцы по отношению к
геометрии экрана и адресам памяти. Я выводил столбцами по 32 числа 0,1,2,3 ... D,E,F.
Получилось вот что:
K_Test2.gif
Действительно, столбец "0" с адреса Е800 находится справа, потом пропадают столбцы с
номерами "1" ... "F", и первый видимый столбец - снова "0".
Я дорисовал влево и вправо недостающие столбцы (они скрыты обратным ходом TV-развертки),
и получилась карта памяти видео-ОЗУ "Крохи":
K_V-RAM.gif
Реально выводимая на экран область ОЗУ начинается с 0EA00H и по 0EFFFH.
Нижние 7 символов каждого столбца маскирует Кадровый гасящий импульс.
Интервал 0Е800-Е9FFH приходится на строчный гасящий импульс и является
доступным ОЗУ пользователя, т.к. не отображается на дисплее. Там же расположен
и стек, как видно, адресом 0E9E0H начинается первый столбец до области, отобра-
жаемой на дисплее.

Несложный подсчет показывает, что вроде я нигде не ошибся: на интервал строки у "Крохи",
как и у "Специалиста", приходится 64 столбца (или байта). Из них 16 столбцов (байт) приходятся
на интервал гашения. На экране видимы оставшиеся 48 столбцов по 32 символа, из которых
7 символов гасятся по кадру и остается - 25 строк.
You do not have the required permissions to view the files attached to this post.
iLavr