ВУЗ:
Составители:
126
num dw 0 ; Количество сброшенных экранов
old_int8_off dw ? ; Адрес старого обработчика
old_int8_seg dw ? ; прерывания таймера 8h
old_int5_off dw ? ; Адрес старого обработчика
old_int5_seg dw ? ; прерывания 5h
old_int2F_off dw ? ; Адрес старого обработчика
old_int2F_seg dw ? ; мультиплексного прерывания 2Fh
adr_psp dw ? ; Адрес PSP
vbuf dw 0b000h ; Сегментный адрес видеобуфера
handle dw ? ; Дескриптор файла
buf db 2050 dup(0) ; Буфер для данных экрана
mes db 'Disk error$'
filename db 'filescr&.txt',0 ; Спецификация вых. файла
iniflag db 0 ; Флаг запроса на вывод экрана в файл
outflag db 0 ; Флаг начала вывода в файл
_crit dd ? ; Указатель на флаг активности DOS
; Новый обработчик прерывания 2Fh
new_int2F proc far
cmp ax,0ff00h
jz installed
jmp dword ptr cs:old_int2F_off ; Переход на старый обработчик 2Fh
installed: mov ax,0ffh ; "Программа в памяти"
iret
new_int2F endp
; Новый обработчик прерывания 1ch
new_int8 proc far
push ax
push bx
push cx
push dx
push si
push di
push ds
push es
mov ax,cs
mov ds,ax
cmp iniflag,0
jz exit8 ; Нет запроса
test outflag,0ffh
jnz exit8 ; Файл уже выводится
jnz exit8 ; DOS занята
les bx,_crit
test byte ptr es:[bx],0ffh
jnz exit8 ; DOS занята
; iniflag=1, outflag=0, crit=0
mov outflag,0ffh
126
num dw 0 ; Количество сброшенных экранов
old_int8_off dw ? ; Адрес старого обработчика
old_int8_seg dw ? ; прерывания таймера 8h
old_int5_off dw ? ; Адрес старого обработчика
old_int5_seg dw ? ; прерывания 5h
old_int2F_off dw ? ; Адрес старого обработчика
old_int2F_seg dw ? ; мультиплексного прерывания 2Fh
adr_psp dw ? ; Адрес PSP
vbuf dw 0b000h ; Сегментный адрес видеобуфера
handle dw ? ; Дескриптор файла
buf db 2050 dup(0) ; Буфер для данных экрана
mes db 'Disk error$'
filename db 'filescr&.txt',0 ; Спецификация вых. файла
iniflag db 0 ; Флаг запроса на вывод экрана в файл
outflag db 0 ; Флаг начала вывода в файл
_crit dd ? ; Указатель на флаг активности DOS
; Новый обработчик прерывания 2Fh
new_int2F proc far
cmp ax,0ff00h
jz installed
jmp dword ptr cs:old_int2F_off ; Переход на старый обработчик 2Fh
installed: mov ax,0ffh ; "Программа в памяти"
iret
new_int2F endp
; Новый обработчик прерывания 1ch
new_int8 proc far
push ax
push bx
push cx
push dx
push si
push di
push ds
push es
mov ax,cs
mov ds,ax
cmp iniflag,0
jz exit8 ; Нет запроса
test outflag,0ffh
jnz exit8 ; Файл уже выводится
jnz exit8 ; DOS занята
les bx,_crit
test byte ptr es:[bx],0ffh
jnz exit8 ; DOS занята
; iniflag=1, outflag=0, crit=0
mov outflag,0ffh
Страницы
- « первая
- ‹ предыдущая
- …
- 124
- 125
- 126
- 127
- 128
- …
- следующая ›
- последняя »
