Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Assembler

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Никита123



Зарегистрирован: 20.08.2005
Сообщения: 2
Откуда: Из Москвы

СообщениеДобавлено: Сб Авг 20 2005 17:20    Заголовок сообщения: Assembler Ответить с цитатой

Такая проблема: при запуске моей программы (написана на Assemblere под DOS) сбиваются некоторые параметры текстого видео режима, из которого запускается программа, как то: сбивается шрифт, мигает курсор мыши, и может быть ещё чего-то, что я не замечаю. Сама программа работает в текстовом режиме 03h. Что сделать, чтобы все параметры видео режима востанавливались.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Пн Авг 22 2005 13:01    Заголовок сообщения: Re: Assembler Ответить с цитатой

Никита123 писал(а):
.... сбиваются некоторые параметры текстого видео режима, из которого запускается программа, как то: сбивается шрифт, мигает курсор мыши, и может быть ещё чего-то, что я не замечаю....


Перед выставлением нового окружения (в том числе и видио) просканировать на ранее установленные значения, запомнить и при выходе из программки - установить...

Если программка - игрушка, то как правило так же изменяют таймер PIT (8253) (тут сложнее - придёться либо лезть с чтение из биоса - правильные даты/время, либо самому вычислять "поправку"). Бывает трогают временные задержки клавиатуры. Так же возможы изменения каналов PPI (8255) или контроллера прерываний 8259. Лучше всё сначало считывать, изменять, а потом восстанавливать на том УРОВНЕ на котором работали.

Например...
Если Вы изменяете режим работы видио карточки на уровне BIOS - то и сканирование нужно производить на уровне биоса.

Если нет возможности прочитать старые установки - то тогда производите стандартный ресет по данному устройству (то что делает биос при запуске компа), либо выставляете официальное значение "по умолчанию".

с уважением
(круглый)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Никита123



Зарегистрирован: 20.08.2005
Сообщения: 2
Откуда: Из Москвы

СообщениеДобавлено: Вт Авг 30 2005 11:03    Заголовок сообщения: Но это не решает проблему!!! Ответить с цитатой

Здравствуйте, круглый!
Спасибо вам за ответ на мой вопрос. Я даже не подозревал о том что надо что-то делать с таймером (моя программа действительно игра). Но, к сожалению, ваше письмо всё-таки не решило проблему. Мне необходима точная информация о том, как и что откуда считывать и куда записывать, соответственно.
Расскажу более подробно о своей проблеме. Программе нужен режим 80x25 символов, причём она может работать как в цветном, так и чёрно-белом режиме (07h). Но ведь может быть установлено и 80x43 символа, а Windows вообще позволяет регулировать количество столбцов и строк с точностью до единицы (например, в FAR manager'е). И при запуске из этого менеджера в, допустим, режиме 90x30 моя программа выводиться криво. Программе не обязательно устанавливать режим, если предыдущая использует один из режимов 02h, 03h или 07h. И у меня вопрос - как изменить количество столбцов и строк на экране, запомнив предварительно текущие их значения, учитывая, что программа может работать на MDA адаптере, где не поддерживаются функции EGA и VGA адаптеров. До этого я пользовался простой установкой режима, но из-за неё всё сбивалось (шрифт, курсор мыши и т.д.). Очень прошу вас написать, как конкретно решить проблему на IBM PC-совместимом компьютере.

P.S.
Ещё хочу спросить у вас совета как у, как мне показалось опытного разработчика. Стоит ли программе в текстовой строке при запуске писать точную дату завершения работы над программой или же желательно ограничиться только годом.

C уважением, Михаил Пушкин
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Вт Авг 30 2005 12:48    Заголовок сообщения: Re: Но это не решает проблему!!! Ответить с цитатой

Никита123 писал(а):
.....вопрос - как изменить количество столбцов и строк на экране, запомнив предварительно текущие их значения, учитывая, что программа может работать на MDA адаптере, где не поддерживаются функции EGA и VGA адаптеров. До этого я пользовался простой установкой режима, но из-за неё всё сбивалось (шрифт, курсор мыши и т.д.). Очень прошу вас написать, как конкретно решить проблему на IBM PC-совместимом компьютере.
.....Стоит ли программе в текстовой строке при запуске писать точную дату завершения работы над программой или же желательно ограничиться только годом...........


Честно говоря под современные форточки с данной задачей не сталкивался - не пришлось. Но думаю следующее....
1) Можно порыть и попытаться пройти "старыми" функциями BIOSа либо DOSа. Почему На этом уровне - потому как не хай он сам разбираеться со всеми инвариантами настроек под виндами.
2) Попытаться отдетектировать винды, и позвать API виндов напрямую, при опросе и восстановлении режимов.
3) Под досом в последнии года (перед "эпохой" виндов) всё шырше наращивался функционал т.н. мультиплексное прерывание 2Fh - думаю нужно на него глянуть повнимательней.

Куда заглянуть - щаз нет под рукой. Основной справочный материал - книги. Катит двухтомник описания Прерываний компьютера IBM PC (кажеться так обзывался) твёрдый переплёт, формат А4, зелёненького цвета. Так же думаю "БСП" Фроловых.

как ссылка на электронную библиотеку (но лучше нормальные книги, по мне)

http://ftp.anyhost.ru/books/www.krf.bsu.by/


с уважением
(круглый)
ЗЫ
Сплошные очепятки - второй раз правлю...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...