home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug099.arc / HIRES2.DOC < prev    next >
Text File  |  1979-12-31  |  12KB  |  261 lines

  1.                                TURBO HIRES2
  2.  
  3.  
  4.                               By Simon Carter
  5.  
  6. Thi≤ montΦ wσ presen⌠ ß revisioε oµ thσ Do⌠ anΣ Plo⌠ routine≤ ¡ iε áMachinσ ì
  7. Code« á Thσ Plo⌠ routinσ i≤ totall∙ differen⌠ t∩ thσ Pasca∞ onσ á presenteΣ ì
  8. las⌠ á montΦ á¡ á thi≤ átimσ  i⌠  i≤ baseΣ  oε áthσ á DD┴ ároutinσ áiε áthσ  ì
  9. Assemble≥ áfo≥ áAddict≤ sectioε oµ  Onlinσ ¡ reviseΣ áfo≥ áPascal'≤ áInlinσ ì
  10. statement«  Thσ  comment≤ iε curl∙ brace≤ neeΣ no⌠ bσ entered¼ a≤ thesσ arσ ì
  11. onl∙ fo≥ clarity.
  12.  
  13. DOT procedure
  14. Thσ áDo⌠  procedurσ use≤ thσ samσ  parameter≤ a≤ beforσ  bu⌠ notσ átha⌠ ái⌠ ì
  15. no≈ onl∙  use≤ onσ variable¼ a≤ ß resul⌠  oµ severa∞ spacσ anΣ timσ ásavinτ ì
  16. operations« á Also¼ áthσ áconvenien⌠ 'inº statemen⌠ ha≤ no⌠ ábeeε áuseΣ át∩  ì
  17. limi⌠ ╪ o≥ ┘ ranges¼ a≤ ß  resul⌠ oµ timσ savinτ considerations«   A≤  wel∞  ì
  18. a≤ á that¼ á set≤  arσ  limiteΣ  t∩  25╢ components¼ áno⌠ áallowinτ árange≤ ì
  19. abovσ 25╡ fo≥ X.
  20.  
  21.  
  22.  
  23. Procedure Dot(X,Y : Integer; F : Operation);
  24.  
  25. Var
  26.   PCG : Byte;
  27.  
  28. Begin
  29. if ((X>=0) and (X<512) and (Y>=0) and (Y<256)) then
  30.   begin
  31.   Inline($2A/Y/               {          LD       HL,(Y)    }
  32.          $7D/                 {          LD       A,L       }
  33.          $CB/$3F/             {          SRL      A         }
  34.          $CB/$3F/             {          SRL      A         }
  35.          $CB/$3F/             {          SRL      A         }
  36.          $CB/$3F/             {          SRL      A         }
  37.          $CB/$3F/             {          SRL      A         }
  38.          $F5/                 {          PUSH     AF        }
  39.          $7D/                 {          LD       A,L       }
  40.          $E6/$0F/             {          AND      15        }
  41.          $F5/                 {          PUSH     AF        }
  42.  
  43.          $ED/$4B/X/           {          LD       BC,(X)    }
  44.          $79/                 {          LD       A,C       }
  45.          $E6/7/               {          AND      7         }
  46.          $F5/                 {          PUSH     AF        }
  47.          $CB/$18/             {          RR       B         }
  48.          $CB/$19/             {          RR       C         }
  49.          $CB/$39/             {          SRL      C         }
  50.          $CB/$39/             {          SRL      C         }
  51.  
  52.          $7D/                 {          LD       A,L       }
  53.          $E6/$F0/             {          AND      240       }
  54.          $6F/                 {          LD       L,A       }
  55.          $29/                 {          ADD      HL,HL     }
  56.          $29/                 {          ADD      HL,HL     }
  57.          $EB/                 {          EX       DE,HL     }
  58.          $21/$C0/$F3/         {          LD       HL,$F3C0  }
  59.          $ED/$52/             {          SBC      HL,DE     }è         6/0/                 {          LD       B,0       }
  60.          9/                   {          ADD      HL,BC     }
  61.          $7E/                 {          LD       A,(HL)    }
  62.          $32/PCG/             {          LD       (PCG),A   }
  63.  
  64.          $C1/                 {          POP      BC        }
  65.          4/                   {          INC      B         }
  66.          $E/0/                {          LD       C,0       }
  67.          $37/                 {          SCF                }
  68.          $CB/$19/             {LOOP      RR       C         }
  69.          $10/$FC/             {          DJNZ     LOOP      }
  70.  
  71.          $E1/                 {          POP      HL        }
  72.          $3E/$0F/             {          LD       A,15      }
  73.          $94/                 {          SUB      H         }
  74.          $5F/                 {          LD       E,A       }
  75.  
  76.          $E1/                 {          POP      HL        }
  77.          $3E/$87/             {          LD       A,135     }
  78.          $94/                 {          SUB      H         }
  79.          $D3/$1C/             {          OUT      (28),A    }
  80.  
  81.          $2A/PCG/             {          LD       HL,(PCG)  }
  82.          $26/0/               {          LD       H,0       }
  83.          $29/                 {          ADD      HL,HL     }
  84.          $29/                 {          ADD      HL,HL     }
  85.          $29/                 {          ADD      HL,HL     }
  86.          $29/                 {          ADD      HL,HL     }
  87.          $16/$F0/             {          LD       D,$F0     }
  88.          $19/                 {          ADD      HL,DE     }
  89.  
  90.          $3A/F/               {          LD       A,(F)     }
  91.          $FE/0/               {          CP       0         }
  92.          $28/8/               {          JR       Z,RESET   }
  93.          $FE/1/               {          CP       1         }
  94.          $28/$0B/             {          JR       Z,SET     }
  95.          $7E/                 {          LD       A,(HL)    }
  96.          $A9/                 {          XOR      C         }
  97.          $18/9/               {          JR       CLEAN     }
  98.          $79/                 {RESET     LD       A,C       }
  99.          $2F/                 {          CPL                }
  100.          $4F/                 {          LD       C,A       }
  101.          $7E/                 {          LD       A,(HL)    }
  102.          $A1/                 {          AND      C         }
  103.          $18/$02/             {          JR       CLEAN     }
  104.          $7E/                 {SET       LD       A,(HL)    }
  105.          $B1/                 {          OR       C         }
  106.          $77/                 {CLEAN     LD       (HL),A    }
  107.          $3E/$80/             {          LD       A,128     }
  108.          $D3/$1C);            {          OUT      (28),A    }
  109.   end;
  110. End;
  111.  
  112.  
  113.  
  114.  
  115. PLOT procedure
  116.   A≤ witΦ  thσ Do⌠  procedure¼ thσ  Plo⌠ procedurσ  caε bσ  calleΣ witΦ thσ ì
  117. samσ parameter≤ a≤ before.è
  118.  
  119. Procedure Plot(X0,Y0,X1,Y1 : Integer; F : Operation);
  120.  
  121. Var
  122.   D1, D2, S1, S2, A1, A2, N1, D3 : Integer;
  123.  
  124. Begin
  125.   Inline($2A/X1/           {         LD    HL,(X1)  }
  126.          $ED/$5B/X0/       {         LD    DE,(X0)  }
  127.          $B7/              {         OR    A        }
  128.          $ED/$52/          {         SBC   HL,DE    }
  129.          $22/D1/           {         LD    (D1),HL  }
  130.  
  131.          $2A/Y1/           {         LD    HL,(Y1)  }
  132.          $ED/$5B/Y0/       {         LD    DE,(Y0)  }
  133.          $B7/              {         OR    A        }
  134.          $ED/$52/          {         SBC   HL,DE    }
  135.          $22/D2/           {         LD    (D2),HL  }
  136.  
  137.          $21/0/0/          {         LD    HL,0     }
  138.          $22/S1/           {         LD    (S1),HL  }
  139.          $22/A2/           {         LD    (A2),HL  }
  140.  
  141.          $23/              {         INC   HL       }
  142.          $22/S2/           {         LD    (S2),HL  }
  143.          $22/A1/           {         LD    (A1),HL  }
  144.  
  145.          $2A/D1/           {         LD    HL,(D1)  }
  146.          $CB/$7C/          {         BIT   7,H      }
  147.          $28/$11/          {         JR    Z,TEST2  }
  148.          $21/$FFFF/        {         LD    HL,$FFFF }
  149.          $22/A1/           {         LD    (A1),HL  }
  150.  
  151.          $23/              {         INC   HL       }
  152.          $ED/$5B/D1/       {         LD    DE,(D1)  }
  153.          $B7/              {         OR    A        }
  154.          $ED/$52/          {         SBC   HL,DE    }
  155.          $22/D1/           {         LD    (D1),HL  }
  156.  
  157.          $2A/D2/           {TEST2    LD    HL,(D2)  }
  158.          $CB/$7C/          {         BIT   7,H      }
  159.          $28/$13/          {         JR    Z,TEST3  }
  160.  
  161.          $21/0/0/          {         LD    HL,0     }
  162.          $ED/$5B/D2/       {         LD    DE,(D2)  }
  163.          $B7/              {         OR    A        }
  164.          $ED/$52/          {         SBC   HL,DE    }
  165.          $22/D2/           {         LD    (D2),HL  }
  166.  
  167.          $21/$FFFF/        {         LD    HL,$FFFF }
  168.          $22/S2/           {         LD    (S2),HL  }
  169.  
  170.          $2A/D2/           {TEST3    LD    HL,(D2)  }
  171.          $ED/$5B/D1/       {         LD    DE,(D1)  }
  172.          $B7/              {         OR    A        }
  173.          $ED/$52/          {         SBC   HL,DE    }
  174.          $28/$29/          {         JR    Z,START  }
  175.          $38/$27/          {         JR    C,START  }è
  176.          $2A/D1/           {         LD    HL,(D1)  }
  177.          $22/N1/           {         LD    (N1),HL  }
  178.  
  179.          $2A/D2/           {         LD    HL,(D2)  }
  180.          $22/D1/           {         LD    (D1),HL  }
  181.  
  182.          $2A/N1/           {         LD    HL,(N1)  }
  183.          $22/D2/           {         LD    (D2),HL  }
  184.  
  185.          $2A/A1/           {         LD    HL,(A1)  }
  186.          $22/S1/           {         LD    (S1),HL  }
  187.  
  188.          $2A/S2/           {         LD    HL,(S2)  }
  189.          $22/A2/           {         LD    (A2),HL  }
  190.  
  191.          $21/0/0/          {         LD    HL,0     }
  192.          $22/A1/           {         LD    (A1),HL  }
  193.          $22/S2/           {         LD    (S2),HL  }
  194.  
  195.          $2A/D1/           {START    LD    HL,(D1)  }
  196.          $CB/$3C/          {         SRL   H        }
  197.          $CB/$1D/          {         RR    L        }
  198.          $22/D3/           {         LD    (D3),HL  }
  199.  
  200.          $21/1/0/          {         LD    HL,1     }
  201.          $22/N1);          {         LD    (N1),HL  }
  202.  
  203.   Dot(X0,Y0,F);
  204.  
  205.   While N1 <= D1 do
  206.     begin
  207.     Inline($2A/X0/         {         LD    HL,(X0)  }
  208.            $ED/$5B/A1/     {         LD    DE,(A1)  }
  209.            $19/            {         ADD   HL,DE    }
  210.            $22/X0/         {         LD    (X0),HL  }
  211.  
  212.            $2A/Y0/         {         LD    HL,(Y0)  }
  213.            $ED/$5B/A2/     {         LD    DE,(A2)  }
  214.            $19/            {         ADD   HL,DE    }
  215.            $22/Y0/         {         LD    (Y0),HL  }
  216.  
  217.            $2A/D3/         {         LD    HL,(D3)  }
  218.            $ED/$5B/D2/     {         LD    DE,(D2)  }
  219.            $19/            {         ADD   HL,DE    }
  220.            $22/D3/         {         LD    (D3),HL  }
  221.  
  222.            $2A/N1/         {         LD    HL,(N1)  }
  223.            $23/            {         INC   HL       }
  224.            $22/N1/         {         LD    (N1),HL  }
  225.  
  226.            $2A/D3/         {         LD    HL,(D3)  }
  227.            $ED/$5B/D1/     {         LD    DE,(D1)  }
  228.            $B7/            {         OR    A        }
  229.            $ED/$52/        {         SBC   HL,DE    }
  230.            $38/$19/        {         JR    C,ENDDDA }
  231.  
  232.            $22/D3/         {         LD    (D3),HL  }
  233. è           $2A/X0/         {         LD    HL,(X0)  }
  234.            $ED/$5B/S1/     {         LD    DE,(S1)  }
  235.            $19/            {         ADD   HL,DE    }
  236.            $22/X0/         {         LD    (X0),HL  }
  237.  
  238.            $2A/Y0/         {         LD    HL,(Y0)  }
  239.            $ED/$5B/S2/     {         LD    DE,(S2)  }
  240.            $19/            {         ADD   HL,DE    }
  241.            $22/Y0);        {         LD    (Y0),HL  }
  242.                            {ENDDDA                  }
  243.       Dot(X0,Y0,F);
  244.     end;
  245. End;
  246.  
  247.  
  248.  
  249. Next month, Point, Text, Circle & Arc routines so stay tuned!
  250.  
  251.  
  252. No time to type them in?
  253.  
  254. Send $5,  a stamped, self -  addressed envelope and 5.25"  disk to    
  255.               Simon Carter,
  256.             14 Canterbury Rd,
  257.             Heathmont, 3135.
  258. anΣ á╔ áwil∞  fil∞ you≥ disδ witΦ Hires▓ routine≤  anΣ anythinτ áelsσ átha⌠ ì
  259. come≤ t∩ mind....
  260.  
  261.