Лекция по разработке TST (курсовая работа), страница 4
Описание файла
Документ из архива "Лекция по разработке TST (курсовая работа)", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "системное программирование" в общих файлах.
Онлайн просмотр документа "Лекция по разработке TST (курсовая работа)"
Текст 4 страницы из документа "Лекция по разработке TST (курсовая работа)"
int 21h
Reinsttry:
mov AH,09h
lea DX,Reinst
int 21h
NoInst:
mov AX,4c01h
int 21h
ret
;-------------------------------------
;*** Конец Install части ***
;-------------------------------------
Reinst db 10,13,'Capture is already installed!'
db 10,13,7,'$'
Installed db 10,13
db 'Capture is succsesfuly installed'
db 10,13,7,'$'
Help db 10,13,'Help!!! To disactivate CAPTURE press Ctrl+U.'
db 10,13,'For Copying screen press: Insert',10,13
db 'Thank you for using my programm' ,10,13,7,'$'
Unknownkey db 10,13,'Unkown key. /? - For Help'
db 10,13,7,'$'
text ends
end begin
Резидент:
.MODEL TINY
.code
org 02ch
envseg dw ?
org 100h
start:
jmp init
hw_reset9:
retf
int09h_handler proc far
jmp short actual_int09h_handler
old_int09h dd ?
dw 424bh
db 00h
jmp short hw_reset9
db 7 dup (0)
actual_int09h_handler:
push ax
in al, 060h
cmp al, 010h
jb not_our_key
cmp al, 01bh
jbe up
cmp al, 01eh
jb not_our_key
cmp al, 029h
jbe up
cmp al, 02bh
jb not_our_key
cmp al, 035h
jbe up
jmp not_our_key
up:
push es
push bx
push ax
;mov ax, 040h
;mov es, ax
;and byte ptr es:[017h], 10111111b
;or byte ptr es:[017h], 00000001b ;???
;in al, 061h ;?????
;or al, 080h ;?????
;mov al, 2eh
;out 061h, al ;?????
;and al, 07fh ;?????
;out 061h, al ;?????
pop ax
pop bx
pop es
pop ax
; cli
pushf
call cs:old_int09h
mov ah, 02h
mov dl, '*'
int 21h
push es
push ax
;mov ax, 040h
;mov es, ax
;and byte ptr es:[017h], 11111110b ;??????
pop ax
pop es
; mov al, 020h ;?????
; out 020h, al ;?????
iret
not_our_key:
pop ax
jmp cs:old_int09h
int09h_handler endp
hw_reset2f:
retf
int2fh_handler proc far
jmp short actual_int2fh_handler
old_int2fh dd ?
dw 424bh
db 00h
jmp short hw_reset2f
db 7 dup (0)
actual_int2fh_handler:
db 080h, 0fch
mux_id db ?
je its_us
jmp dword ptr cs:old_int2fh
its_us:
cmp al, 03
jae int2f_no
cbw
mov di, ax
shl di, 1
jmp word ptr cs:jumptable[di]
jumptable dw offset int2f_00, offset int2f_no
dw offset int2f_02
int2f_00:
mov al, 0ffh
mov cx, 0100h
push cs
pop dx
mov di, offset amis_sign
iret
int2f_no:
mov al, 00h
iret
int2f_02:
mov ah, 0eh
mov bx, offset mes
mov cx, meslen
outstr:
mov al, cs:[bx]
int 010h
inc bx
loop outstr
mov ax, 02509h
lds dx, cs:old_int09h
int 021h
mov ax, 0252fh
lds dx, cs:old_int2fh
int 021h
mov es, cs:02ch
mov ah, 049h
int 021h
push cs
pop es
mov ah, 049h
int 021h
mov al, 0ffh
iret
mes db "uninstall"
meslen=$-mes
int2fh_handler endp
amis_sign db "David "
db "res.com "
db "dfsdfsdfsd", 0
init proc near
mov ah, 09h
mov dx, offset usage
int 021h
mov ah, 0c8h
more:
mov al, 00h
int 02fh
cmp al, 00h
jne not_free
mov byte ptr mux_id, ah
jmp short free_mux_found
not_free:
mov es, dx
mov si, offset amis_sign
mov cx, 16
repe cmpsb
jcxz already_loaded
jmp no_more_mux
next:
dec ah
jnz more
free_mux_found:
cmp byte ptr mux_id, 00h
je no_more_mux
mov ax, 0352fh
int 021h
mov word ptr old_int2fh, bx
mov word ptr old_int2fh+2, es
mov ax, 03509h
int 021h
mov word ptr old_int09h, bx
mov word ptr old_int09h+2, es
mov ax, 0252fh
mov dx, offset int2fh_handler
int 021h
mov ax, 02509h
mov dx, offset int09h_handler
int 021h
mov ah, 049h
mov es, word ptr envseg
int 021h
mov ah, 09h
mov dx, offset installed_msg
int 021h
mov dx, offset init
int 027h
already_loaded:
mov ah, 09h
mov dx, offset already_msg
int 021h
mov ax, 04c00h
int 021h
no_more_mux:
mov ah, 09h
mov dx, offset no_more_mux_msg
int 021h
mov ax, 04c00h
int 021h
usage db "tra-ta-ta", 0dh, 0ah, '$'
already_msg db "already loaded", 0dh, 0ah, '$'
no_more_mux_msg db "no more mux", 0dh, 0ah, '$'
installed_msg db "installed", 0dh, 0ah, '$'
init endp
end start