(C) ALF/RD
Про асции графику.
Посвящается тем,
кто не умеет рисовать,
ни буквами ни точками...
Здравствуйте. Сегодня мне бы хоте-
лось поделиться с вами моими мыслями и
достижениями на тему: "Картинка и текст -
понятия растяжимые" . Нет, речь сдесь
пойдет не о том, как рисовать символами
( об этом написано в e/p Buzz #16-17 ), а
о том, как перевести просто картинку в
формат текста (я не буду отвечать на про-
вакационный вопрос "Зачем?" , ведь в
Modern Word 'e есть специальная утилита
для перевода картинок в символы. Ответ на
этот вопрос смотри ниже). Ну, вздохнете
вы, - "Мы и так все про это знаем" . Уве-
ряю вас, не все. Я хочу поведать вам три
способа это сделать. И мне кажется, все
эти способы уже давно применяются во мно-
гих местах (там где есть тексты) и прог-
раммах. Прочитайте по крайней мере два-т-
ри абзаца...
Итак начнем с самого легкого:
Способ нумбер АДЫН.
Он заключается в том, что вы берете
программы типа ASCII_2 (мне по крайней
мере известна только она) или текстовый
редактор Modern Word 2. 1 (может и еще
какой). И просто конвертите картинку в
символы. Это самый простой, но не самый
эффективный способ. Хотя если вы хотите
именно буквенный способ отображения гра-
фики, то собствено на этом для вас про-
цесс закончен.
После того, как я первый раз вос-
пользовался таким методом, я почему-то
подумал, что мне не суждено выдеть в
своих хелпах ascii иллюстрации. Но после,
я дошел еще до одного, даже двух мето-
дов.
Собственно второй и третий метод
связаны между собой, по крайней мере, на
последнем и, полагаю, на первом этапах.
Для людей, не разбирающихся в ас-
семблере, я посоветую метод три, потому
как второй требует минимальное его зна-
ние (то есть, надо уметь набирать проце-
дуры, приведенные мною ниже и их апосля
запускать и выгружать из отладчика полу-
ченный результат, во всех примерах с ад-
реса #6000>24576). Для третьего же необ-
ходим редактор Modern Word 2. 1 by
Demiurgn Ash (или с подобной ему функ-
цией, а именно, конвертором экрана в
ascii симво лы с ЗАДАВАЕМОЙ таблицей гра-
даций, в редакторе M. Word опция зовется
ZX SCREEN > ASCII by Sairoos , и таблица
градаций хранится в файле wordasci.C ),
и вот еще что оба метода основаны на так
называемом методе Chunk 'ов, то есть
текстур, обозначающих различные градации
цвета (а-а-а, вот о чем будет весь этот
бред...).
Метод нумбер ДЫВА.
Мона его использовать для получения
увеличеного изображения, например, из по-
ловины нормального экрана - целого текс-
тового.
На первом этапе нам понадобится
программа конвертирования экран в
chunk 'и, мне известна пока только одна -
Hardcore , он же их и редактировать потом
сможет. А так же какой-нибудь редактор
шрифтов.
1. Берем стандартный набор ( или M.
WORD , он хранится в файле wordfont.<C> )
в 256 символов. Тут мы столкнемся с пер-
вой трудностью. Фонт из этих редакторов
не может быть исправлен просто фонт эди-
тором, потому как он имеет не совсем или
совсем не стандартную структуру (в прос-
том понимании ), а именно для скорости
при печати символа байты располагаются
так: Первый байт, через 256 байт Второй,
через еще 256 Третий и так далее...
Если вы используете в своем вьювере
не такой фонт, то вам его придется пере-
делать. Я воспользовался такой процедур-
кой:
ORG #7000
LD HL,#8000; zx-word 'овский шрифт,
LD DE,#6000; получившийся шрифт.
LD BC,256
LP PUSH BC
PUSH HL ;все тупо и просто,
LD B,8 ;как все мои творения.
LP2 LD A,(HL);может можно п-цу и
LD (DE),A ;поменьше сделать, но
INC H ;Зачем? Я же тут не
INC DE ;про демомейкинг пишу.
DJNZ LP2
POP HL
INC HL
POP BC
DEC C
JR NZ,LP
DEC B
JR NZ,LP
RET
Так же вам после понадобится и эта
процедурка. Она аналогична первой, но пе-
ределывает фонт из нормального в М.
WORD 'овский.
ORG #7000
LD DE,#8000; нормальный шрифт,
LD HL,#6000; извращенный для zx-wd
LD BC,256
LP PUSH BC
PUSH HL
LD B,8
LP2 LD A,(DE); РАЗЛИЧИЕ С ПЕРВОЙ
LD (HL),A ; ПРОСТО "ГЛОБАЛЬНЫЕ".
INC H
INC DE
DJNZ LP2
POP HL
INC HL
POP BC
DEC C
JR NZ,LP
DEC B
JR NZ,LP
RET
Все понятно, как божий день. Итак,
вы переде лали фонт, теперь внесем в него
изменения на каких-нибудь, то есть на са-
мых ненужных символах. Я бы предложил,
начиная с 240, по порядку вносим текстуры
aka Chunk 'и. Найти чанки не просто, а
очень просто, поэтому их тут не будет.
Вы вставили в свой шрифт эти текс-
турки и записали на диск, не забыв закон-
вертировать обратно в формат М. Word 'а,
если, конечно, вы собираетесь просматри-
вать полученный шедевр с помощью него, в
противном случае, последнее можно не де-
лать.
2. Загружаем программу перевода кар-
тинки в chunk 'и и перекодируем ее, полу-
ченное записываем на диск. Далее вам
опять предется загрузить ассемблер и еще
раз извратиться над готовой чанк картин-
кой. Набираем такую процедуру. Звездочкой
отмечены команды, которые можно убрать,
если вы будете использовать ZX-word или
m. word , т. к. они автоматически, то
есть после соответствующего запроса пере-
ведут текст в кодировку с окончанием
#0D/#0A, собственно, что и делают команды
со звездочками. A суть поцедуры проста -
мы добавлям к каждому chunk 'у код начала
размещения наших chunk 'ов в фонте, у нас
в примере это #F0 (240).
ORG #8000
LD DE,#7000; начало экрана из chunk'ов
LD HL,#6000; текст, который мы получили
LD C,48
LP1
LD B,64
LP2 LD A,(DE)
ADD A,#F0; код начала чанков
LD (HL),A
INC HL
INC DE
DJNZ LP2
LD (HL),#0D; *
INC HL ; *
LD (HL),#0A; *
INC HL ; *
DEC C
JR NZ,LP1
RET
Записываем полученный текст на диск,
если вы использовали процедурку полнос-
тью, то длина файла должна быть равной
#C60 (3168) байт.
А теперь загружаем полученный шедевр
в редактор Modern Word , вместе с фонтом,
который надо назвать wordfont.<C> , или в
ту текстовую гляделку, в которую можно
загрузить фонт, и смотрите на здоровье, и
вы увидите такую картину. Ваша картинка
стала размером в два экрана, что, собст-
венно, и отличает второй метод от третье-
го.
Метод нумбер ТРЫ.
1. Изменяем фонт как указано в пунк-
те 1 метода два, и загружаем его в M.
Word или куда там, где есть перекодиров-
щик.
2. Изменяем таблицу градаций, в M.
Word 'e она называется wordasci.<C> , и
ставим там свои chunk 'и от самого яркого
до самого не яркого, то есть пустого. В
нашем случае мы нажимаем extend mode и
пишем код с клавиатуры: 240, 241... 255.
Записываем таблицу на диск и перезагру-
жаем редактор что бы он воспринял новыю
таблицу и фонт.
3. Запускаем опцию перекодировки эк-
рана в текст и получаем экран уже переве-
денный в текст, который можно и будет
после этого пронаблюдать. Вот самый прос-
той и приемлемый способ.
Наверное, здесь и пример можно пос-
мотреть.
Итак, вот, собственно, и все. Мною
недавно освоенные, но давно уже всеми
применяющиеся на практике методы борьбы с
тараканами описаны, и осталось только
привести начальный вид экрана, который
переделывался, хере из он:
Постскриптум, для тех, кто не по-
нял - P.S.
Эти методы подходят только для режи-
ма отображения 64 символа в строке.
И для редакторов, в которых есть
опция загрузки шрифта, в zx-word 'e,
по крайней мере, такая функция не
наблюдается.
Лучше всего для переделки моими ме-
тодами подходят перетащенные с пц
картинки, на которых предметы изоб-
ражены покрупнее, саморучно рисован-
ные переделываются хреново.
Если кто придумал более извращенный
метод, чем я, то прошу, напишите мне
по совершенно простому и легко не
запоминающемуся адресу:
г. Рыбинск,
ул. Черепанова, д. 5, кв. 14,
Крылову Александру Александровичу,
индекс 152905.
*****************************************
ХМ, БРЕД КАКОЙ-ТО, ЗАЧЕМ РАССКАЗЫВАТЬ ЛЮ-
ДЯМ, НЕ ЗНАЮЩИМ АССЕМБЛЕРА, О ТОМ, КАК
ДЕЛАТЬ СИМВОЛЬНЫЕ КАРТИНКИ, ЕСЛИ ИМ И
ВСТАВЛЯТЬ ИХ НЕКУДА...
И НАФИГА ПИСАТЬ БРЕДОВЫЕ ПРОЦЕДУРЫ, ДО
КОТОРЫХ И ТАК МОЖНО ДОПЕРЕТЬ САМОМУ...
И ВАЩЕ, СТАТЬЯ - ПОЛНЫЙ БРЕД...
И АВТОР - ЛАМЕР...
И ПОМЕСТИТЬ НАДО В СПЕЦ. РАЗДЕЛ -
<<<ЛАМЕРУ ОТ ЛАМЕРА>>>...
И ПРИЧЕМ ТУТ КАРТИНКИ???