Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.21;
Скачать: CL | DM;

Вниз

Вопрос по программированию в 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
1-67856
Igor_P
2003-07-07 22:50
2003.07.21
MessageDlg


1-67827
IronHawk
2003-07-07 12:48
2003.07.21
Приветствую Мастеров! Hint не полностью видного элемент в ListBox


11-67743
Fantasist
2002-11-17 08:12
2003.07.21
KOLActiveX


14-68036
Sun
2003-07-04 18:57
2003.07.21
Одиночество- это когда есть E-mail,а письма присылает только серв


7-68104
Makhanev A.S.
2003-05-10 16:18
2003.07.21
TSHellTreeView: как запретить проверку диска 3.5 (A)?