Pull to refresh
82
1.7
Send message

@Regnar, навеяло статьёй

Свалился на меня «последний из 32-битных могикан», но машинка прямо финал возможностей архитектуры — насколько я понял, видит спокойно 8 гигов рамы (PAE во все поля?), слотов не пожалели, в общем, в такое чудо бы камень хотя бы на 2 ядра, но, увы…

Я его практически не смотрел ещё и ХЗ когда посмотрю (вроде не совсем мёртвая), но превентивно задам вопрос. Допустим, поставил я туда 32-битный BunsenLabs. Допустим, я хочу запустить какое-нибудь 64-битное приложение, которое в 32 битах давно уже не обновляется. Допустим, мне пофиг, что там в плане скорости (очень важное допущение, потому что оно как бы понятно, что там будет).

Насколько это реально — настроить для него резервативию… презервацию… короче, специально обученный загон с софтовой эмуляцией 64 бит? Существуют ли решения? Чтобы их установить и отконфигурировать, обязательно пройти все круги ада, как в той статье?

Практического смысла это по понятной причине не несёт — просто пятничное.

Tags:
-2
Comments0

…и ещё немного пятничного наброшу, если не возражаете.

Не без помощи @TonnyRed, который явно на два порядка лучше меня разбирается в АКПП, эта бредятинка обрела более-менее реализуемые черты. Если в этот раз в этом есть смысл, можете считать его соавтором. Если совсем чушь — он не виноват, это всё я.

1) Постановка задачи: добавить к МКПП ограниченные возможности по плавному преобразованию оборотов в крутящий момент с тем, чтобы покрыть ими самые актуальные для АКПП ситуации: «ползём по пробке битый час», «паркуемся задом вверх по склону с зазором 10 см и поворотом», «раскачиваем машину в грязи, стараясь не дать колесу провернуться». В общем, все те, где меньше всего хочется играть сцеплением, ловя нужную степень. Не нарушить обычную работу МКПП. Не спрашивать, нахуа.

2) Решение: в обычную МКПП добавляем второй ведущий вал, связываем его с первым через «гидробублик», который, как говорит Википедия, «сочетает свойства гидромуфты и гидротрансформатора», то есть может на малых оборотах не просто пробуксовывать (как гидромуфта или обычное сцепление), а ещё и преобразовывать это в крутящий момент (как говорит Википедия, до трёхкратного, что весьма немало). Только «бублик», без всяких планетарок и прочего, входящего в состав АКПП. На этот второй ведущий вал переносим шестерни первой и задней передачи. Увеличиваем их примерно раза в три.

3) Работа: аналогично обычной МКПП. Сцепление выжали, передачу включили/переключили, сцепление отпустили. Оба вала уже после сцепления, поэтому они отцепляются вместе (правда, потребуется какой-то особо суровый синхронизатор, потому что «бублик» сильно больше весит, чем голый вал, иначе получим «и хрюкотали ЗиЛюки»). В принципе, большой разницы нет, что на том валу, что на этом, в любом случае мы включили передачу и можем ехать. Но если это одна из тех передач, которые берутся с «гидровала» — у нас есть возможность, не выключая сцепления, плавно трогаться и останавливаться (за счёт проворота «гидробублика» на малых оборотах), а также развивать нормальный для этих передач крутящий на выходе (когда обороты двигателя большие, а выходной вал заторможен массой автомобиля и обороты ещё не набрал), ну и до кучи (что на обычной механике по понятной причине не получится) — разгоняться до типичных для третьей передачи скоростей (когда «бублик» «переходит из режима гидротрансформатора в режим гидромуфты» © та же Википедия). Не то что бы это было сильно нужно, вторую-то никто не отменял, но когда-то и удобно может быть…

Особенно приятно, что теперь оно дружится с вот этим вот и избавилось от лишних сущностей типа «заодно раздатка» (как и обычная механика). Делаем на руль рычажок и включаем круиз-режим, когда электрика пытается противостоять любому изменению скорости (в обычном режиме она отслеживает педаль газа и помогает, наоборот, эту самую скорость изменить. Даже если двигатель вообще остановлен и мы на нейтрали едем чисто на электрике, в той же пробке, например). В круиз-режиме же (сбрасывается тем же рычажком или нажатием тормоза) можно завысить передачу и ехать в режиме «газ — это выключатель» (на малокубатурном моте разница в КПД за счёт более полного использования сжатия составила «изрядно не доехал до Ярославля на полном баке»/«проехал километров 50 за Ярославль на полном баке», такой вот цикл Отто). Втопили газ — а электрика разогнаться не даёт, заряжает суперконденсатор, а потом и аккумулятор. Отпустили — а она не даёт потерять скорость. Обычный гибрид в его лучшем виде, но ещё и с ручной оценкой «а с каким зарядом аккумулятора я хочу миновать Пушкино, если мне неделю потом никуда не ехать». Плюс подключение мозга к процессу оценки устойчивости машины в данной дорожной ситуации при данном положении педали газа, когда «одни тащат, другие тормозят». В общем, есть где позадрач развернуться.

—————————————————————————————————

ЗЫ: чтобы два раза не ходить. Что господа физики думают про судьбу нейтрона? Чем может отличаться взаимодействие W-бозонов в разных постановках эксперимента? Может, в них дело?

Tags:
0
Comments5

Поставлю-ка я это на автопубликацию, чтобы к утру пятницы было.

Задумался я, а какие креативные альтернативы минутной стрелке придумывало человеческое безумие? Какие могло бы придумать? Какая-нибудь система зеркал, чтобы часовая двигалась сама по себе, а переотражённый лучик мотался вокруг в 12 раз быстрее, образуя минутную стрелку?

Мне в голову пришёл только нониус. Его я и отрендерил лютым дерьмокодом, чтобы посмотреть, как это могло бы выглядеть.

Ускорено в 60 с лишним (или нет, зависит от тормозов) раз.
Ускорено в 60 с лишним (или нет, зависит от тормозов) раз.

Не подумайте дурного, это не секунды и единственная минутная стрелка! Это часовая стрелка (точнее, часовой круг) и минуты в виде нониуса. Я их просто ускорил практически до секундной, плюс-минус возможные тормоза, чтобы можно было (не рехнувшись от скуки) пронаблюдать, как это чудище показывает разные значения времени. Ускорил бы ещё сильнее, но так есть хотя бы шанс попытаться прочитать нониус «на лету», не делая скриншотов.

Я честно проверил — смотрел рандомный кадр, определял время и потом смотрел название кадра (оно у меня было, до того, как собрал их в гифку). Таки работает! Только надо помнить, что маленьких делений не 5, а 6. Потому, что это не минуты для минутной стрелки. Это — десятиминутия для часовой. То есть их не 60 на всём круге, а 72, ибо 12 часов по 60 минут, разделить на десять. А единицы минут — на нониусе.

Можно, конечно, сделать менее садомазохистский вариант шкалы, но там точность уже будет до пяти минут, потому что круги будут разбиты одинаково — часовой на 12 часов и минутный на 12 «пятиминутий». И будут постоянно подводить рефлексы, потому что на автомате хочется интерпретировать совпадающие деления шкалы как показания минутной стрелки (то есть читать их от верхней точки, она же — «12 часов», она же — «0 минут»). А они таки нониус! И читать их надо от текущего положения часовой стрелки. Камень я не дам этот вариант я рендерить не буду.

Поскольку в реале часовая стрелка не носится с такой скоростью, есть достаточно времени, чтобы перевести взгляд со шкалы на нониус и прочитать минуты. Желающие могут попробовать вырезать из чёрного картона (или не картона, хаб добавил не просто так) сей девайс и подсветить изнутри светодиодами, если хочется соригинальничать и повесить у себя дома часы, по которым не всякий с первой попытки определит время :) Хотя, конечно, определённые требования к размеру циферблата и остроте зрения этот креатифффф предъявляет.

Tags:
+12
Comments9

Держите порцию пятничного бреда: что, если скрестить механическую коробку и примитивный гидравлический автомат, обеспечивающий нормальную работу только на малых скоростях (упростив его за счёт этого), и прицепить его на место первой и обратной передач?

Следите за руками: там, где удобнее автомат (трогание в сложных условиях, раскачка в грязи, ползание отрезками в пробке) — врубаем «первую» (реально где-то до третьей) и едем, не насилуя сцепление и имеем все преимущества «плавного» преобразования. В нормальных условиях — перещёлкиваем на вторую и далее, имея все плюсы полного ручного контроля и плюсы по КПД (для того, чтобы оптимально выбрать передачу, нужно, как правило, знать будущее хотя бы на пол-километра вперёд, что определённым образом ограничивает возможности автоматики).

А поскольку автомат надо отцеплять от вала с обеих сторон (чтобы механика его «за хвост» не крутила) — можно заодно и придать ему функцию раздатки, ну, раз всё равно сцепные муфты ставить. Наши «первая» и «задняя» выходят на все четыре, раз уж мы всё равно собираемся пользоваться ими на малой скорости в лужах и ямах, а механика, работающая в условиях чистой дороги и экономии топлива — только на один мост с обычным дифференциалом (второй можно сделать с каким-нибудь необычным, чтобы гребли два от этого моста и как минимум одно от обычного).

Всё это пятничная чушь и пища для инженерных паззлов, конечно. Чисто поломать для развлечения голову «а как бы я это всё вписал в конструкцию». В наше время намного больше смысла в установке двух рекуперативных мотор-колёс вместо вторых обычных колёс (которые не ведущие). А если хочется оптимального ручного контроля (и заодно почувствовать себя пилотом «Сопвича», следящим за ста приборами одновременно) — такой гибрид с рекуперацией даёт в этом плане чуть ли не больше возможностей, чем любая механика (особенно если он с этой самой механикой и совмещён, и дважды особенно — на малокубатурных движках, которые и без электрики-то по жизни работают с полным сжатием, потому что находятся или в состоянии ХХ, или в состоянии «тапка в пол», без промежуточных значений, а уж если лишнее/недостающее берётся с мотор-колёс, то они вообще в своей стихии).

ЗЫ: добавил хаб «гаджеты», потому что вот. Не то что бы прямо в формате «гаджета», но в формате устанавливаемой опции-то уж точно.

ЗЫЫ: а что будет, если перевести классический мускулокар 60-х/70-х на пропан? Запас по мощности у него дикий, мы ничего особо не потеряем. А что мы получим в плюс? Цену за км? Возможность вписаться в современные экологические нормы?

Короче, всем пятницы :)

Tags:
Total votes 1: ↑1 and ↓0+1
Comments11

@SystemSoft, вот если бы вы пришли к какому-то общему знаменателю в вопросах API c этой темой, глядишь, новая открытая платформа бы появилась…

Я бы вот прямо сам бы покодил под такие микро-игрушки (если бы сговорились на Си) :)

Чёрт, прямо обидно, что оскверняю супер-пятницу недостаточной абсурдностью мысли. Была с утра идейка предложить новый форм-фактор ATX-корпуса, но нет сил сейчас делать технический рисунок :(

Tags:
Total votes 2: ↑1 and ↓10
Comments1

А что б не вспомнить такой носитель данных, как перфолента?

Вот смотрите: допустим, 5 мкм лавсан, потом 1 мкм алюминий и снова 5 мкм лавсан. УФ-лазер с механическим приводом перфорирует поперёк ленты дорожки с шагом, скажем, тот же 1 мкм (УФ может и лучше, но пока не будем пальцы гнуть). Поскольку механика позиционирует луч с точностью до «куда-то туда» — применяем старые добрые старт- и стоп-биты.

На ленте шириной в 5 мм мы легко пробьём 4096 бит, старты, стопы и ещё останется запас с краёв. А чтобы прочитать её значительно быстрее, чем мы это макраме вымучивали — берём линейную ПЗС-матрицу от сканера (разрешение 1×16384 или примерно того порядка), сканируем всю ширину ленты разом, ну и (ваш Кэп) просто её протягиваем. Перекосы головки чтения относительно головки записи решаются кольцевым буфером — там хранится несколько последних строчек и нет никаких проблем найти там реальное положение дорожек, я такие синхронизации за пучок пятачок делал, задача детская.

В результате наши 4 килобита на микрон дают 512 терабайт в габаритах кассеты C-90, минус Рид-Соломон. Если я, конечно, по причине крайней усталости в нулях не запутался. Вот такая вот перфоленточка…

Tags:
Total votes 2: ↑2 and ↓0+3
Comments21

Провалявшись в мангале почти две недели, silnie raspiedrony akumulator так и остался на 3.8В, давление как будто немного повысилось — но это можно легко списать на жару.

Такая вот электрохимическая загадка.

Tags:
Total votes 3: ↑2 and ↓1+1
Comments0

BREAKING NEWS! Akumulator raspiedriło.

Silnie raspiedrony akumulator został znaleziony wczoraj.
Silnie raspiedrony akumulator został znaleziony wczoraj.

Не, ну не вчера, а неделю с лишним назад уж, поди. Но для красного словца…

В общем, прибираюсь на столе, беру древний планшет, который недавно очень всех выручил в качестве запасной электронной книжки, а в упаковке что-то щёлкает… Открываю — о курва! Аккумулятор «распедрило», да так распедрило, что он просто вскрыл корпус! Видимо, одна из последних державшихся защёлок и издала этот звук.

Сильно распедренный аккумулятор имеет интересное обозначение 3.7V — это не те ли модные «полимерные аккумуляторы с более высоким рабочим напряжением и итоговой эффективной ёмкостью»? Что-то подобное у меня случилось в GPD Win 1, кстати говоря. Но там обозначения не помню, как бы не 3.75 было написано. В общем, всё сложно у них с химией. Сложно и страшновато.

Предыстория у них примерно одинаковая: эксплуатировались до заметной просадки в ёмкости (этот — вообще «до потери пульса»), затем были брошены недозаряженными и дошли за счёт саморазряда до глубокого разряда. Именно в стадии глубокого разряда и начался педрёж.

«Ещё более третий», чем эти два, аккумулятор (из телефона, тоже брошенного без регулярной подзарядки) был когда-то, из чистого любопытства, с осторожностью заряжен от внешнего контроллера и повёл себя довольно-таки удивительно: послушно скукожился обратно (процесс занял пару месяцев, то ли микро-утечки, то ли отработал положенное какой-то катализатор), начал держать какие-то остатки ёмкости и вообще показал себя как потенциальный аккум для фонарика (если бы не было страшно им теперь пользоваться вообще). По второму разу его уже не педрит.

Решив повторить эксперимент, я запер аккумулятор в специально обученный стальной чан и стал заряжать (забыв измерить напряжение до начала, и горько об этом жалея — самое интересное ведь!) Однако, напряжение так и не стабилизировалось. Плата истерически замигала красным и синим, указывая на то, что аккумулятор постоянно теряет заряд сам по себе и его требуется подзаряжать примерно два раза в секунду (пусть и крошечными импульсами, но ведь требуется же!) Отключив плату, я продержал его где-то с полсуток и убедился, что саморазряд заканчивается где-то на 3.8 вольта, после чего напряжение более-менее держится.

Почти неделю повторяя это, я с удивлением обнаружил, что аккумулятор стабилизировался в своём новом качестве — в качестве подушки на 3.8 В. Эксперимент предварительно закончен, аккумулятор возложен в специально обученный кулёк и водворён в хорошо изолированный от всего горючего мангал (нет, буквально мангал!), а ещё через пару дней надо бы проверить — пошёл ли саморазряд ещё дальше 3.8 В (просто медленнее, поэтому выглядит стабильно) и не распедрило ли его ещё сильнее. Если он решит там всё-таки садануть от души — это его половые трудности, в мангале-то. У него даже возможности выскочить на реактивной струе оттуда нет, даже если он в итоге «пукнется».

Но всё-таки вопрос возник напряжённый: почему некоторые, особенно старые, работают до полной потери ёмкости (которая асимптотически приближается к нулю и даже хуже — к ёмкости никель-кадмиевого равного размера, которая отрицательна, лол), а некоторые — так и норовят пукнуться с фейерверком? Вариаций химии там море, Википедия не даст соврать. Как понять, какой аккумулятор будет педрить, а какой — нет? О LiFePO4 и LTO речь вообще не идёт, с ними всё ясно, их дед бил-бил — не разбил, баба била-била — не разбила, NASA били-били — и сертифицировали для космонавтики, а вот что обстоит с вариациями на тему «уже сегодня в вашем мобильнике»?

Tags:
Total votes 11: ↑10 and ↓1+12
Comments10
Как можно видеть, строки 5 и 6 используют вдобавок уменьшенный интервал.
Как можно видеть, строки 5 и 6 используют вдобавок уменьшенный интервал.

Была даже абсолютно безумная мысль замутить электронную книжку на таком вот сегментном принципе, но не знаю, что меня больше останавливает: глазоломность шрифта или перспектива паять около 10 000 светодиодов в размере 0402 (или хотя бы 0603).

ЗЫ: добавил «ненормальное программирование» просто потому, что оно напрашивается сначала в эмуляции погонять и оценить степень невыносимости такого шрифта.

Tags:
Total votes 10: ↑10 and ↓0+14
Comments3

Частично переписал рейкаст по Брезенхему-Доку (нет, ну правда, «колесо пред-рассчитанных лучей» от @Swamp_Dokдало прямо роскошный буст к скорости) под чистые 8 бит старого доброго 6502-го.

Всё, как и обещал в камменте: 16 бит в первом приближении как бы не быстрее 8 бит, потому что выковыривать нибблы из байта на процессоре, который даже сместить на 4 бита одной командой не может (надо использовать 4 сдвига на 1 бит) — такое себе, а в этих 16 битах старший и младший байты живут в основном самостоятельными жизнями, довольно редко взаимодействуя в переносе (что ещё больше углубляет мой восторг от гениальности алгоритма «Брезентыча», если это вообще возможно). Я уже мысленно собрал уровни из тех замечательных крошек-чанков 16х16 клеточек и даже продумал, как бы нам хранить в одном байте 4 клетки, чтобы пореже из памяти тянуть (итого 2 бита на клетку — пустота, стенка, первый моб и второй моб из двух возможных на один чанк), да и даже как именно нам связывать такие чанки, как анимировать переходы и т. д, но, судя по всему — не пригодится. Не похоже, чтобы было где хранить данные для повторного использования, не похоже, чтобы можно было быстро вытащить нужные биты.

Разберу сейчас подробно один из 8 вариантов ветвления (раньше было два — шаг по X, смещение по Y и наоборот, а сейчас добавились ещё и варианты для разных знаков шага и смещения, ибо индивидуальная обработка каждого случая позволяет ещё кучу тактов сэкономить). Самый простой вариант — первый, X и все в плюс.

Дам этот кейс скрином, ибо.
Дам этот кейс скрином, ибо.

Координаты игрока мы храним нормальными 16-битными, 8 бит на номер клетки и 8 бит на координаты в ней. Работать с ними мы будем один раз — в рамках физики. Для рейкаста они нужны отдельно в виде старшего байта, отдельно в виде младшего. Три из них мы видим в трёх верхних строчках, где они копируются в координаты луча. Четвёртая — чуть ниже, где BrezToStart вычисляется «по-старинке», там я ещё не изжил пекашный код. Зато смещение мы берём (четвёртая строчка) уже из «колеса», расчётов — ноль!

Дальше мы видим, что предыдущее значение координаты смещения стало 8-битным. Дело в том, что нам не нужно значение клетки — мы его и так знаем. А вот пиксельное значение — запомнили.

Дальше мы делаем 8-битное сложение. Первая величина — младший байт координаты смещения POS PIX, вторая — (long)BrezToStart*(long)RayDY/RayDX. Её я тоже пока вычисляю явно — но она, несомненно, напрашивается на табличное представление. В результате имеем новый POS PIX и флаг переноса.

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

Проверка памяти требует вычислить довольно длинный адрес. Тут я хочу пойти на грязный хак: возможно, сделать карту [32][256], чтобы ничего не умножать на 64, и старший байт писать прямо в код, в тело инструкции LDA. Кармак в Wolf3D, помнится, раздухарился ещё жёстче… да, хранение переменной прямо в коде, да ещё в 4 разных местах — тоже потребует копирования её туда-сюда. Но после входа в «основной цикл шагания» обратно мы уже не возвращаемся — возможно, я придумаю способ держать её и в коде, и в одном экземпляре. Это позволит проверять карту простым LDA $DEAD, X (где X — вторая координата, которая до 256, а вместо $DEAD мы подкидываем нашу переменную, в case 0 это будет POS CELL, которая меняется от адреса карты до него же плюс 32<<8). Хотя, возможно, через Indirect я это сделаю ещё быстрее! Не попробуешь — не узнаешь, собственно, почему я и «подсел» на эту задачу. Никакие Factorio рядом не валялись :)

Функция AddToZBuffer8Bit тоже демонстративно отрицает 16-битное суммирование — фишка в том, что переносов там не возникает! Поэтому все аргументы вычисляются через 8-битные суммы.

Ну, и косые стенки я убрал, а смещение всей сцены на доли тайла — вернул. Надо какой-то шлем там нарисовать, который «не успевает за мышкой» :) Тогда можно рефрешить рендер «через кадр», пусть дёргается вместе со статусбаром — типа фича :)

Tags:
Total votes 4: ↑4 and ↓0+6
Comments16
, отчитываюсь: дыня серебристая «армянский огурец» на эхиноцистис — 2 из 2-х ОК. Снизу она, сверху — арбуз, «нервных огурцов» на отдельное жилище каждому не хватило.
@Demosfen, отчитываюсь: дыня серебристая «армянский огурец» на эхиноцистис — 2 из 2-х ОК. Снизу она, сверху — арбуз, «нервных огурцов» на отдельное жилище каждому не хватило.

Второй эксперимент фотографировать не стал, но там то же самое. Неделя, полёт нормальный. Развивается не особо быстро, но я её привил ещё до того, как семечко покровы сбросило. Да и арбуз сверху что-то на себя отжирает, конечно.

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

Надрезал, срезал, приложил к мясистой стенке стебля, стараясь, чтобы не провалилось в полость, а прижалось косым срезом именно «к мясу». Судя по промежуточному результату — таки прижалось.

Первые эксперименты уже переросли настолько, что чуть ли не цвести собираются, а на дворе пока только апрель начался. Поэтому я и не особо рассчитывал на что-то, кроме эксперимента как такового. Да и сорта арбузов там «что за столом выплюнул», никак не связанное со средней полосой.

Дыня, которая просто дыня — у меня тоже как-то больше похожа на труп.

Итого можно сказать, что удалось «запрячь» это похабное инвазивное растение в какую-то полезную деятельность. Ещё бы научиться на корне борщевика кориандр выращивать — вообще супер было бы :)

Tags:
Total votes 3: ↑3 and ↓0+5
Comments2

Интересно, до какой скорости можно разогнать 6502-е ядро с современными технологиями?

Допустим, у нас есть чиплет «6502 + 64К SRAM», выполненный в максимально быстром исполнении, вплоть до экзотики типа арсенида галлия (ядро проектировали не дураки и уложились в три с половиной тысячи транзисторов, что тогда было немало для кремния, а сейчас — для арсенида галлия тоже, насколько я знаю, очень до фига).

…и есть несколько кремниевых чиплетов с умножителем, DRAM и прочей веселухой. Или даже один кремниевый чиплет с этим всем, плюс с бутлоадером, который прогружает наши 64К с некоего SPI и после этого снимает с 6502-го ресет.

Собираем их в микросборку, цепляем к портам 6502-го, которые замаплены в ключевые адреса его крошечной памяти.

Команды 6502-го выполняются фиксированное время, причём довольно небольшое (в тактах. А арсенид галлия этих тактов нам даёт не просто много, а очень много). Пульнул той же DDR указание, занимается своими делами, через некоторое время прочитал от неё ответ. Мы с точностью до команды знаем, когда за ним лезть в порт.

Фактически мы получаем, что у нас в SRAM крутится микрокод. Но мы имеем к нему полный доступ и можем напихать туда команд типа «логарифм по основанию ква с половинкой кря и ограничением результата от гага до муму», смотря какие мы там нейросети, графоний или обработку звука мы там делаем.

Ну то есть в камментах я такое уже высказывал, но тут мне именно сама архитектура больно шибко зашла. Там даже система команд просто кричит — «сделайте на мне движок микрокода!!!»

Вопрос, правда, в количестве транзисторов в GaAs. SRAM шибко большая, но там за единицу времени переключается только одна ячейка, а остальные спят сном праведника. А вот три с половиной тысячи ключей самого 6502-го могут выдать огоньку, превышающего возможности технологии. Тут я не шибко великий технолог по чипам, увы.

Tags:
Total votes 3: ↑3 and ↓0+5
Comments7

Ну вот, в очередной раз напророчил, блин.

Три года уже с того моего видео, что процессорная плата и материнская — должны быть разными сущностями. Или даже не три, лень точно смотреть, а «Труба» люто округляет даты.

Вот и дожили до дня, когда AMD на вопрос о съёмной оперативной памяти отвечает — «невозможно, слишком длинные линии получаются».

Если бы процессор вставлялся в сокет на процессорной плате, а она бы втыкалась в материнку руткомплексом экспресса — этой проблемы бы не было. Сокет практически не удлиняет линий процессора, а процессорная плата с распаянной памятью — по сути тот же SODIMM, но с произвольной разводкой и поэтому не страдающий от лишней длины линий.

Не суть важно, вынуть старый (или сдохший) SODIMM из материнки — или вынуть из него процессор и переставить в новый, большой и живой.

А вот следующий шаг, который надо сделать — и который опять никто не сделает. Посмотрим ещё через три года, как я снова был прав, но рыночек снова порешал по самому тупому и деструктивному пути.

Всё стало плохо в тот момент, когда айтишники стали плыть по течению, как простые потребители.

Tags:
Total votes 3: ↑2 and ↓1+4
Comments0
Я отмоделировал на выходных, как должен смотреться «Вольф на Денди».
Я отмоделировал на выходных, как должен смотреться «Вольф на Денди».

Я сделяль. Ну как «отмоделировал» — ну, так, плюс-минус. Но в целом — да, из тайлов 32×30, часть которых имеет скошенные углы, можно сложить вполне играбельный шутер. Основной адресат, конечно, @Swamp_Dok— но побегать-поглядеть приглашаются все желающие, ибо появилось наконец где побегать и на что поглядеть.

Досбокс кладёт наглухо — код «буквально-учебно-школьный», оптимизации ровно ноль. Чтобы лучше читалось, ага. Так что если оська в принципе не умеет в DOS16 — будет пошаговая стратегия :(

Я б не стал это делать под DOS16, но просто это не проект-самоцель, а ответвление «по-быстрому» от другого проекта, чисто любопытство удовлетворить. Поэтому так уж вышло. Заранее пардон всем тем, кому я любопытство раззадорил, а побегать не дал.

Tags:
Total votes 5: ↑5 and ↓0+9
Comments27

@Demosfen, скажите, это считается за хорошую, среднюю или плохую совместимость?

Если не очень видно — могу вообще прямо макро сделать в области срастания.
Если не очень видно — могу вообще прямо макро сделать в области срастания.

Арбуз взял абы какой, без планов выращивать, просто попрактиковаться. Чего ели, из того и набрал семян. Прививал на «нервный огурец» эхиноцистис (ну потому что это не настоящий совсем уж «бешеный огурец», но тоже какой-то не самый уравновешенный из огурцов — выстреливает семенами из своих двухствольных плодов), метод — «в укол», то есть просто лезвием безопасной бритвы вырезал точку роста и косо срезанный арбуз туда ткнул, по фотке, наверное, видно, что срез смотрел влево (там хоть как-то срослось, а справа всё по нулям, надо было шкурку чуть поскоблить, наверное).

Прижал нано-прищепкой (деревянные такие), губки узковаты (сжимают очень локально и сильнее, чем нужно — это усилие бы на площадь в 2-3 раза больше распределить…) и накрыл потом отрезанной бутылкой. Снизу осталась огромная щель, заткнул её влажной тряпкой и больше не трогал — тряпка сама высохла, потом её достал, ещё через пару дней бутылку снял, ещё вот дня два без всего, только подсветка и полив — вроде полёт пока нормальный.

Рядом виден второй колпак (справа) — под ним всё так же, но пока на стадии «тряпка высохла, вынимаем тряпку». Ещё третий запланировал «в шесть семядолей» — привить арбуз на арбуз и потом на «нервный огурец», но огурец ещё не подрос :) Больше семядолей для бога питательных веществ, даёшь нечеловеческую многоножку! :-D

Оно должно так выглядеть или там явные признаки того, что всё опять сдохнет, как в прошлом году с лагенарией у меня (не) вышло?

Tags:
Total votes 2: ↑2 and ↓0+2
Comments8

Специально для людей, озверевших от одинаковости дизайна телефонов-лопат, я решил вытащить из древних архивов сугубо пятничный шизодизайн шизотелефона в форме эдакого магического др… кристалла.

Магический дристалл Телефон в форме шестигранной призмы. Чисто выпендриться, не ищите в этом смысл.
Магический дристалл Телефон в форме шестигранной призмы. Чисто выпендриться, не ищите в этом смысл.

Дизайн безумно древний, досмартфонной эпохи, поэтому пришлось его немного додумать. Шиза имеет шесть рабочих поверхностей, образующих непрерывный (или какой уж удастся собрать из доступных на рынке) сенсорный OLED-экран. Внутри находится гиродатчик, отвечающий за то, чтобы работал или один большой экран, повёрнутый к пользователю, или один большой и смежный с ним маленький. При вращении экраны переключаются, ну а контент при этом скроллится — то есть навигация по полному пространству экрана осуществляется не свайпом, а «разматыванием свитка». Какой именно экран повёрнут к пользователю — пользователь изначально задаёт коротким тыком по этому экрану, дальше его удерживает гиро. Причём именно коротким, т. к. нажатие и удержание на противоположный экран вызывает появление точного курсора, что позволяет не закрывать экран пальцами, двигая ими «по задней стенке», и попадать в мелкие элементы (да что уж там, даже начертить что-то несложное, типа этой картинки к статье). Пока указательные или средние пальцы на задней стенке удерживают курсор — тык большим пальцем по экрану считается не туда, куда ткнул палец, а туда, где был курсор, то есть телефон работает в режиме «мышка-тачпад с кнопками».

Концы «кристалла» скрывают под собой камеру (одну, естественно — зачем ему вторая, если его можно просто повернуть), микрофон, динамик и снабжены двумя слегка затупленными серебристо-нержавеечными «остриями» (точнее, «тупиями», чтобы ладони не разодрать). Для красоты, прочности (догадываетесь ведь, чем именно он будет обычно ударяться при падении?) и в качестве аварийной зарядки (основная — беспроводная), путём подачи 5-8 вольт в любой полярности. Сам девайс состоит из эпоксидки во имя хоть какого-то практического смысла (полная непотопляемость), но «тупия» отвинчиваются, чтобы добраться через водозащитную резинку до симки и SPI, т. к. нам это чудо как-то шить-перепрошивать придётся явно не один раз, в том числе и «раскирпичивать» наверняка.

Аккумулятор влезет весьма немаленький, но из-за проблем теплопроводности (да и из-за закрытости документации на мощные SoC) придётся ставить мелкий холодный проц «из открытых» и в плане ведроида плясать от всяких проектов типа «Ведро for x86» или скорее «Репликанта». А подходящую для его форм-фактора клавиатуру уже изобрели.

Tags:
Total votes 1: ↑0 and ↓1-1
Comments0

Уловисто пошли «затылочные лампочки». В этот раз, правда, не «Старт», а «Эра» — без характерного отверстия в коробке, но внутри всё вполне даже «затылочное» :)

Крышка снимается плоской отвёрткой легко, защёлкивается обратно плотно, резисторы 5.1 и 3.6, и, главное, какое замечательное отверстие осталось от CON2 :) Из-за него я в этот раз срезал 5.1, то есть занизил мощность не очень сильно (и даже не срезал, просто перерезал дорожку). Дело в том, что отверстие позволило мне с превеликой осторожностью просверлить «юбку», не шуранув сверлом в проходящие там провода (не знаю, правда, насколько это электробезопасно — обнажать скрытый там под пластиком алюминий!) и получить длинную «самоварную трубу» с хорошей тягой (лампа работает без абажура, цоколем вверх).

Со «Стартами» отличить лампу «с той схемотехникой» от лампы с немного другой «смехотехникой» можно было в большинстве случаев по габаритам, указанным на коробке (хоть на миллиметр, а обычно отличаются). Как быть с «Эрами» — не знаю, статистики пока не набрал. Это мой первый «улов», но довольно удачный — «прямоточная труба» вот прямо порадовала :)

Tags:
Total votes 2: ↑2 and ↓0+4
Comments4

Захотелось что-то перепройти Tyrian.

Король вертикальных скроллеров в 320x200 во всей красе. Такую красоту и в наши дни не всякий покажет!
Король вертикальных скроллеров в 320x200 во всей красе. Такую красоту и в наши дни не всякий покажет!

Сказано — сделано. Но вот только засада — я помню очень хорошо, какое оружие там имба, и играть было не очень интересно.

Запустил Tyrian Gift Edition. Оружие зверски пошаффлено, поэтому ХЗ что выбирать %) Одно даже должно изменяться при переходе из эпизода в эпизод, а может, и не одно. Я этого не помню совершенно, но в хелпе так написано.

Чёрт, надо бы ещё разик перепройти, поискать это секретное оружие :) И миди-карту свою старую наконец оживить, на ней он звучал абсолютно офигенно.

А вы знаете какие-нибудь моды на Tyrian, пока у нас ещё полтора выходных есть? ;)

Tags:
Total votes 1: ↑1 and ↓0+1
Comments2

Итак, пятница уже не первый час шагает по глобусу, поэтому держите свеженький выстрел в мозги ;)

Недавнее обсуждение «тыкательного принтера», естественно, не может не будить в пытливых умах вопрос, как бы повысить его скорость печати? Не избежал этой участи и я. Физически всё просто — надо поменьше отрывать тяжёлую ручку от бумаги и рисовать как можно более длинными штрихами. Но как разбить произвольное изображение на штрихи?

Разумеется, решение для искусственно самоограниченной задачи, когда ручка движется строго по горизонтали и бумага после каждого прохода подаётся на один диаметр шарика ручки — элементарное. Берём RLE и Флойда-Стейнберга, за 15 минут пишем этот код:

#define	SQUARE(x) ((x)*(x))
#define	MAXERROR 256	//for RLE

static unsigned char Grayscale8Bit[HEIGHT][WIDTH], Dithered8Bit[HEIGHT][WIDTH];
static signed short AdditionalError[2][WIDTH];

тут мы читаем из файла Grayscale8Bit, этот код я приводить не буду

	memset (AdditionalError, 0, 2*WIDTH*sizeof(short));	//Even/odd lines buffer
	for (int y=0; y<HEIGHT; y++)
	{
		int RLEError=0;
		int PenColor = 255*(Grayscale8Bit[y][0]>127);	//Pen color can be either 0 or 255
		for (int x=0; x<WIDTH; x++)
		{
			int PixelValue = (int)Grayscale8Bit[y][x] + AdditionalError[y&1][x];	//Exact pixel value plus Floyd-Steinberg error from the prev. line
			RLEError += SQUARE (PixelValue - PenColor);	//To avoid missing contrast details such as thin vertical lines, RLE error counted as square.
			if (RLEError > SQUARE (MAXERROR))
			{
				PenColor = 255-PenColor;		//Inverse pen position (up/down)
				RLEError = SQUARE (PixelValue - PenColor);	//Begin counting new RLE error immediately
			}
			Dithered8Bit[y][x]=PenColor;		//Put proper color into the output array
			AdditionalError[!(y&1)][x] = (PixelValue - PenColor)/2;		//Put remaining error into next line buffer, not exactly Floyd-Steinberg but sort of.
			if (x) AdditionalError[!(y&1)][x-1] = (PixelValue - PenColor)/4;
			if (x<WIDTH-1) AdditionalError[!(y&1)][x+1] = (PixelValue - PenColor)/4;
		}
	}

тут мы пишем в файл Dithered8Bit, этот код тоже у каждого свой получится

Код без каких-либо капризов, отладки и подбора параметров сразу выдаёт результат:

Сверху, как нетрудно догадаться, оригинал.
Сверху, как нетрудно догадаться, оригинал.

Ну то есть задача в её куцем виде — совсем детская. Там не то что думать не пришлось, даже ошибиться негде было. Но и результат тоже, мягко говоря, так себе.

Ну а теперь вот вам по случаю пятницы головоломка: как полностью реализовать потенциал не одной, а двух степеней свободы нашего привода, да ещё с учётом того, что скорость протяжки бумаги и скорость вошканья каретки в общем случае друг другу не равны, а проходить ручкой по одному месту больше одного-двух раз — нежелательно, бумага не чугунная. Мучайтесь и ломайте головы над возможными алгоритмами такого вот обхода растра ;)

Спойлер, но вы его сразу не читайте, чтобы не сбиться со своих мыслей: я бы, наверное, обошёл сначала изолинии крупных элементов, разбивая пространство между ними на более или менее густые штриховки, а потом уже прикинул бы ошибку и добавил-убавил штрихи сообразно мелким деталям. Перо, идущее вдоль изолиний — в общем случае довольно хорошая идея, когда надо не убить разборчивость изображения, а то даже ещё и усилить её. Но, правда, это касается только фотореалистичных изображений, а в задаче-то у нас произвольные.

Tags:
Total votes 3: ↑3 and ↓0+5
Comments3
К вопросу о стабилизации плазмы, поднятому очередной публикацией на тему «реактивного двигателя со встроенным МГД».
К вопросу о стабилизации плазмы, поднятому очередной публикацией на тему «реактивного двигателя со встроенным МГД».

Начну с извинений — я дурак и забыл, что «на пробу» поставил галку «арифметическое кодирование» в GIMP. А потом удивлялся, что картинка в камменты не грузится.

В общем, вот та самая «Kreosan-tier шаровая молния», которую я тут уже неоднократно поминал добрыми и не очень словами. Имеющие доступ к таким разрядникам — могут экспериментировать на здоровье ;)

Возможно, через неё можно и настоящую молнию пропустить — гроза, воздушный шарик куба на два и мокрая нейлоновая верёвка со вплетённой тоненькой металлической проволочкой… но я пас, я ещё хоть немного пожить хочу, да и соседи не оценят. Креосану — креосаново, жене кесаря — «кесарево» или как оно там. Шаговое напряжение в мокром грунте — не игрушки.

В случае, если именно этот повив будет давать эффект, а, допустим, при двойном встречно-параллельном он будет исчезать — можно считать, что ШМ в искусственных условиях получена с большей или меньшей точностью.

После этого можно запульнуть искусственной ШМ в несколько датчиков магнитного поля и оценить порядок величин, ну и прочие промеры токов-напряжений в летящем плазмоиде произвести. Но заранее готовиться к этому — смысла нет, сначала надо подтвердить независимым экспериментом сам факт. Сенсации в тот год не случилось, так что, может быть, автор публикации в «НиЖ» сам себя обманул где-то.

А вот после этого, зная примерно, что нужно для хорошей жизни здорового счастливого покемона стабильного плазмоида — можно с новыми силами браться за тот злосчастный реактивный двигатель. Возможно, за это время его автор всё-таки сподобится сунуть в факел сначала пару электродов, чтобы посмотреть наличие разности потенциалов между разными частями плазмы, а потом — обычную галогенку на 12 вольт, поскольку её нить из-за характерной формы (форма прямой спирали без поддержек) прекрасно уловит сильные магнитные поля при малейшем движении.

Даже если двигатель окажется туфтой, по крайней мере, у нас появится возможность вместо китайских фейерверков на НГ запускать настоящие шаровые молнии! Вот только соседи не оценят этого ещё больше :-D Ладно, кончаю шутить — физикам предоставляется трибуна в камментах, можете продолжать буйство, начатое под статьёй о самом движке ;) с удовольствием почитаю, кто что скажет про притащенный мной артефакт, да и не только про него.

Tags:
Total votes 2: ↑1 and ↓10
Comments0

Information

Rating
1,590-th
Registered
Activity