Просмотр полной версии : Демка Kosi4ka от Manwe на УКНЦ
BlaireCas
16.09.2022, 15:44
Набрался наглости и передрал демку от уважаемого Manwe для показухи на УКНЦ.
Оригинал демки для БК-0010 (исходники там-же) вот тут: https://www.pouet.net/prod.php?which=90339
Она всего 256 байт в оригинале. Участвовала в Demodulation 2021 и заняла 2-е место!
На УКНЦ разумеется вышло чуть иначе. Да уж тут вам не там, вовсе не 256 байт получилось :)
Оверхед из-за кода обвязки на установку экранных строк и прочего. Хотя сам исполняемый код демки остался да почти таким-же.
Еще на самой БКшке демка рисует по 4 пикселя (так там видеопамять сделана).
Здесь-же размер экрана 640х288, но демка крутится в области 512х256 и рисует word-ами по 8 пикселей за раз (и "квадратность" косички вроде как даже сохранена осталась).
Используется основной процессор и демка в 4-х цветах как и на БК-0010 (кажется тут будет анрил синхронизировать второй процессор для получения 8-ми цветов).
Экран пришлось отобразить в обычное ОЗУ по адресам 10000-110000 (32кб пожрало) из-за чего при использовании .sav файла легко "завалить" систему RT-11.
При использовании дискового образа вроде всё окей, по этим адресам там пусто было. И да - я знаю что можно было 32кб зарезервировать в .sav файле, но да черт с ними :)
Исходник:
https://github.com/blairecas/kosich
Для запуска - скачать оттуда либо kosich.dsk (https://raw.githubusercontent.com/blairecas/kosich/master/kosich.dsk) и подключить как системный диск (она в автозапуске).
Либо взять /release/kosich.sav (https://raw.githubusercontent.com/blairecas/kosich/master/release/kosich.sav) и закинуть куда-нибудь к себе.
Проверил на живой УКНЦ, работоспособно, крутится.
https://i.imgur.com/NLqXRc1.png
Не очень понял насколько быстрее/медленнее стало (УКНЦ вроде несмотря на 8МГц процессор может быть и не быстрее БКшки 5МГц).
Нужно будет добавить подсчет FPS попозже.
PS: Очень надеюсь что Manwe не в обиде за тырение его демки :)
Проверил на живой УКНЦ, работоспособно, крутится.
На EmuStudio очень плавно и приятно смотрится. Да, я знаю, что он быстрее реальной УКНЦ.
PS: Очень надеюсь что Manwe не в обиде за тырение его демки :)Наоборот я рад – для того исходники и выкладывал. Спасибо за релиз! Для УКНЦ каждая программа на счету :)
BlaireCas
16.09.2022, 17:46
Добавил счетчик FPS после выхода (сколько-то секунд подождать, нажать кнопку для выхода и покажет).
Добавил видеопамять первого проца (32кб) в основной код .sav-ки чтобы нормально выходила в RT-11 (из-за чего демка из 256-байт разрослась до 36кб ого :)
Реал: 9.72fps
UKNCBTL: 8.76fps (это я и так знал что у него эмуляция основного процессора чуть медленнее, эмуляция периферийного процессора кстати наоборот быстрее)
EMUSTUDIO: 15.39fps
(это конечно если я их верно там считаю плюс у EMUSTUDIO vsync-и идут с частотой рефреша монитора вроде, а не 50Гц и для него расчет точно неверный)
Реал: 9.72fps
Реалы разные, в том числе зависеть может от прогрева реала.
- - - Добавлено - - -
(это конечно если я их верно там считаю плюс у EMUSTUDIO vsync-и идут с частотой рефреша монитора вроде, а не 50Гц и для него расчет точно неверный)
На EmuStudio твое посчитанное число надо умножить на коэффициент равный отношению частоты кадровой развертки монитора пользователя к 50. Т.е. если у пользователя монитор 70Гц, то надо твое число умножить на 70/50=1.4.
BlaireCas
16.09.2022, 18:34
Наоборот я рад – для того исходники и выкладывал.
Очень залипательная демка, учитывая что ее оригинал всего 256 байт. Буквально на днях случайно в ютубе наткнулся на видео демодуляции 2021 и там и увидел.
Заодно узнал что у БК-0010 экранное ОЗУ отображается иначе чем у казалось-бы похожего компьютера. В УКНЦ минимальное квантование это 8 пикселей (слово). В первом байте один цвет, в следующем второй цвет. (а третий цвет вообще у черта на рогах в другом процессоре).
- - - Добавлено - - -
На EmuStudio твое посчитанное число надо умножить на коэффициент равный отношению частоты кадровой развертки монитора пользователя к 50. Т.е. если у пользователя монитор 70Гц, то надо твое число умножить на 70/50=1.4.
Видимо так. Кстати - а есть кнопка "пауза" для EmuStudio? Иногда охота затормозить и разглядеть.
Видимо так. Кстати - а есть кнопка "пауза" для EmuStudio? Иногда охота затормозить и разглядеть.
Есть. Надо схватить мышкой окно за рамку)
randomizer
17.09.2022, 21:44
Реал: 9.72fps
12.23fps
ЦП на 10МГц
BlaireCas
17.09.2022, 23:55
12.23fps
ЦП на 10МГц
Ну огогогого... Поберег-бы технику. Я вообще боюсь иной раз включать, вдруг не включится в очередной раз. Староватые эти микросхемки уже, больше 30 лет ведь. Это как там мол кварцы поменял?
Поберег-бы технику.
УКНЦ наделали столько, что ни время, ни драгметаллисты никак не могут все изничтожить. И на нас, и на потомков хватит.
randomizer
18.09.2022, 13:00
Ну огогогого... Поберег-бы технику. Я вообще боюсь иной раз включать, вдруг не включится в очередной раз. Староватые эти микросхемки уже, больше 30 лет ведь. Это как там мол кварцы поменял?
Так 10МГц - штатная частота, для 1801ВМ2А.
Заменил кварц 8Мгц на десяти мегагерцовый.
Плюс добавил ещё один генератор на 4МГц - эта частота нужна контроллеру дисководов.
До замены кварца, он получал её от ЦП, у него есть выход с тактовой частотой поделённой на 2.
По идее, можно было добавить ещё один генератор на 8МГц, подать эту частоту на ПП, и уже с ножки ПП получить заветные 4МГц.
Надо будет попробовать :)
У меня после нескольких недель работы, в СА, сгорела 1801ВП1-065 разогнанная до 115200бод.
После этого приклеил радиаторы на самые горячие чипы, плюс вентилятор.
Теперь всё холодное.
На старое фото, попали датчики температуры, которые тогда были установлены.
https://i.ibb.co/bHqvL1S/DSC-0569.jpg (https://ibb.co/bHqvL1S)
для 1801ВМ1А
Всё таки 1801ВМ2 :)
randomizer
18.09.2022, 13:31
Всё таки 1801ВМ2
Для меня единственный, т.к. стоит в УКНЦ.
Подзабыл уже, что был процессор и до него, и после :)
BlaireCas
18.09.2022, 14:07
1801ВП1-065 разогнанная до 115200бод
Ого. Ну ты и даешь. Она после перемычек на 57600 уже неплохо так греется.
Возможно тоже надо будет радиаторы какие-нибудь похожие мелкие заказать и налепить (все-ж сейфовее станет). А то палец если прислонить к процессорам, они и так дефолтно нагреваются прилично, и старый радиатор который снизу процессоров на КПТ-8 прилеплен был уже вообщем наверное потерял свои свойства.
Ставить радиаторы сверху ВМ2? Это же бред, там теплопроводность никакая. Между крышкой и кристаллом воздух. Конструкторы УКНЦ поставили пластины где надо - снизу.
Вот ВМ3 уже в корпусе получше, на него можно и нужно лепить радиатор сверху.
BlaireCas
18.09.2022, 14:26
Ставить радиаторы сверху ВМ2? Это же бред, там теплопроводность никакая. Между крышкой и кристаллом воздух. Конструкторы УКНЦ поставили пластины где надо - снизу.
Вот ВМ3 уже в корпусе получше, на него можно и нужно лепить радиатор сверху.
Да ну сам керамический корпус тоже проводит тепло. Должно несколько будет помочь. Придется подточить напильником радиатор (не крышку :) чтобы не мешало. А снизу как без отпайки поставить имхо никак.
Ого. Ну ты и даешь. Она после перемычек на 57600 уже неплохо так греется.Вообще-то, ВП1-065 просто так нехило греется, вне зависимости от частоты, набранной на перемычках. А разогнать ее вдвое - это значит подать ей тактовую 9216 МГц вместо 4608. Тут-то она и дохнет от перегрева...
TomaTLAB
18.09.2022, 18:00
Придется подточить Можно ничего не пилить.
Взять горсть мелких китайских радиаторов для "малинки", или драйверов шаговиков и поналепить их по бокам от крышки. Уже легче станет.
randomizer
18.09.2022, 21:15
Между крышкой и кристаллом воздух.
Крышка тоже в воздухе висит? :)
Плюс радиатор контактирует со всей верхней поверхностью процессора через термопроводящий клей.
Достаточно чтобы радиатор сделать горячим. Не помню только уже значений температуры.
Это же бред
Блин, люблю я всяких умников, которые всегда, с большим энтузиазмом готовы объяснить почему не нужно ничего делать))
Синим - распространение тепла при адекватной установке радиатора. Красным - при неправильной.
https://pic.maxiol.com/images2/1733778141.1401662205.unknown.png
На деле надо было выпаять процессор(ы) и поставить вот примерно такой радиатор. Всё уже придумано до нас.
https://pic.maxiol.com/images2/1733778171.1401662205.unknown.png
Блин, люблю я всяких умников
Вы бы лучше не сомневались в умственных способностях других, а сами делали как надо.
randomizer
19.09.2022, 00:24
а сами делали как надо
Подвергать тепловому и механическому стрессу в нагретом состоянии плату, плату которой 30 лет, и которая не отличается особой стойкостью к подобным воздействиям?
Просто ради того чтобы облегчить тепловой режим?
Это действительно как надо?
Речь не монтаже компонентов в новое устройство, а о наименее инвазивном способе отвести дополнительное тепло, вызванное небольшим повышением тактовой частоты(в рамках паспортных значений).
Еще раз повторюсь, нагрев радиатора до температуры когда субъективно горячо, но палец можно держать, как бы говорит о том, что какое-то количество тепловой энергии всё же передаётся.
Возможно через эфир)
А возможно, просто не надо говорить что это бред?
TomaTLAB
19.09.2022, 01:00
и поставить вот примерно такой радиатор. И толку от него такого не многим более чем от того кусочка алюминия что уже под процессор запихнут.
Он неплохо распределяет тепло от центра корпуса по всей его площади (и выводы, это тоже неплохо делают). Почему бы дополнительно не снять его с верхней поверхности корпуса, если к нижней в собранном устройстве доступа нет.
CodeMaster
19.09.2022, 09:16
А возможно, просто не надо говорить что это бред?
Ребят, заканчивайте мериться, тема вообще-то про демо (на тыртубчик, кстати, её никто не выкладывал?). Обдув, даже без радиаторов, рулит ;-)
BlaireCas
22.09.2022, 10:22
Добавил еще туда демку с расходящимися волнами.
Пока-что цвета не подобраны и кривовато смотрится. Нужно рендер получше сделать.
Но сам код очень маленький (буфера большие, но они нули изначально) и на БКшке можно засунуть в 256-байт демо (возможно такая там уже была, я все их не видел).
https://i.imgur.com/XkQHdGD.gif
буфера большие, но они нули изначально
Давно известная "проблема", которая решается на раз - или с использованием указателей (которые заполняются на этапе инициализации) или - по мне, так более изящно - набором макросов и небольшой процедуры (и я даже где-то приводил пример). Но определённая часть здешнего народа макросы не переваривает ("вы просто не умеете их готовить"), а некоторая считает - я не умею программировать на MACRO-11 (MACRO!!), потому как люблю и активно их использую. Видимо по этому - до сих пор считается, что проблема (выделения места в памяти и не затрачивание места в .SAV) решения не имеет :) Ну ну :)
BlaireCas
22.09.2022, 10:36
до сих пор считается, что проблема (выделения места в памяти и не затрачивание места в .SAV) решения не имеет
Ну я не настолько крут :) Для меня да, проще клепануть .blkb 100000 ^_^ (знаю ага..)
И конечно на УКНЦ не сделать .sav размером 256 байт (эээ.. RT-11 кажется не позволит). Поэтому здесь не вижу смысла гнаться за размером. Плюс на УКНЦ очень много жрет "обвязка" в периферийном процессоре. Тут просто как примеры кусков кода.
проще клепануть .blkb 100000
Как вариант (по идее, должно сработать, но проверить смогу только вечером)
.PSECT CODE ; здесь в принципе весь код и данные, которые не нулевые
...
.PSECT ZZZZZZ, D ; а здесь ячейки пустышки
BEGIN:
VAR1=: BEGIN ; одно слово
VAR2=: BEGIN+2 ; четыре байта
VAR3=: BEGIN+2+4 ; много... слов (40000) или байт (100000)
VAR4=: BEGIN+2+4+100000 ; ну и эта ячейка сколько то занимает байт :)
Макросы позволяют избежать странных последних о
- - - Добавлено - - -
И как оно выглядит с моими макросами:
$VIRT
V.BLKW AREA 5
V.BLKW FSIZE 3
V.BLKW FLAGS
WF$PACK = ^O<1> ; ФЛАГ ВИДА РАБОТЫ
; (0 - РАСПКОВКА, 1 - УПАКОВКА)
V.BLKW ELDEST REST
V.BLKW ELD NCODES
V.BLKB CHARS REST
V.BLKB CHAR NCODES
V.EVEN
V.BLKW PARENT SZOFTR
V.BLKW RPRSNT SZOFTR
V.BLKW LLIMIT
V.BLKW RLIMIT
V.BLKW WGHT REST*2
V.BLKW PROB NCODES*2 ; Probability
BlaireCas
22.09.2022, 11:36
по идее, должно сработать
Оно сработает разумеется если по тем адресам ничего важного нет. Например "пустая" RT-11 в которую влезет 48 килобайт допустим с адреса 1000 без последствий.
.sav действительно будет маленьким, но полноценно выйти в систему из него возможно не получится уже.
Оно сработает разумеется если по тем адресам ничего важного нет.
Поэтому и были использованы макросы и процедура инициализации всего этого виртуального адресного пространства - где она а) пытается получить нужный объём памяти (с сообщением об ошибке - если не шмагла) и б) обнуляет этот блок памяти. Ну и сама процедура (кроме блока обнуления, но он буквально три команды) живет в этом виртульном пространстве :) Так что всё продумано :)
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot