?login_element?

Subversion Repositories NedoOS

Rev

Rev 1187 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. RANDOM
  2. ldarnd
  3.         ;ld a,r
  4.         push de
  5.         push hl
  6. ;Patrik Rak
  7. rndseed1=$+1
  8.         ld  hl,0xA280   ; xz -> yw
  9. rndseed2=$+1
  10.         ld  de,0xC0DE   ; yw -> zt
  11.         ld  (rndseed1),de  ; x = y, z = w
  12.        ;ifdef CLIENT
  13.        ;ld hl,(joy1state)
  14.        ;ld de,(logicindex)
  15.        ;endif
  16.         ld  a,e         ; w = w ^ ( w << 3 )
  17.         add a,a
  18.         add a,a
  19.         add a,a
  20.         xor e
  21.         ld  e,a
  22.         ld  a,h         ; t = x ^ (x << 1)
  23.         add a,a
  24.         xor h
  25.         ld  d,a
  26.         rra             ; t = t ^ (t >> 1) ^ w
  27.         xor d
  28.         xor e
  29.         ld  h,l         ; y = z
  30.         ld  l,a         ; w = t
  31.         ld  (rndseed2),hl
  32.         pop hl
  33.         pop de
  34.        ;xor a
  35.         ret
  36.  
  37. CLSBULL LD      (IX+UNIT_YESORNOT),3
  38.         LD      (IX+UNIT_TIMEFORSHOTONWAR),0
  39.         LD      HL,SPRBOOM0;56
  40.         LD      (IX+UNIT_NUMBERSPRITES),L
  41.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  42.         RET
  43.  
  44. COMPA2P LD      IX,UNITS
  45.         LD      (COMA),A
  46.         LD      BC,4*UNITSZ;96
  47.         ADD     IX,BC
  48.         LD      A,(IX+UNIT_YESORNOT)
  49.         or a;CP 0
  50.         LD      A,2
  51.         CALL    NZ,COMPAR2
  52.         RET
  53.  
  54. COMPA1P ;   LD      IX,UNITS ;??? why commented?
  55.         LD      (COMA),A ;direction
  56.         LD      A,(IX+UNIT_YESORNOT)
  57.         or a;CP 0
  58.         CALL    NZ,COMPAR2
  59.         RET
  60.  
  61. COMPAL2 LD      L,(IX+UNIT_X)
  62.         LD      H,(IX+UNIT_X+1)
  63.         LD      BC,8
  64.         SBC     HL,BC
  65.         JR      COMPAX
  66.  
  67. COMPAR2
  68.         LD      A,(COMA)
  69.         CP      4
  70.         JR      Z,COMPAL2
  71.         LD      L,(IX+UNIT_X)
  72.         LD      H,(IX+UNIT_X+1)
  73.         LD      A,(IX+UNIT_STOPBIT)
  74.         LD      BC,8
  75.         ADD     HL,BC
  76.  
  77. COMPAX  LD      (COM1X),HL
  78.         LD      L,(IX+UNIT_Y)
  79.         LD      H,(IX+UNIT_Y+1)
  80.         LD      (COM1Y),HL
  81.         LD      (COMIX),IX
  82.  
  83.         LD      IX,UNITS
  84.         LD      A,(IX+UNIT_YESORNOT)
  85.         or a;CP 0
  86.         CALL    NZ,COMPAR3
  87.         LD      IX,(COMIX)
  88.         LD      (IX+UNIT_STOPBIT),0
  89.  
  90.         LD      IX,UNITS+(4*UNITSZ);96
  91.         ;LD     DE,4*UNITSZ;96
  92.         ;ADD    IX,DE
  93.         LD      A,(IX+UNIT_YESORNOT)
  94.         or a;CP 0
  95.         CALL    NZ,COMPAR3
  96.         LD      IX,(COMIX)
  97.         LD      (IX+UNIT_STOPBIT),0 ;зачем второй раз???
  98.  
  99.         LD      IX,UNITS+(6*UNITSZ);192-48 ;-----WAR COMPAIRE
  100.         ;LD     DE,6*UNITSZ;192-48      ;-----WAR COMPAIRE
  101.         ;ADD    IX,DE
  102.         LD      B,8
  103. LC2     LD      (ZZBC),BC
  104.         LD      DE,2*UNITSZ;48          ;-----WAR COMPAIRE
  105.         ADD     IX,DE
  106.         LD      A,(IX+UNIT_YESORNOT)
  107.         or a;CP 0
  108.         JR      Z,XCD
  109.         CP      8
  110.         CALL    Z,COMGIFT
  111.         LD      A,(IX+UNIT_YESORNOT)
  112.         CP      4
  113.         CALL    C,COMPAR3
  114. XCD     LD      BC,(ZZBC)
  115.         DJNZ    LC2
  116.         LD      IX,(COMIX)
  117.         LD      (IX+UNIT_STOPBIT),0 ;зачем второй раз???
  118.         RET
  119. ZZBC    DEFW    0
  120.  
  121. COMPAR3
  122.         LD      L,(IX+UNIT_X)
  123.         LD      H,(IX+UNIT_X+1)
  124.         LD      DE,(COM1X)
  125.         LD      A,(COMA)
  126.         CP      4 ;left
  127.         JR      Z,C44
  128.         CP      2 ;right
  129.         JR      Z,C22
  130.         RET
  131.  
  132. COMGIFT
  133.         LD      L,(IX+UNIT_X)
  134.         LD      H,(IX+UNIT_X+1)
  135.         LD      DE,(COM1X)
  136.         LD      A,(COMA)
  137.         CP      4 ;left
  138.         JR      Z,C44GIF
  139.         CP      2 ;right
  140.         RET nz
  141.         LD      BC,8 ;??? заезд на приз слева (0 - прикосновение слева берёт приз)
  142.         ADD     HL,BC
  143.         jp C22
  144.  
  145. C44GIF
  146.         LD      BC,8 ;??? заезд на приз справа
  147.         SBC     HL,BC
  148. C44 ;(de-hl)==(0..15) => BOMPAR4, иначе ret
  149.         ex de,hl
  150. C22 ;(hl-de)==(0..15) => COMPAR4, иначе ret
  151.         xor a
  152.         sbc hl,de
  153.         cp h
  154.         ret nz
  155.         ld a,l
  156.         cp 16
  157.         ret nc
  158. COMPAR4
  159.         LD      L,(IX+UNIT_Y)
  160.         LD      H,(IX+UNIT_Y+1)
  161.         LD      BC,8
  162.         SBC     HL,BC
  163.         LD      DE,(COM1Y)
  164. ;(de-hl)==(0..23) => ENDCOMP, иначе ret
  165.         ex de,hl
  166.         xor a
  167.         sbc hl,de
  168.         cp h
  169.         ret nz
  170.         ld a,l
  171.         cp 24
  172.         ret nc
  173. ENDCOMP
  174.         LD      A,(IX+UNIT_TYPEOFTANK)
  175.         CP      21
  176.         CALL    NC,CLEAR
  177.         LD      IX,(COMIX)
  178.         LD      (IX+UNIT_STOPBIT),1
  179.         POP     HL
  180.         POP     HL
  181.         RET
  182. CLEAR
  183.         LD      B,(IX+UNIT_TYPEOFTANK)
  184.         LD      (IX+UNIT_TYPEOFTANK),0
  185.  
  186.         PUSH    IX
  187.         LD      IX,(COMIX)
  188.         LD      A,(IX+UNIT_TYPEOFTANK)
  189.         POP     IX
  190.         CP      1
  191.         JP      Z,CLEARW
  192.         CP      2
  193.         JP      Z,CLEARW
  194.         CP      3
  195.         JP      Z,CLEARW
  196.         CP      4
  197.         JP      Z,CLEARW
  198.         CP      5
  199.         JP      Z,CLEARW
  200.         CP      11
  201.         JP      Z,CLEARW
  202.         CP      12
  203.         JP      Z,CLEARW
  204.         CP      13
  205.         JP      Z,CLEARW
  206.  
  207.         LD      (IX+UNIT_YESORNOT),7
  208.         LD      (IX+UNIT_TIMEFORSHOTONWAR),64
  209.         LD      HL,SPRENE4;256+128+54 ;???
  210.         LD      (IX+UNIT_NUMBERSPRITES),L
  211.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  212.         PUSH    IX
  213.         LD      IX,(COMIX)
  214.         LD      A,(IX+UNIT_BITPARENTSBULL)
  215.         CP      1
  216.         CALL    Z,PDD
  217.         CP      2
  218.         CALL    Z,PDD2
  219.         POP     IX
  220.  
  221.         PUSH    IX,BC,DE,HL
  222.         LD      A,2
  223.         CALL    AFXPLAY
  224.         POP     HL,DE,BC,IX
  225. ;take bonus
  226.         LD      A,12 ;beton
  227.         LD      (STEN),A
  228.         LD      A,B
  229.         CP      23
  230.         JP      Z,INSTAL
  231.         CP      22
  232.         JP      Z,SLOWTIM
  233.         CP      25
  234.         JP      Z,BADBAD ;bomb
  235.         CP      26
  236.         JP      Z,ADDLIFE
  237.         CP      27
  238.         JR      Z,WATER
  239.         CP      24
  240.         JR      Z,STARS
  241.  
  242.         LD      A,(IX+UNIT_BITPARENTSBULL)
  243.         CP      2
  244.         JP      Z,PRIZ2
  245.  
  246.         PUSH    IX
  247.         LD      IX,(COMIX)
  248.         PUSH    IX
  249.         POP     HL
  250.         POP     IX
  251.         LD      IX,BRONITS
  252. RETW    LD      (IX+UNIT_DIRECTION),L
  253.         LD      (IX+UNIT_ANIMATION),H
  254.         LD      (IX+UNIT_COUNTER),250
  255.         LD      (IX+UNIT_YESORNOT),6
  256.         LD      IX,(COMIX)
  257.         LD      (IX+UNIT_SHELLTIME),250
  258.         RET
  259. WATER
  260.         LD      IX,(COMIX)
  261.         LD      (IX+UNIT_WATERWAY),1
  262.         RET
  263. PDD     LD      DE,50
  264.         LD      HL,(POINTP1)
  265.         ADD     HL,DE
  266.         LD      (POINTP1),HL
  267.         RET
  268. PDD2    LD      DE,50
  269.         LD      HL,(POINTP2)
  270.         ADD     HL,DE
  271.         LD      (POINTP2),HL
  272.         RET
  273. ;upgrade my tank
  274. STARS
  275.         LD      IX,(COMIX)
  276.         LD      A,(IX+UNIT_STAR) ;my tank level 0,1,2,3
  277.         CP      3
  278.         RET     Z
  279.          LD     DE,SPRMYTANKLEVEL1-SPRMYTANKLEVEL0;16
  280.         ;LD     A,(IX+UNIT_STAR)
  281.         CP      2
  282.         CALL    Z,STARS3
  283.         LD      A,(IX+UNIT_STAR)
  284.         CP      1
  285.         CALL    Z,STARS2
  286.         ;LD     A,(IX+UNIT_STAR)
  287.         ;INC    A
  288.         ;LD     (IX+UNIT_STAR),A
  289.          inc (IX+UNIT_STAR)
  290.         LD      L,(IX+UNIT_NUMBERSPRITES)
  291.         LD      H,(IX+UNIT_NUMBERSPRITES+1)
  292.         ADD     HL,DE
  293.         LD      (IX+UNIT_NUMBERSPRITES),L
  294.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  295.         ;LD     DE,UNITSZ;24
  296.         ;ADD    IX,DE
  297.         ;LD     A,(IX+UNIT_STAR)
  298.         ;INC    A
  299.         ;LD     (IX+UNIT_STAR),A
  300.          inc (IX+(UNITSZ+UNIT_STAR)) ;???
  301.         RET
  302. STARS2
  303.         ;LD     L,(IX+UNIT_NUMBERSPRITES)
  304.         ;LD     H,(IX+UNIT_NUMBERSPRITES+1)
  305.         ;LD     DE,256-16 ;реально 256, т.к. 16 прибавится потом
  306.         ;ADD    HL,DE ;???
  307.         ;LD     (IX+UNIT_NUMBERSPRITES),L
  308.         ;LD     (IX+UNIT_NUMBERSPRITES+1),H
  309.          ld de,SPRMYTANKLEVEL2-SPRMYTANKLEVEL1;256
  310.         ;LD     DE,2*UNITSZ;48
  311.         ;ADD    IX,DE
  312.         ;LD     A,(IX+UNIT_STAR)
  313.         ;INC    A
  314.         ;LD     (IX+UNIT_STAR),A
  315.         ;LD     IX,(COMIX)
  316.          inc (IX+(2*UNITSZ+UNIT_STAR)) ;???
  317.         RET
  318. STARS3
  319.         ;LD     L,(IX+UNIT_NUMBERSPRITES)
  320.         ;LD     H,(IX+UNIT_NUMBERSPRITES+1)
  321.         ;LD     DE,128;-16 ;реально 128, т.к. 16 прибавится потом
  322.         ;ADD    HL,DE ;???
  323.         ;LD     (IX+UNIT_NUMBERSPRITES),L
  324.         ;LD     (IX+UNIT_NUMBERSPRITES+1),H
  325.          ld de,SPRMYTANKLEVEL3-SPRMYTANKLEVEL2;256
  326.         ;LD     DE,2*UNITSZ;48
  327.         ;ADD    IX,DE
  328.         ;LD     A,(IX+UNIT_STAR)
  329.         ;INC    A
  330.         ;LD     (IX+UNIT_STAR),A
  331.         ;LD     IX,(COMIX)
  332.          inc (IX+(2*UNITSZ+UNIT_STAR)) ;???
  333.         RET
  334. STARSW  PUSH    IX
  335.         LD      IX,UNITS
  336.         LD      DE,8*UNITSZ;192
  337.         ADD     IX,DE
  338.         LD      (IX+UNIT_STAR),1
  339.         LD      DE,UNITSZ
  340.         ADD     IX,DE
  341.         LD      (IX+UNIT_STAR),1
  342.         ;LD     DE,24
  343.         ADD     IX,DE
  344.         LD      (IX+UNIT_STAR),1
  345.         ;LD     DE,24
  346.         ADD     IX,DE
  347.         LD      (IX+UNIT_STAR),1
  348.         ;LD     DE,24
  349.         ADD     IX,DE
  350.         LD      (IX+UNIT_STAR),1
  351.         ;LD     DE,24
  352.         ADD     IX,DE
  353.         LD      (IX+UNIT_STAR),1
  354.         ;LD     DE,24
  355.         ADD     IX,DE
  356.         LD      (IX+UNIT_STAR),1
  357.         ;LD     DE,24
  358.         ADD     IX,DE
  359.         LD      (IX+UNIT_STAR),1
  360.         ;LD     DE,24
  361.         ADD     IX,DE
  362.         LD      (IX+UNIT_STAR),1
  363.         ;LD     DE,24
  364.         ADD     IX,DE
  365.         LD      (IX+UNIT_STAR),1
  366.         ;LD     DE,24
  367.         ADD     IX,DE
  368.         LD      (IX+UNIT_STAR),1
  369.         ;LD     DE,24
  370.         ADD     IX,DE
  371.         LD      (IX+UNIT_STAR),1
  372.         POP     IX
  373.         RET
  374. ADDLIFE
  375.  
  376.         LD      IX,(COMIX)
  377.         LD      A,(IX+UNIT_BITPARENTSBULL)
  378.         CP      1
  379.         JR      Z,ADDLIF1
  380.         CP      2
  381.         JR      Z,ADDLIF2
  382.         RET
  383. ADDLIF1
  384.         LD      A,(UP1)
  385.         CP      138 ;129 '0', 130 '1'
  386.         RET     Z
  387.         INC     A
  388.         LD      (UP1),A
  389.         LD      HL,TEXT6
  390.         LD      (TEXTW),HL
  391.         LD      D,#C0
  392.         LD      E,#10
  393.         LD      BC,256+24
  394.         LD      HL,128
  395.         CALL    TEXT
  396.         RET
  397. ADDLIF2
  398.         LD      A,(UP2)
  399.         CP      138
  400.         RET     Z
  401.         INC     A
  402.         LD      (UP2),A
  403.         LD      HL,TEXT7
  404.         LD      (TEXTW),HL
  405.         LD      D,#C0
  406.         LD      E,#10
  407.         LD      BC,256+24
  408.         LD      HL,128+24
  409.         CALL    TEXT
  410.         RET
  411. CLEARW6
  412.         LD      A,(WARTAN)
  413.         INC     A
  414.         LD      (WARTAN),A
  415.         CALL    PRTAN
  416.         LD      HL,WAR
  417.         LD      DE,5
  418. NHFX    LD      A,(HL)
  419.         CP      0
  420.         JR      Z,CLW6
  421.         ADD     HL,DE
  422.         DJNZ    NHFX
  423.         RET
  424. CLW6    LD      A,1
  425.         LD      (HL),A
  426.         CALL    TEXTLEF
  427.         RET
  428. BADBAD
  429. ;take bomb
  430.         LD      IX,UNITS
  431.         LD      DE,8*UNITSZ;192
  432.         ADD     IX,DE
  433.         LD      B,7
  434. LKKF    LD      A,(IX+UNIT_YESORNOT)
  435.         or a;CP 0
  436.         JR      Z,ZXXX
  437.         LD      (IX+UNIT_YESORNOT),4
  438.         LD      (IX+UNIT_TIMEFORSHOTONWAR),0
  439. ZXXX    LD      DE,2*UNITSZ;48
  440.         ADD     IX,DE
  441.         DJNZ    LKKF
  442.         RET
  443. CLEARW5
  444. ;enemy takes bomb
  445.         LD      IX,UNITS
  446.         LD      A,(IX+UNIT_YESORNOT)
  447.         or a;CP 0
  448.         JR      Z,ZXX2X
  449.         LD      (IX+UNIT_YESORNOT),4
  450.         LD      (IX+UNIT_TIMEFORSHOTONWAR),0
  451.         LD      A,(UP1)
  452.         CP      129 ;129 '0', 130 '1'
  453.         JR      Z,ZXX2X
  454.         DEC     A
  455.         LD      (UP1),A
  456.          cp 129 ;'0'
  457.          jr z,CLEARW5_allkilled1
  458.         LD      A,100
  459.         LD      (NEWTAN1),A
  460. CLEARW5_allkilled1
  461.         LD      HL,TEXT6 ;"1p",line down,танк,число
  462.         LD      (TEXTW),HL
  463.         LD      D,#C0 ;const
  464.         LD      E,#10 ;const
  465.         LD      BC,256+24
  466.         LD      HL,128
  467.         CALL    TEXT
  468.  
  469. ZXX2X   LD      DE,4*UNITSZ;96
  470.         ADD     IX,DE
  471.         LD      A,(IX+UNIT_YESORNOT)
  472.         or a;CP 0
  473.         RET     Z
  474.         LD      (IX+UNIT_YESORNOT),4
  475.         LD      (IX+UNIT_TIMEFORSHOTONWAR),0
  476.         LD      A,(UP2)
  477.         CP      129 ;129 '0', 130 '1'
  478.         RET     Z
  479.         DEC     A
  480.         LD      (UP2),A
  481.          cp 129 ;'0'
  482.          jr z,CLEARW5_allkilled2
  483.         LD      A,100
  484.         LD      (NEWTAN2),A
  485. CLEARW5_allkilled2
  486.         LD      HL,TEXT7 ;"2p",line down,танк,число
  487.         LD      (TEXTW),HL
  488.         LD      D,#C0 ;const
  489.         LD      E,#10 ;const
  490.         LD      BC,256+24
  491.         LD      HL,128+24
  492.         CALL    TEXT
  493.         RET
  494.  
  495. PRIZ2
  496.         LD      IX,(COMIX)
  497.         PUSH    IX
  498.         POP     HL
  499.         POP     IX
  500.         LD      IX,BRONITS
  501.         LD      DE,24
  502.         ADD     IX,DE
  503.         JP      RETW
  504. CLEARW
  505.         LD      (IX),0
  506.         PUSH    IX,BC,DE,HL
  507.         LD      A,3
  508.         CALL    AFXPLAY
  509.         POP     HL,DE,BC,IX
  510.        ;jp CLEARW5 ;enemy takes bomb
  511.         LD      A,B
  512.         CP      21
  513.         JR      Z,CLEARW1
  514.         CP      22
  515.         JR      Z,CLEARW3
  516.         CP      23
  517.         JR      Z,CLEARW2
  518.         CP      25
  519.         JP      Z,CLEARW5 ;enemy takes bomb
  520.         CP      26
  521.         JP      Z,CLEARW6
  522.         CP      27
  523.         JP      Z,WATER
  524.         CP      24
  525.         JP      Z,STARSW
  526.         RET
  527.  
  528. SLOWTIM LD      A,90
  529.         LD      (TIMES),A
  530.         PUSH    IX
  531.         LD      IX,UNITS+(8*UNITSZ);192
  532.         ;LD     DE,8*UNITSZ;192
  533.         ;ADD    IX,DE
  534.          LD     DE,2*UNITSZ;48
  535.         LD      B,7
  536. SLTI    LD      (IX+UNIT_ANIMATION),0
  537.         ADD     IX,DE
  538.         DJNZ    SLTI
  539.         POP     IX
  540.         RET
  541. CLEARW3 LD      A,50
  542.         LD      (TIMEW),A
  543.         ;PUSH   IX
  544.         ;LD     IX,UNITS
  545.         ;LD     (IX+UNIT_ANIMATION),0
  546.         ;LD     DE,4*UNITSZ;96
  547.         ;ADD    IX,DE
  548.         ;LD     (IX+UNIT_ANIMATION),0
  549.         ;POP    IX
  550.        xor a
  551.        ld (UNITS+UNIT_ANIMATION),a
  552.        ld (UNITS+(4*UNITSZ)+UNIT_ANIMATION),a
  553.         RET
  554. TIMES   DEFB    0
  555. TIMEW   DEFB    0
  556. CLEARW2 XOR     A
  557.         LD      (STEN),A
  558.         CALL    INSTAL
  559.         RET
  560. CLEARW1
  561.         ;PUSH   IX
  562.         ;LD     IX,(COMIX)
  563.           ld hl,(COMIX) ;addr!!!
  564.         ;PUSH   IX
  565.         ;POP    HL
  566.         ;POP    IX
  567.         LD      (IX),0
  568.         LD      IX,BRONITS+(2*UNITSZ);48
  569.         ;LD     DE,2*UNITSZ;48
  570.         ;ADD    IX,DE
  571.         LD      (IX+UNIT_DIRECTION),L ;???
  572.         LD      (IX+UNIT_ANIMATION),H ;???
  573.         LD      (IX+UNIT_COUNTER),150
  574.         LD      (IX+UNIT_YESORNOT),6
  575.         LD      IX,(COMIX)
  576.         LD      (IX+UNIT_SHELLTIME),150
  577.         RET
  578. SHEELDW LD      IX,BRONITS
  579.         LD      DE,2*UNITSZ;48
  580.         ADD     IX,DE
  581.         LD      (IX+UNIT_DIRECTION),L
  582.         LD      (IX+UNIT_ANIMATION),H
  583.         LD      (IX+UNIT_COUNTER),A
  584.         LD      (IX+UNIT_YESORNOT),6
  585.         RET
  586.  
  587. YOMPA2P
  588. ;a=direction (1 up, 3 down)
  589.         LD      IX,UNITS
  590.         LD      (COMA),A
  591.         LD      BC,4*UNITSZ;96
  592.         ADD     IX,BC
  593.         LD      A,(IX+UNIT_YESORNOT)
  594.         or a ;CP        0
  595.         CALL    NZ,YOMPAR2
  596.         RET
  597.  
  598. YOMPA1P
  599. ;a=direction (1 up, 3 down)
  600.         ;   LD      IX,UNITS ;??? why commented?
  601.         LD      (COMA),A
  602.         LD      A,(IX+UNIT_YESORNOT)
  603.         or a ;CP        0
  604.         CALL    NZ,YOMPAR2
  605.         RET
  606.  
  607. YOMPAL2 LD      L,(IX+UNIT_Y)
  608.         LD      H,(IX+UNIT_Y+1)
  609.         LD      BC,8 ;up
  610.         SBC     HL,BC
  611.         JR      YOMPAX
  612. YOMPAR2
  613.         LD      A,(COMA)
  614.         CP      1 ;up
  615.         JR      Z,YOMPAL2
  616.         LD      L,(IX+UNIT_Y)
  617.         LD      H,(IX+UNIT_Y+1)
  618.         LD      A,(IX+UNIT_STOPBIT)
  619.         LD      BC,8 ;down
  620.         ADD     HL,BC
  621. YOMPAX
  622.         LD      (COM1Y),HL
  623.         LD      L,(IX+UNIT_X)
  624.         LD      H,(IX+UNIT_X+1)
  625.         LD      (COM1X),HL
  626.  
  627.         LD      (COMIX),IX
  628.         LD      IX,UNITS
  629.         LD      A,(IX+UNIT_YESORNOT)
  630.         or a;CP 0
  631.         CALL    NZ,YOMPAR3
  632.         LD      IX,(COMIX)
  633.         LD      (IX+UNIT_STOPBIT),0
  634.  
  635.         LD      IX,UNITS
  636.         LD      DE,4*UNITSZ;96
  637.         ADD     IX,DE
  638.         LD      A,(IX+UNIT_YESORNOT)
  639.         or a;CP 0
  640.         CALL    NZ,YOMPAR3
  641.         LD      IX,(COMIX)
  642.         LD      (IX+UNIT_STOPBIT),0
  643.         LD      IX,UNITS+(8*UNITSZ);192;-----WAR COMPAIRE
  644.         ;LD     DE,8*UNITSZ;192;-----WAR COMPAIRE
  645.         ;ADD    IX,DE
  646. FFF8    LD      A,(IX+UNIT_YESORNOT)
  647.         inc a;CP        255
  648.         JP      Z,FFF7 ;end of list of objects
  649.         dec a;CP        0
  650.         JR      Z,KJJ ;skip
  651.         CP      8
  652.         CALL    Z,YOMGIFT ;bonus???
  653.         CP      4
  654.         CALL    C,YOMPAR3 ;another tank???
  655. KJJ     LD      DE,2*UNITSZ;48
  656.         ADD     IX,DE
  657.         JR      FFF8
  658. FFF7    LD      IX,(COMIX)
  659.         LD      (IX+UNIT_STOPBIT),0
  660.         RET
  661.  
  662. YOMPAR3
  663.         LD      L,(IX+UNIT_Y)
  664.         LD      H,(IX+UNIT_Y+1)
  665.         LD      DE,(COM1Y)
  666.         LD      A,(COMA)
  667.         CP      1 ;up
  668.         JR      Z,C44Y
  669.         CP      3 ;down
  670.         JR      Z,C22Y
  671.         RET
  672. YOMGIFT
  673.         LD      L,(IX+UNIT_Y)
  674.         LD      H,(IX+UNIT_Y+1)
  675.         LD      DE,(COM1Y)
  676.         LD      A,(COMA)
  677.         CP      1 ;up
  678.         JR      Z,C44YGI
  679.         CP      3 ;down
  680.         RET nz
  681.         LD      bc,8
  682.         ADD     HL,bc
  683.         JR      C22Y
  684. C44YGI
  685.         LD      bc,16
  686.         SBC     HL,bc
  687. C44Y
  688. ;(de-hl)==(0..15) => YOMPAR4, иначе ret
  689.         ex de,hl
  690. C22Y
  691. ;было (de-hl)==(-8..+7) => YOMPAR4, иначе ret (исключение e<8)
  692. ;переделано на: (hl-de)==(0..15) => YOMPAR4, иначе ret
  693.         xor a
  694.         sbc hl,de
  695.         cp h
  696.         ret nz
  697.         ld a,l
  698.         cp 16
  699.         ret nc
  700. ;YOMPAR4
  701.         LD      L,(IX+UNIT_X)
  702.         LD      H,(IX+UNIT_X+1)
  703.        ld bc,-8
  704.        add hl,bc ;иначе можно проехать по леву танка и заед справа на приз берёт его
  705.         LD      DE,(COM1X)
  706. ;(de-hl)==(0..23) => ENDCOMP, иначе ret
  707.         ex de,hl
  708.         xor a
  709.         sbc hl,de
  710.         cp h
  711.         ret nz
  712.         ld a,l
  713.         cp 24
  714.         ret nc
  715.         jp ENDCOMP
  716.        
  717. INTELLE LD      A,(TIMES)
  718.         or a;CP 0
  719.         RET     NZ
  720.         LD      IX,UNITS+(8*UNITSZ);192
  721.         ;LD     DE,8*UNITSZ;192
  722.         ;ADD    IX,DE
  723. Z2      LD      A,(IX+UNIT_YESORNOT)
  724.         CP      255 ;end of list of objects
  725.         RET     Z
  726.         CP      1
  727.         CALL    Z,UNGO
  728. Z1      LD      DE,2*UNITSZ;48
  729.         ADD     IX,DE
  730.         JP      Z2
  731. RND2
  732.         LD      (IX+UNIT_STOPBIT),0
  733.         LD      (IX+UNIT_NEEDRND),1
  734.         LD      (IX+UNIT_COUNTER),7
  735.         RET
  736.  
  737. SPEEDWAR
  738.         LD      A,128
  739.         LD      (IX+UNIT_TIMEFORSHOTONWAR),A
  740.         RET
  741.  
  742. FIREWAR
  743.         LD      A,(IX+UNIT_TIMEFORSHOTONWAR)
  744.         or a;CP 0
  745.         RET     NZ
  746.         LD      A,(IX+UNIT_TYPEOFTANK)
  747.         CP      21
  748.         RET     NC
  749.         call ldarnd;LD  A,R
  750.         LD      C,50
  751.         ADD     A,C
  752.         LD      (IX+UNIT_TIMEFORSHOTONWAR),A
  753.         LD      A,(IX+UNIT_TYPEOFTANK)
  754.         CP      4
  755.         CALL    Z,SPEEDWAR
  756.         LD      A,(IX+UNIT_TYPEOFTANK)
  757.         CP      5
  758.         CALL    Z,SPEEDWAR
  759. WIRE    LD      L,(IX+UNIT_X)
  760.         LD      H,(IX+UNIT_X+1)
  761.         LD      C,(IX+UNIT_Y)
  762.         LD      B,(IX+UNIT_Y+1)
  763.         LD      A,(IX+UNIT_DIRECTION)
  764.         LD      (DDD),A
  765.         LD      DE,UNITSZ;24
  766.         ADD     IX,DE
  767.         LD      A,(IX+UNIT_YESORNOT)
  768.         or a;CP 0
  769.         RET     NZ
  770.         LD      (IX+UNIT_BITFRIENDLYFIRE),1
  771.         LD      A,(DDD)
  772.         LD      (IX+UNIT_STOPBIT),0
  773.         CP      1
  774.         JP      Z,PBUL1
  775.         CP      3
  776.         JP      Z,PBUL2
  777.         CP      2
  778.         JP      Z,PBUL3
  779.         CP      4
  780.         JP      Z,PBUL4
  781.         RET
  782.  
  783. DDD     DEFB    0
  784. UNGO    LD      A,(IX+UNIT_TYPEOFTANK)
  785.         CP      2
  786.         JR      Z,UNGO2
  787.         CP      12
  788.         JR      Z,UNGO2
  789.         LD      A,(TIME)
  790.         or a;CP 0
  791.         RET     NZ
  792. UNGO2   LD      A,(IX+UNIT_TYPEOFTANK)
  793.         CP      21
  794.         RET     NC
  795.         PUSH    IX
  796.         CALL    FIREWAR
  797.         POP     IX
  798.         LD      (IX+UNIT_ANIMATION),0
  799.         LD      A,(RAZWOR)
  800.         CP      1
  801.         CALL    Z,RNDR
  802.  
  803.         LD      A,(IX+UNIT_NEEDRND)
  804.         CP      1
  805.         CALL    Z,RND
  806.         LD      A,(IX+UNIT_DIRECTION2)
  807.         CP      3
  808.         CALL    Z,KEYDFC
  809.         LD      A,(IX+UNIT_DIRECTION2)
  810.         CP      1
  811.         CALL    Z,KEYUFC
  812.         LD      A,(IX+UNIT_DIRECTION2)
  813.         CP      2
  814.         CALL    Z,KEYRFC
  815.         LD      A,(IX+UNIT_DIRECTION2)
  816.         CP      4
  817.         CALL    Z,KEYLFC
  818.         RET
  819. RNDR    LD      A,(IX+UNIT_COUNTER)
  820.         or a;CP 0
  821.         RET     NZ
  822.         ;XOR    A
  823.         LD      (RAZWOR),A;0
  824.  
  825. RND
  826.         LD      (IX+UNIT_NEEDRND),0
  827.         CALL    INT55
  828.         call ldarnd;LD  A,R
  829.         CP      32
  830.         JP      C,I1
  831.         CP      64
  832.         JP      C,I2
  833.         CP      96
  834.         JP      C,I3
  835.         CP      128
  836.         JP      C,I4
  837.         RET
  838. I1      LD      (IX+UNIT_DIRECTION2),1
  839.         RET
  840. I2      LD      (IX+UNIT_DIRECTION2),2
  841.         RET
  842. I3      LD      (IX+UNIT_DIRECTION2),3
  843.         RET
  844. I4      LD      (IX+UNIT_DIRECTION2),4
  845.         RET
  846. INT55
  847.         LD      A,(WARTAN)
  848.         CP      6
  849.         RET     NC
  850.         CALL    RANDOM
  851.         CP      100
  852.         RET     NC
  853.         POP     BC
  854.         JP      I3
  855.        
  856. KEYDFC  LD      A,3
  857.         CALL    YOMPA1P
  858.         LD      A,(IX+UNIT_COUNTER)
  859.         or a;CP 0
  860.         JP      NZ,KEYD3
  861.         LD      A,(IX+UNIT_STOPBIT)
  862.         CP      1
  863.         JP      Z,RND
  864.         JP      KEYDF2
  865. KEYUFC  LD      A,1
  866.         CALL    YOMPA1P
  867.         LD      A,(IX+UNIT_COUNTER)
  868.         or a;CP 0
  869.         JP      NZ,KEYF3
  870.         LD      A,(IX+UNIT_STOPBIT)
  871.         CP      1
  872.         JP      Z,RND
  873.         JP      KEYUF2
  874. KEYRFC
  875.         LD      A,2
  876.         CALL    COMPA1P
  877.         LD      A,(IX+UNIT_COUNTER)
  878.         or a;CP 0
  879.         JP      NZ,KEYYR3
  880.         LD      A,(IX+UNIT_STOPBIT)
  881.         CP      1
  882.         JP      Z,RND
  883.         JP      KEYRF2
  884. KEYLFC
  885.         LD      A,4
  886.         CALL    COMPA1P
  887.         LD      A,(IX+UNIT_COUNTER)
  888.         or a;CP 0
  889.         JP      NZ,KEYLL3
  890.         LD      A,(IX+UNIT_STOPBIT)
  891.         CP      1
  892.         JP      Z,RND
  893.         JP      KEYLF2
  894. ;BIX    DEFW    0
  895. BULLSRA
  896.         LD      (BOMA),A ;2=right, 4=left
  897.         LD      A,(IX+UNIT_YESORNOT)
  898.         CP      1
  899.         CALL    Z,BOMPAR2
  900.         LD      A,(IX+UNIT_YESORNOT)
  901.         CP      2
  902.         CALL    Z,BOMPAR2
  903.         RET
  904. BOMPAL2 LD      L,(IX+UNIT_X)
  905.         LD      H,(IX+UNIT_X+1)
  906.         LD      BC,8
  907.         SBC     HL,BC
  908.         JP      BOMPAX
  909. BOMPAR2
  910.         LD      A,(BOMA)
  911.         CP      4 ;left
  912.         JR      Z,BOMPAL2
  913.         LD      L,(IX+UNIT_X)
  914.         LD      H,(IX+UNIT_X+1)
  915.         LD      BC,8
  916.         ADD     HL,BC
  917.         JP      BOMPAX
  918.  
  919. BOMPAX  LD      (BOM1X),HL
  920.         LD      L,(IX+UNIT_Y)
  921.         LD      H,(IX+UNIT_Y+1)
  922.         LD      A,(IX+UNIT_BITPARENTSBULL)
  923.         LD      (SEA),A
  924.         LD      (BOM1Y),HL
  925.         LD      (BOMIX),IX
  926.         LD      IX,UNITS
  927. FFF2    LD      A,(IX)
  928.         CP      255
  929.         JR      Z,FFF
  930.         LD      A,(IX)
  931.         or a;CP 0
  932.         JR      Z,XCV
  933.         CP      4
  934.         CALL    C,BOMPAR3
  935. XCV     LD      DE,UNITSZ;24;-----WAR COMPAIRE
  936.         ADD     IX,DE
  937.         JR      FFF2
  938. FFF     LD      IX,(BOMIX)
  939.         LD      (IX+UNIT_STOPBIT),0
  940.         RET
  941. ;ZBC    DEFW    0
  942.  
  943.  
  944. BOMPAR3
  945.         LD      A,(SEA)
  946.         LD      B,A
  947.         LD      A,(IX+UNIT_BITPARENTSBULL)
  948.         CP      B
  949.         RET     Z
  950.         LD      A,(SEA)
  951.         CP      3
  952.         CALL    NC,NU11
  953.         LD      L,(IX+UNIT_X)
  954.         LD      H,(IX+UNIT_X+1)
  955.         LD      DE,(BOM1X)
  956.         LD      A,(BOMA)
  957.         CP      2 ;right
  958.         jr      Z,C22B ;(hl-de)==(0..15) => BOMPAR4, иначе ret
  959.         CP      4 ;left
  960.         ;JR     Z,C44B ;(de-hl)==(0..15) => BOMPAR4, иначе ret
  961.         RET nz
  962. C44B ;(de-hl)==(0..15) => BOMPAR4, иначе ret
  963.         ex de,hl
  964. C22B ;(hl-de)==(0..15) => BOMPAR4, иначе ret
  965.         xor a
  966.         sbc hl,de
  967.         cp h
  968.         ret nz
  969.         ld a,l
  970.         cp 16
  971.         ret nc
  972. ;BOMPAR4
  973.         LD      L,(IX+UNIT_Y)
  974.         LD      H,(IX+UNIT_Y+1)
  975.         LD      BC,8
  976.         SBC     HL,BC
  977.         ex de,hl
  978.         LD      hl,(BOM1Y)
  979.         xor a
  980.         sbc hl,de
  981.         cp h
  982.         ret nz
  983.         ld a,l
  984.         cp 24
  985.         ret nc
  986. BNDCOMP
  987.         LD      A,(IX+UNIT_YESORNOT)
  988.         CP      1
  989.         CALL    Z,BNF
  990.         LD      IX,(BOMIX)
  991.         LD      (IX+UNIT_STOPBIT),1
  992.         POP     HL ;???
  993.         POP     HL ;???
  994.         RET
  995.  
  996. BNF
  997.         PUSH    IX
  998.         LD      IX,(BOMIX)
  999.         LD      A,(IX+UNIT_BITFRIENDLYFIRE)
  1000.         CP      0
  1001.         JP      Z,DEATH0
  1002.         CP      1
  1003.         JP      Z,DEATH1
  1004.         POP     IX
  1005.         RET
  1006. DEATH0  POP     IX
  1007.         LD      A,(IX+UNIT_BITPARENTSBULL)
  1008.         CP      3
  1009.         JP      NC,DEATH666
  1010.         LD      A,(IX+UNIT_SHELLTIME)
  1011.         CP      0
  1012.         RET     NZ
  1013.         LD      (IX+UNIT_BITFRIENDLYFIRE),100; W KOGO
  1014.         RET
  1015. DEATH666        LD      A,(IX+UNIT_SHELLTIME)
  1016.         CP      0
  1017.         RET     NZ
  1018.         LD      A,(IX+UNIT_ENERGY)
  1019.         CP      0
  1020.         JP      Z,DEATH
  1021.         DEC     A
  1022.         LD      (IX+UNIT_ENERGY),A
  1023.         PUSH    IX
  1024.         XOR     A
  1025.         CALL    AFXPLAY
  1026.         POP     IX
  1027.  
  1028.         LD      A,(IX+UNIT_TYPEOFTANK)
  1029.         CP      4
  1030.         JR      Z,DEATH777
  1031.         CP      5
  1032.         JR      Z,DEATH888
  1033.         RET
  1034. DEATH777        LD      A,(IX+UNIT_ENERGY)
  1035.         CP      3
  1036.         RET     NZ
  1037.  
  1038.         LD      HL,256+128+128+128 ;broken flag???
  1039.         LD      (IX+UNIT_NUMBERSPRITES),L
  1040.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  1041.         RET
  1042.  
  1043. CC1     LD      (IX+UNIT_DIRECTION2),1
  1044.         LD      (IX+UNIT_DIRECTION),1
  1045.         JP      DDDEA
  1046. C2      LD      (IX+UNIT_DIRECTION2),3
  1047.         LD      (IX+UNIT_DIRECTION),3
  1048.         JP      DDDEA
  1049. C3      LD      (IX+UNIT_DIRECTION2),4
  1050.         LD      (IX+UNIT_DIRECTION),4
  1051.         JP      DDDEA
  1052. C4      LD      (IX+UNIT_DIRECTION2),2
  1053.         LD      (IX+UNIT_DIRECTION),2
  1054.         JP      DDDEA
  1055.  
  1056. DEATH888        LD      (IX+UNIT_SHELLTIME),16
  1057.         LD      A,1
  1058.         LD      (RAZWOR),A
  1059.         LD      A,(IX+UNIT_COUNTER)
  1060.         CP      0
  1061.         JP      NZ,DDDEA
  1062. ;go back???
  1063.         LD      A,(IX+UNIT_DIRECTION2)
  1064.         CP      3
  1065.         JR      Z,CC1
  1066.         CP      1
  1067.         JR      Z,C2
  1068.         CP      2
  1069.         JR      Z,C3
  1070.         CP      4
  1071.         JR      Z,C4
  1072. DDDEA   PUSH    IX
  1073.         PUSH    IX
  1074.         POP     HL
  1075.         LD      A,16
  1076.         CALL    SHEELDW
  1077.         POP     IX
  1078.         LD      A,(IX+UNIT_ENERGY)
  1079.         CP      5
  1080.         JR      Z,DEAT8
  1081.         CP      2
  1082.         JR      Z,DEAT9
  1083.         RET
  1084. DEAT8   LD      HL,256+128+128+256 ;???
  1085.         LD      (IX+UNIT_NUMBERSPRITES),L
  1086.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  1087.         RET
  1088. DEAT9
  1089.         LD      HL,256+128+128+128 ;???
  1090.         LD      (IX+UNIT_NUMBERSPRITES),L
  1091.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  1092.         RET
  1093.  
  1094. DEATH1  POP     IX
  1095.         LD      A,(IX+UNIT_BITPARENTSBULL)
  1096.         CP      1
  1097.         JP      Z,DEATH6
  1098.         CP      2
  1099.         JP      Z,DEATH7
  1100.         RET
  1101. DEATH6
  1102.         LD      A,(IX+UNIT_SHELLTIME)
  1103.         CP      0
  1104.         JR      NZ,DEATH3
  1105.         LD      A,(UP1)
  1106.         CP      130 ;129 '0', 130 '1'
  1107.         JP      Z,DEAT77 ;(UP1)=129, jp DEATH (без NEWTAN1)
  1108.         DEC     A
  1109.         LD      (UP1),A
  1110.         LD      A,100
  1111.         LD      (NEWTAN1),A
  1112.         JP      DEATH
  1113. DEATH7
  1114.         LD      A,(IX+UNIT_SHELLTIME)
  1115.         CP      0
  1116.         JR      NZ,DEATH3
  1117.         LD      A,(UP2)
  1118.         CP      130 ;129 '0', 130 '1'
  1119.         JP      Z,DEAT88 ;(UP2)=129, jp DEATH (без NEWTAN2)
  1120.         DEC     A
  1121.         LD      (UP2),A
  1122.         LD      A,100
  1123.         LD      (NEWTAN2),A
  1124.         ;JP     DEATH
  1125. DEATH
  1126.         LD      HL,TEXT7
  1127.         LD      (TEXTW),HL
  1128.         LD      D,#C0
  1129.         LD      E,#10
  1130.         LD      BC,256+24
  1131.         LD      HL,128+24
  1132.         CALL    TEXT
  1133.         LD      HL,TEXT6
  1134.         LD      (TEXTW),HL
  1135.         LD      D,#C0
  1136.         LD      E,#10
  1137.         LD      BC,256+24
  1138.         LD      HL,128
  1139.         CALL    TEXT
  1140.  
  1141.         LD      A,(IX+UNIT_SHELLTIME)
  1142.         CP      0
  1143.         JR      NZ,DEATH3
  1144.  
  1145.         LD      A,(IX+UNIT_BITFRIENDLYFIRE)
  1146.         CP      253
  1147.         CALL    Z,CINTRO2
  1148.         LD      (IX+UNIT_YESORNOT),4
  1149.         LD      (IX+UNIT_TIMEFORSHOTONWAR),0
  1150.         LD      (IX+UNIT_STOPBIT),1
  1151.         CALL    POINT
  1152.         LD      A,(IX+UNIT_BITFRIENDLYFIRE)
  1153.         CP      253
  1154.         CALL    Z,CINTRO
  1155.  
  1156. DEATH3  LD      IX,(BOMIX)
  1157.         LD      (IX+UNIT_YESORNOT),0
  1158.         LD      (IX+UNIT_STOPBIT),0
  1159.         POP     HL
  1160.         POP     HL
  1161.         POP     HL
  1162.         RET
  1163. CINTRO2 LD      A,(IX+UNIT_TYPEOFTANK)
  1164.         CP      0
  1165.         JP      Z,WSEBAH
  1166.         DEC     A
  1167.         LD      (IX+UNIT_TYPEOFTANK),A
  1168.         PUSH    IX
  1169.         XOR     A
  1170.         CALL    AFXPLAY
  1171.         POP     IX
  1172.         LD      A,8
  1173.         LD      (ATAKA),A
  1174.         LD      IX,(BOMIX)
  1175.         LD      (IX+UNIT_YESORNOT),3 ;BONG1
  1176.         LD      (IX+UNIT_STOPBIT),1
  1177.         POP     HL
  1178.         POP     HL
  1179.         POP     HL
  1180.         POP     HL
  1181.         RET
  1182.  
  1183. CINTRO  LD      L,(IX+UNIT_X)
  1184.         LD      H,(IX+UNIT_X+1)
  1185.         LD      BC,8
  1186.         ADD     HL,BC
  1187.         LD      (IX+UNIT_X),L
  1188.         LD      (IX+UNIT_X+1),H
  1189.         LD      L,(IX+UNIT_Y)
  1190.         LD      H,(IX+UNIT_Y+1)
  1191.         LD      BC,8
  1192.         ADD     HL,BC
  1193.         LD      (IX+UNIT_Y),L
  1194.         LD      (IX+UNIT_Y+1),H
  1195.         PUSH    IX
  1196.         LD      IX,UNITS
  1197.         LD      A,(WR1)
  1198.         LD      (IX+UNIT_WATERWAY),A
  1199.         LD      A,(WR2)
  1200.         ld (ix+(4*UNITSZ+UNIT_WATERWAY)),a ;(IX+117),A
  1201.         POP     IX
  1202.         RET
  1203.  
  1204. BULLSR2;   LD      IX,UNITS ;??? why commented?
  1205.         LD      (BOMA),A ;3=down, 1=up
  1206.         LD      A,(IX)
  1207.         CP      1
  1208.         CALL    Z,YBMPAR2
  1209.         LD      A,(IX)
  1210.         CP      2
  1211.         CALL    Z,YBMPAR2
  1212.         RET
  1213. YBMPAL2 LD      L,(IX+UNIT_Y)
  1214.         LD      H,(IX+UNIT_Y+1)
  1215.         LD      BC,8
  1216.         SBC     HL,BC
  1217.         JP      YBMPAX
  1218.  
  1219.  
  1220. YBMPAR2
  1221.         LD      A,(BOMA)
  1222.         CP      1 ;up
  1223.         JR      Z,YBMPAL2
  1224.         LD      L,(IX+UNIT_Y)
  1225.         LD      H,(IX+UNIT_Y+1)
  1226.         LD      BC,8
  1227.         ADD     HL,BC
  1228.         JP      YBMPAX
  1229.  
  1230. YBMPAX  LD      (BOM1Y),HL
  1231.         LD      L,(IX+UNIT_X)
  1232.         LD      H,(IX+UNIT_X+1)
  1233.         LD      (BOM1X),HL
  1234.         LD      A,(IX+UNIT_BITPARENTSBULL)
  1235.         LD      (SEA),A
  1236.         LD      (BOMIX),IX
  1237.  
  1238.         LD      IX,UNITS
  1239. FFF4    LD      A,(IX)
  1240.         CP      255
  1241.         JR      Z,FFF3
  1242.         CP      0
  1243.         JR      Z,XCV2
  1244.         CP      4
  1245.         CALL    C,YBMPAR3
  1246. XCV2    LD      DE,UNITSZ;24
  1247.         ADD     IX,DE
  1248.         JR      FFF4
  1249. FFF3    LD      IX,(BOMIX)
  1250.         LD      (IX+UNIT_STOPBIT),0
  1251.         RET
  1252.  
  1253. NU11
  1254.         LD      A,(IX+UNIT_BITPARENTSBULL)
  1255.         CP      3
  1256.         RET     C
  1257.         POP     HL
  1258.         RET
  1259. YBMPAR3 LD      A,(SEA)
  1260.         LD      B,A
  1261.         LD      A,(IX+UNIT_BITPARENTSBULL)
  1262.         CP      B
  1263.         RET     Z
  1264.         LD      A,(SEA)
  1265.         CP      3
  1266.         CALL    NC,NU11
  1267.         LD      L,(IX+UNIT_Y)
  1268.         LD      H,(IX+UNIT_Y+1)
  1269.         LD      B,16
  1270.         LD      DE,(BOM1Y)
  1271.         LD      A,(BOMA)
  1272.         CP      1 ;up
  1273.         JR      Z,C44YB
  1274.         CP      3 ;down
  1275.         JR      Z,C22YB
  1276.         RET
  1277. PROW
  1278.         LD      A,E
  1279.         CP      32
  1280.         JP      C,YBMPAR4
  1281.         RET
  1282.  
  1283. JKJDYB  LD      A,E
  1284.         CP      L
  1285.         JP      Z,YBMPAR4
  1286.         INC     HL
  1287.         DJNZ    JKJDYB
  1288.         RET
  1289. C44YB   LD      A,(IX+UNIT_BITFRIENDLYFIRE)
  1290.         CP      253
  1291.         JP      Z,PROW
  1292.         LD      A,E
  1293.         CP      16
  1294.         JR      C,JKJDYB
  1295.         LD      BC,16
  1296.         ADD     HL,BC
  1297.         LD      A,E
  1298.         CP      L
  1299.         RET     NC
  1300.         LD      BC,16
  1301.         SBC     HL,BC
  1302.         LD      A,E
  1303.         CP      L
  1304.         JP      NC,YBMPAR4
  1305.         RET
  1306. JKJD2YB
  1307.         LD      A,E
  1308.         CP      L
  1309.         JR      Z,YBMPAR4
  1310.         INC     DE
  1311.         DJNZ    JKJD2YB
  1312.         RET
  1313. C22YB   LD      A,E
  1314.         CP      8
  1315.         JR      C,JKJD2YB
  1316.         LD      A,E
  1317.         CP      L
  1318.         RET     NC
  1319.         PUSH    HL
  1320.         PUSH    DE
  1321.         POP     HL
  1322.         LD      BC,8
  1323.         ADD     HL,BC
  1324.         PUSH    HL
  1325.         POP     DE
  1326.         POP     HL
  1327.         LD      A,E
  1328.         CP      L
  1329.         JP      NC,YBMPAR4
  1330.  
  1331.         RET
  1332.  
  1333.  
  1334. Y22SPB  LD      A,L
  1335.         CP      239
  1336.         JP      Z,CNN2B
  1337.         RET
  1338. CNN2B   POP     AF
  1339.         JP      BNDCOMP
  1340.  
  1341. C11YB
  1342. JKJD1YB LD      A,D
  1343.         CP      1
  1344.         CALL    Z,Y22SPB
  1345.         LD      A,H
  1346.         CP      D
  1347.         RET     NZ
  1348.         LD      A,E
  1349.         CP      L
  1350.         JP      Z,BNDCOMP
  1351.         INC     HL
  1352.         DJNZ    JKJD1YB
  1353.         RET
  1354. C33YB
  1355. JKJD3YB LD      A,D
  1356.         CP      1
  1357.         CALL    Z,Y22SPB
  1358.         LD      A,H
  1359.         CP      D
  1360.         RET     NZ
  1361.         LD      A,E
  1362.         CP      L
  1363.         JP      Z,BNDCOMP
  1364.         DEC     DE
  1365.         DJNZ    JKJD3YB
  1366.         RET
  1367. BKAA
  1368.         LD      DE,(BOM1X)
  1369.         LD      A,D
  1370.         CP      1
  1371.         JP      Z,ENDCB
  1372.         RET
  1373. ENDCB   POP     AF
  1374.         JP      BNDCOMP
  1375. YBMPAR4
  1376.         LD      L,(IX+UNIT_X)
  1377.         LD      H,(IX+UNIT_X+1)
  1378.         LD      DE,(BOM1X)
  1379.         LD      A,E
  1380.         CP      248
  1381.         JP      Z,BLKABB
  1382.         LD      A,H
  1383.         CP      1
  1384.         JR      Z,BLKA
  1385.         LD      A,L
  1386.         CP      248
  1387.         CALL    Z,BKAA
  1388.         LD      A,L
  1389.         CP      0
  1390.         JR      Z,BLKA8
  1391. BLKABB  LD      BC,8
  1392.         SBC     HL,BC
  1393. BLKA    LD      B,24
  1394.         LD      A,(IX+UNIT_BITFRIENDLYFIRE)
  1395.         CP      253
  1396.         CALL    Z,SMENA
  1397. BLKAZ   LD      DE,(BOM1X)
  1398.         LD      A,(BOMA)
  1399.         CP      1 ;up
  1400.         JR      Z,C11YB
  1401.         CP      3 ;down
  1402.         JR      Z,C33YB
  1403.         RET
  1404. BLKA8   LD      B,16
  1405.         JP      BLKAZ
  1406. SMENA
  1407.         LD      B,32
  1408.         RET
  1409.  
  1410. STARTM  LD      A,(MAP)
  1411.         INC     A
  1412.         LD      (MAP),A
  1413.         JP      FIGHTT
  1414.  
  1415. NEXTMIS
  1416.         PUSH    IX
  1417.         LD      IX,UNITS
  1418.         LD      DE,192
  1419.         ADD     IX,DE
  1420.         LD      B,7
  1421. NEX3    LD      A,(IX)
  1422.         CP      1
  1423.         JR      Z,NEX1
  1424.         LD      DE,48
  1425.         ADD     IX,DE
  1426.         DJNZ    NEX3
  1427. NEX2    POP     IX
  1428.         LD      A,(WARTAN)
  1429.         CP      0
  1430.         RET     NZ
  1431.         XOR     A
  1432.         LD      (TIMES),A
  1433.         LD      (TIMEW),A
  1434.         LD      A,1
  1435.         LD      (NEWLEVEL),A
  1436.         LD      A,(MAP)
  1437.         CP      255
  1438.         CALL    Z,NJNAA
  1439.         RET
  1440.  
  1441.  
  1442. NEX1    POP     IX
  1443.         RET
  1444.  
  1445. ADD20   LD      A,(IX+UNIT_YESORNOT)
  1446.         CP      1 ;SHOT1
  1447.         RET     NZ
  1448.         LD      A,(IX+UNIT_BITFRIENDLYFIRE)
  1449.         CP      253
  1450.         RET     Z
  1451.         LD      A,(TANKP) ;tank phase?
  1452.         CP      4
  1453.         RET     C
  1454.         LD      L,(IX+UNIT_NUMBERSPRITES)
  1455.         LD      H,(IX+UNIT_NUMBERSPRITES+1)
  1456.         LD      DE,8
  1457.         ADD     HL,DE ;мерцать белый-красный(red)??? (изначально hl=(IX+UNIT_NUMBERSPRITES))
  1458.         RET
  1459. ADD21   LD      A,(IX+UNIT_TYPEOFTANK)
  1460.         CP      21
  1461.         RET     C
  1462.         LD      A,(TANKPP)
  1463.         CP      16
  1464.         RET     C
  1465.         XOR     A
  1466.         LD      (YESORNO),A
  1467.         RET
  1468.  
  1469. NEWBON
  1470.         LD      HL,BONUS
  1471.         LD      A,(MAP)
  1472.         CP      0
  1473.         JR      Z,GGGG
  1474.         CP      255
  1475.         JR      Z,GGGG
  1476.         LD      B,A
  1477. GGG     INC     HL
  1478.         INC     HL
  1479.         INC     HL
  1480.         DJNZ    GGG
  1481. GGGG    LD      A,(HL)
  1482.         CP      0
  1483.         JR      Z,GG44
  1484.         LD      B,A
  1485.         LD      A,(WARTAN)
  1486.         CP      B
  1487.         JR      Z,NEWB2
  1488. GG44    INC     HL
  1489.         LD      A,(HL)
  1490.         CP      0
  1491.         JR      Z,GG45
  1492.         LD      B,A
  1493.         LD      A,(WARTAN)
  1494.         CP      B
  1495.         JR      Z,NEWB2
  1496. GG45    INC     HL
  1497.         LD      A,(HL)
  1498.         CP      0
  1499.         RET     Z
  1500.         LD      B,A
  1501.         LD      A,(WARTAN)
  1502.         CP      B
  1503.         JR      Z,NEWB2
  1504.         RET
  1505. NEWB2   LD      (HL),0
  1506.         LD      A,(IX+UNIT_TYPEOFTANK)
  1507.         ADD     A,10
  1508.         LD      (IX+UNIT_TYPEOFTANK),A
  1509.         RET
  1510.  
  1511. RT1
  1512.         LD      HL,SPRBONUS0;256+128+16
  1513.         LD      A,21
  1514.         LD      (A21),A
  1515.         JP      CCC
  1516. RT2
  1517.         LD      HL,SPRBONUS1;256+128+18
  1518.         LD      A,22
  1519.         LD      (A21),A
  1520.         JP      CCC
  1521. RT3
  1522.         LD      HL,SPRBONUS2;256+128+20
  1523.         LD      A,23
  1524.         LD      (A21),A
  1525.         JP      CCC
  1526. RT4
  1527.         LD      HL,SPRBONUS3;256+128+22
  1528.         LD      A,24
  1529.         LD      (A21),A
  1530.         JP      CCC
  1531. RT5
  1532.         LD      HL,SPRBONUS4;256+128+24
  1533.         LD      A,25
  1534.         LD      (A21),A
  1535.         JP      CCC
  1536. RT6
  1537.         LD      HL,SPRBONUS5;256+128+26
  1538.         LD      A,26
  1539.         LD      (A21),A
  1540.         JP      CCC
  1541. RT7
  1542.         LD      HL,SPRBONUS6;256+128+28
  1543.         LD      A,27
  1544.         LD      (A21),A
  1545.         JP      CCC
  1546. RT8
  1547.         LD      HL,SPRBONUS7;256+128+30
  1548.         LD      A,28
  1549.         LD      (A21),A
  1550.         JP      CCC
  1551. RT9
  1552.         LD      HL,SPRBONUS8;256+128+32
  1553.         LD      A,29
  1554.         LD      (A21),A
  1555.         JP      CCC
  1556.  
  1557. PRIZ    LD      A,(IX+UNIT_TYPEOFTANK)
  1558.         CP      11
  1559.         JR      Z,PRIZ666
  1560.         CP      12
  1561.         JR      Z,PRIZ666
  1562.         CP      13
  1563.         JR      Z,PRIZ666
  1564.         RET
  1565. PRIZ666 LD      (IX+UNIT_YESORNOT),0
  1566.         LD      IX,SLU
  1567.         LD      (IX+UNIT_YESORNOT),8 ;???
  1568.         CALL    RANDOM
  1569.         CP      36
  1570.         JP      C,RT1
  1571.         CP      72
  1572.         JP      C,RT2
  1573.         CP      108
  1574.         JP      C,RT3
  1575.         CP      144
  1576.         JP      C,RT4
  1577.         CP      180
  1578.         JP      C,RT5
  1579.         CP      216
  1580.         JP      C,RT6
  1581.         CP      255
  1582.         JP      C,RT7
  1583.         JP      RT1
  1584. CCC
  1585.         LD      (IX+UNIT_NUMBERSPRITES),L
  1586.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  1587. C224A   CALL    RANDOM
  1588.         CP      224 ;??? это X!
  1589.         JR      NC,C224A
  1590.         ;SRL    A
  1591.         ;SRL    A
  1592.         ;SRL    A
  1593.         ;SLA    A
  1594.         ;SLA    A
  1595.         ;SLA    A
  1596.          and 0xf8
  1597.         LD      L,A
  1598.         LD      H,0
  1599.         LD      B,0
  1600.         LD      C,16
  1601.         ADD     HL,BC
  1602.         LD      (IX+UNIT_X),L
  1603.         LD      (IX+UNIT_X+1),H
  1604. C224    CALL    RANDOM
  1605.         CP      MAXY-16;208
  1606.         JR      NC,C224
  1607.         ;SRL    A
  1608.         ;SRL    A
  1609.         ;SRL    A
  1610.         ;SLA    A
  1611.         ;SLA    A
  1612.         ;SLA    A
  1613.          and 0xf8
  1614.         LD      L,A
  1615.         LD      H,0
  1616.         LD      B,0
  1617.         LD      C,16
  1618.         ADD     HL,BC
  1619.         LD      (IX+UNIT_Y),L
  1620.         LD      (IX+UNIT_Y+1),H
  1621.         LD      A,(A21)
  1622.         LD      (IX+UNIT_TYPEOFTANK),A
  1623.         RET
  1624.  
  1625.        if 1==0
  1626. RANDOM
  1627.         call ldarnd;LD  A,R
  1628.         RLCA    ;          RANDOMIZE
  1629.         RLCA
  1630.         RLCA
  1631.         RLCA
  1632.         LD      B,A
  1633.         call ldarnd;LD  A,R
  1634.         ADD     A,B
  1635.         RET
  1636.        endif
  1637. P500    LD      A,(IX+UNIT_TIMEFORSHOTONWAR)
  1638.         DEC     A
  1639.         LD      (IX+UNIT_TIMEFORSHOTONWAR),A
  1640.         CP      0
  1641.         RET     NZ
  1642.         LD      (IX+UNIT_YESORNOT),0
  1643.         LD      (YESORNO),A
  1644.         RET
  1645. BW      XOR     A
  1646.         RET
  1647.  
  1648. EXITBOS LD      A,2
  1649.         LD      (BOS),A
  1650.         LD      (IX+UNIT_BITFRIENDLYFIRE),0
  1651.         LD      A,1
  1652.         LD      (NEWLEVEL),A
  1653.         CALL    BADBAD
  1654.         RET
  1655. BOSS
  1656.         LD      A,(MAP)
  1657.         CP      31
  1658.         RET     NZ
  1659.         LD      A,(BOS)
  1660.         CP      2
  1661.         RET     Z
  1662.         LD      A,(BOSTART)
  1663.         CP      0
  1664.         JR      Z,BOOO
  1665.         DEC     A
  1666.         LD      (BOSTART),A
  1667. BOOO    LD      A,(TANKB)
  1668.         INC     A
  1669.         CP      64
  1670.         CALL    Z,BW
  1671.         LD      (TANKB),A
  1672.         LD      A,1
  1673.         LD      (BOS),A
  1674.         LD      IX,UNITS
  1675.         LD      DE,14*UNITSZ;336
  1676.         ADD     IX,DE
  1677.         LD      A,(IX+UNIT_YESORNOT)
  1678.         CP      1 ;SHOT1
  1679.         JR      NZ,EXITBOS
  1680.         LD      HL,SPRMEGASHIP;256+36
  1681.         LD      (IX+UNIT_NUMBERSPRITES),L
  1682.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  1683.         LD      HL,(BOSX)
  1684.         LD      (IX+UNIT_X),L
  1685.         LD      (IX+UNIT_X+1),H
  1686.         LD      HL,(BOSY)
  1687.         LD      D,0
  1688.         LD      A,(BOSTART)
  1689.         LD      E,A
  1690.         SBC     HL,DE
  1691.         LD      A,(TANKB)
  1692.         CP      32
  1693.         CALL    NC,BOSANI
  1694.         LD      (IX+UNIT_Y),L
  1695.         LD      (IX+UNIT_Y+1),H
  1696.         LD      (IX+UNIT_DIRECTION),0
  1697.         LD      (IX+UNIT_ANIMATION),0
  1698.         LD      (IX+UNIT_BITFRIENDLYFIRE),253
  1699.         LD      A,(BOSTART)
  1700.         CP      0
  1701.         RET     NZ
  1702.         LD      A,(BOSSCIK)
  1703.         INC     A
  1704.         LD      (BOSSCIK),A
  1705.         CP      100
  1706.         JR      NC,FZZ
  1707.         RET
  1708.  
  1709. FZZ     LD      A,(MOVE)
  1710.         CP      1
  1711.         JP      Z,BOSL
  1712.         CP      2
  1713.         JP      Z,BOSR
  1714.         LD      A,(ATAKA)
  1715.         CP      0
  1716.         JR      NZ,ATAKA2
  1717.         LD      A,(IX+UNIT_STOPBIT)
  1718.         DEC     A
  1719.         CP      0
  1720.         JP      NZ,MNOL2
  1721.         LD      (IX+UNIT_STOPBIT),A
  1722. ATAKA3
  1723.         CALL    RANDOM
  1724.         CP      128
  1725.         JR      C,BOSN
  1726.         LD      A,1
  1727.         LD      (MOVE),A
  1728.         RET
  1729. ATAKA2
  1730.         DEC     A
  1731.         LD      (ATAKA),A
  1732.         JP      ATAKA3
  1733.  
  1734. BOSANI
  1735.         DEC     HL
  1736.         RET
  1737.  
  1738. BOSN
  1739.         LD      A,2
  1740.         LD      (MOVE),A
  1741.         RET
  1742. MNOL
  1743.         XOR     A
  1744.         LD      (MOVE),A
  1745. MNOL2
  1746.  
  1747.         call ldarnd;LD  A,R
  1748.         LD      (IX+UNIT_STOPBIT),A
  1749.         LD      (IX+UNIT_STAR),0
  1750.         LD      (IX+UNIT_DIRECTION),5
  1751.         LD      L,(IX+UNIT_X)
  1752.         LD      H,(IX+UNIT_X+1)
  1753.         LD      E,(IX+UNIT_Y)
  1754.         LD      D,(IX+UNIT_Y+1)
  1755.         LD      DE,UNITSZ;24
  1756.         ADD     IX,DE
  1757.  
  1758.         LD      A,(IX+UNIT_YESORNOT)
  1759.         CP      0
  1760.         RET     NZ
  1761.         LD      (IX+UNIT_YESORNOT),2 ;BULL1
  1762.         LD      A,L
  1763.         ADD     A,8
  1764.         LD      (IX+UNIT_X),A
  1765.         LD      (IX+UNIT_X+1),H
  1766.         PUSH    HL
  1767.         LD      HL,SPRDROP;256+34
  1768.         LD      (IX+UNIT_NUMBERSPRITES),L
  1769.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  1770.         POP     HL
  1771.         LD      (IX+UNIT_Y),E
  1772.         LD      (IX+UNIT_Y+1),D
  1773.         LD      (IX+UNIT_BITFRIENDLYFIRE),1
  1774.         LD      (IX+UNIT_DIRECTION),3
  1775.         LD      (IX+UNIT_STAR),1
  1776.         LD      (IX+UNIT_ENERGY),1
  1777.         LD      A,(ATAKA)
  1778.         CP      0
  1779.         RET     Z
  1780.         LD      BC,UNITSZ;24
  1781.         ADD     IX,BC
  1782.         LD      A,(IX+UNIT_YESORNOT)
  1783.         CP      0
  1784.         RET     NZ
  1785.         LD      (IX+UNIT_YESORNOT),2
  1786.         LD      A,L
  1787.         ADD     A,8
  1788.         LD      (IX+UNIT_X),A
  1789.         LD      (IX+UNIT_X+1),H
  1790.         PUSH    HL
  1791.         LD      HL,SPRDROP;256+34
  1792.         LD      (IX+UNIT_NUMBERSPRITES),L
  1793.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  1794.         POP     HL
  1795.         LD      (IX+UNIT_Y),E
  1796.         LD      (IX+UNIT_Y+1),D
  1797.         LD      (IX+UNIT_BITFRIENDLYFIRE),1
  1798.         LD      (IX+UNIT_DIRECTION),3
  1799.         LD      (IX+UNIT_STAR),1
  1800.         LD      (IX+UNIT_ENERGY),2
  1801.         LD      BC,UNITSZ;24
  1802.         ADD     IX,BC
  1803.         LD      A,(IX+UNIT_YESORNOT)
  1804.         CP      0
  1805.         RET     NZ
  1806.         LD      (IX+UNIT_YESORNOT),2
  1807.         LD      A,L
  1808.         ADD     A,8
  1809.         LD      (IX+UNIT_X),A
  1810.         LD      (IX+UNIT_X+1),H
  1811.         LD      HL,SPRDROP;256+34
  1812.         LD      (IX+UNIT_NUMBERSPRITES),L
  1813.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  1814.         LD      (IX+UNIT_Y),E
  1815.         LD      (IX+UNIT_Y+1),D
  1816.         LD      (IX+UNIT_BITFRIENDLYFIRE),1
  1817.         LD      (IX+UNIT_DIRECTION),3
  1818.         LD      (IX+UNIT_STAR),1
  1819.         LD      (IX+UNIT_ENERGY),3
  1820.         RET
  1821. BOSL    LD      HL,(BOSX)
  1822.         LD      A,L
  1823.         CP      0
  1824.         JP      Z,MNOL
  1825.         DEC     HL
  1826.         LD      (BOSX),HL
  1827.         LD      A,(IX+UNIT_STAR)
  1828.         CP      32
  1829.         JP      Z,MNOL
  1830.         INC     A
  1831.         LD      (IX+UNIT_STAR),A
  1832.         RET
  1833. BOSR    LD      HL,(BOSX)
  1834.         LD      A,L
  1835.         CP      232
  1836.         JP      Z,MNOL
  1837.         INC     HL
  1838.         LD      (BOSX),HL
  1839.         LD      A,(IX+UNIT_STAR)
  1840.         CP      32
  1841.         JP      Z,MNOL
  1842.         INC     A
  1843.         LD      (IX+UNIT_STAR),A
  1844.         RET
  1845.  
  1846. NEWTANK
  1847.         LD      (IX),1
  1848.         LD      HL,MASSIV
  1849.         LD      DE,20
  1850.         LD      A,(MAP)
  1851.         CP      0
  1852.         JR      Z,NEWT1
  1853.         CP      255
  1854.         JR      Z,NEWT1
  1855.         LD      B,A
  1856. MASS    ADD     HL,DE
  1857.         DJNZ    MASS
  1858.         LD      A,(BOS)
  1859.         CP      1
  1860.         JR      Z,NEWT2
  1861. NEWT1   LD      A,(WARTAN)
  1862.         CP      0
  1863.         JR      Z,NEWT2
  1864.         LD      B,A
  1865. MASS2   INC     HL
  1866.         DJNZ    MASS2
  1867. NEWT2   LD      A,(HL)
  1868.         CP      1
  1869.         CALL    Z,ENEMY1
  1870.         CP      2
  1871.         CALL    Z,ENEMY2
  1872.         CP      3
  1873.         CALL    Z,ENEMY3
  1874.         CP      4
  1875.         CALL    Z,ENEMY4
  1876.         CP      5
  1877.         CALL    Z,ENEMY5
  1878.         LD      (IX+UNIT_NUMBERSPRITES),L
  1879.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  1880.         LD      (IX+UNIT_DIRECTION2),3
  1881.         LD      (IX+UNIT_DIRECTION),0
  1882.         LD      (IX+UNIT_ANIMATION),0
  1883.         LD      (IX+UNIT_COUNTER),0
  1884.         call ldarnd;LD  A,R
  1885.         LD      (IX+UNIT_TIMEFORSHOTONWAR),A
  1886.         LD      (IX+UNIT_STOPBIT),0
  1887.         LD      (IX+UNIT_BITFRIENDLYFIRE),0
  1888.         LD      (IX+UNIT_SHELLTIME),0
  1889.         LD      (IX+UNIT_ICE),0
  1890.         LD      (IX+UNIT_SAND),0
  1891.         LD      (IX+UNIT_WATERWAY),0
  1892.         RET
  1893. ENEMY1  LD      HL,SPRENEMY1;256+128
  1894.         LD      (IX+UNIT_TYPEOFTANK),1; TYPE OF TANK
  1895.         LD      (IX+UNIT_ENERGY),0
  1896.         LD      (IX+UNIT_STAR),0
  1897.         RET
  1898. ENEMY2  LD      HL,SPRENEMY2;256+128+128
  1899.         LD      (IX+UNIT_TYPEOFTANK),2; TYPE OF TANK
  1900.         LD      (IX+UNIT_ENERGY),0
  1901.         LD      (IX+UNIT_STAR),0
  1902.         RET
  1903. ENEMY3  LD      HL,SPRENEMY3;256+128+128+128
  1904.         LD      (IX+UNIT_TYPEOFTANK),3; TYPE OF TANK
  1905.         LD      (IX+UNIT_ENERGY),3
  1906.         LD      (IX+UNIT_STAR),0
  1907.         RET
  1908. ENEMY4  LD      HL,SPRENEMY4;256+128+256+128
  1909.         LD      (IX+UNIT_TYPEOFTANK),4; TYPE OF TANK
  1910.         LD      (IX+UNIT_ENERGY),6
  1911.         LD      (IX+UNIT_STAR),0
  1912.         RET
  1913. ENEMY5  LD      HL,SPRENEMY5;256+128+256+256
  1914.         LD      (IX+UNIT_TYPEOFTANK),5; TYPE OF TANK
  1915.         LD      (IX+UNIT_ENERGY),10
  1916.         LD      (IX+UNIT_STAR),1
  1917.         PUSH    IX
  1918.         LD      DE,UNITSZ;24
  1919.         ADD     IX,DE
  1920.         LD      (IX+UNIT_STAR),1
  1921.         POP     IX
  1922.         RET
  1923. MASSIV
  1924.         DEFB    1,1,1,1,1,1,1,1,1,1
  1925.         DEFB    1,1,1,1,1,1,1,1,1,1
  1926.  
  1927.         DEFB    2,2,2,1,1,1,1,1,1,1
  1928.         DEFB    1,1,1,1,1,1,1,1,1,1
  1929.  
  1930.         DEFB    2,1,1,1,2,1,1,1,2,1
  1931.         DEFB    1,1,1,1,2,1,1,1,2,1
  1932.  
  1933.         DEFB    3,3,3,1,1,1,1,1,1,1
  1934.         DEFB    1,1,2,1,1,1,1,2,1,1
  1935.  
  1936.         DEFB    2,2,3,1,2,1,1,1,3,1
  1937.         DEFB    1,1,1,3,1,1,3,1,1,1
  1938.  
  1939.         DEFB    3,3,3,2,3,2,1,1,1,1
  1940.         DEFB    3,2,2,2,1,1,1,2,2,2
  1941.  
  1942.         DEFB    3,2,3,3,3,1,3,1,1,2
  1943.         DEFB    3,3,3,3,3,3,3,3,3,3
  1944.  
  1945.         DEFB    1,3,2,2,2,2,2,2,1,1
  1946.         DEFB    1,2,3,3,2,1,1,2,3,3
  1947.  
  1948.         DEFB    2,3,2,1,3,2,2,2,1,1
  1949.         DEFB    2,2,2,3,1,2,3,1,2,3
  1950.  
  1951.         DEFB    1,2,2,1,1,1,1,1,1,1
  1952.         DEFB    1,1,1,1,1,1,1,1,2,3
  1953.  
  1954.         DEFB    2,2,2,1,1,1,1,1,1,1
  1955.         DEFB    1,1,1,1,1,1,2,1,3,3
  1956.  
  1957.         DEFB    1,1,1,1,3,3,3,3,3,3
  1958.         DEFB    1,1,1,1,1,1,1,1,1,1
  1959.  
  1960.         DEFB    2,2,2,3,1,1,1,1,2,2
  1961.         DEFB    2,2,2,2,2,2,2,2,2,3
  1962.  
  1963.         DEFB    1,2,2,1,1,1,1,1,1,1
  1964.         DEFB    1,1,1,1,2,1,1,1,2,3
  1965.  
  1966.         DEFB    3,2,2,1,3,1,1,2,1,1
  1967.         DEFB    1,3,3,3,1,2,2,1,2,2
  1968.  
  1969.         DEFB    5,5,5,5,5,5,1,1,1,1
  1970.         DEFB    1,1,1,1,5,5,5,5,5,5
  1971.  
  1972.         DEFB    3,2,2,3,3,1,1,1,1,1
  1973.         DEFB    1,1,1,1,1,1,1,1,1,1
  1974.  
  1975.         DEFB    2,2,2,2,2,2,2,2,2,2
  1976.         DEFB    2,2,2,2,2,2,2,2,2,2
  1977.  
  1978.         DEFB    4,4,4,2,3,3,1,1,2,2
  1979.         DEFB    2,2,2,2,1,3,2,1,1,1
  1980.  
  1981.         DEFB    1,1,2,2,3,3,1,1,2,2;---20
  1982.         DEFB    2,2,2,2,1,3,2,1,1,1
  1983.  
  1984.         DEFB    1,1,4,2,3,3,1,1,2,2; 21
  1985.         DEFB    1,1,2,3,2,1,1,1,3,3
  1986.  
  1987.         DEFB    1,1,1,2,2,2,1,1,2,2;22
  1988.         DEFB    1,1,1,1,1,1,2,1,1,1
  1989.  
  1990.         DEFB    4,4,4,3,3,3,3,3,3,3;23
  1991.         DEFB    3,3,3,3,3,3,3,3,3,3
  1992.  
  1993.         DEFB    1,1,1,2,3,3,1,1,2,2
  1994.         DEFB    2,1,2,2,1,1,2,1,1,1
  1995.  
  1996.         DEFB    1,2,2,2,1,1,1,1,2,2;25
  1997.         DEFB    1,1,1,2,1,1,2,1,1,1
  1998.  
  1999.         DEFB    3,3,3,2,3,3,3,2,2,2;26
  2000.         DEFB    2,2,2,2,1,3,2,1,1,1
  2001.  
  2002.         DEFB    4,2,4,3,3,3,4,4,4,2;27
  2003.         DEFB    2,3,3,3,4,3,3,3,3,4
  2004.  
  2005.         DEFB    2,2,2,2,3,3,1,1,2,2;28
  2006.         DEFB    2,2,2,2,1,3,2,1,1,1
  2007.  
  2008.         DEFB    2,2,2,2,3,3,1,1,2,2;29
  2009.         DEFB    2,2,2,2,1,3,2,1,2,1
  2010.  
  2011.         DEFB    1,1,1,2,1,1,1,1,2,2;30
  2012.         DEFB    2,1,1,2,1,1,2,1,1,1
  2013.  
  2014.         DEFB    4,4,3,2,4,4,3,2,4,2;31
  2015.         DEFB    4,4,3,3,2,3,4,3,4,3
  2016.  
  2017.         DEFB    1,4,3,2,4,4,3,1,4,2;32
  2018.         DEFB    1,1,1,1,1,1,1,1,1,1
  2019.  
  2020. BONUS   DEFB    15,8,3
  2021.         DEFB    17,3,0
  2022.         DEFB    10,7,0
  2023.         DEFB    12,11,1
  2024.         DEFB    7,5,0
  2025.         DEFB    10,8,0
  2026.         DEFB    15,10,4
  2027.         DEFB    12,7,5
  2028.         DEFB    3,0,0
  2029.         DEFB    18,9,0
  2030.         DEFB    13,3,0
  2031.         DEFB    0,0,0
  2032.         DEFB    15,7,0
  2033.         DEFB    7,6,5
  2034.         DEFB    6,0,1
  2035.         DEFB    10,0,0
  2036.         DEFB    19,13,5
  2037.         DEFB    17,3,0
  2038.         DEFB    13,7,5
  2039.         DEFB    9,0,0
  2040.         DEFB    18,7,2
  2041.         DEFB    16,5,1
  2042.         DEFB    19,10,0
  2043.         DEFB    8,0,0
  2044.         DEFB    16,11,4
  2045.         DEFB    10,7,0
  2046.         DEFB    0,0,0
  2047.         DEFB    17,10,0
  2048.         DEFB    18,12,5
  2049.         DEFB    16,9,4
  2050.         DEFB    19,3,0
  2051.         DEFB    15,0,0
  2052.  
  2053. SM1     DEFB    #10
  2054. SM2     DEFB    #13
  2055. MMM     DEFB    0
  2056. MMM2    DEFB    0
  2057. WERH    DEFW    #C001-4096
  2058. WERH2   DEFW    65536-512
  2059.  
  2060. TIME    DEFB    0
  2061.  
  2062. ;блок перенесён в units
  2063.  
  2064. HISTORE DEFW    0               ;Hi-Score table
  2065.  
  2066.                 DEFS    256
  2067. NEWLEVEL        DEFB    0
  2068.