home *** CD-ROM | disk | FTP | other *** search
- (*
- ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓·── ──·▓▓▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓│ │░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓ Unit was conceived, designed and written ░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓ by Floor A.C. Naaijkens for ░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓ UltiHouse Software / The ECO Group. ░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓ ░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓ (C) MCMXCII by EUROCON PANATIONAL CORPORATION. ░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓ All Rights Reserved for The ECO Group. ░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓ ░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓│ │░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓·── ──·░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
- ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
- *)
- unit eco_vga;
- interface
- uses
- dos, crt, eco_lib
-
- ;
-
-
- const
- colors = 256;
- delayamt : byte = 50;
- steps : byte = 30;
- vgapresent : boolean = true;
-
-
- type
- paltype = array [0..colors-1] of record
- r, g, b: byte;
- end;
-
- var
- origpal : paltype;
-
-
- procedure __palget(var origpal: paltype);
- procedure __palfade(origpal: paltype; fadeout: boolean);
- procedure __palblack(origpal: paltype);
- procedure __palput(origpal: paltype);
-
-
-
- implementation
-
-
-
- procedure __palget(var origpal: paltype);
- var reg: registers;
- begin
- if vgapresent then with reg do begin
- ax := $1017;
- bx := 0;
- cx := colors;
- es := seg(origpal);
- dx := ofs(origpal);
- intr ($10, reg);
- end;
- end;
-
-
-
- procedure __palput(origpal: paltype);
- var reg : registers;
- begin
- if vgapresent then with reg do begin
- ax := $1012; bx := 0; cx := colors; es := seg(origpal);
- dx := ofs(origpal); intr($10, reg);
- end;
- end;
-
-
-
-
- procedure __palfade(origpal: paltype; fadeout: boolean);
- var
- reg : registers;
- workpal : paltype;
- fade : word;
- pct : real;
- i : word;
-
- begin
- if vgapresent then with reg do for fade := 0 to steps do begin
- pct := fade / steps;
- if fadeout then pct := 1 - pct;
- for i := 0 to colors - 1 do with workpal[i] do begin
- r := round(origpal[i].r * pct);
- g := round(origpal[i].g * pct);
- b := round(origpal[i].b * pct);
- end;
- ax := $1012; bx := 0; cx := colors; es := seg(workpal);
- dx := ofs(workpal); intr($10, reg); delay(delayamt);
- end;
- end;
-
-
-
- procedure __palblack(origpal: paltype);
- var
- reg : registers;
- workpal : paltype;
- fade : word;
- pct : real;
- i : word;
-
- begin
- if vgapresent then with reg do begin
- pct := 0;
- for i := 0 to colors - 1 do with workpal[i] do begin
- r := round(origpal[i].r * pct);
- g := round(origpal[i].g * pct);
- b := round(origpal[i].b * pct);
- end;
- ax := $1012; bx := 0; cx := colors; es := seg(workpal);
- dx := ofs(workpal); intr($10, reg); delay(delayamt);
- end;
- end;
-
-
-
-
-
- begin
- vgapresent := (_vgaadapter <> _absent);
- if vgapresent then __palget(origpal);
- end.
-
-