
			   SCI viewer in Pascal. And C++!
			   

	Igaz, hogy "nem igazn" szeretjk a Pascalt, mgis itt egy SCI file
	megjelent,Pascalban. Hogy a C-sek ne rezzk magukat rosszul tle,
	megcsinltam ugyanezt C-ben. Lehet sszehasonltani ;-)


"dmka" programja: (Pascal)
-----------8<-------------------cut here---------------------------8<----------
program SCIView;
uses Crt;
var
   f          :file;
   i          :longint;
   r          :byte;
   g          :byte;
   b          :byte;
   color      :byte;
   videomem   :array[0..63999] of byte absolute $0a000:0;
   picdata    :array[0..63999] of byte;
   garbage    :array[0..9] of byte;
{-----------------------------Graphics mode on------------------------------}
procedure GrOn;
begin
     asm
     mov ax,13h;
     int 10h;
     end;
end;
{-----------------------------Graphics mode off-----------------------------}
procedure GrOff;
begin
     asm
     mov ax,3;
     int 10h;
     end;
end;
{-----------------------------Main proggy-----------------------------------}
begin
     writeln;
     if paramcount=0 then
     begin
          writeln('USAGE : SCIVIEW filename.SCI');
          exit
     end;
     assign(f,paramstr(1));
     reset(f,1);
     blockread(f,garbage,10);{--------------Garbage out!---------------------}
     blockread(f,picdata,768);
     i:=0;
     GrOn;
     repeat
           r:=picdata[i];
           g:=picdata[i+1];
           b:=picdata[i+2];
           color:=i div 3;
           asm
           mov ax,1010h;
           xor bx,bx;
           xor dx,dx;
           mov bl,color;
           mov dh,r;
           mov ch,g;
           mov cl,b;
           int 10h;
           end;
           i:=i+3
     until i>768;

     blockread(f,picdata,63999); { Ez szerintem lehetne 64000 is-John Zero }
     move(picdata,videomem,64000);
     close(f);
     repeat until keypressed;
     GrOff;
end.
{----------------------------------End of proggy----------------------------}

John Zer programja: (C++)
--------8<------------------cut here------------------------------8<-----------
#include <dos.h>
#include <io.h>
#include <stdio.h>

void GrOn(void) // Graphics mode on
{
 asm mov ax,13h
 asm int 10h
}

void GrOff(void) // Graphics mode off
{
 asm mov ax,3
 asm int 10h
}

void main( int argc, char *argv[] )
{
 if (argc<=1)
  {
   printf("\nUsage: SCIVIEW filename.SCI\n");
   return;
  }

 int f;
 if (!(f=open(argv[1],O_RDONLY|O_BINARY)))
  {
   printf("Error opening file!\n");
   return;
  }
 char buf[768];
 lseek(f,10,SEEK_SET);
 read(f,buf,768);
 GrOn();
 int i=0;
 unsigned char r,g,b,color;
 do
  {
   r=buf[i];
   g=buf[i+1];
   b=buf[i+2];
   color=i/3;
   asm
    {
     mov ax,1010h
     xor bx,bx
     xor dx,dx
     mov bl,color
     mov dh,r
     mov ch,g
     mov cl,b
     int 10h
    }
   i+=3;
  }
 while (i<768);
 _dos_read(f,MK_FP(0xA000,0),64000,&i);
 close(f);
 getch();
 GrOff();
}
