
Добро пожаловать в SplView - программу для просмотра любого файла так, как если бы он состоял из букв (хотя на самом деле любой файл состоит только из чисел).
SplView каждое число в файле понимает как порядковый номер буквы в алфавите и изображает на экране вместо числа - букву, стоящую в алфавите под этим номером.
Получившийся из букв текст можно пролистывать колесиком мыши, стрелочными клавишами, клавишами Page Up, Page Down, Home и End.
Выйти из программы можно правой кнопкой мыши или клавишей Esc.
Выбрать файл для просмотра можно левой кнопкой мыши или клавишей F3.
Примечание 1: алфавит используется вот этот, в нём ровно 256 букв.
Примечание 2: этот алфавит можно сменить на другой (а потом обратно) с помощью клавиши F8.
Вот такой файл. Я сделал еще ДО инсульта!
Конечно это asm! "Программы для Windows я пишу на языке Flat Assembler. Выбор именно этой среды разработки совсем необычен, но так уж сложилось."
Наиболее интересное вот это:
proc ThrProcV, paramx
align 16
splagain:
invoke WaitForSingleObject,[chndl],-1
xor ecx,ecx
mov [tete],ecx
mov ebx,[diwi] ;сколько букв в строке на экране
again: ;цикл прорисовки одной буковки на экране
mov esi,splt ;адрес начала текста - массива с кодами букв
mov eax,[tete] ;переменная, содержащая номер буквы по порядку в тексте
add esi,eax ;уже адрес конкретной буквы в тексте
div bl ;номер буквы делим на длину строки в буквах
mov ecx,[dihe] ;число строк на экране
dec ecx ;последняя (верхняя) строка (нумерация с нуля)
sub cl,al ;вычитаем, получаем номер строки, где рисовать букву
shr ax,8 ;теперь в ax номер столбца, где рисовать букву
mov dx,6 ;ширина изображения буквы в байтах
mul dx ;умножаем на ширину, получаем смещение в байтах от левого края
xchg ecx,eax ;теперь в cx находится байтов от левого края, а в al - номер строки
mul ebx ;номер строки умножаем на число букв в строке
shl eax,5 ;и потом еще на 32 - высоту изображения буквы в байтах
mov edx,6 ;ширина изображения буквы в байтах
mul edx ;и еще умножаем на ширину
mov edi,[tut] ;адрес начала картинки в памяти
add edi,eax ;прибавить байтов в полных строках
add edi,ecx ;прибавить байтов от левого края, получили место для рисования
xor eax,eax ;пишем в аккумулятор НОЛЬ
lodsb ;читаем код буквы
mov ecx,eax ;пока что сохраняем код сюда
and al,0Fh ;остаток от деления на 16 - номер колонки в массиве картинок букв
mov dl,6 ;ширина буквы в байтах
mul dl ;умножаем, получаем байтов от левого края
xchg ecx,eax ;теперь в ecx байтов слева, а в eax код буквы
shr al,4 ;частное от деления на 16 букв в строке - номер строки
mov ah,15 ;15 - последняя (верхняя) строка (нумерация с нуля)
sub ah,al ;вычитаем, получаем номер строки, где рисунок буквы
xor al,al ;очищаем младший байт
shl eax,1 ;умножили на 16 букв в строке и на 32 байта высоту буквы
mov edx,6 ;ширина изображения буквы в байтах
mul edx ;и еще умножаем на ширину
mov esi,[buu] ;адрес начала массива картинок букв в памяти
add esi,eax ;прибавить байтов в полных строках
add esi,ecx ;прибавить байтов от левого края, получили адрес картинки буквы
mov ecx,32 ;32 байта высота буквы
onebu: ;цикл рисования одной буквы
movsd ;4 байта перенести
movsw ;и еще 2 байта перенести
add esi,90 ;в массиве картинок букв пропускаем 15 x 6 байт
add edi,[dopa] ;в массиве готовой картинки пропускаем ((букв в строке) - 1) x 6 байт
loop onebu ;следующую строчку буквы
inc [tete] ;увеличить номер буквы в тексте
mov eax,[tete]
cmp eax,[proi] ;сравнить с последней
jb again ;если меньше, то рисовать еще одну букву
invoke SendMessage,[hspl2],STM_SETIMAGE,IMAGE_BITMAP,[IBitmap]
jmp splagain
endp
Полный файл SplView.asm здесь:
https://disk.yandex.ru/d/3hehNgLSMddjfA
А download flat assembler тут:
https://flatassembler.net/download.php
Нужно только один файл FASM.EXE и нужно еще:
ANSI.bmp
https://disk.yandex.ru/i/nJQCfNAEher6aA
OEM.bmp
https://disk.yandex.ru/i/MU6q7uro4UJfrA


Пример программы вот:

Или вот:

Файл SplView очень маленький и очень быстрый. Позволяет любые файлы. Изображает из букв!
Потом случился инсульт. Это очень плохо. В начале я не говорил и не ходил! Прошло два с половиной года. Я говорю и хожу. С палочкой конечно и медленно но хожу. Многое забылось! Но что-то знаю...
Есть рассказ обо мне. Маленький город Молодечно. Город в Минской области Беларуси. "Одна из причин почему мы с семьей и группой ездим регулярно в Беларусь" - это рассказывает Александр Старостин, основатель Theodor Bastard.
"Одна из причин почему мы с семьей и группой ездим регулярно в Беларусь – это вовсе не концерты (которых давно там нет), а поддержка администратора нашей группы – Артура Фирюлина, перенесшего тяжелейший инсульт. Я бы не писал этот пост, если бы Артур лично не настоял. Он очень попросил меня дать ссылку на его страницу – чтобы на него больше подписывалось людей и расширялся круг его общения. Что я с удовольствием и делаю: vk.com/splushk Дело в том, что два года назад Артур перенес обширный инсульт мозга. Будучи одиноким человеком, его обнаружили лишь спустя двое суток после кровоизлияния и шансов выжить у Артура почти не было. Но он выжил. Будучи полностью парализованным и утратившим возможность не только двигаться, но и говорить, он боролся за свою жизнь, как боец. Это было нечеловеческое и страшное зрелище. Мы буквально сразу же примчались к нему в больницу, как только он был выписан из Реанимации и были уверенны, что Артур обречен. Немой, парализованный и ничего не соображающий. И вот прошло два года борьбы. У Артура все еще сохраняются проблемы с речью, у него частично парализована рука, затронута нога. Но он уже стоит сам на своих ногах. На фото вы видите человека, который впервые за два года оказался на улице на свежем воздухе выйдя из дома (не без помощи, но своими ногами). Спустя два года борьбы! Артур не только обслуживает себя, проживая один, но и начал даже писать статьи. У него на странице есть ссылки на это, а еще на фильмы, которые он обрабатывает. Да, его речь иногда неразборчива, мысли порой сбивчивы. Но он делает это вопреки всему. К сожалению, он живет очень далеко от Петербурга и от своих друзей - мы не можем часто его навещать. А в его доме нет лифта. Пятый этаж. Артур не гуляет. Единственное его окно в мир – это компьютер. И он будет очень рад если вы подпишитесь на его страничку или напишите ему несколько добрых слов.
Еще коротко про Артура: Это бесконечно добрый и интеллигентный человек очень незаурядных интеллектуальных способностей учившийся и на медицинском, знающий и химию, и физику, и математику, и программирование, и языки. Частично после инсульта он утратил эти знания, но делает все чтобы их восстановить, И более того, когда мы только с Артуром познакомились он в поддержку одного из наших первых альбомов пожертвовал 5 биткоинов. Сейчас это равняется сумме в 500 000 долларов. Он был бы миллионером сохрани он себе эти биткоины. Увы. Сейчас его основной доход — это маленькая пенсия и помощь друзей. А еще – раньше (до инсульта) он всегда дарил нам десятками банок красную икру, организовывая это в каждом городе тура - по его мнению это помогало нам справиться с нагрузкой. Он заботился чтобы у Яны на любом концерте всегда были свежие цветы. Он вел наши соцсети, занимался редактированием видео, переконвертацией в форматы и т.д. делал таргет концертов, писал тексты постов. Сложно всё даже перечислить."

"Сейчас его основной доход — это маленькая пенсия и помощь друзей" - это да. 460 белорусских рублей в месяц. За первую группу инвалидности. Это совсем не много. Из них 160 рублей в месяц расходуется на свет, коммунальник и интернет. Остается 300 руб на еду. Поэтому друг хорошей приносит продукты две большие сумки бесплатно два раза в месяц. Уже два года! Очень большое спасибо тебе!
И вот еще что...
Мне вот интересная штука...
Смерть.
Когда человек умер. Я умер.
Но потом рождается другой. Другой я. Не тот. У вас есть яйцеклетка? Обычное дело...
Затем очень маленький ребенок! И растет... Пять лет... Шестнадцать лет...
А вот что интересно. ГДЕ? Где этот человек есть?
Я - Фирюлин Артур. В Молодечно. Растил русский человек... А где потом??? Он тоже конкретный человек но кто???
И вот что я подумал... Ну вот может быть Африка, где 25 лет и все. Он может даже плохой. Нигер или Буркина-Фасо! Но это не имеет значение!
И не только Земля! Бесчисленное планет с большими мозгами! Просто очень, очень далеко. Но рождается там. Это не проблема!
Мы считали минуты для рождения. А есть зептосекунда. Это одна триллионная миллиардной доли секунды. А можно и меньше. Просто где?
А думаю просто - как умер так И ТУТ ЖЕ родился. А где - может и не Земля а очень далеко в миллиардов лет. Будет четыре ноги. Или восемь. Или глаз - не знаю сколько.
"Можно представить, что не "летит" куда-то со скоростью света, а проявляется в новой точке мгновенно, подобно тому как безотносительно расстояния" - а это сказало ИИ.
Но узнать, кто рождается - нельзя. Может ты Илон Маск, а может бездомный в трущобах. Может Тереза а может криминал. Может на Земле а может в миллиардов лет. Может в прекрасный город а может каменные инструменты. Может из двух ногах а может из четырех.

Извините я что-то не от темы...
А еще я купил плазменный шар Тесла! Я очень хотел! И вот наконец совершилось.
LeshaRB
Вам здоровья
Но точно такая же статья ваша
https://habr.com/ru/articles/964248/