Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:font_editor:font_editor [2022-05-14 20:36] GreyWolf [Работа с программой] |
msx:font_editor:font_editor [2022-07-31 22:39] (текущий) GreyWolf |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== MSX2 Font editor ====== | ====== MSX2 Font editor ====== | ||
- | FIXME | + | |
+ | {{:msx:font_editor:font_editor-52.gif|}} | ||
+ | |||
+ | |||
+ | ~~TOC wide~~ | ||
+ | ~~TOC_HERE~~ | ||
[[github>Dolphin101546015/MSX2_2plus_Projects/tree/master/8x16_Font_Editor_v2.5|MSX2 Font editor]] | [[github>Dolphin101546015/MSX2_2plus_Projects/tree/master/8x16_Font_Editor_v2.5|MSX2 Font editor]] | ||
- | (c) by Dolphin_Soft Vladivostok 2019 | + | (c) by Dolphin_Soft Vladivostok 2018–2022 |
+ | |||
+ | Написан на [[msx:nestor_basic:nestor_basic|]]. | ||
- | Программа предназначена для редактирования экранных шрифтов, разрешением 8х16 пикселей. Эти шрифты могут использоваться во всех текстовых режимах или тайловых режимах: | + | Программа предназначена для редактирования экранных шрифтов, разрешением 8×16 пикселей. Эти шрифты могут использоваться во всех текстовых режимах или тайловых режимах: |
- | * Screen 0, 40 символов шириной (аппаратное разрешение символа 6х16) | + | * Screen 0, 40 символов шириной (аппаратное разрешение символа 6×16) |
- | * Screen 0, 80 символов шириной (аппаратное разрешение символа 6х16) | + | * Screen 0, 80 символов шириной (аппаратное разрешение символа 6×16) |
- | * Screen 1 и выше: 32 символа шириной (аппаратное разрешение символа 8х16) | + | * Screen 1 и выше: 32 символа шириной (аппаратное разрешение символа 8×16) |
Программа при старте включает режим черезстрочной развёртки, и инициализирует прерывание луча развёртки, в котором производится считывание чётности выводимого кадра, и в соответствии ей переключается адрес знакогенератора. | Программа при старте включает режим черезстрочной развёртки, и инициализирует прерывание луча развёртки, в котором производится считывание чётности выводимого кадра, и в соответствии ей переключается адрес знакогенератора. | ||
Строка 16: | Строка 23: | ||
При редактировании, возможно искажение символов до такой степени, что интерфейс программы становится нечитаемым. Для того чтобы этого избежать, была создана возможность использования "Системного шрифта", который загружается на этапе запуска, и реализована возможность переключения между редактируемым шрифтом и системным. | При редактировании, возможно искажение символов до такой степени, что интерфейс программы становится нечитаемым. Для того чтобы этого избежать, была создана возможность использования "Системного шрифта", который загружается на этапе запуска, и реализована возможность переключения между редактируемым шрифтом и системным. | ||
- | Так как при операциях дискового ввода/вывода, невозможна работа прерываний, программа при старте копирует штатный шрифт (8х8) в теневую страницу, и при выполнении дискового ввода/вывода, переключается кратковременно на него. | + | Так как при операциях дискового ввода/вывода, невозможна работа прерываний, программа при старте копирует штатный шрифт (8×8) в теневую страницу, и при выполнении дискового ввода/вывода, переключается кратковременно на него. |
\\ Эта возможность не была предусмотрена на этапе разработки программы, поэтому изначально, адреса банков для редактирования были выбраны штатные для режима SCREEN0, 80 символов в строке (адрес знакогенератора 0x1000). | \\ Эта возможность не была предусмотрена на этапе разработки программы, поэтому изначально, адреса банков для редактирования были выбраны штатные для режима SCREEN0, 80 символов в строке (адрес знакогенератора 0x1000). | ||
\\ Таким образом, проблема была устранена. | \\ Таким образом, проблема была устранена. | ||
Строка 26: | Строка 33: | ||
При старте программы, выполняются инициализации, загрузка системного шрифта, перемещение таблицы цветов (области блинка), и выполняется вывод интерфейса. | При старте программы, выполняются инициализации, загрузка системного шрифта, перемещение таблицы цветов (области блинка), и выполняется вывод интерфейса. | ||
- | Редактируемый шрифт при этом, берётся штатный (8х8), и выполняется его копия в Банк1 из Банк0, тем самым достигается конвертирование стандартного шрифта 8х8, в удвоенный — 8х16. | + | Редактируемый шрифт при этом, берётся штатный (8×8), и выполняется его копия в Банк1 из Банк0, тем самым достигается конвертирование стандартного шрифта 8×8, в удвоенный — 8×16. |
Все дальнейшие операции с программой эти действия не выполняют. | Все дальнейшие операции с программой эти действия не выполняют. | ||
Используемая видеопамять распределена следующим образом: | Используемая видеопамять распределена следующим образом: | ||
- | |0x0000-0x07FF|Экранная область| | + | |0x0000–0x07FF|Экранная область| |
- | |0x0800-0x0FFF|Теневая страница (при старте в ней создаётся справка по клавишам)| | + | |0x0800–0x0FFF|Теневая страница (при старте в ней создаётся справка по клавишам)| |
- | |0x1000-0x17FF|Банк №0 редактируемого шрифта (чётные строки)| | + | |0x1000–0x17FF|Банк №0 редактируемого шрифта (чётные строки)| |
- | |0x1800-0x1FFF|Банк №1 редактируемого шрифта (нечётные строки)| | + | |0x1800–0x1FFF|Банк №1 редактируемого шрифта (нечётные строки)| |
- | |0x2000-0x27FF|Банк №0 системного шрифта (чётные строки)| | + | |0x2000–0x27FF|Банк №0 системного шрифта (чётные строки)| |
- | |0x2800-0x2FFF|Банк №1 системного шрифта (нечётные строки)| | + | |0x2800–0x2FFF|Банк №1 системного шрифта (нечётные строки)| |
- | |0x3000-0x37FF|Банк стандартного шрифта (8х8) для операций ввода/вывода| | + | |0x3000–0x37FF|Банк стандартного шрифта (8×8) для операций ввода/вывода| |
- | |0x3800-0xBFFF|Неиспользуемая область видеопамяти| | + | |0x3800–0xBFFF|Неиспользуемая область видеопамяти| |
- | |0xC000-0xC0FF|Таблица цветов (знакоместа областей блинка)| | + | |0xC000–0xC0FF|Таблица цветов (знакоместа областей блинка)| |
- | |0xC100-0xC112|Служебная область флагов и буфер копирования символа| | + | |0xC100–0xC112|Служебная область флагов и буфер копирования символа| |
- | При сохранении редактируемого шрифта, создаётся бинарный файл ''font.fnt'', в который копируется область видео-буфера, лежащая по адресам: \\ 0x1000 – 0x1FFF, размером 4кб. | + | При сохранении редактируемого шрифта, создаётся бинарный файл ''font.fnt'', в который копируется область видео–буфера, лежащая по адресам: \\ 0x1000 – 0x1FFF, размером 4кб. |
Полученный файл представляет собой два банка шрифта, в первой половине файла находятся чётные строки, во второй соответственно нечётные. | Полученный файл представляет собой два банка шрифта, в первой половине файла находятся чётные строки, во второй соответственно нечётные. | ||
Строка 58: | Строка 65: | ||
Интерфейс программы очень прост и информативен. | Интерфейс программы очень прост и информативен. | ||
- | \\ Вверхней части находится тайтл, в котором содержится названия, номер версии, и правообладатель (я - Dolphin_Soft) :) | + | \\ Вверхней части находится тайтл, в котором содержится названия, номер версии, и правообладатель (я — Dolphin_Soft) :) |
\\ В центре экрана находится табличка адресов редактируемого фонта, текущий адрес отображаемого шрифта (системный), под которым находится информация о текущем символе редактирования (его код в hex и dec виде, а так же сам символ) Под таблицей адресов, распологается карта шрифта, с выделенным в ней символом, который выбран в качестве редактируемого. | \\ В центре экрана находится табличка адресов редактируемого фонта, текущий адрес отображаемого шрифта (системный), под которым находится информация о текущем символе редактирования (его код в hex и dec виде, а так же сам символ) Под таблицей адресов, распологается карта шрифта, с выделенным в ней символом, который выбран в качестве редактируемого. | ||
- | В правой части находится "Линза символа" - область для редактирования, в которой можно выполнять перемещения курсора, клавишами управления. | + | В правой части находится "Линза символа" — область для редактирования, в которой можно выполнять перемещения курсора, клавишами управления. |
\\ Строки линзы тонированны разным цветом, показывая, в каком банке шрифта, находится | \\ Строки линзы тонированны разным цветом, показывая, в каком банке шрифта, находится | ||
редактируемая строка. | редактируемая строка. | ||
Строка 73: | Строка 80: | ||
Внизу экрана находится панграма, отображающая все буквы шрифта, в кодировке MSX. | Внизу экрана находится панграма, отображающая все буквы шрифта, в кодировке MSX. | ||
- | Под ней располагаются "Ключи" — клавиши управления, более развёрнутую справку по которым, можно получить, удерживая клавишу - <key>H</key>: | + | Под ней располагаются "Ключи" — клавиши управления, более развёрнутую справку по которым, можно получить, удерживая клавишу — <key>H</key>: |
+ | |<100% 10% 15% 75%>| | ||
|<key>S</key>|Save ''Font.fnt''|Сохранение редактируемого шрифта| | |<key>S</key>|Save ''Font.fnt''|Сохранение редактируемого шрифта| | ||
|<key>L</key>|Load ''Font.fnt''|Загрузка редактируемого шрифта| | |<key>L</key>|Load ''Font.fnt''|Загрузка редактируемого шрифта| | ||
|<key>B</key>|System Font Adr.|Переключает вид между шрифтами "редактируемый" <-> "системный"| | |<key>B</key>|System Font Adr.|Переключает вид между шрифтами "редактируемый" <-> "системный"| | ||
- | |<key>C</key>|%%Copy Bank 0 -> 1%%|Выполняет копирование банка 0 в банк 1| | + | |<key>C</key>|Copy Bank 0 -> 1|Выполняет копирование банка 0 в банк 1| |
|<key>R</key>|Load BIOS char|Перечитывает карту символа из ПЗУ, с копированием в банк 1| | |<key>R</key>|Load BIOS char|Перечитывает карту символа из ПЗУ, с копированием в банк 1| | ||
|<key>F</key>|Fill ( white )|Заполняет все блоки линзы| | |<key>F</key>|Fill ( white )|Заполняет все блоки линзы| | ||
Строка 107: | Строка 114: | ||
Клавишами <key>S</key> и <key>L</key>, производятся сохранение и загрузка редактируемого шрифта, соответственно. | Клавишами <key>S</key> и <key>L</key>, производятся сохранение и загрузка редактируемого шрифта, соответственно. | ||
\\ Загрузка и сохранение не подразумевают задания имени шрифта. | \\ Загрузка и сохранение не подразумевают задания имени шрифта. | ||
- | \\ Используется имя файла - ''font.fnt'' | + | \\ Используется имя файла — ''font.fnt'' |
====== Ссылки ====== | ====== Ссылки ====== | ||
+ | [[msxorg>forum/msx-talk/development/msx22-universal-font-editor-v33-with-drivers-kun-basic| MSX2(2+) Universal font editor v3.3, with drivers (Kun-Basic)]] | ||
+ | [[zxpkru>threads/30361-msx2-2-font-editor-8x16-(v2-5-final)-(x-basic)-sample-fonts-(also-with-codepages).html|MSX2/2+ Font Editor 8x16 (v2.5 final) (X-Basic) + sample fonts (also with codepages) | ||
+ | ]] | ||
- | {{tag>MSX fonts Application}} | ||
+ | {{tag>MSX fonts Application BASIC X-BASIC}} |