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 / MBUG099.ARC / PLOT.I < prev    next >
Text File  |  1979-12-31  |  5KB  |  130 lines

  1. Procedure Plot(X0,Y0,X1,Y1 : Integer; F : Operation);
  2.  
  3. Var
  4.   D1, D2, S1, S2, A1, A2, N1, D3 : Integer;
  5.  
  6. Begin
  7.   Inline($2A/X1/           {         LD    HL,(X1)  }
  8.          $ED/$5B/X0/       {         LD    DE,(X0)  }
  9.          $B7/              {         OR    A        }
  10.          $ED/$52/          {         SBC   HL,DE    }
  11.          $22/D1/           {         LD    (D1),HL  }
  12.  
  13.          $2A/Y1/           {         LD    HL,(Y1)  }
  14.          $ED/$5B/Y0/       {         LD    DE,(Y0)  }
  15.          $B7/              {         OR    A        }
  16.          $ED/$52/          {         SBC   HL,DE    }
  17.          $22/D2/           {         LD    (D2),HL  }
  18.  
  19.          $21/0/0/          {         LD    HL,0     }
  20.          $22/S1/           {         LD    (S1),HL  }
  21.          $22/A2/           {         LD    (A2),HL  }
  22.  
  23.          $23/              {         INC   HL       }
  24.          $22/S2/           {         LD    (S2),HL  }
  25.          $22/A1/           {         LD    (A1),HL  }
  26.  
  27.          $2A/D1/           {         LD    HL,(D1)  }
  28.          $CB/$7C/          {         BIT   7,H      }
  29.          $28/$11/          {         JR    Z,TEST2  }
  30.          $21/$FFFF/        {         LD    HL,$FFFF }
  31.          $22/A1/           {         LD    (A1),HL  }
  32.  
  33.          $23/              {         INC   HL       }
  34.          $ED/$5B/D1/       {         LD    DE,(D1)  }
  35.          $B7/              {         OR    A        }
  36.          $ED/$52/          {         SBC   HL,DE    }
  37.          $22/D1/           {         LD    (D1),HL  }
  38.  
  39.          $2A/D2/           {TEST2    LD    HL,(D2)  }
  40.          $CB/$7C/          {         BIT   7,H      }
  41.          $28/$13/          {         JR    Z,TEST3  }
  42.  
  43.          $21/0/0/          {         LD    HL,0     }
  44.          $ED/$5B/D2/       {         LD    DE,(D2)  }
  45.          $B7/              {         OR    A        }
  46.          $ED/$52/          {         SBC   HL,DE    }
  47.          $22/D2/           {         LD    (D2),HL  }
  48.  
  49.          $21/$FFFF/        {         LD    HL,$FFFF }
  50.          $22/S2/           {         LD    (S2),HL  }
  51.  
  52.          $2A/D2/           {TEST3    LD    HL,(D2)  }
  53.          $ED/$5B/D1/       {         LD    DE,(D1)  }
  54.          $B7/              {         OR    A        }
  55.          $ED/$52/          {         SBC   HL,DE    }
  56.          $28/$29/          {         JR    Z,START  }
  57.          $38/$27/          {         JR    C,START  }
  58.  
  59.          $2A/D1/           {         LD    HL,(D1)  }
  60.          $22/N1/           {         LD    (N1),HL  }
  61.  
  62.          $2A/D2/           {         LD    HL,(D2)  }
  63.          $22/D1/           {         LD    (D1),HL  }
  64.  
  65.          $2A/N1/           {         LD    HL,(N1)  }
  66.          $22/D2/           {         LD    (D2),HL  }
  67.  
  68.          $2A/A1/           {         LD    HL,(A1)  }
  69.          $22/S1/           {         LD    (S1),HL  }
  70.  
  71.          $2A/S2/           {         LD    HL,(S2)  }
  72.          $22/A2/           {         LD    (A2),HL  }
  73.  
  74.          $21/0/0/          {         LD    HL,0     }
  75.          $22/A1/           {         LD    (A1),HL  }
  76.          $22/S2/           {         LD    (S2),HL  }
  77.  
  78.          $2A/D1/           {START    LD    HL,(D1)  }
  79.          $CB/$3C/          {         SRL   H        }
  80.          $CB/$1D/          {         RR    L        }
  81.          $22/D3/           {         LD    (D3),HL  }
  82.  
  83.          $21/1/0/          {         LD    HL,1     }
  84.          $22/N1);          {         LD    (N1),HL  }
  85.  
  86.   Dot(X0,Y0,F);
  87.  
  88.   While N1 <= D1 do
  89.     begin
  90.     Inline($2A/X0/         {         LD    HL,(X0)  }
  91.            $ED/$5B/A1/     {         LD    DE,(A1)  }
  92.            $19/            {         ADD   HL,DE    }
  93.            $22/X0/         {         LD    (X0),HL  }
  94.  
  95.            $2A/Y0/         {         LD    HL,(Y0)  }
  96.            $ED/$5B/A2/     {         LD    DE,(A2)  }
  97.            $19/            {         ADD   HL,DE    }
  98.            $22/Y0/         {         LD    (Y0),HL  }
  99.  
  100.            $2A/D3/         {         LD    HL,(D3)  }
  101.            $ED/$5B/D2/     {         LD    DE,(D2)  }
  102.            $19/            {         ADD   HL,DE    }
  103.            $22/D3/         {         LD    (D3),HL  }
  104.  
  105.            $2A/N1/         {         LD    HL,(N1)  }
  106.            $23/            {         INC   HL       }
  107.            $22/N1/         {         LD    (N1),HL  }
  108.  
  109.            $2A/D3/         {         LD    HL,(D3)  }
  110.            $ED/$5B/D1/     {         LD    DE,(D1)  }
  111.            $B7/            {         OR    A        }
  112.            $ED/$52/        {         SBC   HL,DE    }
  113.            $38/$19/        {         JR    C,ENDDDA }
  114.  
  115.            $22/D3/         {         LD    (D3),HL  }
  116.  
  117.            $2A/X0/         {         LD    HL,(X0)  }
  118.            $ED/$5B/S1/     {         LD    DE,(S1)  }
  119.            $19/            {         ADD   HL,DE    }
  120.            $22/X0/         {         LD    (X0),HL  }
  121.  
  122.            $2A/Y0/         {         LD    HL,(Y0)  }
  123.            $ED/$5B/S2/     {         LD    DE,(S2)  }
  124.            $19/            {         ADD   HL,DE    }
  125.            $22/Y0);        {         LD    (Y0),HL  }
  126.                            {ENDDDA                  }
  127.       Dot(X0,Y0,F);
  128.     end;
  129. End;
  130.