TIP: Click on subject to list as thread! ANSI
echo: 80xxx
to: N.FERRI@AGORA.STM.IT
from: BRIAN MCCLOUD
date: 1997-07-18 06:51:00
subject: Re: Change video mode

N.>&>& >A simple question: when I change the video mode with: > >mov
N.>&>& >ax,0003 >int 10h > >I have the screen cleared. Is there a way to
N.>&>& >change the video mode >(mode 03h) without clearing the screen ? >
N.>&>& That question is a good one, and I believe I know how to do what
N.>&>& you want. Hmmmm... set the high bit of AL. I believe you would
N.>&>& use:
N.>&>& mov ah,0003h mov al,1000b int 10h
That isn't a mode-change!  That is function 03h, which is Get Cursor Position
and Size.  According to my reference (_PC_Interrupts_ by Ralf Brown & Jim
Kyle), setting the high bit of AL will suppress the initial screen clearing,
so try this:
        mov     ax, 00083h
        int     10h
However, be careful about using this with an AT&T VDC... it means something
different for that adapter.
N.>This is the same solution I found on a book but doesn't work very well,
N.>in fact after setting the bit in AL (I use OR AL,1000000B) the screen
N.>is locked up. That's to say that CLS, for example, doesn't work. The last
N.>image to be displayed on screen just before changing the video mode
N.>stays there and there is no way to kick it away.
I'm not sure why it would do that
N.>I'd need a solution to get back to 03h int10h viedo mode without
N.>clearing the screen, but keeping the PC still usable :)
What you could do is reserve an area for storing & recalling the information
stored onscreen:
********
        push    ds
        mov     ax, 0B800h
        mov     ds, ax
        mov     ax, 08800h      ; this may not be the best memory to use, but
                                ; it's easier for the example.
        mov     es, ax
        xor     si, si
        mov     di, si
        mov     cx, 04000h      ; make sure to get whatever size buffer, even
                                ; if it's more than 80x25.
        rep     movsw           ; save entire screen
        mov     ax, 00003h
        int     10h             ; change the mode, clearing the screen
        push    es
        push    ds
        pop     es
        pop     ds
        mov     cx, 04000h
        rep     movsw           ; restore saved screen
********
((Cloud))
MauveCloud@juno.com
 * OLX 2.2 * I disagree with what you say, but will defend to the deat
--- PCBoard (R) v15.3/M 10
---------------
* Origin: Next time, Dial The Wrong Number! (209) 943-1880 (1:208/205)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.