Времянки UnrealSpeccy для KAY
Как ты это себе представляешь, ну хорошо, прощелкай в анриле до первого оута вот и узнаешь где хотели начинать бордер, такты то от инта будут показаны.deathsoft писал(а):
Да мне интересно какие там на реале задержки рассчитаны и я их хочу с моделированием схемы сравнить, а не с той херней которую надо в унриал вбивать. Я хочу посмотреть как надо исправить унриал чтобы в нем указывать числа соответствующие схеме, а не подогнанные под непонятно что.
Так что выяснили по схеме, 16+(16+40)+192+48. Не понятно когда приходит инт, на это две причины. Первая ебнутая цепочка через сдвиг по m1 и вторая ,я так понимаю, не понятная связь с КС ( когда с точностью до пикселя относительно СС он начинается). По деме это точнее чем есть не выяснить, нет там такого, ну либо я вообще ничего в этом не понимаю.
На деме кстати скрин заглушкиdeathsoft писал(а):
Вот дема для скорпиона http://zxaaa.net/view_demo.php?id=5847
ну у себя я для теста делал вот такую программу:
в 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]
в 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]
Посмотри функцию video_timing_tables() и update_screen() в draw.cpp они отвечают за потактовое рисование на бордере и экране.
http://rgho.st/7jQ9dtqMT (вот тут я сам комментарии дописывал, у SMT там черт ногу сломит, никаких комментов не было).Отредактировано deathsoft (2016-12-13 23:30:21)
http://rgho.st/7jQ9dtqMT (вот тут я сам комментарии дописывал, у SMT там черт ногу сломит, никаких комментов не было).Отредактировано deathsoft (2016-12-13 23:30:21)
При рисовании используется таблица отрезков экрана (которая фрагментам строк экрана (по тактам) сопоставляет 3 видео режима):
0 - нерисуемая часть
1 - бордер
2 - paper
каждый отрезок имеет такт начала и такт конца и самое главное - указатель на место в промежуточном видеобуфере в котором строится изображение.
последний отрезок помечается спец маркером конца списка отрезков.Отредактировано deathsoft (2016-12-13 23:38:48)
0 - нерисуемая часть
1 - бордер
2 - paper
каждый отрезок имеет такт начала и такт конца и самое главное - указатель на место в промежуточном видеобуфере в котором строится изображение.
последний отрезок помечается спец маркером конца списка отрезков.Отредактировано deathsoft (2016-12-13 23:38:48)
Ну так чтобы понять правильно ли я понял. video заполняется разными типами областей. Буфер заполянется спековскими байтами (пиксели + атрибуты) до текущего такта перед каждой записью в экран или в fe или щелчком экрана. В буфере хранятся и экран и бордер. Где там проверка на 4т бордер нифига не понял, поэтому и думаю что мне как до луны.
- Лас
- Сообщения: 636
- Зарегистрирован: 31 июл 2016, 00:00
- Откуда: пос. Полярный, ЯНАО
- Контактная информация:
Так эту демку тоже я делал, вечерами дома у друга. Своего скорпиона не было.deathsoft писал(а):
Вот дема для скорпиона http://zxaaa.net/view_demo.php?id=5847
Делал на желтом скорпе с вэйтами
Монитор электроника, бордер = small.
Днем дома на бумажке посчитал, вечером набил
Потом отлаживал.
Ностальгирующий рукожоп
Лас, а кай на котором писалась kay_demo был без доработок инта? А то такое впечатление, что там инт пытались на пентагоновский переделать. Т.к. в start of paper учитываются 16 невидимых строк, которые в кае (в соответствии со схемой) должны быть в конце кадра, а при приходе инта должны быть сразу 56 видимых строк бордюра.
- Лас
- Сообщения: 636
- Зарегистрирован: 31 июл 2016, 00:00
- Откуда: пос. Полярный, ЯНАО
- Контактная информация:
без доработок, серийный KAY-1024deathsoft писал(а):
Лас, а кай на котором писалась kay_demo был без доработок инта? А то такое впечатление, что там инт пытались на пентагоновский переделать. Т.к. в start of paper учитываются 16 невидимых строк, которые в кае (в соответствии со схемой) должны быть в конце кадра, а при приходе инта должны быть сразу 56 видимых строк бордюра.
Ностальгирующий рукожоп
- Лас
- Сообщения: 636
- Зарегистрирован: 31 июл 2016, 00:00
- Откуда: пос. Полярный, ЯНАО
- Контактная информация:
В комплекте с ним было вот это, 1999 год: http://zxpress.ru/book.php?id=108deathsoft писал(а):
А схема которая с ним в комплекте шла не осталось? Та схема которая у меня датирована 19.01.2000. Возможно есть разные версии схем.
http://zxpress.ru/books_files/KAY1024.ZIP
P.S. принципиальной схемы КАЯ в этой книжке - нет.Отредактировано Лас (2016-12-14 19:46:12)
Ностальгирующий рукожоп
- Лас
- Сообщения: 636
- Зарегистрирован: 31 июл 2016, 00:00
- Откуда: пос. Полярный, ЯНАО
- Контактная информация:
схема была, на отдельном листе формата а3.deathsoft писал(а):
Лас написал(а):
В комплекте с ним было вот это
Видимо немо как и зонов продавал схему отдельно, или вообще не продавал, а только в сервисные мастерские давал.
вот нашел схему 2008, правленную Котом:
https://web.archive.org/web/20160912200 … ematic.png
Ностальгирующий рукожоп
Тут выяснилась еще одна интересная деталь растактовок развертки ленинградо подобных схем (скорпион/кай):
(структура строк растра на примере кая)
[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 строк, которые должны быть судя по схеме ДО прихода инта.
(структура строк растра на примере кая)
[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 строк, которые должны быть судя по схеме ДО прихода инта.
- Лас
- Сообщения: 636
- Зарегистрирован: 31 июл 2016, 00:00
- Откуда: пос. Полярный, ЯНАО
- Контактная информация:
Демку для Кая писал по тому же принципу, что и для скорпиона: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 в Москве, выпущенном ранее, эти клетки работали аналогично, без рассинхронизации.
Ностальгирующий рукожоп
Нашел тут разъяснение от немо по поводу "странной" реализации /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 такта, т.к. длина инта берется со счетчика развертки который не зависит от частоты процессора.
Открытые письма 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 такта, т.к. длина инта берется со счетчика развертки который не зависит от частоты процессора.
Протрассировал по фотографиям пустой платы kay1024 (http://sblive.narod.ru/ZX-Spectrum/KAY- … Y-1024.htm (KAY1024TOP.jpg, KAY1024BOTTOM.jpg)) выводы регистра D53 формирователя /INT, все полностью совпало со схемой. Ясности в дополнительные 16линий это не внесло. Нужен тест kaydemo на реальном kay1024.
- Лас
- Сообщения: 636
- Зарегистрирован: 31 июл 2016, 00:00
- Откуда: пос. Полярный, ЯНАО
- Контактная информация:
какого рода тест нужен на реале? на двух каях нормально работало. на моем - питерском, и на другом - московском, который года на 2 старше был.deathsoft писал(а):
Протрассировал по фотографиям пустой платы kay1024 (http://sblive.narod.ru/ZX-Spectrum/KAY- … Y-1024.htm (KAY1024TOP.jpg, KAY1024BOTTOM.jpg)) выводы регистра D53 формирователя /INT, все полностью совпало со схемой. Ясности в дополнительные 16линий это не внесло. Нужен тест kaydemo на реальном kay1024.
Ностальгирующий рукожоп