|
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 11
|
|
При обращении напрямую к видеопамяти, вывести изображение22.11.2009, 14:39. Показов 11507. Ответов 64
Метки нет (Все метки)
0
|
|
| 22.11.2009, 14:39 | |
|
Ответы с готовыми решениями:
64
Выдавать 404 при обращении напрямую к индексным файлам TASM + VESA чтение и запись видеопамяти напрямую Не могу понять реальный объём видеопамяти. (Ноут за 10к с 6 ГБ видеопамяти О_о) |
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||||||
| 22.11.2009, 19:38 | ||||||
|
Я предполагаю, что число битов на пиксел - один, и изображение без сжатия.
Добавлено через 3 минуты Вот есть процедура открытия бмп файла. Надо её упростить, зная, что тут нету сжатия и 1 бит на пиксел.
http://www.nestor.minsk.by/kg/2009/10/kg91019.htmlДобавлено через 3 минуты Я тут пока много флагов не знаю, но думаю, если это все упростить, то получим совсем немного кода. И думаю проверять правильно ли файл открылся, прочитался, точно ли это бмп файл не надо. Просто поместить этот файлик в папку с программой, и я думаю пользователь не настолько глуп, чтоб его открывать в этот момент. В крайнем случае повесим на него атрибут "скрытый или системный"
0
|
||||||
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 22.11.2009, 19:44 | |
|
Во-первых в том файле, что прислали вы 8 бит на пиксел, а не 1.
Еще мне думается, что было бы гораздо проще для перекодирования, если бы каждая буква была в отдельном файле. Причем разрешение этого файла было пропорционально 320 : 200 чтобы было проще масштабировать. Не по теме: Что-то я ушел от темы :) А что пишем-то перекодировщик bmp в массив полигонов или программу, которая выведет букву на экран ?
1
|
|
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||
| 22.11.2009, 20:06 | ||
|
Так. Алгоритм:
1) Мы берем слово на русском языке - это строка символов, указатель на неё содержится в esi. 2) Берем каждую буковку и с помощью определенной процедурі(я её постараюсь написать) определяем какой номер этой буквы в русском алфавите. 3) Берем из нашего бмп файла кусок, который соответствует этой букве, разбиваем на массивы так как я писал и заносим в видеопамять. Тут стоит заметить, что я хочу сделать так: один длинный бмп, разбитый на 33 квадратика 40 на 40 (больше не надо, будет долго считать), и в каждом квадратике буква заглавная. Таким образом можно легко вычислить место в бмп файле, где началась буква например номер 8 (это - Ж), и не надо узнавать размер изображения. 40 на 40*33=1320 4) повторяем 1, 2, 3 для каждй буквы. Добавлено через 4 минуты Потом вызываем прерывание, чтобы то, что в видеопамяти вывелось на екран. А можно еще несколько по-другому. Завести большой массив, соответствующй разрешению экрана (построчно, верхняя слева - направо, сверху вниз) и просто заносить туда либо 0 либо 1, в зависимости от того закрашивать этот пиксел или нет. А потом запихнуть его в видеопамять, т. е. цвета пикселов в цикле поменять. Вот. Добавлено через 7 минут Вот еще.
0
|
||
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
||||||
| 22.11.2009, 20:45 | ||||||
|
Кстати trans, сделайте что-нибудь со строчкой
0
|
||||||
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
| 22.11.2009, 20:49 | |
|
Goodwin98, кстати, почему HEX редактор у меня монохромное изображение откріл, и там вместо 1 и 0 - я, ь, Б и прочее((
0
|
|
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
||||||
| 22.11.2009, 22:00 | ||||||
|
Думается мне что это не HEX редактор открыл
![]() Попробуйте WinHex'ом. Добавлено через 1 час 7 минут Кстати открывать файл с картинкой впринципе необязательно. Можно как я уже говорил вырезать у bmp заголовок, а сам битовый образ сохранить в самом exe(com) файле. С масмом идет утилита bintodb.exe. С ее помощью можно превратить бинарный файл в запись вида :
2
|
||||||
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
| 22.11.2009, 22:50 | |
|
Я хочу, чтобі ета программа использовала бмп файл и потом делала все сама, бе сторонних утилит
Добавлено через 6 минут И там не обязательно заголовок вірезать. Зачем? спокойно в массив загнать тем кодом, что я привел и работать потом с массивом. Я просто хочу просмотреть содержимое файла этого бинарного.
0
|
|
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||||||
| 27.11.2009, 02:53 | ||||||
|
Вот сделал конвертер. Вообщем надо этот код переписать на Паскаль или асм, хотя автор говорил, что можно писать на Паскале с асмовскими вставками. И сделать заполнение массивов полигонов, и вывод в видеопамять.
1
|
||||||
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||||||
| 05.12.2009, 18:26 | ||||||
|
Почему не компилирует
Добавлено через 2 минуты Где там эта метка, у которой 1 байт отводится не пойму(
0
|
||||||
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
||||||
| 05.12.2009, 18:36 | ||||||
|
loop и все другие условные переходы могут быть не длиннее, чем на 127 байт. С виду в 204 строке далековато находится loop.
Добавлено через 3 минуты Попробуйте поменять его на что-то вроде
1
|
||||||
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
| 05.12.2009, 18:42 | |
|
Так теперь в каждый loop заменять на jl, jg? Да?
Добавлено через 2 минуты А этот код на выводу в видео-память можно упростить? Добавлено через 2 минуты Поменял. Таже ошибка.
0
|
|
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
||
| 05.12.2009, 19:08 | ||
|
Попробовал отдать этот код Турбо паскалю - съел и не подавился.
Дельфи разве может делать дос программы ? Добавлено через 8 минут
1
|
||
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||
| 05.12.2009, 19:11 | ||
Я тоже скомпилил Паскалем. Сори. Вот вопрос: можно ли за небольшой промежуток времени этот код упростить, чтобы он по двумерному массиву 480 на 320 boolean либо рисовал пиксел, либо нет. Ну соответственно с обращением напрямую в видеопамять.
0
|
||
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 05.12.2009, 19:31 | |
|
Но ведь там совсем не массив точек. Там массив полигонов, т.е. прямоугольников.
А вот насчет двумерного массива я не очень понял. Может проще завести массив подходящего типа и потом просто скопировать его в видеопамять за раз ? Т.е. так же как делали в программе с папоротником.
1
|
|
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
| 05.12.2009, 20:00 | |
|
В папоротнике там вин апи рисовалось.
Я хочу сделать массив по размеру на весь экран и запихнуть его в видеопамять. А в этом массиве чтобы было 2 цвета. (я планирую читать этот массив из файлика с 1 или 0). Добавлено через 16 минут Вот отсюда пітаюсь смісл вікурить http://sizov.boom.ru/mem320.htm
0
|
|
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 05.12.2009, 20:02 | |
|
Если будете делать под дос, в нем есть режимы, в которых пиксел кодируется одним битом, т.е. в 1 байте - 8 точек, идущих подряд. Не пойдет?
1
|
|
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
||||||
| 05.12.2009, 20:26 | ||||||
|
Если будете делать под дос, в нем есть режимы, в которых пиксел кодируется одним битом, т.е. в 1 байте - 8 точек, идущих подряд. Не пойдет?
Конечно подойдет) Так перевести я в состоянии. Вообще я не против использовать даже не столь изощренные режимы, а 256 цветные, там можно сделать массив из 0 и 255, щас я технически пытаюсь это сделать. Добавлено через 21 минуту
0
|
||||||
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|||||||
| 05.12.2009, 21:33 | |||||||
|
Масм нормально скомпилировал.
Немного смущает фраза flat memory model at 00401002 . Откуда бы этому взяться в дос проге... Необязательно работать через порты можно и просто в памяти.
1
|
|||||||
|
Пробующий
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
|
|
| 06.12.2009, 15:37 | |
|
Никак не скомпилирую этот код. Возможно ли это без загрузочной дискеты?
0
|
|
|
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
|
|
| 06.12.2009, 15:42 | |
|
У меня все эти программы нормально компилируются и работают из-под встроеного эмулятора winXP. Знаю, что могут быть проблемы с их работой из под Win7, т.к. там драйвер не хочет переходить в полный экран, но компилироваться все-равно должно.
Опишите, что вы делаете.
1
|
|
| 06.12.2009, 15:42 | |
|
Вывести изображение при условии Исключение при попытке вывести изображение Вывести изображение через HDMI при неработающем дисплее ноутбука Вывести значение напрямую из БД в блок Замена символа на экране при прямом доступе к видеопамяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|