Форум системных администраторов

IT => Unix => Тема начата: v4567 от 06 апреля 2019, 02:11:31

Название: и снова консоль 80х25
Отправлено: v4567 от 06 апреля 2019, 02:11:31
Извиняюсь за надоедливость.
В чистой (не эмулятор терминала, загрузился передав ядру параметр nomodeset) буквенноцифровай консоли 80х25 (без фреймбуфера!) загрузил командой setfont шрифты, в ascii первый символ идёт NUL, потом SOH и т. д.
В моих же шрифтах первым идёт символ копирайта - "С" в кружке, далее идут то же вполне печатные символы.
По команде showconsolefont они все прекрасно выводятся на консоль, все 256 символов.
Далее попытался вывести первый символ копирайта командой echo:
echo -e "\x00"

Но вывелось пустое место, при помощи такого вывода, выводятся: латиница, кириллица, цифры, а вот символы псевдографики вывести не удалось, вместо символов псевдографики выводится ромбик.
Я не пойму почему так?
И как можно вывести символы из командной строки, которые есть в шрифте.
Некоторые спросят меня, зачем мне это когда есть графика, отвечаю. Хотел написать небольшую игру на баше и в шрифтах сделать некоторые изображения, комбинируя которые можно кое что нарисовать. Я понимаю что в эмуляторе, да и во фреймбуфере это работать не будет, но я просто хотел попробовать как у меня это получится в чистой консоли. Ведь линукс для людей, всё можно настроить, подправить исходники и вот тут сразу споткнулся казалось бы в простом. А теперь уже даже интересно почему echo не выводить некоторые символы из шрифта, при этом showconsolefont прекрасно выводит все символы которые есть в шрифте.
И ещё, если при изменении шрифта не записать таблицу перекодировки для юникода, то кириллица не выведется, вместо неё будут вопросительные знаки. Ну откуда в чистой консоли может фигурировать юникод?
Последний момент, неужели нет никакого способа как можно поменять количество столбцов и строк во фреймбуфере, уменьшив их количество при этом увеличив размеры знакоместа, кроме как записывая в виртуальный знакогенератор шрифт размерами 16х32? Команда fbset меняет разрешение, например с 1024х768 на 640х400 но при этом размер знакоместа не меняется, он как был маленьким так и останется, в результате начинает использоваться пол экрана, а вторая половина не используется.