Листинг 4-29. Обращение к глобальным переменным
----------------------------------------------------------------
BKGDTA DB 80h DUP(0) ; минимальный размер DTA
BKGPSP DW 0 ; программа инициализации запоминает
; здесь значение PSP
DOSPSP DW 0 ; здесь мы будем сохранять PSP и DTA
DOSDTA DW 0,0 ; прерванной программы
BKGSetPSP PROC NEAR
pushr ; сохранение изменяемых регистров
mov ah,62h ; запрос DOS о текущем PSP
int 21h
mov DOSPSP,bx ; сохранение текущего PSP
mov ah,50h ; сообщение DOS об использовании но-
; вого PSP
mov bx,BKGPSP
int 21h ; недокументирована
por
ret
BKGSetPSP ENDP
BKGSetDTA PROC NEAR
pushr
mov ah,2Fh
int 21h
mov DOSDTA,bx ; запись адреса DTA
mov DOSDTA+2,es
lea dx,BKGDTA ; ds:dx <== новая DTA
mov ah,1ah
int 21h
popr
ret
BKGSetDTA ENDP
----------------------------------------------------------------
|