Quantcast
Channel: vinxru
Viewing all 319 articles
Browse latest View live

3Q Qoo Q-Pad

$
0
0
После прошлого поста с разбитым планшетом, придется написать и о новом.

С планшетами и телефонами мне всегда не везло. Когда я купил самый-самый крутой и дорогой телефон Toshiba G900, то в нем оказался кривой видеочип. Даже замена по гарантии не помогла. Из за чего экран дергался, при просмотре видео и игр. Батареи хватало всего на час. Когда я покупал самый тонкий телефон Samsung D830 в нем оказалась кривая поддержка SD-карт. Ни одна карта нормально не работала. Даже замена по гарантии не помогла. Внутренней памяти не было... Я могу долго перечислять этот список. Реально не было проблем только у Нокии на Симбиане, если не считать Симбиан проблемой :)

Так и с планшетами. Прошлый планшет Леново стоил почти столько же, как и iPad Mini. А геморроя я отгреб с ним много. Да и не нужен мне был планшет. Купил просто так. Ребенку мультики в машине показывать.

Сейчас я решил не тратится и купить что нибудь дешевое. Главными критериями были: наличие всех драйверов, разрешение от 1024, суммарная частота от 3 Ггц, оперативная от 1 Гб, аккумулятор от 4000 и не самые плохие отзывы в интернете. Выбрал на сайте МВидео планшет за 4200 рублей. Ехал до этого магазина час (м. Академическая), а там мне сказали - Ничего не знаем, этот планшет сейчас стоит 8000 рублей. И он будет с витрины. - Да ну их нафиг.

И тут я вспомнил слова kgbplus - "В Юлмарт-дисконте планшет стоит 700р.". Ехал еще час до Юл-марта на Дыбенко. Ёлки палки! Я думал Юлмарт затхлый интернет магазинчик. А это большой зал с множеством диванов, столов, компьютеров, кофейных автоматов и т.п. Прямо как в аэропорту. Пришел, завалился на диван. Прибежал паренек, улыбается. Наверное зарплату дали.

- Что изволите?
- Планшет такой то хочу.
- Вот пожалуйста, есть после ремонта 4-х ядерный, разрешение ~1300 пикслей в ширину, все навороты. 1300 рублей.
- Наверное я не хочу после ремонта. А есть новые, но с мелкими недочетами.
- Да, вот модель 3Q LC0720С. Товар с поврежденной упаковкой. Разрешение 1024x600, два ядра 1.5 ГГц. 2400 рублей. Если вам не понравится, вы сразу можете вернуть деньги.
- Беру.

После чего посидел на диванчике 15 минут, пока на табло не загорелся мой номер. Получил коробку в идеальном состоянии. Удивился. Настроил Wi-Fi, загрузил программу, всё работает.













Ширина, высота и форма в точности напоминают старый планшет. Новый чуть потолще и полегче.
Кнопки в новом расположены удобнее. Графика работает быстрее. Ну правильно, 3 или 4 года прошло.
Но тут нет GPS, 3G. Это не жалко, я ими не пользовался.

Угол обзора экрана никакой! Черный цвет по центру экрана и с краю разный. Разные глаза видят разный цвет. Хоть ты держишь планшет вертикально, хоть горизонтально. С белым фоном работать можно.



Уже дома во внутренней памяти планшета я нашел пиратскую копию мультфильма. Вряд ли мультфильм входит в базовую комплектацию. Это записал кто то в сервисном центре. При попытке посмотреть его, по экрану бегут артефакты.

И тут я стал подозревать, что реальная причина уценки планшета не упаковка. Упаковка в отличном состоянии. А неисправность процессора или прошивки. И этот мультфильм был записан для теста.



Если включить ПРОГРАММНЫЙ ДЕКОДЕР, то артефакты полностью пропадают.



Я проверил на приложении youtube. Там артефакты то же присутствуют. Это уже печальнее, я не знаю как переключить ютуб на программный декодер.

Если это единственная проблема планшета, то я его не буду возвращать. Мне видео не нужно. Мы на бензин и на покушать почти столько же потратим. Дети обязательно в KFC запросятся.

Как думаете, это аппаратная проблема? Можно как то глобально выключить аппаратный декодер? Или прошивка виновата?



Проверил версию прошивки. Стоит версия 4.1 уже с root доступом. Хотя я покупал 4.0, на коробке написано 4.0, на чеке написано 4.0. Видимо в СЦ перепрошили.

3Q Qoo Q-Pad умер совсем

$
0
0
Походу программ под Андройд не будет.

Возврат по гарантии займет неделю-месяц, а пока займусь другими делами.

UPD: Юл-март сразу и без вопросов отдал деньги. Даже проверять планшет не стал. Хороший магазин.

ДСП + фрезер = идеальный распил.

$
0
0
Фрезером можно не только красивые деревянные шкафы делать. Но и обрабатывать ДСП. Вот как раз сейчас я делаю себе шкаф. Шкафище! 210x270x110 см. Там будет даже отделение под велосипед.

Я постоянно работал с ДСП. Делал колонки, делал шкафы, полки. Но сам старался не пилить. Мой электролобзик всегда пилит под углом. Да еще и рука виляет и получается волнистый распил. Да еще и пластик скалывается.

А сегодня я обработал кривой распил фрезой. Положил ДСП на стол, сверху положил направляющую, еще одну ДСП вдоль которой будет двигаться фреза. Сжал этот бутерброд струбцинами и вжжжжик! ДСП фрезируется гораздо быстрее и проще, чем сосна. Хотя ДСП тверже. Я подозреваю, что именно так и делают все "кривые"шкафы, полки и кровати из ДСП. Я конечно же не открыл Америку. Я просто нуб, но я безмерно рад, что теперь могу сам сделать любуюконструкцию из ДСП. Кто играл/играет в RPG-игры, может представить над моей головой Level Up.

Знаете. Чешутся руки сделать колонки из дуба на динамиках 100ГДШ33 :) Буржуйские динамики стали стоить как то совсем неадекватно. Пара Visaton B200 обойдется в 30.000 руб. Пара 100ГДШ33 в ~4000 руб.

UPD: Млин, пара 100ГДШ33 уже 7000 руб.

Oysters T34 Mini

$
0
0
На этот раз увеличил бюджет до 5000 рублей и купил новый планшет. У меня были скидки в МВидео, поэтому я покупал там и мне обошлось немного дешевле. Я решил покупать известный бренд. Долго смотрел на Samsung Galaxy Tab 2 (1 ядро 1 ГГц), а потом на Asus. Но в итоге взял Oysters. У него крутой процессор и крутой экран. А еще GPS, 3G.

Фирму Oysters я знаю несколько лет. У меня навигатор этой фирмы. Это российская фирма, которая под своим брендом продает китайскую электронику. Или китайцы зарегистрировавшие фирму в России, что сути не меняет.

В общем, на удивление планшет недорогой. За 5000 руб мы имеем:
- Процессор NVidia Tegra 3. Это 4 ядра по 1.6 ГГц. Еще одно ядро 500 Мгц. И еще 12 ядерный 3D-ускоритель NVIDIA GeForce ULP.
- Экран с разрешением 1280x800 и с очень хорошими углами обзора.
- Аккумулятор на 3500 мАч. Для такого процессора это конечно мало.
- 1 Гб ОЗУ
- 8 Гб внутренней памяти.
- GPS, 3G
- Относительно типичных китайцев, у него тонкий корпус. Но по равнению с Samsung дизайн конечно устарел.

Еще бесплатно дали SIM-карту Билайна. И сказали, что можно не платить и у меня будет 200 Мб трафика в месяц бесплатно. Я пока не вникал в детали.

Пока мне всё нравится. Планшет симпатичный с хорошим изображением. Графика летает по сравнению с прошлыми досками. Даже хочется им пользоваться. Надеюсь год проработает.





Что то типа резины.





Углы обзора действительно очень больше. А еще высокое разрешение, мне очень нравится.



А еще экран чернее, чем у прошлого планшета. И окружающие предметы не так сильно отражаются.



А вот отдельного разъема для зарядки нет. USB быстро ушатается.


А вот что пишут про этот процессор на IXBT


Четыре основных высокопроизводительных ядра Cortex A9 дополнены пятым, вспомогательным — тоже Cortex A9. Вспомогательное «ядро-компаньон», как его называет сам разработчик, предназначено для менее требовательных задач и позволяет уменьшить энергопотребление. Работая на максимальной частоте 500 МГц, это ядро позволит выполнять несложные задачи, такие, как прием и отправка электронной почты, сообщений Twitter и Facebook, работа виджетов, фоновых приложений и анимированных обоев рабочего стола. Когда же дело дойдет до серьезной нагрузки — игр, просмотра web-страниц, перекодирования и редактирования видео и звука, обработки изображений, 3D-графики, физического моделирования — будут подключаться остальные четыре ядра, причем не все сразу, а по мере надобности. Вспомогательное ядро при этом отключается.



Короче, работает либо верхний одноядерный примитивный процессор на частоте 500 Мгц, либо нижний прожорливый 4-х ядерный на частоте до 1600 Мгц. Причем использоваться может только одно ядро. Это уже зависит от запущенных программ и ОС.

UPD: Мне тут написали, что это клон Asus Nexus 7 (2012 года)

Д.М.Комский - Кружок технической кибернетики

$
0
0
Скачать книгу

Это моя первая книга по цифровой электронике и программированию. В первой половине книги описано, как по правилам оборудовать радиокружок. И как на этом сэкономить. Например, конус вытяжки можно сделать из крышки советского ТВ. Я это ни разу не читал. Скукотень. Интересное со второй половины книги.





На развороте книги были нарисованы цоколевки всех основных микросхем. Я смотрел на них много-много раз, так что эта синяя страница навсегда поселилась в моей голове.

Эти микросхемы в моей молодости стоили не дорого. Мне очень нравилась микросхема К155ИД3. Она была в 3 раза больше других микросхем, солидная такая, а стоила так же как К155ЛА3. На ИД3 можно было собрать "бегущие огни"на 16 светодиодов. Интересно... Сейчас держа микросхемы К155ЛА3, К155ИД3 в руках я испытываю не меньший трепет, чем тогда.



Книга эта о цифровой электронике. В книге все очень доходчиво разжевано, даже для дошкольника. И примеры интересные. Вот это аппарат для чтения индексов с конвертов. Самое интересное, что я понимал, как оно все работает. Цифровая техника - это просто.

Из нижней схемы я узнал, что есть чудо микросхема К142ЕН5В. Она позволяла из любого напряжения получать 5 Вольт.

Очень интересно было переводить логические схемы в формулы, упрощать формулы, а потом по ним строить схемы.



Тут описана конструкция игры "Ход ферзем", в которую нельзя выиграть. На игре даже нет табло "Вы выиграли". :)



А это игра "в спички". Тут то же нельзя выиграть. Заметте, что собрана она на диодах и тиристорах.

Я 10 лет назад переписал эту игру на чистом HTML-е, без JS. Описал все состояния игры как отдельные страницы и переходы между ними. И поспорил с человеком, что смогу написать игу на чистом HTML, без JS. И выиграл пиво :)



А это первая программа, которую я ввел в компьютер Искра 1080 Тарту.
(Не считая примитивнейших программ из книги, которая шла с компьютером).

Команды CALL, PRINT #1, DIM A(10, 10) не поддерживались... Но все работало отлично и без них.



А были схемы, которые работали от 220 Вольт! Даже думать было страшно про такое.

Справа схему на К155ИД3 я собирал. Потом прикрутил к ней счетчик К155ИЕ5, генератор на К155ЛА3 и получил "бегущие огни".



Все становилось немножечко сложнее, когда появлялись триггеры и обратные связи. Для любителей ретро, так же приведены аналогичные схемы на реле :)

Эх, люблю я автоматику на реле. Как только найду 400 реле, сделаю процессор на реле. Я уже схему в эмуляторе нарисовал.



Скачать книгу

Динамики (планы на далекое будущее)

$
0
0
Для новой квартиры нужны новые колонки. Точнее, новый дизайн требует новые корпуса. Из дерева, в классическом стиле. И за одно динамики новые взять вместо 10ГДШ-1. Играют они хорошо, но тихо.

По поводу динамиков решил присмотреться к Ноэме. До этого ни чего у них не покупал. Выбор у них совсем не большой. Либо широполосник 100ГДШ65-4, либо пара низко-среднечастотный 35ГДН62-4 + высокочастотный 15ГДВ92-8. Стоить будет ~одинаково. Эти динамики очень похожи. К ГДН динамику приклеили высокочастотный конус и получили ГДШ. А еще увеличили размер магнита, в результате получив большую чувствительность.

а) Пара динамиков ГДН+ГДВ требует на 30% меньший корпус, а это важно. Но самопальные S30 мне не хочется.
б) Широкополосник проще собирать и звучать он должен чуть лучше, интереснее. И в классический дизайн они впишутся лучше.

Еще присматривался к профессиональным динамикам 100ГДШ47, 100ГДШ33. Привлекает в них литая алюминиевая корзина (вместо штамповки), большой диаметр, чувствительность на 10 Дб больше. Отказался, потому что нижняя частота всего лишь 55 Гц. Что вполне ожидаемо для концертных динамиков.

Что лучше взять?

100ГДШ65-435ГДН62-410ГДШ1-4 (для сравнения)
Номинальный диаметр152 мм160 мм200 мм
Номинальное сопротивление4 Ом4 Ом4 Ом
Характеристическая чувствительность90 дБ/Вт/м88 дБ/Вт/м90 дБ/Вт/м
Частотная характеристика40-18000 Гц (ФИ)40-6300 Гц (ФИ)63-20000 Гц (ЗЯ)
Мощность разрушения катушки>100 Вт>35 Вт>10 Вт
Максимальное звуковое давление 100ГДШ и 35ГДН на частоте 50 Гц идентично. Для этого требуется 10-15 Ватт мощности.
Диаметр звуковой катушки25.4 мм25.4 мм25.4 мм
Каркас звуковой катушкиполиимидбумагабумага
Ширина намотки звуковой катушки (L)10 мм10 мм
Высота верхнего фланца (Н)6 мм6 мм
Кольцевой магнит110*45*16 мм86*33*15 мм86*33*15 мм
Индукция в зазоре1 Тл1 Тл
Объем вытесняемый динамической головкой0.6 л0.5 л
Материал диффузоракомпозиционная целлюлозакомпозиционная целлюлозакомпозиционная целлюлоза
Форма/материал подвесапенополиуретанпенополиуретанпенополиуретан
Форма/материал центрирующей шайбыплоская/ткань х/бплоская/ткань х/бплоская/ткань х/б
Диффузородержательсталь (штампованный)сталь (штампованный)алюминий (литой)
Fs49 Гц50 Гц45 Гц
Re2.8 Ом3.3 Ом3.6 Ом
Qts0.520.480.8
Qes0.560.51
Qms8.88.8
Vas20 л18 л45 л
Dia130 мм125 мм160 мм
BL4.5 Тл*м5 Тл*м
Mms13 г12 г13 г
Cms0.81 мм/Н0.85 мм/Н
Le(1кГц)0.13 мГн0.4 мГн
Хmах± 3.5 мм± 3.5 мм± 1.5 мм
Xmeh± 10 мм± 10 мм± 10 мм
Объем корпуса, резонанс ФИ35 л, 40 Гц25 л, 40 Гц>40 л


Или свой вариант (в той же ценовой категории) в студию.

(5-02-2014) Или поставить 100ГДШ33 + корректор Линквица. Получу 40 Гц.

Рабочие будни

$
0
0
Заметку делаю больше для себя, потому что обещал себе писать, что делаю. Но ничего не сделал за последние 2 недели. Нет ни настроения работать, ни конкретного плана действий на работе. Только ошибки правлю по мелочи.

С другой стороны настроение делать ремонт есть. Сижу пилю и крашу. Купил пылесос - помогает от пыли на 66.6%. Фреза от ДСП действительно быстро тупится.

Вчера перед сном нарисовал 25% печатной платы компьютера Океан 240. Просто решил попробовать функцию программы Sprint Layout. По фону ставится скан журнальной страницы (на которой печатная плата), а я просто мышью обвожу все дорожки. В результате получаются файлы (Гербер-файлы) для станка. Закажу потом изготовление платы на заводе.


Добавлено спустя день.
Нарисовал половину платыи вдруг, программа Sprint Layout 5.0 не позволяет рисовать платы шире 30 см! Плата компьютера просто не влезает. Пока что остановился.

У нас новый клиент (контракт), который спасёт всё дело. Мне так передали. Еще передали - что в нашу программу хотят вложится все инвесторы в округе, потому что она может заменить САП (ну да, конечно). А покупать САП Р3 запретят из за санкций. Денег где взять не знаем, зарплаты и в этом месяце не будет. А ты делай Drag&Drop между табличными частями документов. А то придет к нам клиент и скажет: "а у вас есть драг энд дроп? ммммммм, а в чем же тогда крутость?"

А у меня руки не поднимаются это делать.

Не раз задавали вопрос, почему же я не сменил работу? Все наши программы написаны на среде разработки TMA Platform, она стоит у всех клиентов. Я единственный её автор и сопроводитель. И если я уйду, то работа в фирме полностью остановится.

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

SD CARD контроллер для ЮТ-88

$
0
0
Мой контроллер уже без моей помощи расползается по компьютерам. На этот раз на компьютер ЮТ-88. Под него программы адаптирует Ewgeny7.

Плату же разработал Andy Karpov для Радио 86РК и подарил мне этот экземпляр. Большое спасибо. Из другой страны ведь плата шла. Плату можно подключить ко многим компьютерам, ЮТ-88, Радио 86РК, Специалисту, Львов ПК-01... Он консервативен.



Даже две платы пришло. Левая плата без МК. Поддержкой файловой системы FAT32 должен заниматься сам ретро-компьютер. Что в большинстве случаев невозможно. Драйвер FAT32 займет 8-16 Кб памяти. Памяти в которую он должен будет загрузить игру.


Только пока у них не получилось запустить оболочку. Думаю помочь с адаптацией. А лучше сделать оболочку независимой от компьютера, встроив функции вывода текста и скролла в SDBIOS. Как это сделано в MSDOS.



А кто нибудь знает советский компьютер на ВМ80, в котором с нулевого адреса идет ПЗУ?

Ящички для кассетницы из кабель-канала.

$
0
0
Придумал, как сделать ящички-коробочки для кассетницы. Кассетница - это шкаф с тысячей маленьких ящичков, для всяких мелких деталей. Я сделаю ~600 таких коробочек разного размера. Только сотня уйдет под резисторы. А еще сотня под микросхемы...

Сделано из кабель-канала. Себестоимость ящичка 1-2 рубля (для эмигрантов = 1-2 цента), при цене двухметрового канала в 20-40 рублей. Идея была давно, но я всё забывал купить кабель-канал.

Теперь надо выпилить шкафчик (сетку) под них. В закрытом состоянии они и так отлично друг на друга складируются. Только рамку надо сделать и можно на стену весить.

На фото присутствует сгибатор.




Удобно закрепляются бумажка с подписью. Можно закрывать крышкой. Карандаш для масштаба, что бы вы понимали, что в реальности на мелких коробках кривизна незаметна.


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


Андройд опять откладывается.

$
0
0
"Лех, надо к вебу вернуться. У нас два клиента на вебе будут работать."

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

Но с Андройдом всё равно завязывать не буду, а просто переключусь на мелкие приложения и казуалки. Есть у меня бердовая идея, сделать электронную версию конструктора ЭКОН. В детстве такой был у брата. Понять собранную схему не просто, и свободы для творчества нет :) Но что то в этом есть.

Меня эти кидания между задачами сильно демотивируют работать.



А по вебу. Мне наш веб не нравится.



Глюков в наших программах хватает и что бы изолировать глюки клиентов друг от друга, я решил программу каждого клиента запускать в виде одного процесса. Если у Васи программа упадет, то остальные продолжат работать без проблем. Получается множество процессов tmaplatform.exe.

Встроить в каждый процесс HTTP-сервер не сложно. Но у каждого сервера будет свой уникальный порт. Это уже неудобно. Не будет пользователь запоминать свой порт (порты). А кто будет запускать новые процессы? И держать постоянно запущенными сотни платформ очень расточительно.

Поэтому был написан отдельный HTTP-сервер. При подключении к нему, пользователь вводит логин-пароль. А потом видит список его запущенных процессов. Он может закрыть старые, создать новый. Или продолжить работу в старом, выбрав его их списка (кликнув мышкой). Этот сервер запускает процессы и взаимодействует с ним через безымянные трубы (Unnamed Pipes) или консоль.

Такая вот традиция из UNIX-ов. Запускаем платформу сами и работаем с ней через консоль. На MUD похоже. :) Платформа передает программе веб интерфейса информацию от изменениях на экране: появилась новая кнопка, изменился какой то текст. А к платформе идут команды о том, что изменил пользователь. Ввел текст в поле, или флажок поставил.

Проблема надежности решена. Расчеты работают очень быстро, ведь ядро написано на Си. Но сам интерфейс получился дубовым, так как никакой логики в веб-интерфейсе разместить нельзя. Веб интерфейс только отображает кнопки, поля. Он аналог удаленного рабочего стола. Из за этого же вся нагрузка ложится на сервер. И количество одновременно работающих клиентов сильно ограничено. Каждый процесс содержит в себе свою копию объектов, которые могли быть общими. Это лишняя трата памяти.

Еще безопасность. Взломав платформу и получив прямой доступ к базе данных, злоумышленник ничего плохого сделать не сможет. Проверку логина введенного пользователем выполняет база данных и она же ограничивает доступ к данным относительно этого логина. То есть, злоумышленник получит то же, что он мог получить через веб интерфейс.

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

Продолжаем мучать SD контроллер и новый компилятор Си для Intel 8080

$
0
0
Чуть ранее я писал, что мне лень адаптировать программы SD контроллера для множества советских компьютеров. А сторонние программисты не горят желанием лезть в большие программы. Проблема в том, что графика, клавиатура, объем памяти у всех компьютеров разные.

Разделение программы на большую независимую от железа часть и маленькую зависимую я сделал сразу. Это должно было облегчить адаптацию. Мы просто меняем мелкие файлы. Но вместе с изменением мелкого файла всегда появлялись мысли об улучшении всей программы. И улучшенная программа требовала улучшенных мелких файлов. И до этого руки не доходили. И на разных компьютерах стоят разные версии программы.

Вроде бы Norton Commander текстовая программа, но на старых компьютерах её приходится затачивать под графический режим. Простая операция - сдвиг списка файлов вниз. Её можно сделать стандартным способом, нарисовать весь текст заново. Это длительная операция, потому что размер шрифта 6 пикселей. А в одном байте 8 пикселей. Простым копированием тут не обойдешься, нужны сдвиги, операции И, ИЛИ. Проще сдвинуть содержимое экрана вниз. Вот этот трюк проходит быстро! Но так как в байте 8 пикселей, быстро сдвигать вправо можно только на 8 пикселей. А это значит, что расстояние между колонками должно быть кратно 8 пикселям.

То же относится к цветам! На Специалисте, Орионе, Спектруме цвет назначается 8 смежным точкам. А размер шрифта 6 пикселей. То есть цвет без проблем можно назначить только сразу 4 подряд идущим символам.

А еще у всех различные кодировки.

Слишком сложно для вещи, которая никому не нужна. :)

Да здравствует новый API



Плюнув на красоту, я решил сделать общее для всех компьютеров API для вывода текста. Сейчас "операционная система"представляет собой файлы на флешке

boot/boot - начальный загрузчик
boot/sdbios - предоставляет API для работы с файлами
boot/shell - интерфейс пользователя (типа Norton Commander)

Я планирую добавить еще файл boot/video содержащий функции клавиатуры, вывода текста и выделения памяти.

Почему я решил выделить эти функции в отдельный файл? Потому что он загружается в ОЗУ только когда он действительно нужен. Слишком расточительно держать его постоянно в памяти. Во вторых, видео режимов у компьютеров несколько. Держать в памяти функции для работы со всеми режимами то же расточительно. Будет несколько файлов под несколько режимов.

Какие функции присутствуют в этом файле?

fs_getch - Ждать нажатия кнопки (используется КОИ-7)
fs_bioskey - Вернуть код нажатой кнопки без ожидания (используется КОИ-7)
fs_initScreen - Инициализация видео
fs_cursor - Показать курсор
fs_hideCursor - Скрыть курсор
fs_clearScreen - Очистка экрана
fs_scroll - Сдвиг экрана
fs_print - Вывод строки на экран (используется КОИ-7)
fs_window - Получить коды символов для рисования рамки
fs_getMemTop - Получить размер свободной памяти
fs_setMemTop - Установить размер свободной памяти

На функции fs_print остановлюсь подробнее.

void fs_print(uchar x, uchar y, uchar len, char* text, char spc, uchar color);

x,y - координаты для вывода строки
len - длина строки. Если spc=0, то на экран выводится не более len символов. Если spc<>0, то на экран выводится точно len символов, в качестве недостающих символов используется spc
color - цвет символа и фона

Компилятор



Вроде бы проблем достаточно. Но сегодня я решил, что доработка оболочки, это отличный и единственный повод наконец то довести до ума мой новый компилятор Си.

Я предвижу вопрос - зачем же изобретать велосипед, возьми GCC. Дело в том, что эта штука должна быть быстрее GCC. Это чуть-чуть нестандартный Си. В него внесены изменения для увеличения скорости работы на 8 битных компьютерах. Но главное - это оптимизирующий кодогенератор для 8080. Вот его пока в природе не существует. Даже не оптимизирующего. Проблема процессора в том, что одни команды жестко привязаны к одним регистрам процессора, а другие к другим. И очень много времени (до 3/4) уходит на пересылку данных между регистрами и памятью.

Оптимизатор должен изменить порядок команд так, что бы количество пересылок было минимально. Оптимизатор должен менять команды. У этого процессора есть два-три способа сделать одно и то же. И эти способы портят разные регистры. Например увеличение ячейки памяти: LXI H + INR M и LDA + INR + STA. Первый вариант короче, но он портит значение в регистровой паре HL. А это не выгодно, если оно потребуется в будущем.

А что произойдет в будущем мы однозначно не знаем. Мы еще не выбрали один из миллиарда возможных вариантов будущего, так как мы выбираем настоящее! То есть, нам надо выбрать будущее, но это повлияет на настоящее и изменит выбранное будущее. :)

При этом код не линеен, есть циклы, ветвления и goto. Надо контроллировать, что бы при переходе из разных мест программы (в одно) состояние регистров было одинаково. То есть, за регистром HL однозначно закреплена какая то переменная.

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

http://github.com/vinxru/C8080

И всё же, если кому то интересно.



Оптимизация основана на "поиске с возвратом" (Backtracking), только с ограничением глубины. Когда в программе возникает неопределенность, я компилирую оба вариаинта. Сначала первый вариант на 100 шагов вперед, замеряю время выполнения программы. Откатываю все изменения назад. Потом компилирую второй вариант на 100 шагов. Откатываю все изменения назад. Чей вариант окажется быстрее, ту команду я и записываю в код.

  return fork(2, [&](int n){ 
      if(n) return compileSetV2_nswap(dest->var, no->b, no, result);
       else return compileSetV2_swap (no->b, dest->var, no, result);
  });


При этом внутри компиляции этих 100 шагов вперед, так же возникают свои варианты и откаты. Но они уже ограничены на 99 шагов вперед. Следующий уровень рекурсии на 98 шагов...

При длине функции в 100 команд мы получаем полный перебор всех возможных вариантов программы.

Способ не очень оптимальный, но и компилируемые программы микроскопические. И это не последний способ, может еще все переделаю. Но сначала надо это закончить.

Закончил мега-шкаф!

$
0
0
Закончил мега-шкаф! Двери купе будут чуть позже, а пока приступлю к шкафу в прихожей.

Я никогда больше не буду покупать бруски в магазине, уж очень они кривые. Они не просто гнутые, они закрученные по спирали. Следующий раз буду клеить из щитов.

Меня просили чертеж прошлый раз. Вот он. Я делаю чертежи в 3D редакторе - SPlan.





Первый слой полок готов. Дальше будут стойки, вот этим бруски слева, на которые будут опираться полки. Я из отфрезирую и покрашу в белый цвет.

А потом будет еще один ряд полок. С проходом по центру, что бы удобно доставать с задних рядов коробки



Круто получилось.



2ой вечер. Закончились шурупы. Осталось 4 полки и столбик. И нарастить стену до потолка.



3ий вечер. Осталось столбик покрасить. И кромки приклеить на ДСП.



4ый вечер. Всё готово. Попозже сделаю двери купе.





Выемка для педали



Ну а двери купе планируются такие. Только я пока не знаю, не понимаю, как буду их делать.

Бюджетный карниз для занавесок "Струна".

$
0
0
Пока я не сделал двери-купе для шкафа, творящееся там безобразие надо закрыть от глаз. Повесить шторку например. Для шторки нужен карниз. Проволока натянутая от стены до стены. Всё просто.

Я посмотрел подобные карнизы в магазине. Во первых, они крепятся к потолку на несколько шурупов, что меня не устраивает. У меня там гипсокартон. Во вторых, у меня такой был на даче и натягивать его надо часто и это не так просто, как хотелось бы. В третьих, тратить деньги на временную конструкцию не хочется в принципе.

Короче. Я купил стальной тросик по 19 рублей метр. Два крепления тросик<->болт по 5 рублей. Уголки, шурупы, шайбы, дюбели у меня были дома.



Тросик натягивается вращением уголка вокруг своей оси до 3 ой октавы. Шайба нужна, что бы уголок легко вращался. Тут дело даже не в испорченных обоях. По обоям оно крутится не будет вообще.

Затраты ~70 руб, надежность - лучше фирменного.


Ааааа! У меня появилась своя комната! И сюда влезает 3 человека :)

Ретрокомпьютеростроение и работа

$
0
0
Привет читатели. Этот пост опять посвящен самоорганизации. Что бы я не филонил. Я год назад, находясь в деспресняке (в прозрении!), удалил все темы про электронику и ретро компьютеры отсюда. И хотел (хочу) полностью переключиться на программирование. Программирование интереснее и денег приносит больше. Надо жить программированием, постоянно думать о нём. Свободное время перед сном не смотреть ютуб, а читать учебники по программированию! Но мне постоянно срывает на электронику :)

Вот вчера я перерисовал печатную плату компьютера Океан 240 в Sprint Layout. Ошибок получилось много, поэтому я перерисовал её в Proteus. Он умеет сравнивать печатную плату и электронную схему. Плата Океана размером 33x18 см. Что очень дофига. На плате очень много аналоговых цепей, которые можно выкинуть. Это преобразователь RS232, фильтр загрузки с магнитофона, вторичный блок питания... Я их выкинул. При том, что плата большая, контроллер клавиатуры внешний! Я закинул на плату контроллер.

Компьютер очень сильно напоминает Орион 128. По формату печатной платы, типу и расположению разъемов. В обоих компьютерах половина памяти используется под RAM-диск. Только в Орионе используется собственная ОС - OrDOS, а в Океане - CP/M переделанный под работу с RAM-диском.


А потом посмотрел на результат и сказал себе - А зачем мне нужен компьютер 2015 года производства? Ну что, у меня CP/M компьютеров мало? Оно ведь не представляет исторической ценности. И если я хочу попаять, то у меня куча недопаянных и недочиненных компьютертов! И куча недоснятых видео. Брось заниматься фигней!

В оправдание скажу, что большую часть свободного времени я трачу на пиление шкафов. Начал шкаф в коридор. Фреза затупилась, стала сильно греться. А на ДСП стали появляться мелкие сколы. Надо будет почитать, как затачивать фрезы. Может получится. А если нет, то мне эта фреза обошлась в 150 рублей, мелочи.

Благодаря фрезеру (точной подгонке под окружающую действительность) мне удалось повторить рельеф стены. Она далеко не прямая. Это дуга. Хоть строители-узбеки и делали всё по маякам.

Возвращаясь к начатой теме. Мне благодаря LJ шли предложения о работе по электронике. Паять, ремонтировать, разрабатывать технику.

Последнее предложение работы было из Москвы, переделать дистанционный пульт управленияпромышленной техникой. После чего обещали еще работу. И я согласился на контрактной основе. Ну а чего нет то? Всё равно этим занимаюсь. Вот решил сделать блок управления тёплым полом с нуля (идея то же глупая). Это не сильно отличается от предложенный задачи. Листаю сейчас документацию по пульту. Пульт из себя представляет коробку 12x26x4 сантиметра. Маленький люминисцентный монохромный графический экран 5x2 см. 25 кнопок размером 1 см. И торчащая Wi-Fi антенна. Внутри ATMega64. Что конкретно надо делать, пока не говорили. Но сошлись во мнениях, что ставить ARM с Linux в пульт управления не хорошо.

Сколько хотят дать денег не говорят. Я то же не знаю сколько просить.

Еще присылают приглашения с Head Hunter. Требуется:

1) Программист сайтов на Java. В качестве тестового задания попросили написать простейшую программу:
- Надо сделать красивый, удобный, современный пользовательский интерфейс (AJAX, JS, jQUERY, анимацию и свистелки).
- Всё что он должен делать это загружать, выгружать XML файл (формат прилагается).
- Сделать соответствующий формату XML набор объектов (классов). Функции загрузки и сохранения объектов в XML.
- Сделать запись/чтение этих объектов в/из SQL
- Написать письмо о том как это сделано и как это запустить.

Я бы мог почитать доки и всё сделать. Я почти уверен что все преобразования XML<->объекты<->SQL в Java автоматизированы. Но связывать свою жизнь с сайтостроительством на JAVA не очень хочется.

О предложениях разработки игр iOS, Android, .NET я говорить не буду, поскольку опыт пока нулевой. Как правило так требуют показать свои работы, а их у меня нет.

2) Разработка сайтов на PHP для туристических компаний. Даже такое есть! Но во первых, PHP мне не нравится, хоть я его часто применяю и знаю. Во вторых, кризис туризма же.

3) Программист веб интерфейсов на JavaScript. В качестве тестового задания попросили написать грид способный отображать много-много записей. Я кстати месяц назад сделал такой, поэтому отправлю.

4) Программист С++ QT, SQL в компанию занимающееся разработкой аппаратуры для приема, записи и воспроизведения звука и изображения. Небольшой опыт разработки на QT у меня есть. Год назад я писал веб сервер (веб интерфейс) и оконный интерфейс QT для программы записи и воспроизведения звука и изображения. Да я и в железе шарю.

5) Программист С++ для написания драйверов шифрования информации. Так же им нужен программист для разработки интерфейсов. Сказали, что я пойду сразу на обе должности. С одной стороны, равно 10 лет назад я занимался тем же самым. Опыт есть. Но с другой стороны я всё забыл и мои знания устарели.

В общем по пунктам 3, 4, 5 я пообщаюсь. Ну и может быть 1, если денег много дадут.

Ну а на основной работе еще месяц денег не обещали, а что будет потом не ясно.

Неприлично простой преобразователь из +5В в +12В и -5В

$
0
0
Те кто собирал/запускал компьютеры на процессоре Intel 8080 знают, что этому процессору нужно три напряжения для работы. И поэтому приходится использовать ATX-блоки питания от современных компьютеров. А они больше самого компьютера! Или покупать современные DC-DC преобразователи. А они смотрятся инородно на плате ретрокомпьютера и стоят денег. Есть еще третий способ - собрать преобразователь на деталях 90-х годов, как это сделано в компьютерах: Орион 128, Океан 240, Юниор... Те схемы большие и не с первого раза запускаются.

Например, это Орион 128. Преобразователь занимает нижний правый угол.


И мне не удалось его запустить за пол часа, поэтому я выпаял детали совсем. У меня во всех внешних БП есть 3 напряжения, проще и надежнее было подать их оттуда.

Но все это были блокинг-генераторы. По сути это однотактные обратноходовые преобразователи (вас поколотят, если вы так назовете блокинг-генератор). При своей простоте, они требуют множество дополнительных элементов для стабилизации напряжения.

Тут же показывают двухтактный преобразователь (автогенератор) еще проще. Он выдает два достаточно стабильных напряжения. При заряде выходных конденсаторов выше нормы автогенерация останавливается. Если пропустить выходные напряжения через интегральные стабилизаторы 7905, 7812 то будет идеальная стабильность.



P.S. Устраиваюсь работать низкоуровневым программистом на Linux. Буду заставлять Linux работать на новом (разрабатываемом) оборудовании. И писать драйвера под Linux, для взаимодействия с этим оборудованием.

Наброски конструктора Экон

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

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

Я думал сделать уровни, по типу игры The Increadible Machine. Типа: добавь в нужное место схемы элемент, заставь светодиод мигать.

На картинку можно тыкнуть. Писал всего часа 3, поэтому графика убога, а возможности ограничены.

Шкаф в коридор, пока без дверей.

$
0
0
Доделал шкаф в коридор. Фреза окончательно умерла, на второй вечер поставил новую.

У этого шкафа будут обычные двери на петлях. Девери купе съедают 10 см полезного пространства. А у шкафа и так глубина всего 54 см, куртки только-только влезают. Делать двери сам я пока не решился. Заказывать, пока не нашел где, да и не искал сильно.

Две доски ДСП соединял саморезами и шкантами, где это возможно. ДСП со стеной соединял уголками.

2-ой вечер


1-ый вечер.


Что бы между всеми полками было одинаковое расстояние, в этой полке сделал выемку под электрощит. Конечно, можно было бы это предусмотреть и сместить все полки вниз на 2 см, но я решил не делать чертеж. Вот и нарвался. Но это решение то же по своему гениально. Тут нет щели между полкой и щитом, в которую обязательно будет забиваться грязь.

Ленинград

$
0
0
Речь пойдет о компьютере Ленинград разработанном в 1987 году Сергеем Зоновым. Лениград - это самый популярный Спектрум-совместимый (ZX Spectrum 48K совместимый) компьютер в нашей стране. Если у вас был Спектрум, то с большой вероятностью можно утверждать, что у вас был Ленинград.

Почему же он стал таким популярным? По четырем причинам. Он был одним из первых. Он был очень простым. Он не требовал наладки и легко запускался. Он имел хорошую (но не идеальную) совместимость с оригинальным ZX Spectrum 48K.

Ленинград - это только плата, без корпуса. Просто плата, даже без клавиатуры. И эту плату ставили куда придется, всех вариантов корпусов не перечесть. От стальных фрезерованных корпусов из нержавейки до картонных коробок.



Ленинградом он стал называться не сразу. В родном городе он назывался по фамилии автора "Зоновский компьютер", "Зоновский вариант", "Зона". Или ZS по надписи на печатной плате. Свою фирму Сергей назвал ZS Research, видимо это отсылка к производителю оригинального компьютера Sinclair Research LTD. А когда "Зоновский вариант"стал расползаться по стране, он получил название Ленинград.

Что из себя представлял этот компьютер?

В компьютере использовался центральный процессор Zilog Z80 (или его клон) на частоте 3.5 МГц. Этот процессор является развитием процессора Intel 8080. Процессор Z80 может выполнять код для процессора 8080 (с некоторыми легко поправимыми исключениями), то есть реализует все его команды. А так же добавляет множество новых команд, регистров и индексную адресацию. А так же он в 1.5 раза быстрее.

Это 8 битный процессор с элементами 16 битности. Часть регистров у него 16 битные (SP, PC), остальные 8 битные регистры (A,A',B',C,C',D,D',E,E',F,F',H,H',L,L',IXH,IXL,IYH,IYL) объединяются в пары и могут использоваться как 16 битные регистры (AF,AF',BC,BC',DE,DE',HL,HL',IX,IY). Правда много регистров?

Нижние 16 Кб адресного пространства занимало ПЗУ, верхние 48 Кб занимало ОЗУ. Первые 6912 байт ОЗУ проецировались на экран, то есть были выдеопамятью. Эти характеристики полностью повторяют оригинальный ZX Spectrum 48K. Так же использовалась оригинальная прошивка ПЗУ.

От оригинала этот компьютер отличался скоростью работы памяти и организацией портов ввода вывода. Память работала медленнее. А с портами был вообще беспредел. На чтение все четные порты работали как порт 0FEh (клавиатура и магнитофон), а нечетные как порт джойстика. На запись вообще все порты работали как порт 0FEh (цвет рамки, магнитофон и динамик).

То есть, при попытке вывода в порт принтера, которого в этом компьютере нет, изменялся цвет рамки. Аналогично, при чтении из нереализованных портов, программы получали не те данные. Например порт 0FFh. В оригинале он содержал цвет символа выводимого в данный момент на экран. И это использовали некоторые игры для задержек и предотвращения мерцания экрана. А в Лениграде 0FFh это порт джойстика.

Из за этого какие то программы не работали, какие то работали не так. Но подавляющее большинство игр работало и народ был счастлив.

Вот и всё. Всё очень просто. Я вам рассказал про всю архитектуру компьютера. Разве что, стоит рассказать про видео. Разрешение 256x192 15 фиксированных цветов. Экран разбит на 32x24 блока 8x8 пикселей. В каждом блоке может использоваться только 2 цвета, причем яркие цвета с темными одновременно использоваться не могут.

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

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



Компьютер был через чур упрощен. Разъемы были внешними, а не были установлены на плате. Видеосигнал компьютера понимали не все телевизоры и SECAM/PAL-кодеры. Порта расширения на плате не было, то есть подключить контроллер дисковода (принтер или другое расширение) обычному человеку было не под силу.

Несколько лет спустя Сергей Зонов выпустил вторую версию компьютера - Ленинград 2. Адресация портов немного улучшена (в сторону совместимости с оригиналом). Улучшено формирование видеосигнала. А плата стала еще меньше, при том, что на плате появились разъемы.



Вот эту плату я и буду собирать. Я давно был записан на изготовление этой платы. Но так и не дождался, несколько дней назад SysCat мне её подарил. Большое спасибо. Буду потихоньку собирать. Видео делать не буду, но много текста и фотографий обещаю.



Хочется собирать компьютер на красивой плате. Поставить красивые детали. Сделать качественный
монтаж. И поместить в прозрачный корпус.

Так что предвидится цикл статей про сборку Ленинграда, его устройство и некоторые программы.

Ну а если вы то же хотите собрать какой нибудь компьютер, то я советую вам собрать Ленинград. Он очень простой. И для него очень много программ.

Видео кстати то же будет. Я буду чинить и запускать неизвестный современной науке компьютер. Компьютер с системным блоком и дисководом. Наверное придется адаптировать под него CP/M.

Анаконда

$
0
0
Забрал сегодня с почты компьютер Анаконда. До этого момента я не cобирал компьютеры с отдельным системным блоком. Только моноблоки, где всё спрятано в клавиатуру. Но найти последние компьютеры крайне не просто. Особенно когда не ищешь и денег лишних нет :)

Я поменялся с SysCat на игровую приставку Atari 2600. Ну и Денди в нагрузку отдал. Я решил до конца очистить коллекцию от зарубежных изделий. Только ZX Spectrum +3 оставил. Это спектрум, он чужим быть не может.

О компьютере. Корпус странный. Я сначала подумал, что тут стоит компьютер Пентагон. Самодельных (мелкосерийных) компьютеров с дисководом очень мало. Корпус сделан очень добротно. Что то склеено, что то отлито. Пластмассы не жалели, стенки толстые. Странно только то, что использована белая пластмасса и покрашена в черный цвет.







У меня есть Специалист собранный в такой же клавиатуре. Тут же клавиатура - это просто клавиатура и внутри нет ни одной микросхемы. Поэтому широкий шлейф проводов напрямую от клавиш идет к системному блоку.



Провод просто зажат корпусом.





Никто бы не стал делать плату для своего компьютера, что бы её потом надо было переделывать. Резать дорожки и паять сверху провода. То есть перед нами родная плата этой клавиатуры. Вы видите на этой плате микросхемы? Я то же нет. Значит и в оригинале от клавиатуры к системному блоку шла куча проводов. И это странно. Я бы мультиплексор поставил.



Клавиатура герконовая. То есть собранная на герконах. Геркон - это деталь реагирующая на магнитное поле. Герконы закреплены на плате, а к клавише приклеен магнит. Нажимаем на клавишу, магнит приближается к геркону, геркон передает сигнал в компьютер.

Но главное не это. Главное надежность. С герконами никогда нет проблем. Клавиатура спустя 26 лет идеально работает. Ну а обычные клавиатуры того времени плохо нажимались с первых дней жизни.









Мы видим две платы соединенных разъемом. Можно предположить, что нижняя плата - это полноценный компьютер содержащий: процессор КР580ВМ80А (8080A), ОЗУ 64 Кб, ПЗУ 2 Кб, черно-белый видеоадаптер, порт клавиатуры и магнитофона и последовательный порт (КР580ВВ51А, RS232). На нижней плате 1989 год. Верхняя плата - это контроллер дисковода и порт принтера. На верхней плате 1990 год.

Можно даже предположить, что это компьютер Специалист. Но тогда это очень интересный вариант Специалиста. Небольшая плата с последовательным портом и с разъемом расширения. И для всего этого существует контроллер дисковода.

Корпус странный. Возможно, что сделан был не под эту плату. А просто первый попавшийся корпус использовали для своего компьютера. Видите прямоугольнички, на которые крепится плата, приклеены на вентиляционые отверстия? Так бы никто делать не стал.



Эта плата очень похожа на вторичный блок питания, который вырабатывает напряжения -5В и +12В для процессора и контроллера дисковода. В компьютер входит всего одно напряжение, а микросхемам надо 3 напряжения.

Вариант, что плата вырабатывает все 3 напряжения (например из 42 Вольт) отпадает, потому что к плате идет всего 4 провода.

Провода от трансформатора (черного кольца) оторваны. Вообще в компьютере много чего оторвано. Но ни одна драгоценная деталь не была выкушена. Например, оранжевые конденсаторы.



Дисковод из Индии! Я ни разу в жизни не видел индийских дисководов.

Я не могу поднять, зачем дисковод подняли над корпусом. Под дисководом неиспользуемое место! Корпус буквой Г выгляит крайне странно.



В общем, компьютер не массовый, не заводской, ручной сборки. В нём очень много конструкционных недочетов. Но что то в нём есть от серьёзного компьютера. Может быть грамотно разведенные печатные платы, дисковая операционная система, локальная сеть (на КР580ВВ51А).
Viewing all 319 articles
Browse latest View live