[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]
{
From: josephw@ramp.com (Joe Wilcox)
>> Are there any Pascal function/procedures that will return to me the DOS
>> segment of the current video page? If not, is there an easy way
>> to do this? Thanks!
>Not built-in Pascal, as far as I know (perhaps in graphics mode, using the
>Graph unit, but I don't use it). In text mode, each screen takes 2*80*25 =
>4000 bytes, so I think you simply add a 4K (that is, 4096) offset for each
>logical page. Screen mode 3, co80, mem. starts at phys. address B8000h.
Ok, if you are trying to find the segment in text mode, it's real easy..
here is a function...
}
function GetVPage : word;
asm
mov BX,$B000; { Default is monochrome segment }
mov AH,$0F; { Bios function 0Fh : Get Video Mode }
int $10; { Do a Bios video interrupt }
cmp AL,$07; { Are we in monochrome? }
je @@Done; { Yes, then jump }
mov BX,$B800; { Set it to the color segment }
@@Done:
mov AX,BX; { Return the value in AX }
end;
[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]