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 / MBUG139.ARC / OR-TEST.PAS < prev    next >
Pascal/Delphi Source File  |  1979-12-31  |  2KB  |  69 lines

  1. PROGRAM OR_TEST;{tests combining two pcg chars to create a third}
  2. TYPE
  3. pcg = array[0..10] of byte;
  4.  
  5. CONST
  6. pcg_length = 11;
  7. dot0_0 :pcg =(24,24,24,24,24,255,24,24,24,24,24);
  8. dot0_1 :pcg =(255,129,129,129,129,129,129,129,129,129,255);
  9. space  :pcg =(0,0,0,0,0,0,0,0,0,0,0);
  10.  
  11. VAR
  12. screen_ram : array[1..24,1..80] of byte absolute $F000;
  13. pcg_ram    : array[128..256,0..15] of byte absolute $F800;
  14. pcg_stor_1 : array[0..10] of byte;
  15. pcg_stor_2 : array[0..10] of byte;
  16. pcg_stor_3 : array[0..10] of byte;
  17. pcg_stor_4 : array[0..10] of byte;
  18. pcg_stor_5 : array[0..10] of byte;
  19. count, i, j : integer;
  20.  
  21. PROCEDURE TEST;
  22. BEGIN
  23.  move(dot0_0[0],pcg_ram[128,0],pcg_length);
  24.  move(dot0_1[0],pcg_ram[129,0],pcg_length);
  25.  move(dot0_0[0],pcg_stor_1[0],pcg_length);
  26.  move(dot0_1[0],pcg_stor_2[0],pcg_length);
  27.  for count := 0 to 10 do
  28.    pcg_stor_3[count] := pcg_stor_1[count] or pcg_stor_2[count];
  29.  move(pcg_stor_3[0],pcg_ram[130,0],pcg_length);
  30.   gotoxy(1,10); write(chr(128));write(' or  ');  write(chr(129));
  31.  writeln(chr(130));
  32.  for count := 0 to 10 do
  33.    pcg_stor_3[count] := pcg_stor_1[count] and pcg_stor_2[count];
  34.  move(pcg_stor_3[0],pcg_ram[131,0],pcg_length);
  35.  write(chr(128));write(' and ');  write(chr(129));
  36.  writeln(chr(131));
  37.  for count := 0 to 10 do
  38.    pcg_stor_3[count] := pcg_stor_1[count] xor pcg_stor_2[count];
  39.  move(pcg_stor_3[0],pcg_ram[132,0],pcg_length);
  40.  write(chr(128));write(' xor ');  write(chr(129));
  41.  writeln(chr(132));
  42.  move(space[0],pcg_ram[131],pcg_length);
  43.  writeln('.',chr(130),'.',chr(131),'.',chr(132),'.');
  44.  for count := 0 to 10 do
  45.    pcg_stor_4[count] := pcg_ram[129,count] or pcg_ram[128,count];
  46.  move(pcg_stor_4[0],pcg_ram[133,0],pcg_length);
  47.  writeln(chr(133));
  48.  for count := 0 to 10 do
  49.   pcg_stor_5[count] :=
  50.      pcg_ram[screen_ram[10,1],count] or pcg_ram[screen_ram[10,7],count];
  51.  move(pcg_stor_5[0],pcg_ram[134,0],11);
  52.  writeln(chr(134));
  53.  
  54.  {test to display the contents of screen RAM, rows 1 to 21, at row 22
  55.   for i := 1 to 21 do
  56.    begin
  57.      gotoxy(1,22); write('i : ');
  58.      for j := 1 to 80 do
  59.            begin
  60.              gotoxy(1,22); write(i,',',j,' : ',screen_ram[i,j]);
  61.              delay(4000); gotoxy(1,22); write('               ');
  62.            end;
  63.    end;}
  64. END;
  65.  
  66. BEGIN
  67. clrscr;
  68. TEST;
  69. END.