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

Вниз

Резидентные программы в DOS-e   Найти похожие ветки 

 
extrasens ©   (2003-11-18 07:59) [0]

Кто-нибудь знает, как сделать резидентную прогу под ДОСю?
Просто мне надо сделать свой обработчик прерывания.


 
SkyRanger ©   (2003-11-18 08:56) [1]

А она, ента прога, под досей будет работать ил под форточкой зависать, если под второй не советую даже браться...


 
АСМиД   (2003-11-18 11:27) [2]

Вообще подобные вещщи писались на Paskal 7 в режиме DOS.
Под виндами подобная штука работать не будет (если только под 3.11)
Если сильно нужно могу выслать пример.


 
Vlad Oshin ©   (2003-11-18 11:52) [3]

В Паскале
GetIntVec
SetIntVec
Keep

+F1 :)


 
pasha_golub ©   (2003-11-18 12:16) [4]

2Vlad Oshin
И Halt, если не ошибаюсь, со спец. аргументом


 
User_Name   (2003-11-18 16:51) [5]

Что-то примерно так когда-то писал (может поможет)

{Свое прерывание int 21h}
...

procedure int21; Assembler;
asm
pushf
cmp ax,1235h
jnz @1
mov ax,1234h
popf
retf 2
@1:
push ax
push ds
xor ax,ax
mov ds,ax
cmp word ptr ds:[04F0H], 0DEADh
jnz @2 {@2}

xor ax,ax
mov ds,ax
mov word ptr ds:[04F0H], 0DEEDh

call create //Вот здесь вызываем свою продцедуру

pop ds
pop ax
popf
int 0e4h
retf 2

@2:
pop ds
pop ax
popf
int 0e4h
retf 2
end; {End of int 21h}

..
begin {Main program}
regs.AX:=$1235;
Intr($21,regs);
swapvectors;
if regs.AX<>$1234 then
begin

GetIntVec($21, OldInt21);
SetIntVec($E4, OldInt21);
SetIntVec($21, Addr(Int21));
keep(0);
end;
end.


 
VMcL ©   (2003-11-19 01:16) [6]

>>[4] pasha_golub © (18.11.03 12:16)

Ответ неправильный! :))
Всё-таки Keep, а не Halt.


 
Vlad Oshin ©   (2003-11-19 08:22) [7]


> pasha_golub © (18.11.03 12:16) [4]

VMcL © (19.11.03 01:16) [6]
+
Halt(х) - завершение программы с кодом х


 
Term ©   (2003-11-19 09:22) [8]

в паскалевском хелпе есть исчерпывающий пример, токо не рабочий,
но ошибка легко поправима :)))
так что Keep + Сtrl+F1


 
LordOfSilence ©   (2003-11-19 09:29) [9]

Экстрасенс, когда будешь писать, не забудь про директиву
компилятора {$M} :-)



Страницы: 1 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
1-16451
Кен
2004-01-28 04:14
2004.02.06
Как правильно обрабатывать ошибки в математических выражениях ?


14-16715
Soft
2004-01-16 19:17
2004.02.06
Ошибка Microsoft Internet Explorer номер 444.


1-16493
Anton.
2004-01-27 16:01
2004.02.06
Классы


14-16672
syte_ser78
2004-01-17 17:20
2004.02.06
Отдых


1-16259
Kinderrr
2004-01-24 10:46
2004.02.06
variants