home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / MBUG / MBUG013.ARC / COLOR4.PAS < prev    next >
Pascal/Delphi Source File  |  1979-12-31  |  2KB  |  78 lines

  1.  program COLOR4;
  2.  
  3. { Colour for MicroBee in Turbo Pascal using an initialising
  4.   procedure to  intercept the call to  BDOS to allow insert
  5.   of a routine to form a scratch area (SCRTCH) to place the
  6.   values for foreground, background and intensity,  so that
  7.   responses  to a change in  colour values  apply only when
  8.   characters are written to screen.
  9.  
  10.   Procedures developed by Bob and Alan Burt                 }
  11.  
  12. var
  13.   col_ram : integer;
  14.   intensity : byte;
  15.  
  16. {$I colinit2.pro}
  17. {$I flash.pro}
  18.  
  19. procedure color(foreground, background, intensity : byte);
  20. begin
  21.   mem[addr(init)+45] := background*32+foreground;{value in SCRTCH of init}
  22.   mem[addr(init)+46] := intensity*2          {place in SCRTCH + 1 of init}
  23. end; {procedure color}
  24.  
  25. begin {main}
  26.   init; {must be called ONCE in each program}
  27.   clrscr;
  28.   intensity := 0;
  29.     write(^G);
  30.     gotoxy(35,10);
  31.     write('Intensity value of ',intensity);
  32.     gotoxy(1,4);
  33.     color(0,7,intensity);
  34.     write('This is Black on White     ');
  35.     delay(1000);
  36.     gotoxy(1,6);
  37.     color(4,3,intensity);
  38.     write('This is Red on Yellow      ');
  39.     delay(1000);
  40.     gotoxy(1,8);
  41.     color(21,6,intensity);
  42.     write('This is Magenta II on Cyan ');
  43.     delay(1000);
  44.     gotoxy(1,10);
  45.     color(23,2,intensity);
  46.     write('This is White II on Green  ');
  47.     delay(1000);
  48.     gotoxy(1,12);
  49.     color(7,4,intensity);
  50.     write('This is White on Blue      ');
  51.     delay(1000);
  52.     gotoxy(1,14);
  53.     color(6,6,intensity);
  54.     write('This is Yellow on Cyan     ');
  55.     delay(1000);
  56.     gotoxy(1,16);
  57.     color(2,3,intensity);
  58.     write('This is Green on Yellow    ');
  59.     delay(1000);
  60.     gotoxy(1,18);
  61.     color(1,3,intensity);
  62.     write('This is Blue on Yellow     ');
  63.     delay(1000);
  64.     gotoxy(1,20);
  65.     color(5,7,intensity);
  66.     write('This is Magenta on White   ');
  67.     delay(3000);
  68.   for intensity := 1 to 7 do
  69.     begin
  70.       color(0,7,intensity);
  71.       gotoxy(35,10);
  72.       write('Intensity value of ',intensity);
  73.       write(^G);
  74.       delay(3000)
  75.     end;
  76.   flash
  77. end. {main}
  78.