DBarker@SYSTEM-M.PHX.BULL.COM (Deryk Barker) (10/21/90)
Has anyone else experience of developing Desqview aware programs? I'm merely trying to write some code that will check whether Desqview is running and get the appropriate video buffer address if is. Using the sample code presented in appendix J of the Desqview manual, to whit: mov es,hardware_video_seg ; set es to video buffer mov di,0 mov cx,'DE' ; set to invalid date mov dx,'SQ' ; 4445H 5151H mov ax,2b01h ; set date int 21h ; call DOS cmp al,0ffh ; did DOS regard as invalid? je no_desqview ; Desqview not there mov major_version,bh ; save major mov minor_version,bl ; and minor Desqview versions mov ah,0feh ; Desqview get video buffer int 10h ; returns es:di as alternate buffer no_desqview: mov video_buffer_offset,di mov video_buffer_segment,es Now I have tried this code in Microsoft C's in-line assembler and in MASM. tracing it through with either CodeView OR Turbo Debug the second interrrupt just plain don't work. the first successfully returns the Desqview version numbers but the int 10h leaves es:di just as they are. I have traced through some Desqview programs using Turbo Debug - they appear to use the same calls and THEY don't seem to get a valid es:di either. The one program that apparently DOES get everything right is Front Door: but it doesn't use anything remotely resembling the same code and it's so large that I haven't the patience to debug it all an instruction at a time. I'm gonna have to right to Quarterdeck, but if anyone out there has an example of working code that DOESN'T use the Desqview API package (i.e. the one you pay for) I'd be very grateful to hear about it. Deryk Barker, Jupiter Software, Victoria BC. "Send Lawyers, Guns and Money, Dad, get me out of this!"