<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kharon-386 on Uzix | микроблог</title><link>https://err200.net/tags/kharon-386/</link><description>Recent content in Kharon-386 on Uzix | микроблог</description><generator>Hugo</generator><language>ru-RU</language><lastBuildDate>Sat, 17 May 2025 13:06:22 +0300</lastBuildDate><atom:link href="https://err200.net/tags/kharon-386/index.xml" rel="self" type="application/rss+xml"/><item><title>Раздумываю над следующей ревизией Харона 386...</title><link>https://err200.net/20250517-kharon-sd/</link><pubDate>Sat, 17 May 2025 13:06:22 +0300</pubDate><guid>https://err200.net/20250517-kharon-sd/</guid><description>&lt;p&gt;Раздумываю над следующей ревизией Харона 386. Предварительно хочу добавить на борт 8 Мб ОЗУ, видео на Сirrus Logic вместо Trident, PicoGUS (вместе с текущим звуком от ESS), выход MIDI, питание от USB Type C и SD-карту вместо Compact Flash.&lt;/p&gt;
&lt;p&gt;К последнему больше всего вопросов - опенсорсных переходников IDE/SD мне найти не удалось, а микросхем, которые применяются на широко доступных китайских конвертерах, в открытой продаже нет. Придётся изобретать свой софт и железо для такого переходника, а т.к. экспериментировать на плате Харона - дорогое удовольствие - то нарисовал отдельную плату под это дело, на базе микроконтроллера RP2350. Если всё получится, встрою её на будущий Харон.&lt;/p&gt;</description></item><item><title>Подружил Выдру...</title><link>https://err200.net/20250206-otterlymidi-with-kharon/</link><pubDate>Thu, 06 Feb 2025 21:05:36 +0300</pubDate><guid>https://err200.net/20250206-otterlymidi-with-kharon/</guid><description>&lt;p&gt;Подружил Выдру (ака OtterlyMIDI) с Хароном. У Харона нет миди выхода (точнее, к нему подключен миди чип внутри самого компа), но есть COM-порт, на который с помощью драйвера SoftMPU можно виртуально перенаправить выход миди. Совместимость этого драйвера далеко не 100%, но Monkey Island запускается и поёт :)&lt;/p&gt;
&lt;p&gt;А теперь грустная новость: MT32-PI - титанический проект, на чьих плечах стоит OtterlyMIDI - похоже, всё &lt;a href="https://t.me/yellow_room_nerdcave/1166"&gt;https://t.me/yellow_room_nerdcave/1166&lt;/a&gt; :-(&lt;/p&gt;</description></item><item><title>Релиз Kharon-386</title><link>https://err200.net/20230919-kharon-release/</link><pubDate>Tue, 19 Sep 2023 20:24:24 +0300</pubDate><guid>https://err200.net/20230919-kharon-release/</guid><description>&lt;p&gt;Публикую свой небольшой хобби-проект - Kharon-386. Это миниатюрный IBM-PC совместимый компьютер с 386 процессором, интегрированным VGA видео и звуком.&lt;/p&gt;
&lt;p&gt;Технические характеристики:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;M6117D SoC со встроенным ядром 386SX40 (по большей части совместимым с обычным i386) и чипсетом M1217B&lt;/li&gt;
&lt;li&gt;4 Мб ОЗУ&lt;/li&gt;
&lt;li&gt;TVGA9000i VGA видео&lt;/li&gt;
&lt;li&gt;ES1868F SoundBlasterPro-совместимый звук&lt;/li&gt;
&lt;li&gt;SAM2695 MIDI-синтезатор&lt;/li&gt;
&lt;li&gt;ESP8266 WiFi-модуль&lt;/li&gt;
&lt;li&gt;PS/2 разъёмы для мыши и клавиатуры&lt;/li&gt;
&lt;li&gt;2xCOM порты&lt;/li&gt;
&lt;li&gt;Слот CompactFlash&lt;/li&gt;
&lt;li&gt;Встроенные часы с батарейкой&lt;/li&gt;
&lt;li&gt;PC-спикер&lt;/li&gt;
&lt;li&gt;Питание от microUSB БП 5.1В (можно использовать БП от Raspberry Pi)&lt;/li&gt;
&lt;li&gt;Две четырёхслойные печатные платы размером 10x10см + печатная плата передней/задней заглушки корпуса&lt;/li&gt;
&lt;li&gt;Корпус G738 или G706&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Проект открытый и некоммерческий, исходники распространяются под лицензией CC-BY-SA-4.0.
Все исходные файлы, файлы для производства и прочая информация доступны по ссылке:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/UzixLS/pc-kharon-386"&gt;https://github.com/UzixLS/pc-kharon-386&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Продолжение истории про отсутствие звуковых эффектов в Tyrian на Хароне...</title><link>https://err200.net/20230624-kharon-sound/</link><pubDate>Sat, 24 Jun 2023 10:36:23 +0300</pubDate><guid>https://err200.net/20230624-kharon-sound/</guid><description>&lt;p&gt;Продолжение истории про отсутствие звуковых эффектов в Tyrian на Хароне-386. Чтобы убедиться, что дело не в ошибке в схеме или в разводке плат Харона, приобрёл одноплатный компьютер на базе такого же чипа M6117D. И оказалось, что на нём точно такая же проблема.
Наверное, лучшим выходом было бы использовать в Хароне стандартный 386 процессор + чипсет, но китайцы таковые не продают, а распаивать старые платы ради новоделов у меня рука не поднимется.&lt;/p&gt;</description></item><item><title>Играюсь с воспроизведением MIDI-музыки на Хароне-386...</title><link>https://err200.net/20230605-kharon-midi/</link><pubDate>Mon, 05 Jun 2023 20:19:55 +0300</pubDate><guid>https://err200.net/20230605-kharon-midi/</guid><description>&lt;p&gt;Играюсь с воспроизведением MIDI-музыки на Хароне-386 через COM-порт. Raspberry Pi 1, к сожалению, никак не поддерживается проектом MT32-PI (даже сборку под ARMv6 не делают), зато на Raspberry Pi 3 и на обычном Wintel ПК (через связку Hairless MIDI Serial Bridge + loopMIDI + Midi Player) всё удалось настроить влёт. В принципе, особого смысла в такой конфигурации нет – т.к. на Хароне есть довольно неплохой встроенный MIDI-синтезатор на SAM2695 – но заставить работать всю эту цепочку было интересно.&lt;/p&gt;</description></item><item><title>Столкнулся с неработоспособностью DOSLFN на Хароне...</title><link>https://err200.net/20230330-kharon-doslfn/</link><pubDate>Thu, 30 Mar 2023 21:49:55 +0300</pubDate><guid>https://err200.net/20230330-kharon-doslfn/</guid><description>&lt;p&gt;Столкнулся с неработоспособностью DOSLFN на Хароне-386: программы с поддержкой длинных имён файлов либо не видели их, либо (если запущен EMM) падали с сообщением об ошибке. Сначала грешил на проблемную CF-карту, на битую память, на ошибку в схеме по части подключения CF, но в итоге стало понятно что проблема, скорее всего, программная. Я долго не хотел лезть в эту проблему т.к. совершенно ничего не знаю ни об отладке в MSDOS, ни даже ассемблера x86 (спойлер: если бы знал, проблема бы решилась спустя 30 минут после прочтения сообщения об ошибке). В общем, пришлось погрузиться в этот мир на пару вечеров. В обнимку с debug.exe (а позднее уже и Turbo Debugger) и документацией по DOS API, скачанной с самых задворков интернета, написал небольшую программку, которая всё что делает - это простое обращение к LFN API для поиска файла по длинному имени. Ожидаемо, на Хароне это обращение проваливалось - с ошибкой &amp;ldquo;файл не найден&amp;rdquo;, в то время как на любой другой машине проходило.&lt;/p&gt;
&lt;p&gt;Долго ли, коротко ли - трассировка привела к замечательной функции в исходниках DOSLFN:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;proc GlobbingEx
 mov di,[CurPathComp]
 xchg si,di
 call Globbing
 xchg si,di
 db 0D6h ;setalc
 or al,al
_glob_ret:
 ret
endp
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Эта функция вызывается для каждого файла в каталоге и сопоставляет его длинное имя с искомым. И трассировка показала, что именно в этой функции есть странная инструкция &amp;ldquo;db 0D6h ;setalc&amp;rdquo;, которая на Хароне выполняется не так, как на других машинах! Оказалось, это недокументированная инструкция, которая по факту есть во всех процессорах начиная с 8086. Во всех, но, не в M6117D, который используется в Хароне! И который вроде как заявляется как полностью 386SX-совместимый. После замены этой инструкции на стандартную &amp;ldquo;sbb al,al&amp;rdquo;, которая делает то же самое, но занимает на 1 байт больше места (вот так &amp;ldquo;экономия&amp;rdquo;!), DOSLFN прекрасно заработал.
Вот такой мини-детектив. Письмо мейнтейнеру DOSLFN я написал, надеюсь, это исправление войдёт в следующую версию.&lt;/p&gt;</description></item><item><title>Давненько ничего не писал про Харон-386...</title><link>https://err200.net/20230326-kharon-sound/</link><pubDate>Sun, 26 Mar 2023 20:39:15 +0300</pubDate><guid>https://err200.net/20230326-kharon-sound/</guid><description>&lt;p&gt;Давненько ничего не писал про Харон-386. Ещё в прошлом году столкнулся с проблемой в работе звукового чипа ES1868 - назначался неправильный IRQ при загрузке драйвера. Т.е., например, драйвер назначает карте IRQ 5, а она оказывается на IRQ 7. Искал проблему в схеме, на плате, перебирал драйвера, перечитывал документацию, прозванивал, сравнивал с аналогичными картами - всё без результата. Так и забросил на полку почти на полгода. Сейчас просто решил сдуть чип и запаять другой - и всё завелось как надо&amp;hellip; Что это было? Может быть перемаркировка другого чипа, или, может быть на заводе зашили другое содержимое встроенного ПЗУ (в котором и хранятся номера IRQ) - непонятно.&lt;/p&gt;
&lt;p&gt;Движемся дальше - нет звуковых эффектов в Tyrian (а MIDI/FM музыка есть). Посмотрим сколько времени займёт эта проблема&amp;hellip;&lt;/p&gt;</description></item><item><title>Наладил TCP/IP через WiFi на Хароне...</title><link>https://err200.net/20221121-kharon-wifi/</link><pubDate>Mon, 21 Nov 2022 21:51:43 +0300</pubDate><guid>https://err200.net/20221121-kharon-wifi/</guid><description>&lt;p&gt;Наладил TCP/IP через WiFi на Хароне, но пока весьма костыльным способом - поднял на Linux-машине SLIP-туннель на виртуальном последовательном порте, расшарил с помощью socat этот порт через TCP, на Хароне в WiFi-модем залил прошивку Zimodem, подключился через неё на этот TCP-порт, и, наконец, подключил к COM-порту wifi-модема пакетный драйвер с поддержкой SLIP - ethersl. В общем, &amp;ldquo;в зайце утка, в утке яйцо&amp;rdquo;&amp;hellip; Эту цепочку можно сильно сократить если использовать прошивку esp_slip_router, но этим займусь уже потом.&lt;/p&gt;</description></item><item><title>А тем временем верхняя плата Харона-386...</title><link>https://err200.net/20221119-kharon-top/</link><pubDate>Sat, 19 Nov 2022 19:29:29 +0300</pubDate><guid>https://err200.net/20221119-kharon-top/</guid><description>&lt;p&gt;А тем временем верхняя плата Харона-386 запаяна и показывает картинку!&lt;/p&gt;</description></item><item><title>Нижняя готова...</title><link>https://err200.net/20221105-kharon-bottom-done/</link><pubDate>Sat, 05 Nov 2022 12:25:09 +0300</pubDate><guid>https://err200.net/20221105-kharon-bottom-done/</guid><description>&lt;p&gt;Нижняя готова. Не без ошибок, но ничего непоправимого.&lt;/p&gt;</description></item><item><title>Первый пуск...</title><link>https://err200.net/20221028-kharon-first-start/</link><pubDate>Fri, 28 Oct 2022 22:08:50 +0300</pubDate><guid>https://err200.net/20221028-kharon-first-start/</guid><description>&lt;p&gt;Первый пуск - успех!&lt;/p&gt;</description></item><item><title>Пришли платы с JLC...</title><link>https://err200.net/20221018-jlc-pcb/</link><pubDate>Tue, 18 Oct 2022 18:43:06 +0300</pubDate><guid>https://err200.net/20221018-jlc-pcb/</guid><description>&lt;p&gt;Пришли платы с JLC. Доставка в Белгород заняла 3 недели ровно.&lt;/p&gt;</description></item><item><title>Отпуск не проходит впустую...</title><link>https://err200.net/20220621-kharon/</link><pubDate>Tue, 21 Jun 2022 17:27:42 +0300</pubDate><guid>https://err200.net/20220621-kharon/</guid><description>&lt;p&gt;Отпуск не проходит впустую. Доразвёл обе платы - 4 слоя, 10x10см.&lt;/p&gt;</description></item></channel></rss>