{ How can I save and restore the text screen mode (e.g. 132*28 characters) when using BGI calls in a Turbo Pascal program ? Unfortunately I always have 80*25 after program exit. } function get_video_mode : byte; { Returns the current video mode (from interrupt $10,$f). Byte [$40:$49] also contains this information, but might not always have the correct value. } var check_b : byte; {video mode byte : absolute $40:$49} begin {get_video_mode} asm mov ah, 0fh int 10h mov check_b, al end; if check_b > 127 then get_video_mode:=check_b-128 {last mode change was done without screen clearing, mode is given by the low 7 bits} else get_video_mode:=check_b; end; {get_video_mode} procedure set_video_mode(m : byte); { Sets the given video mode (via interrupt $10,0). If high bit is on screen is not cleared (works only for text modes?). } begin {set_video_mode} asm mov ah, 00h mov al, m int 10h end; end; {set_video_mode}