|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.04.2019, 02:09 | #1 |
Пользователь
Регистрация: 06.07.2008
Сообщений: 91
|
и снова консоль 80х25
Извиняюсь за надоедливость.
В чистой (не эмулятор терминала, загрузился передав ядру параметр nomodeset) буквенноцифровай консоли 80х25 (без фреймбуфера!) загрузил командой setfont шрифты, в ascii первый символ идёт NUL, потом SOH и т. д. В моих же шрифтах первым идёт символ копирайта - "С" в кружке, далее идут то же вполне печатные символы. По команде showconsolefont они все прекрасно выводятся на консоль, все 256 символов. Далее попытался вывести первый символ копирайта командой echo: Код:
Я не пойму почему так? И как можно вывести символы из командной строки, которые есть в шрифте. Некоторые спросят меня, зачем мне это когда есть графика, отвечаю. Хотел написать небольшую игру на баше и в шрифтах сделать некоторые изображения, комбинируя которые можно кое что нарисовать. Я понимаю что в эмуляторе, да и во фреймбуфере это работать не будет, но я просто хотел попробовать как у меня это получится в чистой консоли. Ведь линукс для людей, всё можно настроить, подправить исходники и вот тут сразу споткнулся казалось бы в простом. А теперь уже даже интересно почему echo не выводить некоторые символы из шрифта, при этом showconsolefont прекрасно выводит все символы которые есть в шрифте. И ещё, если при изменении шрифта не записать таблицу перекодировки для юникода, то кириллица не выведется, вместо неё будут вопросительные знаки. Ну откуда в чистой консоли может фигурировать юникод? Последний момент, неужели нет никакого способа как можно поменять количество столбцов и строк во фреймбуфере, уменьшив их количество при этом увеличив размеры знакоместа, кроме как записывая в виртуальный знакогенератор шрифт размерами 16х32? Команда fbset меняет разрешение, например с 1024х768 на 640х400 но при этом размер знакоместа не меняется, он как был маленьким так и останется, в результате начинает использоваться пол экрана, а вторая половина не используется. |
07.04.2019, 22:34 | #2 |
Пользователь
Регистрация: 06.07.2008
Сообщений: 91
|
Кое что прояснилось:
Все символы можно посмотреть командой: Код:
Код:
Код:
И выводить, как подсказали на другом форуме, можно так: Код:
Код:
Код:
Остались невыясненными следующие вопросы: Как изменить в чистой текстовой консоли количество выводимых строк и столбцов, без перезагрузки, из самой консоли? Ведь есть режимы 40х25, 160х50 и т.д. Для этого есть команда: Код:
Дистрибутив у меня devuan - это ветка от debian без systemd. В нём в репозиториях svgalib нет. Скачал deb пакет и попытался из него использовать restoretextmode, но оказалось что нет библиотеки svgalib, её поставить так и не удалось. Может этот файл можно создать вручную в текстовом редакторе? Второй вопрос как изменить количество выводимых столбцов и строк в фреймбуфере, не прибегая к загрузке шрифта разрешением 16х32 fbset не подходит, так как: например у меня 1024х768, удалось выставить и реальные и виртуальные размеры 640х400, но сам размер знакоместа не изменился, в результате стало использоваться приблизительно пол экрана с размерами знакоместа такими какими они были ранее при 1024х768. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Re: из консоли вернуть разрешение 80х25 | v4567 | Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) | 3 | 04.04.2019 23:09 |
Снова я и снова геморрой, только уже с многопоточностью | FleXik | Общие вопросы Delphi | 26 | 07.07.2013 16:48 |
И снова SQL | Impuls1989 | БД в Delphi | 3 | 13.03.2010 22:46 |
MDIChild снова и снова... | Siber_Dec | Общие вопросы Delphi | 2 | 13.12.2009 03:24 |
и снова Mdi | Баламут | Общие вопросы Delphi | 1 | 28.11.2006 07:03 |