Форум: "Потрепаться";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];
ВнизВопрос по программированию в MS-Dos Найти похожие ветки
← →
JFX (2003-07-02 13:58) [0]необходимо написать целевую процедуру своего прерывания, которая выводила бы на экран слово "ДОС" и при этом не использовала прерывания 21h или 10h... эт через видеоадаптер что ли?
← →
jel (2003-07-02 14:41) [1]При такой постановке задачи - только прямая запись в видеопамять.
Ну с int 21h все понятно, дос может еще и не быть загружена, но почему нельзя использовать int 10h - это же обрабатывает БИОС?
← →
Smithson (2003-07-02 15:29) [2]написано же - ...целевую процедуру своего прерывания...
Кто сказал, что как раз 10h не пытается подменить?
← →
HolyGlory (2003-07-02 15:48) [3].model tiny
.186
.code
org 100h
start:
mov ax, 0b800h
mov es, ax
mov cx,3 ;длинна строки
mov si, offset kstr
mov di,0 ;выводим в левый верхний угол - можешь изменить
cld
rep movsw ;копирование строки слов
ret ;выход из com программы
kstr db "D",0f0h,"O",0f0h,"S",0f0h,0,0 ;можешь продолжить - сперва символ, потом аттрибут
end start
← →
Soft (2003-07-02 15:59) [4]А что такое Биос? Это что-то вроде Делфи или VB?
← →
Polevi (2003-07-02 16:08) [5]это операционная система такая
← →
HolyGlory (2003-07-02 16:12) [6]
> Polevi © (02.07.03 16:08)
> это операционная система такая
Тогда BeOS.
← →
JFX (2003-07-03 08:02) [7]если писать в видеобуфер, то смысл писать целевую процедуру своего прерывания, может необходимо перехватить какое-нибудь прерывание, например, от таймера или еще что-либо.. а там уже писать напрямую... или зарезервировать свободное прерывание типа с 60h и по .... ??
← →
Digitman (2003-07-03 08:52) [8]
> смысл писать целевую процедуру своего прерывания
в ДОС это фигурирует под термином TRAP ("ловушка"), а не INTERRUPT ("прерывание").
> может необходимо перехватить какое-нибудь прерывание, например,
> от таймера или еще что-либо
> или зарезервировать свободное прерывание типа с 60h
это еще зачем ?)
← →
JFX (2003-07-03 09:13) [9]>в ДОС это фигурирует под термином TRAP ("ловушка"), а не >INTERRUPT ("прерывание").
как раз наоборот в Виндовозе ставятся ловушки, а под ДОС-ом прерывания
> или зарезервировать свободное прерывание типа с 60h
постановка задачи ведь требует:
"написать целевую процедуру своего прерывания"
← →
HolyGlory (2003-07-03 14:39) [10]
> JFX ©
Блин, ты русским языком объяснить можешь чего тебе надо? Перехватить какое-нить прерывание, при вызове которого (мб с параметрами?) оно печатало на экран строку? Или просто написать ф-цию которая выводит чего-нить на экран? Или программу? По-моему того, что я тебе выложил должно хватить. Или поставь вопрос конкретнее.
← →
Digitman (2003-07-03 15:00) [11]
> в Виндовозе ставятся ловушки, а под ДОС-ом прерывания
чушь.
в "виндовозе" тоже самое называется "шлюз".
в ДОС же термин "шлюз" никогда не существовал, а была "ловушка" - механизм программного прерывания, концептуально идентичный "шлюзу" и базирующийся на одной и той же маш.инструкции.
И когда ты ведешь речь о "прерываниях", будь любезен уточнять, имеется ли ввиду механизм аппаратных либо программных прерываний !
То что тебе требуется, как я понял, включает в себя
- поиск в таблице векторов прерываний (программных и аппаратных) свободного вектора;
- установка вектора на точку входа в обработчик ловушки;
- собственно создание подпрограммы-ловушки, которая будет тем или иным способом работать с видеопамятью в том или ином видеорежиме
← →
HolyGlory (2003-07-03 15:14) [12]Удалено модератором
← →
Digitman (2003-07-03 15:34) [13]
> HolyGlory
детский сад)))
← →
HolyGlory (2003-07-03 15:38) [14]Удалено модератором
Примечание: Теперь увидел
← →
JFX (2003-07-04 05:30) [15]to>>>Digitman © (03.07.03 15:00)
чушь.
в "виндовозе" тоже самое называется "шлюз".
в ДОС же термин "шлюз" никогда не существовал, а была "ловушка" - механизм программного прерывания, концептуально идентичный "шлюзу" и базирующийся на одной и той же маш.инструкции.
>>> ты что то путаешь..
И когда ты ведешь речь о "прерываниях", будь любезен уточнять, имеется ли ввиду механизм аппаратных либо программных прерываний !
>>>Зачем мне аппаратные прерывания? я же не обрабатываю входящие >>>запросы от аппаратуры...
То что тебе требуется, как я понял, включает в себя
- поиск в таблице векторов прерываний (программных и аппаратных) свободного вектора;
- установка вектора на точку входа в обработчик ловушки;
- собственно создание подпрограммы-ловушки, которая будет тем или иным способом работать с видеопамятью в том или ином видеорежиме
да.. именно так и сделаю.
to>>>HolyGlory (03.07.03 14:39)
часть того что ты выложил это уже средство вывода на экран, т.е. составляющая часть... спасибо.
>>>а кто данным форумом модерит?
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c