home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / game-crk / pt.ha / PTGVIEW.PAS < prev    next >
Pascal/Delphi Source File  |  1993-12-15  |  2KB  |  117 lines

  1. {===================       Turbo Pascal 7.0+     ==============================}
  2. type
  3. THead=Record
  4. FVga:byte;
  5. Old_mode:byte;
  6. Old_page:byte;
  7. Fpal:byte;
  8. Addrpal:array[1..17] of byte;
  9. Vgabuff:array[1..896] of byte;
  10. End;
  11.  
  12. Var
  13. Ch:Char;
  14. Fl:File;
  15. R:Word;
  16. FileHead:THead;
  17. VSegh,VOfsh:Word;
  18. Vbyte:Byte;
  19. Begin
  20.     Assign(fl,paramstr(1));
  21.     Reset(fl,1);
  22.     BlockRead(fl,FileHead,917,r);
  23.  
  24.     Asm
  25.     mov al,10h
  26.     mov ah,0
  27.     int 10h
  28.     End;
  29.  
  30.     Asm
  31.     MOV    DX,03DAh
  32.     IN    AL,DX                              
  33.     MOV    DL,0C0h                              
  34.     XOR    AX,AX                              
  35.     OUT    DX,AL                              
  36.     End;
  37.     
  38.     
  39.     Port[$3c4]:=2;
  40.     Port[$3c5]:=8;
  41.     BlockRead(fl,mem[$a000:0],$ffff,r);
  42.     BlockRead(fl,mem[$a000:$0ffff],1,r);
  43.     Port[$3c4]:=2;
  44.     Port[$3c5]:=4;
  45.     BlockRead(fl,mem[$a000:0],$ffff,r);
  46.     BlockRead(fl,mem[$a000:$0ffff],1,r);
  47.     Port[$3c4]:=2;
  48.     Port[$3c5]:=2;
  49.     BlockRead(fl,mem[$a000:0],$ffff,r);
  50.     BlockRead(fl,mem[$a000:$0ffff],1,r);
  51.     Port[$3c4]:=2;
  52.     Port[$3c5]:=1;
  53.     BlockRead(fl,mem[$a000:0],$ffff,r);
  54.     BlockRead(fl,mem[$a000:$0ffff],1,r);
  55.  
  56.  
  57.     If FileHead.Fvga=0 Then
  58.     Begin
  59.     Vbyte:=FileHead.old_mode;
  60.  
  61.     Asm
  62.     mov al,Vbyte
  63.     or al,10000000b
  64.     mov ah,0
  65.     int 10h
  66.     End;
  67.     
  68.     Vbyte:=FileHead.old_page;
  69.  
  70.     Asm
  71.     mov ah,5
  72.     mov al,VByte
  73.     int 10h
  74.     End;
  75.     
  76.     
  77.     If FileHead.Fpal=1 Then
  78.     Begin    
  79.  
  80.     VSegh:=Seg(FileHead.AddrPal);
  81.     VOfsh:=Ofs(FileHead.AddrPal);
  82.     Asm
  83.     push es
  84.     mov ax,Vsegh
  85.     mov es,ax
  86.     mov ax,1002h
  87.     mov dx,Vofsh
  88.     int 10h
  89.     pop es
  90.     End;
  91.     
  92.     End;
  93.     End
  94.     Else
  95.     Begin
  96.     VSegh:=Seg(FileHead.VgaBuff);
  97.     VOfsh:=Ofs(FileHead.VgaBuff);
  98.  
  99.     Asm
  100.     push es
  101.     mov ax,Vsegh
  102.     mov es,ax
  103.     mov ax,1c02h
  104.     mov cx,00000101b
  105.     mov bx,Vofsh
  106.     int 10h
  107.     pop es
  108.     End;
  109.     End;
  110.     Asm
  111.     xor ax,ax
  112.     int 16h
  113.     mov ax,0003h
  114.     int 10h
  115.     End;
  116.     Close(fl);
  117. End.;