резидент

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Аватара пользователя
NetCat
Сообщения: 4
Зарегистрирован: 07 янв 2007, 17:34
Откуда: Russia Arkhangelsk
Контактная информация:

программа должна через определенное время бездействия пользователя запускать мой screensaver(вращающийся кубик,уже есть).
:confused:
не знаю как сделать мою прогу резидентной не используя прерываний DOS-a (int 21h, 27h...) и куда в этот код вставлять код по screensaver
мне сказали что надо скопировать резидентную часть в оперативную память, например на неиспользуемую видеостраницу

:(

Есть часть кода:

CODESG SEGMENT PARA 'Code'
ASSUME CS:CODESG,DS:CODESG,SS:CODESG
ORG 100H
.386
start:
jmp @1

old_8h dw 0,0

@1:

mov bx, 8h*4
mov ax, 0
mov es, ax
mov ax, es:[bx]
mov old_8h, ax
mov ax, es:[bx+2]
mov old_8h+2, ax

cli
mov ax, cs
mov es:[bx+2], ax
mov ax, offset new_8h
mov es:[bx], ax
sti

jmp $ ;бесконечный цикл

new_8h:
;kod

jmp dword ptr old_8h

CODESG ENDS
END start
Ответить