home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug099.arc / DOT2.I < prev    next >
Text File  |  1979-12-31  |  640b  |  21 lines

  1. Procedure Dot(X,Y : Integer; F : Operation);
  2.  
  3. var
  4.   PCG, Bit, Line : Byte;
  5.   Change : Integer;
  6.  
  7. Begin
  8.   if ((X<0) or (X>511) or (Y<0) or (Y>255)) then Exit;
  9.  
  10.   PCG := Mem[$F3C0 - (Y Div 16) * 64 + X Div 8];
  11.   Bit := 1 Shl (7 - (X Mod 8));
  12.   Line := 15 - Y Mod 16;
  13.   Port[28] := 135 - Y Div 32;
  14.   Change := PCG * 16 + $F000 + Line;
  15.   Case F of
  16.     ResDot : Mem[Change] := Mem[Change] and not Bit;
  17.     SetDot : Mem[Change] := Mem[Change] or Bit;
  18.     InvDot : Mem[Change] := Mem[Change] xor Bit;
  19.   end;
  20.   Port[28] := 128;
  21. End;