[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]

    {
     BK> Could someone tell me how to view this image in Turbo Pascal 7.0 ??

      Take your data and put it above the following code.
      compile and see your image.
      Please note graphics functions kept a simple as possible. Crux of matter
      image not programing.

      Your data was 1028 bytes long.
      The first four bytes lead to two integer with value 31. ( dimensions)

      31*31 = 961.
      1028 - 961 - 4(for dimensions) = 64.

      64 = ?

      Your image says "Thanks in advance" . Its a pleasure.

    _________o/_________
             o\
    }

    program demo;

    Uses dos;

    {cut and paste your data here }

    type

      rgbx_type  = record
         red,green,blue,blank : byte;
      end;

      rgb_type  = record
         red,green,blue,blank : byte;
      end;

      img_type = record
         width,                                  { dimentions }
         height  : integer;
         data    : array [0..31,0..31] of byte;  { image data }
         pallete : array [0..15] of rgbx_type;   { no supporting evidence      }
                                                 { some indexes bigger than 16 }
      end;

      screen_type = array [0..199,0..319] of byte;

    var
      screen      : screen_type absolute $a000:$0000;
      colours     : array [0..255] of rgb_type;

    procedure SetPallete(first_colour,num_colours : word);
    var
      regs  : registers;
    begin
       regs.ax := $1012;
       regs.cx := num_colours;
       regs.bx := first_colour;
       regs.dx := ofs(colours);
       regs.es := seg(colours);
       intr($10,regs);
    end;

    procedure GraphicsMode;
    var
      regs  : registers;
    begin
      regs.ax := $13;
      intr($10,regs);
    end;

    procedure TextMode;
    var
      regs  : registers;
    begin
      regs.ax := $3;   { should use a saved mode }
      intr($10,regs);
    end;

    procedure SetPixel(x,y : integer; colour : byte);
    begin
      screen[y,x] := colour;
    end;

    var
      i,j   : integer;
      img   : img_type absolute image;
      dump  : char;
    begin
      graphicsMode;
      for i := 0 to 15 do
         begin
            colours[i].red   := img.pallete[i].red;
            colours[i].green := img.pallete[i].green;
            colours[i].blue  := img.pallete[i].blue;
         end;

      SetPallete(0,16);
      for i := 1 to 31 do
         for j := 1 to 31 do
            SetPixel(i,j,img.data[j,i]);

      dump := readkey;
      Textmode;
    end.

[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]