home *** CD-ROM | disk | FTP | other *** search
- {PK>SetVisualPage are Procedures I spent a lot of time investigating with
- PK>Really weird results. In fact I locked up Computer several times and
-
- I hate it when that happens <g>.
-
- PK>then I got frustrated and posted the message hoping there would be some
- PK>other way how to go about it. tom Swan's book Mastering Turbo Pascal 6.0
-
- There is: Don't use Graph.TPU and Write all your own routines. In the
- following Program, 3 routines SetVidMode, SetPage, and PutPix
- illustrate a Graph.TPU-less example of your original requirement.
- }
-
- Program test0124;
- Uses Dos;
-
- Const
- VidMode = $10; {..640x350x16 - Supported By VGA and Most EGA }
- Var
- x,y : Integer;
- reg : Registers;
-
- Procedure SetVidMode(VidMode :Integer);
- begin
- reg.ah := $00;
- reg.al := VidMode;
- intr($10,reg);
- end;
-
- Procedure SetPage(Page :Integer);
- begin
- reg.ah := $05;
- reg.al := page;
- intr($10,reg);
- end;
-
- Procedure PutPix(Color,Page,x,y : Integer);
- begin
- reg.ah := $0C;
- reg.al := Color;
- reg.bh := Page;
- reg.cx := x;
- reg.dx := y;
- intr($10,reg);
- end;
-
- begin
- SetVidMode(VidMode);
- SetPage(0); {..set active display page }
- For x := 200 to 440 do {..use custom PutPix to }
- For y := 100 to 250 do PutPix(3,1,x,y); { draw to different page }
- Write(^g);
- ReadLn; {..press enter to switch }
- SetPage(1); { active display page }
- ReadLn;
- end.
-
- {
- There are only a few dozen more routines that you need to have the
- Functionality of Graph.TPU - simple stuff like manipulating palettes,
- line/circle/polygon algorithms, fill routines, etc., etc....have fun.
-
- PK>list all video modes and number of pages it is capable of working with
- PK>and VGA in 640x480 (that's the mode I have) is supposed to handle only
- PK>one page. That's is probably the reason why it doesn't work. What is
-
- That would do it. From my reference, Advanced MS Dos Programming - Ray
- Duncan, The best resolution you can get With multiple page support is
- 640x350 (Mode $10).
-
- About the ClearViewPort conflict, I experienced similar problems - I
- went as Far as pixelling out portions of the display to avoid using
- ClearViewPort <Sheesh!> - that Graph Unit doesn't make anything easy.
- }