Страница 6 из 7

Добавлено: 14 дек 2016, 01:42
deathsoft
Да мне интересно какие там на реале задержки рассчитаны и я их хочу с моделированием схемы сравнить, а не с той херней которую надо в унриал вбивать. Я хочу посмотреть как надо исправить унриал чтобы в нем указывать числа соответствующие схеме, а не подогнанные под непонятно что.

Добавлено: 14 дек 2016, 01:43
Гость
deathsoft писал(а):
Эта дема под желтый скорпион. Запусти ее в унриале посмотри.
Ну под четнотактовый тоже можно конечно, но еще меньше полезных команд. Я верю, вчера запускал. Так, а на зеленом тоже четнотактовые были команды? Я уже не помню нифига.

Добавлено: 14 дек 2016, 01:46
deathsoft
Судя по настрокам в унриале - нет, в зеленом округления до четных тактов не было. А как там в реале, надо прошивку альтеры смотреть, как там вэйт формируется в нетурбо режиме, я когда то постил исходник прошивки.

Добавлено: 14 дек 2016, 01:50
Гость
deathsoft писал(а):
Да мне интересно какие там на реале задержки рассчитаны и я их хочу с моделированием схемы сравнить, а не с той херней которую надо в унриал вбивать. Я хочу посмотреть как надо исправить унриал чтобы в нем указывать числа соответствующие схеме, а не подогнанные под непонятно что.
Как ты это себе представляешь, ну хорошо, прощелкай в анриле до первого оута вот и узнаешь где хотели начинать бордер, такты то от инта будут показаны.
Так что выяснили по схеме, 16+(16+40)+192+48. Не понятно когда приходит инт, на это две причины. Первая ебнутая цепочка через сдвиг по m1 и вторая ,я так понимаю, не понятная связь с КС ( когда с точностью до пикселя относительно СС он начинается). По деме это точнее чем есть не выяснить, нет там такого, ну либо я вообще ничего в этом не понимаю.

Добавлено: 14 дек 2016, 01:57
Гость
Кстати посмотрел еще раз на сблайвовскую картинку, хуйня там конечно конкретная написана, но что то правильное наверное есть же (272+48=312????Изображение)

Добавлено: 14 дек 2016, 01:59
Гость
deathsoft писал(а):
Вот дема для скорпиона http://zxaaa.net/view_demo.php?id=5847
На деме кстати скрин заглушки Изображение

Добавлено: 14 дек 2016, 02:00
deathsoft
ну у себя я для теста делал вот такую программу:
в A, D, E заданы цвета для бордюра в BC задано 0xFE

рисование из обработчика im2

первая строка
[(вход в im2 19T) (ld (0),A 13T) это всего 32T (hblank)] [(out (c),A 12T) (DI 4T) (out (c), D 12T) (DI 4T) всего 32T левый бордюр] [(out (c),E 12T) (DI 37раз по 4T) всего 128+32T]

следующие строки (7 штук)
[(DI 8 раз по 4T) всего 32T (hblank)] [(out (c),A 12T) (DI 4T) (out (c), D 12T) (DI 4T) всего 32T левый бордюр] [(out (c),E 12T) (DI 37раз по 4T) всего 128+32T]

Добавлено: 14 дек 2016, 02:20
Гость
Решил поставить в пресете позырить что там в бланках происходит 448,312,72,64 опять побилась синхра. Я нифига не понимаю как окно отображения может влиять на луч. Короче Дэд надо переделывать, мирится с этим нельзя, пора положить конец всяким спекуляторам и фьюзам хотя бы на безвейтовом поле боя.

Добавлено: 14 дек 2016, 02:27
deathsoft
Посмотри функцию video_timing_tables() и update_screen() в draw.cpp они отвечают за потактовое рисование на бордере и экране.

http://rgho.st/7jQ9dtqMT (вот тут я сам комментарии дописывал, у SMT там черт ногу сломит, никаких комментов не было).Отредактировано deathsoft (2016-12-13 23:30:21)

Добавлено: 14 дек 2016, 02:32
deathsoft
Кстати в бланках ты ничего не увидишь, в унриале когда далается запись во время бланка из функции update_screen() делается просто выход.

Добавлено: 14 дек 2016, 02:36
deathsoft
При рисовании используется таблица отрезков экрана (которая фрагментам строк экрана (по тактам) сопоставляет 3 видео режима):
0 - нерисуемая часть
1 - бордер
2 - paper
каждый отрезок имеет такт начала и такт конца и самое главное - указатель на место в промежуточном видеобуфере в котором строится изображение.
последний отрезок помечается спец маркером конца списка отрезков.Отредактировано deathsoft (2016-12-13 23:38:48)

Добавлено: 14 дек 2016, 02:44
deathsoft
krt17 писал(а):
Решил поставить в пресете позырить что там в бланках происходит 448,312,72,64 опять побилась синхра.
Задание числа строк больше чем 304 - это выход за границы массива. Максимальный размер видеообласти 512*304.

Добавлено: 14 дек 2016, 02:46
Гость
Я все понял, не надо переделывать и так проживем:)

Добавлено: 14 дек 2016, 02:53
deathsoft
krt17 писал(а):
Я все понял, не надо переделывать и так проживем:)
Ты хоть сорец то посмотрел?

Добавлено: 14 дек 2016, 03:07
Гость
Конечно, как video[] строится понял в общих чертах, как с помощью нее пишется буфер чуть похуже. Но еще я понял что все понять а еще и осмысленные вещи делать у меня уйдет куча времени. На пенсии, не раньше, у меня элита стынет Изображение

Добавлено: 14 дек 2016, 03:38
Гость
Ну так чтобы понять правильно ли я понял. video заполняется разными типами областей. Буфер заполянется спековскими байтами (пиксели + атрибуты) до текущего такта перед каждой записью в экран или в fe или щелчком экрана. В буфере хранятся и экран и бордер. Где там проверка на 4т бордер нифига не понял, поэтому и думаю что мне как до луны.

Добавлено: 14 дек 2016, 09:51
Лас
deathsoft писал(а):
Вот дема для скорпиона http://zxaaa.net/view_demo.php?id=5847
Так эту демку тоже я делал, вечерами дома у друга. Своего скорпиона не было.
Делал на желтом скорпе с вэйтами Изображение
Монитор электроника, бордер = small.
Днем дома на бумажке посчитал, вечером набил Изображение
Потом отлаживал.

Добавлено: 14 дек 2016, 19:02
deathsoft
С пресетом то для кая напортачили:
видимый верхний бордер у кая 56, а не 72
всего видимых строк 296, а не 304
невидимые 16 строк уже учтены в размере фрейма 69887

Добавлено: 14 дек 2016, 22:23
deathsoft
Лас, а кай на котором писалась kay_demo был без доработок инта? А то такое впечатление, что там инт пытались на пентагоновский переделать. Т.к. в start of paper учитываются 16 невидимых строк, которые в кае (в соответствии со схемой) должны быть в конце кадра, а при приходе инта должны быть сразу 56 видимых строк бордюра.

Добавлено: 14 дек 2016, 22:27
Лас
deathsoft писал(а):
Лас, а кай на котором писалась kay_demo был без доработок инта? А то такое впечатление, что там инт пытались на пентагоновский переделать. Т.к. в start of paper учитываются 16 невидимых строк, которые в кае (в соответствии со схемой) должны быть в конце кадра, а при приходе инта должны быть сразу 56 видимых строк бордюра.
без доработок, серийный KAY-1024

Добавлено: 14 дек 2016, 22:35
deathsoft
А схема которая с ним в комплекте шла не осталось? Та схема которая у меня датирована 19.01.2000. Возможно есть разные версии схем.

Добавлено: 14 дек 2016, 22:44
Лас
deathsoft писал(а):
А схема которая с ним в комплекте шла не осталось? Та схема которая у меня датирована 19.01.2000. Возможно есть разные версии схем.
В комплекте с ним было вот это, 1999 год: http://zxpress.ru/book.php?id=108
http://zxpress.ru/books_files/KAY1024.ZIP
P.S. принципиальной схемы КАЯ в этой книжке - нет.Отредактировано Лас (2016-12-14 19:46:12)

Добавлено: 14 дек 2016, 23:54
deathsoft
Лас писал(а):
В комплекте с ним было вот это
Видимо немо как и зонов продавал схему отдельно, или вообще не продавал, а только в сервисные мастерские давал.

Добавлено: 15 дек 2016, 00:16
Лас
deathsoft писал(а):
Лас написал(а):

В комплекте с ним было вот это

Видимо немо как и зонов продавал схему отдельно, или вообще не продавал, а только в сервисные мастерские давал.
схема была, на отдельном листе формата а3.

вот нашел схему 2008, правленную Котом:
https://web.archive.org/web/20160912200 … ematic.png

Добавлено: 15 дек 2016, 19:20
deathsoft
Лас писал(а):
вот нашел схему 2008, правленную Котом:
У меня эта же схема, только без правок кота.

Добавлено: 15 дек 2016, 19:30
deathsoft
Тут выяснилась еще одна интересная деталь растактовок развертки ленинградо подобных схем (скорпион/кай):
(структура строк растра на примере кая)

[MB 128T][RB 32T][hblank 32T] (строка 0)
[LB 32T][MB 128T][RB 32T][hblank 32T] (строка 1)
...
[LB 32T][MB 128T][RB 32T][hblank 32T] (строка 55)
[LB 32T][PP 128T][RB 32T][hblank 32T] (строка 56,первая строка paper)

LB - left border
MB - middle border
RB - right border
PP - paper
отсюда становится понятным, почему start of paper считается без учета hblank и левого бордюра (в отличии от пентагона)
на ленинградо подобных схемах за 0 отсчета принят paper, первая строка растра (строка 0) начинается не с hblank и не с левого бордюра, а сразу с бордюра расположенного над paper и это укороченная строка (всего 160 тактов, а не 224).

В пентагоне первая строка растра начинается с hblank, затем идет левый бордюр, средний бордюр и правый бордюр.

Единственное, что пока остается не понятным, почему в kay_demo есть учет еще 16 строк, которые должны быть судя по схеме ДО прихода инта.

Добавлено: 15 дек 2016, 20:12
Лас
deathsoft писал(а):
Тут выяснилась еще одна интересная деталь растактовок развертки ленинградо подобных схем (скорпион/кай):
(структура строк растра на примере кая)

[MB 128T][RB 32T][hblank 32T] (строка 0)
[LB 32T][MB 128T][RB 32T][hblank 32T] (строка 1)
...
[LB 32T][MB 128T][RB 32T][hblank 32T] (строка 55)
[LB 32T][PP 128T][RB 32T][hblank 32T] (строка 56,первая строка paper)

LB - left border
MB - middle border
RB - right border
PP - paper
отсюда становится понятным, почему start of paper считается без учета hblank и левого бордюра (в отличии от пентагона)
на ленинградо подобных схемах за 0 отсчета принят paper, первая строка растра (строка 0) начинается не с hblank и не с левого бордюра, а сразу с бордюра расположенного над paper и это укороченная строка (всего 160 тактов, а не 224).

В пентагоне первая строка растра начинается с hblank, затем идет левый бордюр, средний бордюр и правый бордюр.

Единственное, что пока остается не понятным, почему в kay_demo есть учет еще 16 строк, которые должны быть судя по схеме ДО прихода инта.
Демку для Кая писал по тому же принципу, что и для скорпиона:
основной параметр - 224 такта на строку, N строк до PAPER, одинаковое количество тактов на обе рамки - по 48 тактов, 128 тактов на экран.
Основная ощутимая разница для меня - это то, что в скорпионе проще выравнивать код по тактам было.
Точную информацию по количеству строк до paper я, наверное, получил или от Скутина или от Лапо.
Вполне возможно, что потом просто выравнивал, варьируя параметры вывода.
Короче, кодер не запаривается - при отладке подгоняет по месту, если что-то не срослось. Но, помнится, что на KAY-1024 в Москве, выпущенном ранее, эти клетки работали аналогично, без рассинхронизации.

Добавлено: 16 дек 2016, 16:59
deathsoft
Нашел тут разъяснение от немо по поводу "странной" реализации /INT:
Открытые письма Nemo №4.7
665708 04.08.2000


10. Длительность INT'a - 2 маш команды
(EI) либо 3 маш. команды (DI). Т.е. INT
(его длительность) измеряется в машинных
командах, а не в макросекундах (либо цик-
лах). Поэтому его длительность одинакова
в TURBO/NORMAL, что очень важно. Т.е. та-
кой способ реализации INT'a можно расс-
матривать как специфику TURBO-машин -
иначе софт начнет глючить. Кроме того INT
синхронизирован с процессором. Т.е. он
всегда, везде и во всех KAY'ях одинаков,
чего нельзя сказать о формирователях
INT'а на RC-цепях.

На самом то деле сделано через жопу (но не лишено смысла), немо просто не осилил снимать инт по /IORQ /M1. А на скорпионе в турбе да - инт будет 32такта для частоты 3.5МГц, которые на 7МГц превратятся уже в 64 такта, т.к. длина инта берется со счетчика развертки который не зависит от частоты процессора.

Добавлено: 16 дек 2016, 19:56
deathsoft
Протрассировал по фотографиям пустой платы kay1024 (http://sblive.narod.ru/ZX-Spectrum/KAY- … Y-1024.htm (KAY1024TOP.jpg, KAY1024BOTTOM.jpg)) выводы регистра D53 формирователя /INT, все полностью совпало со схемой. Ясности в дополнительные 16линий это не внесло. Нужен тест kaydemo на реальном kay1024.

Добавлено: 16 дек 2016, 22:11
Лас
deathsoft писал(а):
Протрассировал по фотографиям пустой платы kay1024 (http://sblive.narod.ru/ZX-Spectrum/KAY- … Y-1024.htm (KAY1024TOP.jpg, KAY1024BOTTOM.jpg)) выводы регистра D53 формирователя /INT, все полностью совпало со схемой. Ясности в дополнительные 16линий это не внесло. Нужен тест kaydemo на реальном kay1024.
какого рода тест нужен на реале? на двух каях нормально работало. на моем - питерском, и на другом - московском, который года на 2 старше был.