Прошу прощения если подобный вопрос уже задавался, я честно искал поиском, того что нужно не нашел. Возникла необходимость отображать указаный в командной строке BMP файл в ДОС с помощью простейшего вьювера. Графический режим - VGA 320x200x8. Причем после отображения битмапа он должен прекращать работу не очищая экран и не переходя в текстовый режим. Тоесть чтобы с его помощью можно было создавать некое подобие простейших меню перед запуском приложений с помощью bat файла и команды choice, например так: Код (Text): ... bmpview.exe sscreen.bmp @CHOICE /C:12345 /N IF ERRORLEVEL 5 GOTO RUNPROG ... у меня есть такой вьювер файлов pcx под названием pcxview, но мне нужен именно bmp, так-как я написал прогу для быстрой генерации таких меню из под винды, и очень не хотелось бы писать экспортер в формат pcx, да и сам вьювер работает недостаточно быстро.
Вопрос три раза непонятен: 1) Формат PCX сложнее BMP. BMP - это фактически содержимое видео-памяти, ну правда для определенного видео-режима. Похоже вьювер и генератор не сам писал. Найди сырцы для BMP - какая проблема. 2) Зачем писать экпортер - есть готовые конверторы. Есть и исходники. 3) Писать прогу для вьювера и не писать для меню - это опять подтверждает, что ты программировать не умеешь. Тогда пардон в другую тему : "студентам ..."
Твой вопрос напомнил анекдот, как вскипятить воду. Первая задача : чайник пустой. Решение очевидно. Вторая задача : чайник с водой. Ты решаешь как математик : выльем воду и задача сведена к предыдущей Пардон за оффтоп, но не уметь нарисовать то, что для этого предназначено
Дело в том что задача в основном показать одну, максимум две картинки перед запуском приложения, возможно с несколькими вариантами запуска и параметрами, для этого и choice. Просто порт досбокса 0.71 на консольке работает довольно криво, и в режиме динамической рекомпиляции часто выдает еррор при попытке запустить приложение из программы-меню. Пробовал два готовых продукта - настраеваемых меню для дос, у всех косяки, а вариант запуска через bat файл выглядит заманчивым по причине своей простоты. Я же не пытаюсь создать многоуровневое меню с красивыми эффектами на bat файлах , мне нужно всего лишь показать одну-две картинки. И никому нет дела кто именно отображает это, bat файл на пару строчек или людская прога. Генератор писал сам, но писал на шарпе под винду и 2-й фреймворк, а вот то что он сгенерил должно отображаться в ДОСе. По сути это картинка со списком кнопок управления и кнопок реального девайса, на которые они назначены, возможно еще выбор нескольких вариантов запуска, не более. Вьювер pcx не мой, я и не говорил что он мой. Сам же я писал вьювер bmp на сях под дос, просто побайтно, не обращая внимания на заголовок, читал и выводил картинку, размер то один у них будет, но скорость его работы не достаточна в досбоксе. Проблема в том что досбокс на данном девайсе примерно соответствует 286-му процессору, и это в режиме динамической рекомпиляции. В нормальном режиме все еще хуже.
Хотябы дайте совет как сделать быстрый вьювер, возможно есть свои хитрости. Получится ли намного быстрее если отрисовывать точки асмом как?: Код (Text): INТ 10h когда в CX координата по горизонтали, DХ по вертикали, а цвет в AL вместо использования граф. библиотек в с++, или разница в скорости будет не такой уж и поразительной?
И что вы хотите. Попиксельный вывод и на реальной железке медленный. Это точно не решение. У ваc вьювер PCX быстро работает? Разберитесь как он выводит - мы не экстрасенсы. В реальном ДОС все понятно, а в DosBOX на какой-то железке... На 286 графика летала, т.ч. не надо клеветать на старичков. Там диски медленные были, память и ...
Нарыл исходник еще одного вьювера, тоже pcx, там вывод идет не через прерывание а напрямую заполняется память начиная с A000h:0000h и до конца, походу все 64 кб, процедура кажется большой, но видимо работает быстрее намного. Видимо это и дает такой прирост по сравнению с попиксельным выводом через int, вы правы. Ладно, напишу вьювер с учетом этого, спасибо. Да я и не клеветал, мой первый пц был на базе 8086, остались только приятные воспоминания