Category : Pascal Source Code
Archive   : FUTILS.ZIP
Filename : XWIN.DOC
\/ RKCP \/
*******************************************************************
************************* XWIN by Rex Kerr ************************
************************ Copyright (C) 1989 ***********************
*******************************************************************
Have you read the documentation for FWIN? If not, I suggest you
do. This is not "full" documentation; it is meant to explain where
XWIN is different from FWIN, so you can choose when to use both.
XWIN is slower that FWIN, but it doesn't leave behind images of
non-existant windows. XWIN also keeps memory required to a minimum
whereas FWIN just has a fixed buffer for each window.
***
XWIN has added this type :
type Win_ScrBuf = array[1..4000] of byte;
And changed one line and added another in winptr. The changed line
went from
WScreen : Vram_ScrBuf;
to
WScreen : ^Win_ScrBuf;
and the new line is
ScrSize : word;
ScrSize holds the size of WScreen (WScreen is GETMEMed and FREEMEMed)
in bytes.
***
GetWinVram(var Scrn : Win_ScrBuf; x,y,w,h : byte);
This gets the screen window X,Y,W,H and places the contents in Scrn.
Note that Scrn is assumed to be exactly the size of the memory
required to hold the X,Y,W,H window. Assuming you have x,y,w,h you
can calculate the memory required like this:
mem_req := (((w - x) + 1) * ((h - y) + 1)) * 2;
Or, in other words, the number of columns high times the number of
rows wide times two.
***
PutWinVram(Scrn: Win_ScrBuf; x,y,w,h : byte);
This does the same thing as GetWinVram, except instead of reading
from the screen, it writes to it.
***
PutWinBorder(x,y,w,h : byte; st,border : string; batr : byte);
This draws a border just like CreateWindow does, except it doesn't
actually create a window, it just does the drawing.
***
XWIN does not have GetVram or PutVram. If you use XWIN you'll have
to do the full GetVramSec(Scrn,1,1,80,25,1,1).
***
Everything else works the same as with FWIN. You don't need that
CleanUpScreen, though.
If you think I've left anything out out here, or if this is too
unclear, please contact me via CompuServe on either EasyPlex or
the TP5 message section of BPROGA.
Rex Kerr 71550,3147
/\ RKCP /\
\/ RKCP \/
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/