(c)  騭, ᪢

ZXNet : 500:95/462.53
E-mail: bestview@mtu-net.ru
WWW   : http://www.ivr.da.ru

            ணࠬ஢ 䬥᪨ 権
          

("⥫.  " 12/2000, 1-4/2001)
ࠢ   .
 ᫥ ।஢: 5.02.2003.




    ⠢  [1],  訫 த  ࠭ ୠ
"⥫.  " ᪠  ணࠬ஢
䬥᪨ 権  ᥬ.  뫠 ᠭ 
,  ன ᬮ७ ,   ,
    ⨬樨.  ᮢ 
 । ⥬,   ணࠬ  ᥬ Z80, 
ᠭ    묨 ᨬ 
ᯮ㥬 ୮   몠 ணࠬ஢.
    ⠪, ,  稫, - । !


  ⠭. ࠢ.


     , ⥩訥 䬥᪨ 樨.   
 ᪮쪮  񬮢,   拉 砥
⨬஢ ணࠬ.

      㢥  㬥 ᮤন ॣ,
ॣ஢   祩    稭, ⮨
ᬮ:      룮 ᯮ짮 
⮣ ᪮쪨  INC/DEC (㢥祭/㬥襭  1)?
 , ᪠, 㢥 祭 HL  3. ਠ 
ᯮ짮  ADD 㤥 ⠪:

                 LD  DE,3  ;3 , 10 ⠪⮢
                 ADD HL,DE ;1 ,  11 ⠪⮢
                 
                 ⮣:     4 , 21 ⠪

       ६   INC HL  3 /18 ⠪⮢,
  ,  ॥,     ᮤন DE.

     ᪮쪮  񬮢 ( HL   
㣠 ॣ஢ ):

                  HL:=HL+256 - INC H
                  HL:=HL-256 - DEC H
                  HL:=HL+255 - INC H: DEC HL
                  HL:=HL-255 - DEC H: INC HL

     ਬ:  HL   䠩  ,  A 
    ᥪ (1 ᥪ = 256 ⮢):

                           INC H
                           DEC HL
                           LD  A,H

    २⢮  INC/DEC    ⮬,   ࠭
 室   ॣ, ॣ஢    祩
, 㥬 (HL), (IX+s), (IY+s).  ᯮ짮 
 ADD/SUB   ࠭  室  ॣ A
  ॣ஢  HL, IX, IY -  , 
ॡ ⥫ , 뫠騥  㤠, 
⥬ - 뫠騥 १.
     ᯮ짮 INC/DEC  뢠,   
䫠  ⠪,  ADD/SUB: INC/DEC 8-⭮ ࠭  
 䫠 CY,  INC/DEC 16-⭮ ࠭    
䫠!

     ⨬   ,  ᫥  
 256  ॣ஢    65536  ॣ஢ .
 ⮦  ᯮ짮  ⨬樨.
    뢠,  㦭 ਡ   - ᫮, 
뢠,   - ॣ 㦥   .
   ᫮  ⠭ ⥫쭮 ᫠
 . ਬ, ᫨  ਡ  祭
 4,   ॣ B 室 252 (.. 256-4), 
 1 /3 ⠪, ᠢ SUB B  ADD A,4. 쪮
 뢠,  ⠪    祭 䫠 CY ᫥
樨.
    ⠭ 16-⭮ ⠭    ᫮ 
 ⮩ ⠭  65536, 먣ࠢ  ⮬ 2 /
8 ⠪⮢:

        뫮:  AND A         ;1 ,    4 ⠪
               LD  DE,#7352  ;3 ,  10 ⠪⮢
               SBC HL,DE     ;2 ,  15 ⠪⮢
               
               ⮣:         6 ⮢, 29 ⠪⮢

       ⠫:  LD  DE,-#7352 ;3 ,  10 ⠪⮢
               ADD HL,DE     ;1 ,   11 ⠪⮢
               
               ⮣:         4 ,  21 ⠪

    ,  ADD HL,DE    䫠 Z,  
    (ਬ,  㦭 ஢,
ࠢ  १ ) 饥 祭.  室
ᯮ짮 ""  SBC. ,  ᫨ 筮
⭮ 祭 䫠 CY । ⠭,  AND A
⠭ 㦭 - 筮   砥 CY=1 㬥
⠥ ⠭  .

     ᫮  ⠭  ࠭,  
 16-,  㣮 8-, ॡ 
8- ࠭  16-⭮.   Z80,  ᮦ,
 ᯥ樠쭮  ७  ( ⫨稥 , ᪠,
஢ ᥬ⢠ 680X0),  室    
᪮쪨 .    ᯮᮡ (A -
८ࠧ㥬 ᫮, HL - १):

    LD  L,A ;訩  㤥 ⠪ .
    ADD A,A ;뤢㫨    䫠 CY.
    SBC A,A ;᫨ ᫮ ⥫쭮 ( =1), 稬
            ;#FF,  ⥫쭮 ᫠ 稬 0.
    LD  H,A ;  㤥 訬 ⮬.

     ᬮਬ ᪮쪮  (  祭) 񬮢,
 ⨬஢ ࠧ  ࠢ.

      CP 0 (2 /7 ⠪⮢)  ࠢ
   ᥫ   룮 ᯮ짮
   AND A  OR A (1 /4 ⠪),  筮
⠪  ⠭ 䫠 CY, Z  S.  , ᫥
䬥᪨  ᪨ 権  ஬ 
設⢥ 砥 (   ⭮ 樨) 䫠
⠭  ᮮ⢥⢨   ᮤন, ⠪ 
ᯥ樠쭠  ஢ન  ࠢ⢮   
㦭.
    ஢, ࠢ   ᮤন   ॣ஢ B,C,
D,E,H,L, 㤮     INC reg: DEC reg. 
⭮  LD A,reg: AND A,    祭
.
     ஢, ࠢ  ᮤন   ॣ஢ A,
B,C,D,E,H,L  #FF  1,   , ᮮ⢥⢥,
 INC reg  DEC reg. 筮 믮  ஢ઠ
 ࠢ⢮ B,C,D,E,H,L  #FE  2 -  ⮣ ॡ
  INC  DEC (  ⠪ ᯮᮡ 㦥
룮:  CP ࠡ⠥ ॥). ,  ᮤন
஢塞 ॣ  ⮬ .
    ᯮ,    Z80   DJNZ - 
㬥蠥 ᮤন ॣ B  ,  ᫨  १
稫  , ⢫ ⭮⥫ 室 
 . 砫쭮   ।砫 
࣠樨 横,   蠥  ᯮ짮   㣨
楫?    , ਬ, ⢫ 
஢ ॣ B  ࠢ⢮ ᫠ 1, 2  3:

    室  砥 B<>1:  DJNZ LABEL
    室  砥 B<>2:  DEC B: DJNZ LABEL
    室  砥 B<>3:  DEC B: DEC B: DJNZ LABEL

     ᯮᮡ ਬ, ࠢ,   ﭨ  DJNZ
  室  ॢ室 128 ⮢.  ⮬  祭
ॣ B   ࠢ  (祬, 
ࠢ B  楩  ᯮᮡ ⠭ ॥  㣨
   ⮬ ᫥饣 ⠭ 祭 B 
INC B).
    ᬮਬ  ⠪ , 쭮   
ࠪ⨪:    ᫮  1  n (᪠,
᫮  ⮩ ),  ॡ  ᨬ 
⮣ ᫠ 믮    ⢨.  ⥩訩
ᯮᮡ  ᤥ:

    CP   1
    JR   NZ,m1
    .......... ;⢨  ⨨  1
    RET
1  CP   2
    JR   NZ,m2
    .......... ;⢨  ⨨  2
    RET
m2  CP   3
    JR   NZ,m3
    ..........

     㬠,   訩 ਠ:

    DEC  A
    JR   NZ,m1
    .......... ;⢨  ⨨  1
    RET
1  DEC  A
    JR   NZ,m2
    .......... ;⢨  ⨨  2
    RET
m2  DEC  A
    JR   NZ,m3
    ..........

       ᯮᮡ -  ᯮ짮 DJNZ!

    LD   B,A
    DJNZ m1
    .......... ;⢨  ⨨  1
    RET
1  DJNZ m2
    .......... ;⢨  ⨨  2
    RET
m2  DJNZ m3
    ..........

      , 稬   DJNZ  ਬ  㣮.
᫨   - ᫮   (-128..127),  㦭
।, ⥫쭮  ,   ⠪:

    AND A
    JP  P,M1 ;室, ᫨ A<0.

   ⠪:

    ADD A,A  ;  뤢  䫠 CY.
    JR  C,M1

      ? -, ⠪    :  
  ᮫⭮ 室 JP P (3 )  
⭮⥫쭮 室 JR C (2 ). ,    Z80
  JR P, ⮬  室 ਡ  ⠪ .
-, JP 믮  10 ⠪⮢,  JR -  12 ⠪⮢ 
믮 ᫮   7 -  믮,  ᫨ ᫮
㤥   믮, 祬 믮,   먣ࠥ 
६ 믮 ணࠬ ( ᫨  - நࠥ).
      , ᫨  室 ⮨ 
 JR   祬  128 ⮢  ᮤন 
(஥ 㤥   ADD)   .
᫨  ࢮ  ⮨ த⢨ ணࠬ, 
  , 㤥    먣  ६.
       ந   ᫮ A>=0.
 ⮣  ⠪ ࠣ:

    AND A
    JP  M,M1 ;室, ᫨ A>=0.

 ⠪:

    ADD A,A
    JR  NC,M1

    ᫨ 㦭 믮 室  ᨬ   ᫠,
室饣  - 㣮 ॣ, 㤮 ᯮ짮
 BIT 7,reg (2 /8 ⠪⮢) -  ⮬ 䫠 Z
⠭  ᨬ  祭 ᥤ쬮 () 
ॣ.
     ॣ H ⠪ ஢  ᤥ 
ADD HL,HL (1 /11 ⠪⮢),  ⮬ 7-  H 뤢 
䫠 CY.    ६, 祬  ᯮ짮
 BIT 7,H,   ⮬   ᮤন HL,  
㤥   .

      Z80     ᫮
। ࠢ ᫥ ࠢ  ࠭ - 
ᨬ  ⮣, 믮    ᫮ A=s, A<>s,
A<s  A>=s. ⮣  ᥣ 墠⠥. ᫨ 㦭 믮
室     ᫮ A>s (  ᥫ), 
 

    CP  s
    JR  Z,M1 ;᫨ A=s,  室 ᫥ .
    JR  NC,M ;室, ᫨ A>=s,  砩 A=s  ᪫稫.
1  ...

 砥,  ࠢ ந室  ⠭⮩, 㤮
 ⠪:

    CP  s+1
    JR  NC,M ;室, ᫨ A>=s+1, .. ᫨ A>s.

 ᫨ ࠢ ந室  祭 ॣ  祩
,  ⠪:

    DEC A
    CP  s
    JR  NC,M ;室, ᫨ A-1>=s, .. ᫨ A>s.

    筮 ⠪ , ᫨ ॡ 믮 室  ᫮
A<=s,   ⠪:

    CP  s
    JR  Z,M  ;室, ᫨ A=s.
    JR  C,M  ;室, ᫨ A<s.

 ᯮ짮 ⠪ ࠣ ( ࠢ  ⠭⮩):

    CP  s+1
    JR  C,M  ;室, ᫨ A<s+1, .. ᫨ A<=s.

 ⠪ ( ࠢ  祭 ॣ  祩
):

    DEC A
    CP  s
    JR  C,M  ;室, ᫨ A-1<s, .. ᫨ A<=s.

     ࠢ ॣ஢ ,  ᮦ,  CP 
ᯮᮡ,  室  ᯮ짮 ⠭, 
(  뢠 ॥) ࠡ  ⤥묨 ⠬.
ᬮਬ  ਬ ஢ ᮤন  ॣ஢ 
(HL  DE)  ࠢ⢮.  ᯮᮡ  ᯮ짮 ⠭:

    AND A
    SBC HL,DE
    JR  NZ,label

      -  ࠢ ⤥쭮    ⮢:

    LD  A,H
    CP  D
    JR  NZ,label
    LD  A,L
    CP  E
    JR  NZ,label

     ࠣ  5 ⮢, ன - 8.  
ࠣ 믮  31 ⠪  믮 ᫮   26
⠪⮢  믮,  ன -  20  35 ⠪⮢ 
믮 ᫮   30 ⠪⮢  믮. 
ࠧ, ᫨ ࠭ ⭮,  ᫮  㤥
믮, 祬  믮,  룮 ᯮ짮 ன
ᯮᮡ.  ⮬, ᫨ ⭮,  ᫠   襩
⭮ ࠧ   , 祬  ,  
ࠢ  稭   ⮢,  .
     ࠢ    SBC   ࠭ 
室  HL, IX  IY,  㣮 -  BC  DE. ᫨  
⠪,  筮 룮   ६  뫪 ࠭,
 ᯮ짮 ⭮ ࠢ.
    ᬮ  ࠪ᪮ ਬ ⭮ ࠢ
ॣ஢     ਬ 楤 祭 
(. ࠧ "  㣨 ୨.   
⥯").
    ᫨   ࠢ ᮤন ॣ஢   ,
 ᠬ ⪨   ᯮᮡ  ᤥ ⠪ ( ਬ
HL): LD A,H: OR L.
     , 筮  室 ⠢ ࠧ 
᫥ ࠢ.       , ᫨ 
   祭 ᯮ㥬  室 䫠, - 
  ᮪ ணࠬ.   ਬ -
᪮쪮 ᫥   楤 ஥ ⠡
⮢ (. ࠧ ""):

    INC E      ;᫨ 稫 E=0, 䫠 Z ⠭.
    ADD HL,DE  ;     䫠 Z.
    JR  NZ,M1  ;室  ᨬ  祭 䫠 Z.





    ᬮਬ ᭠砫 㬭   
⠭,  १ 樨 㬥頥  ⮬ 
.  ⬥砫  [1],  㤮   
樨 㬭    ᫮.    
  ,  筮   ᤥ ᪮쪨
ᯮᮡ.    㬭 , ਬ, 
:

     ᯮᮡ: 6A=2(2A+A)

       LD  B,A
       ADD A,A
       ADD A,B
       ADD A,A

    ன ᯮᮡ: 6A=2A+4A

       ADD A,A
       LD  B,A
       ADD A,A
       ADD A,B

     ,  ਠ ᮢ襭   
  ⮢, ⠪   ⠪⠬.   ᥡ -
.  ।⠢ ⠪ ,   । 砫
樨 㦠  ॣ A  - 㣮 ॣ
(ਬ,  ॣ H).   ᯮᮡ 
⨬஢: ADD A,A: ADD A,H: ADD A,A -   먣ࠥ
1 /4 ⠪,   ⮬   㤥 ᯮ짮 ॣ B.

    뢠,  ⠭,   ॡ 㬭
祭 , "㤮"  ਬ ᠭ 
ᯮᮡ. 㬥, ᥣ  ᯮ짮 㭨ᠫ
ணࠬ 㬭.      ⪨
ᯮᮡ -     ᪠.

      ᯮᮡ -  ᯮ짮 ⠡,
稭饩  , ⭮ 256.  ⮬ 砥 㬭
믮 ᥣ   18 ⠪⮢:

                        LD H,TABL/256
                        LD L,A
                        LD A,(HL)

    ᫨ 㦭 믮 ᪮쪮 㬭 , 
LD H,TABL/256   ।  㬭,  
᫥饥 㤥 믮  11 ⠪⮢.

    ,  騩   ᯮᮡ 㬭 -
⮥ ᫮  横:

                        LD   B,A
                        XOR  A
                    M1  ADD  A,⠭
                        DJNZ M1

    ࠧ   ⮪: ᫨    , 
横 믮 256 ࠧ. ࠢ १    稬,
 ᪮쪮 ६ 㤥  ⮬ ﭮ! , 筮,
 ⥫ ஢  ,   㢥 
ணࠬ.
      ਠ,     ⮢, ᯥ稢
 ६ 믮   祭 A  室:

                        LD   C,A
                        LD   B,⠭-1
                    M1  ADD  A,C
                        DJNZ M1

    ࠢ,  ⮬ ᯮ ⥫ ॣ.

    ३  㬭 ந ᥫ.   
?
     [4] ਢ 楤 㬭  8- ᥫ "
⮫" -  ⠪ ,  ᠭ  [1],   横 
 .   ⮣ 砥 冷 먣 
த⢨: 楤 믮  218-275 ⠪⮢ 
 43 .
     [24] ⠪ ਢ 楤 㬭 " ⮫" 
묨 横  ࠭ ࠧ筮 ࠧ來 (8*8,
8*16).
      ॥? ࢮ,  室  , - ᯮ짮
⠡ 㬭. ࠢ, 砥  -  ᫨誮
让:   ᮬ⥫ 8-,  ⠡  
65536 塠 ந,   128 ⮢!
     ᫨ 㬥 ࠧ來 ᮬ⥫?   㬬୮
 14 ⮢ ࠧ ⠡ ᮪  32 ⮢. 
ਢ ਬ 믮 㬭  ,  
ᮬ⥫ 6-, ன - 8-,  ⠡ 稭 
 #8000.  ⨦ 襣 த⢨ ⠡
஥ ⠪,   ᠬ #8000-#BFFF ᯮ 訥
 ந,   ᠬ #C000-#FFFF - 訥 .

室 : H -  ᮬ⥫ (0-63),
       L - ன ᮬ⥫ (0-255).
室: DE - ந.
: 6 ⮢.
६: 30 ⠪⮢.

           SET  7,H    ;HL := 10xxxxxx yyyyyyyy
           LD   E,(HL) ;⠫ 訩  ந.
           SET  6,H    ;HL := 11xxxxxx yyyyyyyy
           LD   D,(HL) ;⠫ 訩  ந.

    २⢮ ⮣ ᯮᮡ  ⮬,   ᠬ 
( ᫨ 㬬ୠ  ᮬ⥫  ॢ室 8 ⮢, 
   ॥   ⮣,  ந 㤥
㬥   ). ᫨ 㬬ୠ  ᮬ⥫
 14 ⮢,  ⢮ 筮 ࠤ ,
ᨢ  訥 ࠧ.
    ⮪ ⮦ 祢 - ஬ ⠡ (祬, 
㬥襭 㬬୮  ᮬ⥫    ࠧ
襩).  ᫨  墠⠥   ᫨  筮
६ 訥 ᫠,  ᯮᮡ  .

       窨 ७    
⠪    䬨᪨ ᯮᮡ 㬭,
᭮  ᫥饩 㫥 (x, y - ᮬ⥫, A -
᭮ 䬮):

                           (log x + log y)
                     xy = A               .

     ६ 8- ᥫ ॡ  ⠡,
ᯮ     㣮, 稭  ⭮ 256
. ࢠ,  256 ⮢, ᮤন  ᥫ  1
 255, 㬭   樥 k (⠪, ⮡ k *
log 255 = 127, -  㦭, ⮡ १ ᫮ 㬥⨫ 
). ,  512 ⮢, ᮤন १
 ᭮ 䬮 A  ⥯  0  254/k: 
ࢮ  ⠡ - 訥  १⮢,  ன -
訥. ᭮ 䬮   , ⠡  ⮣
 . ,  ਢ񭭮  ணࠬ  ⠡
 ᨪ ᯮ ࠫ .

    10 CLEAR 32767
    20 LET K=127/LN 255
    30 FOR I=1 TO 255
    40 POKE (32768+I),INT (.5+K*LN I)
    50 NEXT I
    60 FOR I=0 TO 254
    70 LET E=INT (.5+EXP(I/K))
    80 LET H=INT (E/256): LET L=E-H*256
    90 POKE (32768+256+I),L: POKE (32768+512+I),H
   100 NEXT I
   110 RANDOMIZE USR 15619: REM: SAVE "TABL_LOG" CODE
       32768,256+512

    ਬ 믮 㬭:

室 : B -  ᮬ⥫, L - ன ᮬ⥫.
室: DE - ந.
: 10 ⮢.
६: 51 ⠪.

           LD   H,TABL/256
           LD   A,(HL)
           LD   L,B
           ADD  A,(HL)
           INC  H
           LD   L,A
           LD   E,(HL)
           INC  H
           LD   D,(HL)

     ⮣ ᯮᮡ ᢮ ⪨: -,   
 ,    ᮬ⥫ ࠢ ,  -,
   ᮫⭮  ( ਢ񭭮  楤
ᨬ쭠 ⭮⥫쭠 譮 ⠢ 4,4%).
筮, 祬,  , 㢥稢 ࠧ ⠡.
     [20]  ᬮ  楤 ண 䬨᪮
㬭 8- ࠭ (  , ⠪  ),
騥 訩  16-⭮ ந.   㪠
ᯮᮡ 襭 ஡ 㫥 ᮬ⥫,  ॡ騩
⥫ ஢ப.  ⠬ ਢ 楤, 
 x sin y, -    , ਬ,
 ࠡ  嬥୮ 䨪.

     ᬮਬ ᯮᮡ 筮  筮 ண
㬭   ⠡ ⮢  㫠,  
[2]:
                   1       2   2   2
              xy =  ((x+y) - x - y ),          (1)
                   2

                   1       2       2
              xy =  ((x+y) - (x-y) ).          (2)
                   4

    ᫥  ࢮ 㫥 砥  ᫮, 
饭  ⠡,  ⠭   ᤢ ࠢ; 
ன - ᫮,  ⠭,  饭  ⠡ 
 ᤢ ࠢ.   ᯮ짮 ன  ਤ
   ࠧ x-y,  ࠭  ⠡ 
 ⥫ ᥫ,  ࠭ ﬨ, 
࠭ ⭮,  x>y ( x<y).
     ਢ 楤, ᯮ  (2) 
㬭 8- ᥫ, 㬬   ॢ室 256.
  TABL_SQR, ⭮ 256,   饭 ⠡
⮢ ᥫ  0  255 ( ࢮ  ⠡ - 訥
 ⮢,  ன  - 訥).

室 : D -  ᮬ⥫, E - ன ᮬ⥫.
室: DE - ந.
: 28 ⮢ - ᠬ 楤 + 512 ⮢ - ⠡
       ⮢.
६: 125  128 ⠪⮢ -  ᨬ  ⮣, 
       ᮬ⥫  ண   (᫨ ࠭
       ⭮,   ᥣ  㣮, 楤 
       ).

MUL        LD   H,TABL_SQR/256
           LD   B,H

           LD   A,D
           ADD  A,E
           LD   C,A    ;C=x+y

           LD   A,D
           SUB  E
           JR   NC,M1                         ;!
           NEG                                ;!
M1         LD   L,A    ;L=x-y

           LD   A,(BC)
           SUB  (HL)
           LD   E,A
           INC  H
           INC  B
           LD   A,(BC)
           SBC  A,(HL) ;CY 뢠.

           RRCA                               ;!!
           RR   E      ; CY 뤢 0!    ;!!
           RRCA                               ;!!
           RR   E                             ;!!

           LD   D,A    ;DE=x*y
           RET

    ᫨  ⥫쭮 ࠭祭 "㬬 ᮬ⥫
 ॢ室 127" ( ⮬ 砥    ࠧ  㤥
ॢ室 127)  ࠭   128  ⠡
 ᥫ  0  127,   ᫥ 127  -
 ᥫ  -127  -1,   襯ਢ񭭮 楤
 ᪫ , 祭 "!".  ਢ 
᮪饭  楤  4    㬥襭 ६ 
ࠡ  12 ( 15) ⠪⮢, ..  113 ⠪⮢.
