home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TS_CONFG.ZIP / CFG_DEM2.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-04-02  |  1.6 KB  |  65 lines

  1. PROGRAM CFG_Demo2;
  2.  
  3. USES crt,ts_confg;
  4.  
  5. VAR
  6.   ch       : char    ;
  7.   oldcolor : byte    ;
  8.   newcolor : byte    ;
  9.   oops     : integer ;
  10.  
  11.  
  12. PROCEDURE ChangeColor ( X1,Y1,X2,Y2: integer; OldColor,NewColor : Byte );
  13.   VAR
  14.     OffSet        : integer;
  15.     IndexX,IndexY : integer;
  16.     C             : byte;
  17.     Adapter       : word;
  18.   BEGIN
  19.     if lo(lastmode) = 7 then adapter := $B000 else adapter := $B800;
  20.     FOR IndexY := Y1 TO Y2 DO BEGIN
  21.       Offset := 2 * (( 80 * (IndexY - 1 )) + X1 - 1);
  22.       FOR IndexX := 1 TO X2-X1+1 DO BEGIN
  23.         C := mem[Adapter:Offset+(IndexX*2)-1];
  24.         IF C = OldColor THEN mem[Adapter:Offset+(IndexX*2)-1] := NewColor;
  25.       END;
  26.     END;
  27.   END;
  28.  
  29. PROCEDURE ShowScreen(ScreenData:pointer);
  30.   VAR
  31.     ScreenSegment:word;
  32.   BEGIN
  33.     if lo(LastMode) = 7 then ScreenSegment := $B000
  34.     else ScreenSegment := $B800;
  35.     move(ScreenData^,ptr(ScreenSegment,0)^,4000);
  36.   END;
  37.  
  38. PROCEDURE SaveScreen(ScreenData:pointer);
  39.   VAR
  40.     ScreenSegment:word;
  41.   BEGIN
  42.     if lo(LastMode) = 7 then ScreenSegment := $B000
  43.     else ScreenSegment := $B800;
  44.     move(ptr(ScreenSegment,0)^,ScreenData^,4000);
  45.   END;
  46.  
  47. PROCEDURE CFG_DEM2; external;
  48. {$L CFG_DEM2.OBJ}
  49.  
  50. BEGIN
  51.   ClrScr;
  52.   ShowScreen(@CFG_DEM2);
  53.   ch := readkey;
  54.   if keypressed then ch := readkey;
  55.   ClrScr;
  56.   Write('OldColor (0..256): '); Readln(OldColor);
  57.   Write('NewColor (0..256): '); Readln(NewColor);
  58.   ShowScreen(@CFG_DEM2);
  59.   ChangeColor(1,1,80,24,OldColor,NewColor);
  60.   ch := readkey;
  61.   if keypressed then ch := readkey;
  62.   SaveScreen(@CFG_DEM2);
  63.   ts_config('CFG_DEM2',seg(CFG_DEM2),ofs(CFG_DEM2),@CFG_DEM2,4000,oops);
  64.   ClrScr;
  65. END.