?login_element?

Subversion Repositories NedoOS

Rev

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

  1. ;*L+
  2. ;*D-
  3.  
  4. ;(C) 1996 Медноногов Алексей
  5. ;Подводный бой с НЛО
  6.         db "Alex "
  7. ANGSNUM EQU     33
  8. SHDSCR  EQU     #9000
  9. VISSCR  EQU     #C000
  10.  
  11. ;       ORG     #B000   ;не трогать
  12.  
  13. RTINF4 DEFB     0,0,0,0,0,0
  14. SHINF4 DEFB     0,0,0
  15.  
  16. BEGIN
  17.  
  18. CMPMOD  BIT     7,A
  19.         JR      NZ,CM1
  20.         CP      B
  21.         RET
  22. CM1     CPL
  23.         CP      B
  24.         CPL
  25.         RET
  26.  
  27. OURENT  EQU T_INTR      ;DEFB 0 ; entry point for our ship (0..2)
  28. HISENT  EQU T_UFO       ;DEFB 1 ; entry point for his ship (0..2)
  29. RETURN  DEFB    0 ; our return parameter
  30. ;0-Ucrash,1-Usit,2-paritet,3-Xwound,4-Xcrash
  31. CMPSGN  XOR     128
  32.         LD      C,A
  33.         LD      A,B
  34.         XOR     128
  35.         LD      B,A
  36.         LD      A,C
  37.         CP      B
  38.         RET
  39.  
  40. ;PLOT2   LD     L,D
  41. ;       LD      H,TAB1/256
  42. ;       LD      B,(HL)
  43. ;       INC     H
  44. ;       LD      C,(HL)
  45. ;       INC     H
  46. ;       LD      L,E
  47. ;       LD      A,(HL)
  48. ;       OR      C
  49. ;       LD      C,A
  50. ;       INC     H
  51. ;       LD      E,(HL)
  52. ;       LD      H,B
  53. ;       LD      L,C
  54. ;       LD      BC,VISSCR-SHDSCR
  55. ;       ADD     HL,BC
  56. ;       CALL    MEM7
  57. ;       LD      A,(HL)
  58. ;       XOR     E
  59. ;       LD      (HL),A
  60. ;       JP      PT128
  61.  
  62. LINE2   PUSH    HL; NEW line from p1(l,h) to p2(e,d)
  63.         PUSH    DE
  64.         PUSH    BC
  65.         LD      B,#15
  66.         LD      C,#1D
  67.         LD      A,E
  68.         SUB     L
  69.         JR      NC,M1LI_
  70.         NEG
  71.         EX      DE,HL
  72. M1LI_   LD      L,A
  73.         LD      A,D
  74.         SUB     H
  75.         JR      NC,M2LI_
  76.         NEG
  77.         DEC     B
  78. M2LI_   LD      H,A
  79.         CP      L
  80.         JR      C,M3LI_
  81.         LD      A,B
  82.         LD      B,C
  83.         LD      C,A
  84.         LD      A,H
  85.         LD      H,L
  86.         LD      L,A
  87. M3LI_   LD      A,B
  88.         LD      (dePENC),A
  89.         LD      A,C
  90.         LD      (inDEPC),A
  91.         PUSH    DE
  92.         LD      C,L
  93.         LD      E,L
  94.         LD      L,H
  95.         CALL    DIVB
  96.         LD      A,E
  97.         LD      (simLIN+1),A
  98.         LD      L,C
  99.         LD      A,L
  100.         LD      (ldLIN+1),A
  101.         LD      A,D
  102.         LD      (decLIN+1),A
  103.         OR      A
  104.         LD      B,E
  105.         RR      B
  106.         INC     B
  107.         OR      A
  108.         RR      C
  109.         POP     DE
  110.         INC     L
  111.         JR      L4LI_
  112. simLIN  LD      B,#FF
  113. L4LI_   PUSH    DE
  114. ;------
  115.         EXX
  116.         POP     DE
  117.         LD      L,D
  118.         LD      H,TAB1/256
  119.         LD      B,(HL)
  120.         INC     H
  121.         LD      C,(HL)
  122.         INC     H
  123.         LD      L,E
  124.         LD      A,(HL)
  125.         OR      C
  126.         LD      C,A
  127.         INC     H
  128.         LD      L,(HL)
  129.         LD      A,(BC)
  130.         OR      L
  131.         LD      (BC),A
  132.         EXX
  133. ;-----
  134. inDEPC  DEC     D
  135.         DEC     L
  136.         JR      Z,retLIN
  137.         LD      A,C
  138. decLIN  SUB     #02
  139.         LD      C,A
  140.         JR      C,ldLIN
  141.         DJNZ    L4LI_
  142. dePENC  DEC     E
  143.         JR      simLIN
  144. ldLIN   ADD     A,#FF
  145.         LD      C,A
  146.         JR      L4LI_
  147. retLIN  POP     BC
  148.         POP     DE
  149.         POP     HL
  150.         RET
  151.  
  152.  
  153. FORMTBL ; forms rescaled cosines table
  154.         ; forms line-drawing aid table
  155.         LD      IX,COSTBL
  156.         LD      HL,ANGLES
  157.         LD      B,ANGSNUM
  158. FTCC1   PUSH    BC
  159.         PUSH    HL
  160.         LD      A,(HL)
  161.         LD      E,0
  162.         LD      B,128
  163. FTCC2   PUSH    BC
  164.         PUSH    AF
  165.         PUSH    DE
  166.         LD      L,A
  167.         CALL    MULB
  168.         LD      (IX),D
  169.         INC     IX
  170.         POP     DE
  171.         POP     AF
  172.         POP     BC
  173.         INC     E
  174.         DJNZ    FTCC2
  175.         POP     HL
  176.         POP     BC
  177.         INC     HL
  178.         DJNZ    FTCC1
  179.         LD      HL,TAB1
  180.         LD      C,4
  181.         LD      A,#90
  182. FTCC21  LD      E,8
  183. FTCC22  PUSH    AF
  184.         LD      B,8
  185. FTCC23  LD      (HL),A
  186.         INC     A
  187.         INC     HL
  188.         DJNZ    FTCC23
  189.         POP     AF
  190.         DEC     E
  191.         JR      NZ,FTCC22
  192.         ADD     A,8
  193.         DEC     C
  194.         JR      NZ,FTCC21
  195.         LD      C,4
  196. FTCC3   LD      E,8
  197.         XOR     A
  198. FTCC4   LD      B,8
  199. FTCC5   LD      (HL),A
  200.         INC     HL
  201.         DJNZ    FTCC5
  202.         ADD     A,32
  203.         DEC     E
  204.         JR      NZ,FTCC4
  205.         DEC     C
  206.         JR      NZ,FTCC3
  207.         LD      C,32
  208.         XOR     A
  209. FTCC6   LD      B,8
  210. FTCC7   LD      (HL),A
  211.         INC     HL
  212.         DJNZ    FTCC7
  213.         INC     A
  214.         DEC     C
  215.         JR      NZ,FTCC6
  216.         LD      A,128
  217.         LD      B,0
  218. FTCC9   LD      (HL),A
  219.         INC     HL
  220.         RRCA
  221.         DJNZ    FTCC9
  222.         RET
  223.  
  224. GETCOS  AND     127
  225.         LD      B,A
  226.         LD      DE,PTTABL
  227.         ADD     HL,DE
  228.         LD      A,(HL)
  229.         BIT     7,A
  230.         PUSH    AF
  231.         JR      Z,GC1
  232.         NEG
  233. GC1     LD      E,A
  234.         LD      D,0
  235.         LD      HL,COSTBL
  236.         ADD     HL,DE
  237.         LD      E,0
  238.         LD      A,B
  239.         AND     96
  240.         CP      32
  241.         JR      Z,GC2PART
  242.         CP      64
  243.         JR      Z,GC3PART
  244.         CP      96
  245.         JR      Z,GC4PART
  246. GC1PART LD      D,B
  247.         SRL     D
  248.         RR      E
  249.         ADD     HL,DE
  250.         LD      B,(HL)
  251.         JR      GCEND
  252. GC2PART LD      A,64
  253.         SUB     B
  254.         LD      D,A
  255.         SRL     D
  256.         RR      E
  257.         ADD     HL,DE
  258.         LD      A,(HL)
  259.         NEG
  260.         LD      B,A
  261.         JR      GCEND
  262. GC3PART LD      A,B
  263.         SUB     64
  264.         LD      D,A
  265.         SRL     D
  266.         RR      E
  267.         ADD     HL,DE
  268.         LD      A,(HL)
  269.         NEG
  270.         LD      B,A
  271.         JR      GCEND
  272. GC4PART LD      A,128
  273.         SUB     B
  274.         LD      D,A
  275.         SRL     D
  276.         RR      E
  277.         ADD     HL,DE
  278.         LD      B,(HL)
  279. GCEND   POP     AF
  280.         LD      A,B
  281.         RET     Z
  282.         NEG
  283.         RET
  284.  
  285. GETSIN  SUB     32
  286.         JP      GETCOS
  287.  
  288. ROTX    LD      A,C
  289.         ADD     A,C
  290.         ADD     A,C
  291.         LD      L,A
  292.         LD      H,0
  293.         INC     HL
  294.         PUSH    HL
  295.         LD      A,D
  296.         LD      C,A
  297.         CALL    GETCOS
  298.         EXX
  299.         LD      C,A
  300.         POP     HL
  301.         PUSH    HL
  302.         DEC     HL
  303.         LD      DE,PTTABL
  304.         ADD     HL,DE
  305.         LD      H,(HL)
  306.         EXX
  307.         LD      A,C
  308.         POP     HL
  309.         PUSH    HL
  310.         INC     HL
  311.         CALL    GETSIN
  312.         EXX
  313.         SUB     C
  314.         NEG
  315.         LD      L,A
  316.         EXX
  317.         POP     HL
  318.         PUSH    HL
  319.         LD      A,C
  320.         CALL    GETSIN
  321.         EXX
  322.         LD      C,A
  323.         EXX
  324.         POP     HL
  325.         INC     HL
  326.         LD      A,C
  327.         CALL    GETCOS
  328.         EXX
  329.         ADD     A,C
  330.         LD      B,A
  331.         RET
  332.  
  333. ROTY    LD      A,C
  334.         ADD     A,C
  335.         ADD     A,C
  336.         LD      L,A
  337.         LD      H,0
  338.         PUSH    HL
  339.         LD      A,D
  340.         LD      C,A
  341.         CALL    GETCOS
  342.         EXX
  343.         LD      C,A
  344.         POP     HL
  345.         INC     HL
  346.         PUSH    HL
  347.         LD      DE,PTTABL
  348.         ADD     HL,DE
  349.         LD      L,(HL)
  350.         EXX
  351.         LD      A,C
  352.         POP     HL
  353.         PUSH    HL
  354.         INC     HL
  355.         CALL    GETSIN
  356.         EXX
  357.         ADD     A,C
  358.         LD      H,A
  359.         EXX
  360.         POP     HL
  361.         PUSH    HL
  362.         DEC     HL
  363.         LD      A,C
  364.         CALL    GETSIN
  365.         EXX
  366.         LD      C,A
  367.         EXX
  368.         POP     HL
  369.         INC     HL
  370.         LD      A,C
  371.         CALL    GETCOS
  372.         EXX
  373.         SUB     C
  374.         LD      B,A
  375.         RET
  376.  
  377. ROTZ    LD      A,C
  378.         ADD     A,C
  379.         ADD     A,C
  380.         LD      L,A
  381.         LD      H,0
  382.         PUSH    HL
  383.         LD      A,D
  384.         LD      C,A
  385.         CALL    GETCOS
  386.         EXX
  387.         LD      C,A
  388.         POP     HL
  389.         INC     HL
  390.         PUSH    HL
  391.         INC     HL
  392.         LD      DE,PTTABL
  393.         ADD     HL,DE
  394.         LD      B,(HL)
  395.         EXX
  396.         LD      A,C
  397.         POP     HL
  398.         PUSH    HL
  399.         CALL    GETSIN
  400.         EXX
  401.         SUB     C
  402.         NEG
  403.         LD      H,A
  404.         EXX
  405.         POP     HL
  406.         PUSH    HL
  407.         DEC     HL
  408.         LD      A,C
  409.         CALL    GETSIN
  410.         EXX
  411.         LD      C,A
  412.         EXX
  413.         POP     HL
  414.         LD      A,C
  415.         CALL    GETCOS
  416.         EXX
  417.         ADD     A,C
  418.         LD      L,A
  419.         RET
  420.  
  421. ROT     LD      B,3
  422.         LD      IX,RTINFO
  423.         LD      A,C
  424.         ADD     A,C
  425.         ADD     A,C
  426.         LD      E,A
  427.         LD      D,0
  428.         LD      HL,PTTABL
  429.         ADD     HL,DE
  430. ROTCYC1 PUSH    BC
  431.         PUSH    IX
  432.         PUSH    HL
  433.         LD      A,(IX)
  434.         OR      A
  435.         JR      Z,RTEND2
  436.         LD      D,(IX+3)
  437.         DEC     A
  438.         JR      NZ,ROT1
  439.         CALL    ROTX
  440.         JR      RTEND1
  441. ROT1    DEC     A
  442.         JR      NZ,ROT2
  443.         CALL    ROTY
  444.         JR      RTEND1
  445. ROT2    DEC     A
  446.         JR      NZ,RTEND2
  447.         CALL    ROTZ
  448. RTEND1 POP      DE
  449.         PUSH    DE
  450.         EX      DE,HL
  451.         LD      (HL),D
  452.         INC     HL
  453.         LD      (HL),E
  454.         INC     HL
  455.         LD      (HL),B
  456. RTEND2 POP      HL
  457.         POP     IX
  458.         POP     BC
  459.         INC     IX
  460.         DJNZ    ROTCYC1
  461.         LD      DE,PTTABL-PTBUFF
  462.         PUSH    HL
  463.         OR      A
  464.         SBC     HL,DE
  465.         POP     DE
  466.         EX      DE,HL ; before ldir
  467.         PUSH    DE
  468.         LD      D,(HL)
  469.         INC     HL
  470.         LD      E,(HL)
  471.         INC     HL
  472.         LD      B,(HL)
  473. RTCFG1 LD       HL,SHINFO
  474.         LD      A,D
  475.         ADD     A,(HL)
  476.         INC     HL
  477.         LD      D,A
  478.         LD      A,E
  479.         ADD     A,(HL)
  480.         INC     HL
  481.         LD      E,A
  482.         LD      A,B
  483.         ADD     A,(HL)
  484.         LD      B,A
  485.         EX      DE,HL
  486. RTCFG2 CALL     RESCALE
  487.         POP     DE
  488.         EX      DE,HL
  489.         LD      (HL),D
  490.         INC     HL
  491.         LD      (HL),E
  492.         INC     HL
  493.         LD      (HL),B
  494.         EX      DE,HL
  495. RTEND   RET
  496.  
  497. NEWROT  LD      DE,RTEND
  498.         LD      (RTCFG2+1),DE
  499.         CALL    ROT
  500.         LD      DE,RESCALE
  501.         LD      (RTCFG2+1),DE
  502.         RET
  503.  
  504. RESCALE LD      A,H
  505.         EXX
  506.         LD      C,A
  507.         NEG
  508.         LD      HL,SCALES
  509.         LD      D,0
  510.         LD      E,A
  511.         ADD     HL,DE
  512.         LD      A,(HL)
  513.         EXX
  514.         LD      E,A
  515.         PUSH    AF
  516.         BIT     7,L
  517.         PUSH    AF
  518.         JR      Z,Rs1
  519.         LD      A,L
  520.         NEG
  521.         LD      L,A
  522. Rs1     CALL    MULB
  523.         POP     AF
  524.         LD      A,D
  525.         JR      Z,Rs2
  526.         NEG
  527. Rs2     EX      AF,AF'
  528.         POP     AF
  529.         LD      L,A
  530.         LD      E,B
  531.         BIT     7,B
  532.         PUSH    AF
  533.         JR      Z,Rs3
  534.         LD      A,B
  535.         NEG
  536.         LD      E,A
  537. Rs3     CALL    MULB
  538.         POP     AF
  539.         LD      A,D
  540.         JR      Z,Rs4
  541.         NEG
  542. Rs4     LD      B,A
  543.         EX      AF,AF'
  544.         LD      L,A
  545.         EXX
  546.         LD      A,C
  547.         EXX
  548.         LD      H,A
  549.         RET
  550.  
  551. SUMUL   BIT     7,L
  552.         PUSH    AF
  553.         JR      Z,SM01
  554.         LD      A,L
  555.         NEG
  556.         LD      L,A
  557. SM01    CALL    MULB
  558.         POP     AF
  559.         RET     Z
  560.         LD      A,D
  561.         CPL
  562.         LD      D,A
  563.         LD      A,E
  564.         CPL
  565.         LD      E,A
  566.         INC     DE
  567.         RET
  568.  
  569. SIGNMUL XOR     A
  570.         BIT     7,L
  571.         JR      Z,SM1
  572.         XOR     1
  573.         EX      AF,AF'
  574.         LD      A,L
  575.         NEG
  576.         LD      L,A
  577.         EX      AF,AF'
  578. SM1     BIT     7,E
  579.         JR      Z,SM2
  580.         XOR     1
  581.         EX      AF,AF'
  582.         LD      A,E
  583.         NEG
  584.         LD      E,A
  585.         EX      AF,AF'
  586. SM2     PUSH    AF
  587.         CALL    MULB
  588.         POP     AF
  589.         OR      A
  590.         RET     Z
  591.         LD      A,D
  592.         CPL
  593.         LD      D,A
  594.         LD      A,E
  595.         CPL
  596.         LD      E,A
  597.         INC     DE
  598.         RET
  599.  
  600. SIGNSRL PUSH    HL
  601.         BIT     7,A
  602.         PUSH    AF
  603.         JR      Z,SS01
  604.         NEG
  605. SS01    SRL     A
  606.         LD      H,A
  607.         POP     AF
  608.         LD      A,H
  609.         POP     HL
  610.         RET     Z
  611.         NEG
  612.         RET
  613.  
  614. SGNSRL2 BIT     7,D
  615.         PUSH    AF
  616.         JR      Z,SS1
  617.         LD      A,D
  618.         CPL
  619.         LD      D,A
  620.         LD      A,E
  621.         CPL
  622.         LD      E,A
  623.         INC     DE
  624. SS1     SRL     D
  625.         RR      E
  626.         SRL     D
  627.         RR      E
  628.         SRL     D
  629.         RR      E
  630.         POP     AF
  631.         RET     Z
  632.         LD      A,D
  633.         CPL
  634.         LD      D,A
  635.         LD      A,E
  636.         CPL
  637.         LD      E,A
  638.         INC     DE
  639.         RET
  640.  
  641. NORMVEC DEFS    3
  642. PREVNRM DEFS    2
  643.  
  644. DRWOBJ  ;draws object
  645.         display "DRWOBJ=",DRWOBJ
  646.         XOR     A
  647.         LD      (PREVNRM),A
  648.         LD      DE,PTSNUM
  649.         LD      BC,28
  650.         LDIR
  651.         LD      HL,(PPTS)
  652.         LD      DE,PTTABL
  653.         LD      BC,64*3
  654.         LDIR
  655.         LD      A,(INIFLAG)
  656.         OR      A
  657.         JR      NZ,DONXT1
  658.         LD      HL,DONXT1
  659.         PUSH    HL
  660.         LD      HL,(INIPTR)
  661.         JP      (HL) ;первый раз = в SMT3INI
  662. DONXT1  LD      HL,DONXT2
  663.         PUSH    HL
  664.         LD      HL,(SMTPTR)
  665.         JP      (HL)
  666. DONXT2  LD      A,(CSRFLAG)
  667.         OR      A
  668.         CALL    NZ,DRWCSR
  669.         LD      HL,(ROTPTR)
  670.         LD      DE,RTINFO
  671.         LD      BC,6
  672.         LDIR
  673.         LD      HL,(SHIPTR)
  674.         LD      DE,SHINFO
  675.         LD      BC,3
  676.         LDIR
  677.         LD      HL,PTDRAW
  678.         LD      DE,PTDRAW+1
  679.         LD      BC,64-1
  680.         LD      (HL),0
  681.         LDIR
  682.         LD      HL,LNDRAW
  683.         LD      DE,LNDRAW+1
  684.         LD      BC,64-1
  685.         LD      (HL),0
  686.         LDIR
  687.         LD      IX,(PPGP)
  688.         LD      A,(PGSNUM)
  689.         LD      B,A
  690. DOCYC1  PUSH    BC
  691.         PUSH    IX
  692.         LD      E,(IX)
  693.         LD      D,(IX+1)
  694.         DEFB    #DD
  695.         LD      H,D
  696.         DEFB    #DD
  697.         LD      L,E
  698.         LD      E,(IX+1)
  699.         LD      A,(PREVNRM)
  700.         CP      E
  701.         LD      A,E
  702.         LD      (PREVNRM),A
  703.         JR      NZ,DO001
  704.         LD      A,(PREVNRM+1)
  705.         OR      A
  706.         JP      DOVISIB
  707. DO001   LD      A,(IX+3)
  708.         OR      A
  709.         JR      NZ,DO00
  710.         LD      A,(IX+2)
  711.         OR      A
  712.         JP      Z,DOVIS0
  713. DO00    LD      H,(IX+3)
  714.         LD      L,(IX+2)
  715.         INC     HL
  716.         INC     HL
  717.         LD      (HL),1
  718.         LD      E,(IX+4)
  719.         DEC     E
  720.         LD      D,0
  721.         LD      HL,(PLNS)
  722.         ADD     HL,DE
  723.         ADD     HL,DE
  724.         LD      E,(HL)
  725.         LD      D,0
  726.         LD      HL,(PPTS)
  727.         ADD     HL,DE
  728.         ADD     HL,DE
  729.         ADD     HL,DE
  730.         LD      DE,63*3+PTTABL
  731.         LDI
  732.         LDI
  733.         LDI
  734.         LD      C,(IX+1)
  735.         LD      DE,NULINFO
  736.         LD      (RTCFG1+1),DE
  737.         PUSH    IX
  738.         CALL    NEWROT
  739.         LD      (NORMVEC),HL
  740.         LD      A,B
  741.         LD      (NORMVEC+2),A
  742.         LD      DE,SHINFO
  743.         LD      (RTCFG1+1),DE
  744.         LD      C,63
  745.         CALL    NEWROT
  746.         LD      A,H
  747.         CALL    SIGNSRL
  748.         LD      H,A
  749.         LD      A,107
  750.         SUB     H
  751.         EXX
  752.         LD      E,A
  753.         LD      A,(NORMVEC+1)
  754.         LD      L,A
  755.         CALL    SUMUL
  756.         LD      A,D
  757.         CPL
  758.         LD      D,A
  759.         LD      A,E
  760.         CPL
  761.         LD      E,A
  762.         INC     DE
  763.         CALL    SGNSRL2
  764.         PUSH    DE
  765.         EXX
  766.         LD      A,L
  767.         CALL    SIGNSRL
  768.         EXX
  769.         LD      L,A
  770.         LD      A,(NORMVEC)
  771.         LD      E,A
  772.         CALL    SIGNMUL
  773.         CALL    SGNSRL2
  774.         PUSH    DE
  775.         EXX
  776.         LD      A,B
  777.         CALL    SIGNSRL
  778.         LD      L,A
  779.         LD      A,(NORMVEC+2)
  780.         LD      E,A
  781.         CALL    SIGNMUL
  782.         CALL    SGNSRL2
  783.         POP     HL
  784.         ADD     HL,DE
  785.         POP     DE
  786.         ADD     HL,DE
  787.         POP     IX
  788.         LD      A,H
  789.         AND     128
  790.         JR      Z,DOVIS0
  791.         LD      H,(IX+3)
  792.         LD      L,(IX+2)
  793.         INC     HL
  794.         INC     HL
  795.         LD      (HL),0
  796. DOVIS0  LD      (PREVNRM+1),A
  797. DOVISIB JP      Z,DOEND1
  798.         LD      B,(IX)
  799.         INC     IX
  800.         INC     IX
  801.         INC     IX
  802.         INC     IX
  803. DOCYC2  PUSH    BC
  804.         PUSH    IX
  805.         LD      E,(IX)
  806.         DEC     E
  807.         LD      D,0
  808.         LD      HL,LNDRAW
  809.         ADD     HL,DE
  810.         LD      A,(HL)
  811.         OR      A
  812.         JP      NZ,DOEND2
  813.         LD      (HL),1
  814.         LD      HL,(PLNS)
  815.         ADD     HL,DE
  816.         ADD     HL,DE
  817.         LD      E,(HL)
  818.         LD      D,0
  819.         PUSH    HL
  820.         POP     IY
  821.         LD      HL,PTDRAW
  822.         ADD     HL,DE
  823.         LD      A,(HL)
  824.         OR      A
  825.         JR      NZ,DO1
  826.         LD      (HL),1
  827.         LD      C,E
  828.         CALL    ROT
  829.         JR      DO2
  830. DO1     LD      HL,PTBUFF
  831.         ADD     HL,DE
  832.         ADD     HL,DE
  833.         ADD     HL,DE
  834.         LD      D,(HL)
  835.         INC     HL
  836.         LD      E,(HL)
  837.         INC     HL
  838.         LD      B,(HL)
  839.         EX      DE,HL
  840. DO2     LD      A,128
  841.         ADD     A,L
  842.         LD      L,A
  843.         LD      A,B
  844.         NEG
  845.         LD      B,A
  846.         LD      A,64
  847.         ADD     A,B
  848.         LD      H,A
  849.         PUSH    HL ; L - screen x (our y+dy)
  850.                    ; H - screen y (our -z+dz)
  851.         LD      E,(IY+1)
  852.         LD      D,0
  853.         LD      HL,PTDRAW
  854.         ADD     HL,DE
  855.         LD      A,(HL)
  856.         OR      A
  857.         JR      NZ,DO3
  858.         LD      (HL),1
  859.         LD      C,E
  860.         CALL    ROT
  861.         JR      DO4
  862. DO3     LD      HL,PTBUFF
  863.         ADD     HL,DE
  864.         ADD     HL,DE
  865.         ADD     HL,DE
  866.         LD      D,(HL)
  867.         INC     HL
  868.         LD      E,(HL)
  869.         INC     HL
  870.         LD      B,(HL)
  871.         EX      DE,HL
  872. DO4     LD      A,128
  873.         ADD     A,L
  874.         LD      L,A
  875.         LD      A,B
  876.         NEG
  877.         LD      B,A
  878.         LD      A,64
  879.         ADD     A,B
  880.         LD      H,A
  881.         POP     DE
  882.         CALL    LINE2
  883. DOEND2  POP     IX
  884.         POP     BC
  885.         INC     IX
  886.         DEC     B
  887.         LD      A,B
  888.         OR      A
  889.         JP      NZ,DOCYC2
  890. DOEND1  POP     IX
  891.         INC     IX
  892.         INC     IX
  893.         POP     BC
  894.         DEC     B
  895.         JP      NZ,DOCYC1
  896. END     RET
  897.  
  898. CLS     LD      (CLS1+1),SP
  899.         LD      SP,SHDSCR+4096
  900.         LD      HL,0
  901.         LD      B,64
  902. CLSCYC1 PUSH    HL
  903.         PUSH    HL
  904.         PUSH    HL
  905.         PUSH    HL
  906.         PUSH    HL
  907.         PUSH    HL
  908.         PUSH    HL
  909.         PUSH    HL
  910.         PUSH    HL
  911.         PUSH    HL
  912.         PUSH    HL
  913.         PUSH    HL
  914.         PUSH    HL
  915.         PUSH    HL
  916.         PUSH    HL
  917.         PUSH    HL
  918.         PUSH    HL
  919.         PUSH    HL
  920.         PUSH    HL
  921.         PUSH    HL
  922.         PUSH    HL
  923.         PUSH    HL
  924.         PUSH    HL
  925.         PUSH    HL
  926.         PUSH    HL
  927.         PUSH    HL
  928.         PUSH    HL
  929.         PUSH    HL
  930.         PUSH    HL
  931.         PUSH    HL
  932.         PUSH    HL
  933.         PUSH    HL
  934.         DJNZ    CLSCYC1
  935. CLS1    LD      SP,0
  936.         RET
  937.  
  938. VIEWSR  CALL    MEM7
  939.         LD      HL,SHDSCR+34 ;пересылка 2/3 экрана
  940.         LD      DE,VISSCR+34
  941.         XOR     A
  942.         EX      AF,AF'
  943.         LD      A,126
  944. VSCYC1  LDI
  945.         LDI
  946.         LDI
  947.         LDI;
  948.         LDI
  949.         LDI
  950.         LDI
  951.         LDI;
  952.         LDI
  953.         LDI
  954.         LDI
  955.         LDI;
  956.         LDI
  957.         LDI
  958.         LDI
  959.         LDI;
  960.         LDI
  961.         LDI
  962.         LDI
  963.         LDI;
  964.         LDI
  965.         LDI
  966.         LDI
  967.         LDI;
  968.         LDI
  969.         LDI
  970.         LDI
  971.         LDI;
  972.       ;LDI
  973.       ;LDI
  974.       ;LDI
  975.       ;LDI;
  976.         LD      BC,4
  977.         ADD     HL,BC
  978.         EX      DE,HL
  979.         ADD     HL,BC
  980.         EX      DE,HL
  981.         DEC     A
  982. VSCFG1  JP      NZ,VSCYC1
  983.         NOP
  984.         NOP
  985.         NOP
  986.         JP      PT128
  987.  
  988. SUBSTCD CALL    SOUND
  989.         JP      NZ,VSCYC1
  990.  
  991. SOUND   EX      AF,AF'
  992.         XOR     16
  993.         OUT     (#FE),A
  994.         EX      AF,AF'
  995.         RET
  996.  
  997. VIEWS2  LD      HL,VSCFG1
  998.         LD      DE,CODEBUF
  999.         LD      BC,6
  1000.         LDIR
  1001.         LD      HL,SUBSTCD
  1002.         LD      DE,VSCFG1
  1003.         LD      C,6
  1004.         LDIR
  1005.         CALL    VIEWSR
  1006.         LD      DE,VSCFG1
  1007.         LD      HL,CODEBUF
  1008.         LD      BC,6
  1009.         LDIR
  1010.         XOR     A
  1011.         LD      (ISSOUND),A
  1012.         RET
  1013.  
  1014. FRAMINI LD      (FR1CFG1+1),SP ;очистка + рамка
  1015.         LD      HL,SHDSCR
  1016.         LD      DE,SHDSCR+1
  1017.         LD      BC,6144
  1018.         LD      (HL),0
  1019.         LDIR
  1020.         LD      BC,767
  1021.         LD      (HL),#45
  1022.         LDIR
  1023.         LD      B,127
  1024.         LD      HL,SHDSCR+32
  1025.         LD      DE,29
  1026. FR1CC1  LD      (HL),128
  1027.         INC     HL
  1028.         LD      (HL),1
  1029.         ADD     HL,DE
  1030.         LD      (HL),128
  1031.         INC     HL
  1032.         LD      (HL),1
  1033.         INC     HL
  1034.         DJNZ    FR1CC1
  1035.         LD      HL,SHDSCR+4096
  1036.         LD      B,63
  1037.         LD      DE,31
  1038. FR1CC2  LD      (HL),128
  1039.         ADD     HL,DE
  1040.         LD      (HL),1
  1041.         INC     HL
  1042.         DJNZ    FR1CC2
  1043.         LD      SP,SHDSCR+32
  1044.         LD      A,2
  1045.         LD      HL,#FFFF
  1046. FR1CC3  PUSH    HL
  1047.         PUSH    HL
  1048.         PUSH    HL
  1049.         PUSH    HL
  1050.         PUSH    HL
  1051.         PUSH    HL
  1052.         PUSH    HL
  1053.         PUSH    HL
  1054.         DEC     A
  1055.         JR      NZ,FR1CC3
  1056.         LD      SP,SHDSCR+6144
  1057.         LD      A,2
  1058. FR1CC4 PUSH     HL
  1059.         PUSH    HL
  1060.         PUSH    HL
  1061.         PUSH    HL
  1062.         PUSH    HL
  1063.         PUSH    HL
  1064.         PUSH    HL
  1065.         PUSH    HL
  1066.         DEC     A
  1067.         JR      NZ,FR1CC4
  1068.         LD      SP,SHDSCR+4096
  1069.         LD      A,2
  1070. FR1CC5 PUSH     HL
  1071.         PUSH    HL
  1072.         PUSH    HL
  1073.         PUSH    HL
  1074.         PUSH    HL
  1075.         PUSH    HL
  1076.         PUSH    HL
  1077.         PUSH    HL
  1078.         DEC     A
  1079.         JR      NZ,FR1CC5
  1080. FR1CFG1 LD      SP,0
  1081.         LD      A,(HISPWR)
  1082.         LD      B,A
  1083.         LD      DE,#9230
  1084.         LD      HL,#9E30
  1085. FR1CC6 PUSH     BC
  1086.         PUSH    HL
  1087.         PUSH    DE
  1088.         CALL    LINE2
  1089.         POP     DE
  1090.         POP     HL
  1091.         POP     BC
  1092.         INC     L
  1093.         INC     E
  1094.         DJNZ    FR1CC6
  1095.         LD      A,(OURPWR)
  1096.         LD      B,A
  1097.         LD      DE,#A230
  1098.         LD      HL,#AE30
  1099. FR1CC7 PUSH     BC
  1100.         PUSH    HL
  1101.         PUSH    DE
  1102.         CALL    LINE2
  1103.         POP     DE
  1104.         POP     HL
  1105.         POP     BC
  1106.         INC     L
  1107.         INC     E
  1108.         DJNZ    FR1CC7
  1109.         CALL    STD
  1110.         LD      BC,#606
  1111.         LD      HL,#1101
  1112.         LD      A,7
  1113.         CALL    ATRBAR
  1114.         LD      L,C
  1115.         LD      BC,#1903
  1116.         LD      A,#43
  1117.         CALL    ATRBAR
  1118.         LD      H,#14
  1119.         LD      A,#46
  1120.         CALL    ATRBAR
  1121.         Ms      3
  1122.         LD      HL,#1201
  1123.         LD      BC,#404
  1124.         LD      DE,xBBUTTN
  1125.         CALL    PUTSIM
  1126.         CALL    STS
  1127.         CHNs    XOR_
  1128.         ;------цвета и спрайты
  1129.         CALL    OFFS
  1130.         CALL    COPYAT
  1131.         JP      PT128
  1132.  
  1133. FRAME   LD      (FR2CFG1+1),SP ;рамка в бою
  1134.         LD      B,127
  1135.         LD      HL,SHDSCR+32
  1136.         LD      DE,29
  1137. FR2CC1  LD      (HL),128
  1138.         INC     HL
  1139.         LD      (HL),1
  1140.         ADD     HL,DE
  1141.         LD      (HL),128
  1142.         INC     HL
  1143.         LD      (HL),1
  1144.         INC     HL
  1145.         DJNZ    FR2CC1
  1146.         LD      SP,SHDSCR+32
  1147.         LD      A,2
  1148.         LD      HL,#FFFF
  1149. FR2CC3  PUSH    HL
  1150.         PUSH    HL
  1151.         PUSH    HL
  1152.         PUSH    HL
  1153.         PUSH    HL
  1154.         PUSH    HL
  1155.         PUSH    HL
  1156.         PUSH    HL
  1157.         DEC     A
  1158.         JR      NZ,FR2CC3
  1159.         LD      SP,SHDSCR+4096
  1160.         LD      A,2
  1161. FR2CC5  PUSH    HL
  1162.         PUSH    HL
  1163.         PUSH    HL
  1164.         PUSH    HL
  1165.         PUSH    HL
  1166.         PUSH    HL
  1167.         PUSH    HL
  1168.         PUSH    HL
  1169.         DEC     A
  1170.         JR      NZ,FR2CC5
  1171. FR2CFG1 LD      SP,0
  1172.         RET
  1173.  
  1174. SNOWINI LD      HL,SNOWTAB
  1175.         LD      DE,SNOWTAB+1
  1176.         LD      BC,31
  1177.         LD      (HL),0
  1178.         LD      (SNOWPTR),HL
  1179.         LDIR
  1180.         LD      HL,BEGIN
  1181.         LD      (RNDPTR),HL
  1182.         RET
  1183.  
  1184. SNOW    LD      HL,(RNDPTR)
  1185.         INC     HL
  1186.         LD      (RNDPTR),HL
  1187.         LD      A,H
  1188.         CP      END/256
  1189.         JR      C,SN1
  1190.         LD      HL,BEGIN
  1191.         LD      (RNDPTR),HL
  1192. SN1     LD      A,(HL)
  1193.         INC     HL
  1194.         XOR     (HL)
  1195.         AND     63
  1196.         LD      HL,(SNOWPTR)
  1197.         LD      (HL),A
  1198.         LD      C,L
  1199.         INC     L
  1200.         RES     5,L
  1201.         LD      (SNOWPTR),HL
  1202.         LD      L,C
  1203.         SLA     L
  1204.         LD      DE,RNDTAB-SNOWTAB
  1205.         ADD     HL,DE
  1206.         EX      DE,HL
  1207.         LD      C,A
  1208.         LD      B,0
  1209.         SLA     C
  1210.         LD      HL,RNDPTS
  1211.         ADD     HL,BC
  1212.         LDI
  1213.         LDI
  1214.         LD      HL,(RNDPTR)
  1215.         INC     HL
  1216.         LD      (RNDPTR),HL
  1217.         LD      A,H
  1218.         CP      END/256
  1219.         JR      C,SN2
  1220.         LD      HL,BEGIN
  1221.         LD      (RNDPTR),HL
  1222. SN2     LD      A,(HL)
  1223.         AND     63
  1224.         LD      HL,(SNOWPTR)
  1225.         LD      (HL),A
  1226.         LD      C,L
  1227.         INC     L
  1228.         RES     5,L
  1229.         LD      (SNOWPTR),HL
  1230.         LD      L,C
  1231.         SLA     L
  1232.         LD      DE,RNDTAB-SNOWTAB
  1233.         ADD     HL,DE
  1234.         EX      DE,HL
  1235.         LD      C,A
  1236.         LD      B,0
  1237.         SLA     C
  1238.         LD      HL,RNDPTS
  1239.         ADD     HL,BC
  1240.         LDI
  1241.         LDI
  1242.         LD      B,32
  1243.         LD      HL,(SNOWPTR)
  1244. SNCYC1  PUSH    BC
  1245.         PUSH    HL
  1246.         LD      A,(HL)
  1247.         OR      A
  1248.         JR      Z,SNEND1
  1249.         LD      E,L
  1250.         LD      D,0
  1251.         SLA     E
  1252.         LD      HL,RNDTAB
  1253.         ADD     HL,DE
  1254.         LD      IX,MASK
  1255.         LD      A,(HL)
  1256.         ADD     A,(IX+1)
  1257.         SUB     (IX)
  1258.         LD      E,A
  1259.         LD      (HL),A
  1260.         INC     HL
  1261.         LD      A,(HL)
  1262.         ADD     A,(IX+2)
  1263.         SUB     (IX+3)
  1264.         LD      D,A
  1265.         LD      (HL),A
  1266.         LD      A,B
  1267.         SLA     A
  1268.         SLA     A
  1269.         SLA     A
  1270.         SLA     A
  1271.         SUB     128
  1272.         LD      H,A
  1273.         LD      L,E
  1274.         LD      B,D
  1275.         CALL    RESCALE
  1276.         LD      A,L
  1277.         ADD     A,128
  1278.         LD      E,A
  1279.         LD      A,B
  1280.         NEG
  1281.         ADD     A,64
  1282.         LD      D,A
  1283. PLOT_   LD      L,D
  1284.         LD      H,TAB1/256
  1285.         LD      B,(HL)
  1286.         INC     H
  1287.         LD      C,(HL)
  1288.         INC     H
  1289.         LD      L,E
  1290.         LD      A,(HL)
  1291.         OR      C
  1292.         LD      C,A
  1293.         INC     H
  1294.         LD      L,(HL)
  1295.         LD      A,(BC)
  1296.         OR      L
  1297.         LD      (BC),A
  1298. SNEND1  POP     HL
  1299.         POP     BC
  1300.         INC     L
  1301.         RES     5,L
  1302.         DJNZ    SNCYC1
  1303.         RET
  1304.  
  1305. CSRINI  LD      HL,0
  1306.         LD      (MASK),HL
  1307.         LD      (MASK+2),HL
  1308.         RET
  1309.  
  1310. DRWCSR  CALL    CONTR
  1311.         LD      HL,MASK
  1312.         LD      A,(CONTRB)
  1313.         LD      B,A
  1314.         LD      A,(HL)
  1315.         DEC     A
  1316.         XOR     255
  1317.         CPL
  1318.         JR      Z,DC0
  1319.         LD      (HL),A
  1320. DC0     BIT     0,B
  1321.         JR      Z,DC1
  1322.         LD      A,(HL)
  1323.         INC     A
  1324.         INC     A
  1325.         BIT     3,A
  1326.         JR      NZ,DC1
  1327.         LD      (HL),A
  1328. DC1     INC     HL
  1329.         LD      A,(HL)
  1330.         DEC     A
  1331.         XOR     255
  1332.         CPL
  1333.         JR      Z,DC11
  1334.         LD      (HL),A
  1335. DC11    BIT     1,B
  1336.         JR      Z,DC2
  1337.         LD      A,(HL)
  1338.         INC     A
  1339.         INC     A
  1340.         BIT     3,A
  1341.         JR      NZ,DC2
  1342.         LD      (HL),A
  1343. DC2     INC     HL
  1344.         LD      A,(HL)
  1345.         DEC     A
  1346.         XOR     255
  1347.         CPL
  1348.         JR      Z,DC22
  1349.         LD      (HL),A
  1350. DC22    BIT     2,B
  1351.         JR      Z,DC3
  1352.         LD      A,(HL)
  1353.         INC     A
  1354.         INC     A
  1355.         BIT     3,A
  1356.         JR      NZ,DC3
  1357.         LD      (HL),A
  1358. DC3     INC     HL
  1359.         LD      A,(HL)
  1360.         DEC     A
  1361.         XOR     255
  1362.         CPL
  1363.         JR      Z,DC33
  1364.         LD      (HL),A
  1365. DC33    BIT     3,B
  1366.         JR      Z,DC4
  1367.         LD      A,(HL)
  1368.         INC     A
  1369.         INC     A
  1370.         BIT     3,A
  1371.         JR      NZ,DC4
  1372.         LD      (HL),A
  1373. DC4     LD      IX,MASK
  1374.         LD      HL,(SHIPTR)
  1375.         INC     HL
  1376.         LD      A,(RANGE+1)
  1377.         LD      B,A
  1378.         LD      A,(HL)
  1379.         SUB     (IX)
  1380.         ADD     A,(IX+1)
  1381.         CALL    CMPMOD
  1382.         JR      C,DC5
  1383.         XOR     A
  1384.         LD      (MASK),A
  1385.         LD      (MASK+1),A
  1386. DC5     INC     HL
  1387.         LD      A,(RANGE+2)
  1388.         LD      B,A
  1389.         LD      A,(HL)
  1390.         ADD     A,(IX+2)
  1391.         SUB     (IX+3)
  1392.         CALL    CMPMOD
  1393.         JR      C,DC6
  1394.         XOR     A
  1395.         LD      (MASK+2),A
  1396.         LD      (MASK+3),A
  1397. DC6     LD      E,128
  1398.         LD      L,E
  1399.         LD      H,52
  1400.         LD      D,60
  1401.         CALL    LINE2
  1402.         LD      E,128
  1403.         LD      L,E
  1404.         LD      H,68
  1405.         LD      D,76
  1406.         CALL    LINE2
  1407.         LD      HL,SHDSCR+2048+14
  1408.         LD      (HL),15
  1409.         INC     HL
  1410.         LD      (HL),15*16
  1411.         INC     HL
  1412.         LD      (HL),15
  1413.         INC     HL
  1414.         LD      (HL),15*16
  1415.         RET
  1416.  
  1417. MAININI XOR     A
  1418.         LD      (INIFLAG),A
  1419.         LD      (CSRFLAG),A
  1420.         LD      (FIRE_c),A
  1421.         LD      (HISCNT),A
  1422.         LD      (OURCNT),A
  1423.         LD      (REACT),A
  1424.         LD      (ISSOUND),A
  1425.         LD      A,(OURENT)
  1426.         LD      B,A
  1427.         ADD     A,B
  1428.         ADD     A,B
  1429.         PUSH    AF
  1430.         LD      A,(HISENT)
  1431.         LD      E,A
  1432.         LD      D,0
  1433.         SLA     E
  1434.         LD      HL,CMPLXTY
  1435.         ADD     HL,DE
  1436.         LD      DE,MNGPTR
  1437.         LDI
  1438.         LDI
  1439.         POP     BC
  1440.         ADD     A,B
  1441.         LD      E,A
  1442.         LD      D,0
  1443.         SLA     E
  1444.         SLA     E
  1445.         LD      HL,PARAMTB
  1446.         ADD     HL,DE
  1447.         LD      DE,HISPWR
  1448.         LD      BC,4
  1449.         LDIR
  1450.         LD      A,(OURPWR)
  1451.         LD      (OINIPWR),A
  1452.         XOR     A
  1453.         OUT     (#FE),A
  1454.         ;---------------
  1455. ;       CALL    MEM7
  1456. ;       LD      HL,VISSCR ;очистка экрана и атрибутов
  1457. ;       LD      DE,VISSCR+1
  1458. ;       LD      BC,6144
  1459. ;       LD      (HL),L
  1460. ;       LDIR
  1461. ;       LD      (HL),7
  1462. ;       LD      BC,767
  1463. ;       LDIR
  1464. ;       CALL    PT128
  1465.         RET
  1466.  
  1467. BASEINI
  1468. BICFG1  LD      A,176
  1469.         PUSH    HL
  1470.         LD      HL,(SHIPTR)
  1471.         LD      (HL),A
  1472.         XOR     A
  1473.         INC     HL
  1474.         LD      (HL),A
  1475.         INC     HL
  1476.         LD      (HL),A
  1477.         LD      A,32
  1478.         LD      IX,(MNGPTR)
  1479.         LD      (IX+24),A
  1480.         LD      A,1
  1481.         LD      (INIFLAG),A
  1482.         LD      (IX+22),A
  1483.         XOR     A
  1484.         LD      IX,(ROTPTR)
  1485.         LD      (IX+3),A
  1486.         LD      IX,(MNGPTR)
  1487.         LD      (IX+25),A
  1488.         LD      HL,SM1END
  1489.         LD      (IX+13),L
  1490.         LD      (IX+14),H
  1491.         CALL    CLS
  1492. BICFG2  LD      B,20
  1493. BICYC1  PUSH    BC
  1494.         LD      HL,(ROTPTR)
  1495.         INC     HL
  1496.         INC     HL
  1497.         INC     HL
  1498.         LD      A,4
  1499.         ADD     A,(HL)
  1500.         LD      (HL),A
  1501.         LD      HL,(MNGPTR)
  1502.         CALL    DRWOBJ
  1503.         CALL    SNOW
  1504.         CALL    FRAME
  1505.         CALL    VIEWSR
  1506.         CALL    CLS
  1507.         LD      HL,(SHIPTR)
  1508.         LD      A,8
  1509.         ADD     A,(HL)
  1510.         LD      (HL),A
  1511.         POP     BC
  1512.         DJNZ    BICYC1
  1513.         POP     HL
  1514.         LD      IX,(MNGPTR)
  1515.         LD      (IX+13),L
  1516.         LD      (IX+14),H
  1517.         LD      A,1
  1518.         LD      (CSRFLAG),A
  1519.         LD      HL,(PPTS)
  1520.         LD      DE,PTTABL
  1521.         LD      BC,64*3
  1522.         LDIR
  1523.         RET
  1524.  
  1525. SMT1INI LD      HL,SMART1
  1526.         CALL    BASEINI
  1527.         RET
  1528.  
  1529. SMT2INI LD      A,1
  1530.         LD      (INIFLAG),A
  1531.         LD      (OBINF2+22),A
  1532.         LD      (FIRE_c),A
  1533.         LD      HL,0
  1534.         LD      (SHINF2+1),HL
  1535.         LD      (SHINFO+1),HL
  1536.         LD      A,127
  1537.         LD      (SHINF2),A
  1538.         LD      (SHINFO),A
  1539.         XOR     A
  1540.         LD      (RTINF2+3),A
  1541.         LD      (RTINFO+3),A
  1542.         RET
  1543.  
  1544. SMT3INI LD      HL,SMART3
  1545.         CALL    BASEINI
  1546.         RET
  1547.  
  1548. SMT4INI LD      A,1
  1549.         LD      (INIFLAG),A
  1550.         LD      (OBINF4+22),A
  1551.         LD      IX,(MNGPTR)
  1552.         LD      E,(IX+11)
  1553.         LD      D,(IX+12)
  1554.         EX      DE,HL
  1555.         LD      A,(HL)
  1556.         SUB     32 ; "shifting" reality !
  1557.         LD      (SHINF4),A
  1558.         LD      (SHINFO),A
  1559.         INC     HL
  1560.         LD      A,(HL)
  1561.         LD      (SHINF4+1),A
  1562.         LD      (SHINFO+1),A
  1563.         CALL    SIGNSRL
  1564.         CALL    SIGNSRL
  1565.         LD      (HBULSFT),A
  1566.         INC     HL
  1567.         LD      A,(HL)
  1568.         LD      (SHINF4+2),A
  1569.         LD      (SHINFO+2),A
  1570.         CALL    SIGNSRL
  1571.         CALL    SIGNSRL
  1572.         LD      (HBULSFT+1),A
  1573.         RET
  1574.  
  1575. SMT5INI LD      HL,BICFG2+1
  1576.         PUSH    HL
  1577.         LD      A,(HL)
  1578.         PUSH    AF
  1579.         LD      A,14
  1580.         LD      (HL),A
  1581.         LD      A,2
  1582.         LD      (RTINF5+1),A
  1583.         LD      A,64
  1584.         LD      (RTINF5+4),A
  1585.         LD      HL,SM1END
  1586.         CALL    BASEINI
  1587.         POP     AF
  1588.         POP     HL
  1589.         LD      (HL),A
  1590.         XOR     A
  1591.         LD      (CSRFLAG),A
  1592.         LD      HL,RTINF5+3
  1593.         LD      A,(HL)
  1594.         ADD     A,4
  1595.         LD      (HL),A
  1596.         LD      A,63
  1597. S5ICYC1 PUSH    AF
  1598.         LD      (RTINF5+4),A
  1599.         LD      HL,SHINF5
  1600.         BIT     1,A
  1601.         JR      NZ,S5I1
  1602.         INC     (HL)
  1603. S5I1    AND     1
  1604.         ADD     A,(HL)
  1605.         LD      (HL),A
  1606.         LD      HL,OBINF5
  1607.         CALL    DRWOBJ
  1608.         CALL    SNOW
  1609.         CALL    FRAME
  1610.         CALL    VIEWSR
  1611.         CALL    CLS
  1612.         LD      HL,RTINF5+3
  1613.         LD      A,(HL)
  1614.         ADD     A,4
  1615.         LD      (HL),A
  1616.         POP     AF
  1617.         DEC     A
  1618.         JR      NZ,S5ICYC1
  1619.         LD      (RTINF5+1),A
  1620.         LD      HL,SMART5
  1621.         LD      (OBINF5+13),HL
  1622.         LD      A,1
  1623.         LD      (CSRFLAG),A
  1624.         LD      HL,(PPTS)
  1625.         LD      DE,PTTABL
  1626.         LD      BC,64*3
  1627.         LDIR
  1628.         RET
  1629.  
  1630. BASESHI LD      IX,MASK
  1631.         LD      HL,(SHIPTR)
  1632.         INC     HL
  1633.         LD      A,(HL)
  1634.         SUB     (IX)
  1635.         ADD     A,(IX+1)
  1636.         LD      (HL),A
  1637.         LD      (SHINFO+1),A
  1638.         INC     HL
  1639.         LD      A,(HL)
  1640.         ADD     A,(IX+2)
  1641.         SUB     (IX+3)
  1642.         LD      (HL),A
  1643.         LD      (SHINFO+2),A
  1644.         RET
  1645.  
  1646. ALTSHI  LD      IX,(MNGPTR)
  1647.         LD      IY,(SHIPTR)
  1648.         LD      A,(DIRVECN)
  1649.         LD      L,A
  1650.         ADD     A,L
  1651.         ADD     A,L
  1652.         LD      L,A
  1653.         LD      H,0
  1654.         INC     HL
  1655.         PUSH    HL
  1656.         LD      A,(FY0)
  1657.         LD      B,A
  1658.         LD      A,(DFY)
  1659.         ADD     A,B
  1660.         LD      (IX+24),A
  1661.         CALL    GETSIN
  1662.         LD      HL,SHINFO+1
  1663.         ADD     A,(HL)
  1664.         LD      HL,RANGE+1
  1665.         LD      B,(HL)
  1666.         CALL    CMPMOD
  1667.         JR      NC,AS1
  1668.         LD      (SHINFO+1),A
  1669.         LD      (IY+1),A
  1670. AS1     LD      A,(FZ0)
  1671.         LD      HL,DFZ
  1672.         ADD     A,(HL)
  1673.         LD      (IX+25),A
  1674.         POP     HL
  1675.         INC     HL
  1676.         CALL    GETSIN
  1677.         LD      HL,SHINFO+2
  1678.         ADD     A,(HL)
  1679.         LD      HL,RANGE+2
  1680.         LD      B,(HL)
  1681.         CALL    CMPMOD
  1682.         JR      NC,AS2
  1683.         LD      (SHINFO+2),A
  1684.         LD      (IY+2),A
  1685. AS2     RET
  1686.  
  1687. SMART1  LD      A,(RTINF1+3)
  1688.         ADD     A,4
  1689.         LD      (RTINF1+3),A
  1690.         CALL    BASESHI
  1691.         CALL    ALTSHI
  1692.         LD      A,1
  1693.         LD      (CSRFLAG),A
  1694. SM1END  RET
  1695.  
  1696. SMART2  LD      A,(SHINF2)
  1697.         SUB     20
  1698.         LD      (SHINF2),A
  1699.         LD      (SHINFO),A
  1700.         XOR     A
  1701.         LD      (CSRFLAG),A
  1702.         LD      A,(RTINF2+3)
  1703.         SUB     4
  1704.         LD      (RTINF2+3),A
  1705.         CALL    BASESHI
  1706.         LD      IX,(MNGPTR)
  1707.         LD      E,(IX+11)
  1708.         LD      D,(IX+12)
  1709.         EX      DE,HL
  1710.         LD      A,(SHINF2)
  1711.         XOR     128
  1712.         LD      B,A
  1713.         LD      A,(HL)
  1714.         SUB     80 ; "shifting" reality !
  1715.         XOR     128
  1716.         SUB     B
  1717.         JR      NC,SMT21
  1718.         NEG
  1719. SMT21   LD      C,A
  1720.         LD      A,(SHINF2+1)
  1721.         XOR     128
  1722.         LD      B,A
  1723.         INC     HL
  1724.         LD      A,(HL)
  1725.         XOR     128
  1726.         SUB     B
  1727.         JR      NC,SMT22
  1728.         NEG
  1729. SMT22   LD      E,A
  1730.         LD      A,(SHINF2+2)
  1731.         XOR     128
  1732.         LD      B,A
  1733.         INC     HL
  1734.         LD      A,(HL)
  1735.         XOR     128
  1736.         SUB     B
  1737.         JR      NC,SMT23
  1738.         NEG
  1739. SMT23   ADD     A,C
  1740.         JR      C,SMT24
  1741.         ADD     A,E
  1742.         JR      C,SMT24
  1743.         CP      36
  1744.         JR      NC,SMT24
  1745.         LD      HL,HISCNT
  1746.         LD      A,(CONSTH)
  1747.         ADD     A,(HL)
  1748.         LD      (HL),A
  1749.         LD      A,1
  1750.         LD      (ISSOUND),A
  1751.         CALL    DONE2
  1752. SMT24   LD      A,(SHINFO)
  1753.         LD      B,150
  1754.         CALL    CMPSGN
  1755.         CALL    C,DONE2
  1756.         RET
  1757.  
  1758. SMART3  LD      A,(RTINF3+3)
  1759.         ADD     A,4
  1760.         LD      (RTINF3+3),A
  1761.         CALL    BASESHI
  1762.         CALL    ALTSHI
  1763.         LD      A,1
  1764.         LD      (CSRFLAG),A
  1765.         RET
  1766.  
  1767. SMART4  XOR     A
  1768.         LD      (CSRFLAG),A
  1769.         LD      A,(SHINF4)
  1770.         ADD     A,16
  1771.         LD      (SHINF4),A
  1772.         LD      (SHINFO),A
  1773.         LD      A,1
  1774.         LD      (REACT),A
  1775.         CALL    BASESHI
  1776.         LD      A,(SHINF4+1)
  1777.         LD      HL,HBULSFT
  1778.         SUB     (HL)
  1779.         LD      (SHINF4+1),A
  1780.         LD      (SHINFO+1),A
  1781.         LD      A,(SHINF4+2)
  1782.         INC     HL
  1783.         SUB     (HL)
  1784.         LD      (SHINF4+2),A
  1785.         LD      (SHINFO+2),A
  1786.         LD      A,(SHINF4)
  1787.         XOR     128
  1788.         ADD     A,16
  1789.         CALL    C,DONE4
  1790.         RET
  1791.  
  1792. SMART5  LD      A,(RTINF5+3)
  1793.         ADD     A,4
  1794.         LD      (RTINF5+3),A
  1795.         CALL    BASESHI
  1796.         CALL    ALTSHI
  1797.         LD      A,1
  1798.         LD      (CSRFLAG),A
  1799.         RET
  1800.  
  1801. DONE1   XOR     A
  1802.         LD      (OBINF1+22),A
  1803.         RET
  1804.  
  1805. DONE2   XOR     A
  1806.         LD      (OBINF2+22),A
  1807.         LD      (FIRE_c),A
  1808.         LD      A,4
  1809.         LD      (REACT),A
  1810.         RET
  1811.  
  1812. DONE3   XOR     A
  1813.         LD      (OBINF3+22),A
  1814.         RET
  1815.  
  1816. DONE4   XOR     A
  1817.         LD      (OBINF4+22),A
  1818.         LD      (REACT),A
  1819.         LD      HL,OURCNT
  1820.         LD      A,(CONSTO)
  1821.         ADD     A,(HL)
  1822.         LD      (HL),A
  1823.         RET
  1824.  
  1825. DONE5   XOR     A
  1826.         LD      (OBINF5+22),A
  1827.         RET
  1828.  
  1829. MANAGER CALL    CLS
  1830.         LD      HL,(MNGPTR)
  1831.         CALL    DRWOBJ
  1832.         CALL    SNOW
  1833.         LD      A,(CONTRB)
  1834.         AND     16
  1835.         XOR     16
  1836.         LD      HL,HISCNT
  1837.         OR      (HL)
  1838.         LD      HL,FIRE_c
  1839.         OR      (HL)
  1840.         JR      NZ,MG1
  1841.         LD      HL,OBINF2
  1842.         CALL    DRWOBJ
  1843.         JR      MG2
  1844. MG1     LD      A,(FIRE_c)
  1845.         LD      HL,OBINF2
  1846.         OR      A
  1847.         CALL    NZ,DRWOBJ
  1848. MG2     LD      HL,REACT
  1849.         LD      A,(HL)
  1850.         DEC     A
  1851.         LD      (HL),A
  1852.         LD      HL,OBINF4
  1853.         CALL    Z,DRWOBJ
  1854.         LD      A,(ISSOUND)
  1855.         OR      A
  1856.         PUSH    AF
  1857.         CALL    Z,VIEWSR
  1858.         POP     AF
  1859.         CALL    NZ,VIEWS2
  1860.         LD      A,(OURCNT)
  1861.         DEC     A
  1862.         XOR     255
  1863.         CPL
  1864.         JR      Z,MG23
  1865.         LD      (OURCNT),A
  1866.         LD      HL,OURPWR
  1867.         LD      A,(HL)
  1868.         DEC     A
  1869.         DEC     A
  1870.         LD      (HL),A
  1871.         JR      NZ,MG21
  1872.         LD      A,4
  1873.         LD      (RETURN),A
  1874.         JP      MGEND
  1875. MG21    ADD     A,48
  1876.         LD      E,A
  1877.         LD      D,128+32+2
  1878.         CALL    MEM7
  1879.         LD      B,13
  1880. MGCYC1  PUSH    BC
  1881.         PUSH    DE
  1882.         CALL    PLOT
  1883.         POP     DE
  1884.         POP     BC
  1885.         INC     D
  1886.         DJNZ    MGCYC1
  1887.         CALL    PT128
  1888.         JR      MG24
  1889. MG23    LD      A,(OURPWR)
  1890.         CP      17
  1891.         JR      NC,MG24
  1892.         LD      A,(HISPWR)
  1893.         CP      17
  1894.         LD      A,3
  1895.         JR      NC,MG231
  1896.         LD      A,1
  1897. MG231   LD      (RETURN),A
  1898.         JR      MGEND
  1899. MG24    LD      A,(HISCNT)
  1900.         DEC     A
  1901.         XOR     255
  1902.         CPL
  1903.         JR      Z,MG3
  1904.         LD      (HISCNT),A
  1905.         LD      HL,HISPWR
  1906.         LD      A,(HL)
  1907.         DEC     A
  1908.         DEC     A
  1909.         LD      (HL),A
  1910.         JR      NZ,MG25
  1911.         XOR     A
  1912.         LD      (RETURN),A
  1913.         JR      MGEND
  1914. MG25    ADD     A,48
  1915.         LD      E,A
  1916.         LD      D,128+16+2
  1917.         CALL    MEM7
  1918.         LD      B,13
  1919. MGCYC2  PUSH    BC
  1920.         PUSH    DE
  1921.         CALL    PLOT ;вывод полоски энергии
  1922.         POP     DE
  1923.         POP     BC
  1924.         INC     D
  1925.         DJNZ    MGCYC2
  1926.         CALL    PT128
  1927.         JR      MG4
  1928. MG3     LD      A,(HISPWR)
  1929.         CP      17
  1930.         JR      NC,MG4
  1931.         LD      A,1
  1932. MG3_    LD      (RETURN),A
  1933.         JR      MGEND
  1934. MG4     LD      BC,#FBFE
  1935.         IN      A,(C)
  1936.         BIT     2,A;E-exit
  1937.         JR      Z,MG4_
  1938.         AND     %11000;RT-retry
  1939.         JP      NZ,MANAGER
  1940.         CPL
  1941.         JR      MG3_
  1942. MG4_
  1943.       if CHEATS
  1944.        ld a,1
  1945.        ld (HISPWR),a
  1946.        jp MANAGER
  1947.       endif
  1948.         LD      A,2
  1949.         LD      (RETURN),A
  1950.         LD      A,(OURPWR)
  1951.         SLA     A
  1952.         JR      C,MGEND
  1953.         LD      HL,OINIPWR
  1954.         CP      (HL)
  1955.         JR      NC,MGEND
  1956.         LD      A,3
  1957.         LD      (RETURN),A
  1958. MGEND   LD      HL,(MNGPTR)
  1959.         LD      DE,20
  1960.         ADD     HL,DE
  1961.         LD      E,(HL)
  1962.         INC     HL
  1963.         LD      D,(HL)
  1964.         EX      DE,HL
  1965.         JP      (HL) ; calling DONEn
  1966.  
  1967. ALEX    LD HL,TAB1 ;My entry
  1968.         LD DE,TAB1+1
  1969.         LD (HL),L
  1970.         LD BC,DATAEND-TAB1
  1971.         LDIR
  1972. MAIN#    ; entry point
  1973.         CALL    FORMTBL
  1974.         CALL    MAININI
  1975.         CALL    FRAMINI
  1976.         CALL    SNOWINI
  1977.         CALL    CSRINI
  1978.         CALL    MANAGER
  1979.         LD      A,(RETURN)
  1980.         CP      5
  1981.         RET
  1982.  
  1983. ANGLES
  1984. ;*B  ..\DATA\Xangles.DAN
  1985.        incbin "data/xangles.dan"
  1986. SCALES
  1987. ;*B  ..\DATA\Xscales.DAN
  1988.        incbin "data/xscales.dan"
  1989. RNDPTS  EQU     SCALES+256
  1990. PARAMTB DEFB    100,11,150,7  ;En_UFO,Dec_UFO,En_INT,Dec_INT
  1991.         DEFB    112,9,150,9 ;130->112
  1992.         DEFB    200,16,150,25
  1993.         DEFB    100,14,180,7
  1994.         DEFB    140,17,180,8
  1995.         DEFB    200,19,186,13
  1996.         DEFB    100,25,200,9
  1997.         DEFB    140,34,200,7
  1998.         DEFB    200,48,200,7
  1999.  
  2000. CMPLXTY DEFW    OBINF3,OBINF1,OBINF5
  2001.         ; level of alien ship complexity
  2002.  
  2003. ;*F MNTINC--------------------------------------
  2004. OBINF1  DEFB 53,48,20 ; ptsnum, lnsnum, pgsnum
  2005.         DEFW PTTAB1,LNTAB1,PGPTB1 ; rectangle alien ship
  2006.         DEFW RTINF1,SHINF1,SMART1,SMT1INI
  2007.         DEFB 80,87,45
  2008.         DEFW DONE1
  2009.         DEFB 0
  2010.         DEFB 52,32,0,1,5
  2011. OBINF2  DEFB 3,3,1
  2012.         DEFW PTTAB2,LNTAB2,PGPTB2 ; our bullet
  2013.         DEFW RTINF2,SHINF2,SMART2,SMT2INI
  2014.         DEFB 127,87,50
  2015.         DEFW DONE2
  2016.         DEFB 0
  2017. OBINF3  DEFB 23,20,11
  2018.         DEFW PTTAB3,LNTAB3,PGPTB3 ; star alien ship
  2019.         DEFW RTINF3,SHINF3,SMART3,SMT3INI
  2020.         DEFB 80,87,50
  2021.         DEFW DONE3
  2022.         DEFB 0
  2023.         DEFB 22,0,32,5,1
  2024. OBINF4  DEFB 32,16,1
  2025.         DEFW PTTAB4,LNTAB4,PGPTB4 ; his bullet
  2026.         DEFW RTINF4,SHINF4,SMART4,SMT4INI
  2027.         DEFB 127,87,50
  2028.         DEFW DONE4
  2029.         DEFB 0
  2030. OBINF5  DEFB 37,34,17
  2031.         DEFW PTTAB5,LNTAB5,PGPTB5 ; super alien ship
  2032.         DEFW RTINF5,SHINF5,SMART5,SMT5INI
  2033.         DEFB 80,87,50
  2034.         DEFW DONE5
  2035.         DEFB 0
  2036.         DEFB 36,32,0,1,5
  2037.  
  2038. NULINFO DEFB    0,0,0
  2039.  
  2040. PTTAB1  ; constant basic table
  2041.         DEFB    236,0,10 ; points - pt #0
  2042.         DEFB    0,20,10
  2043.         DEFB    216,20,0
  2044.         DEFB    226,20,10
  2045.         DEFB    236,30,10
  2046.         DEFB    236,40,0 ; #5
  2047.         DEFB    0,236,10
  2048.         DEFB    20,0,10
  2049.         DEFB    236,216,0
  2050.         DEFB    236,226,10
  2051.         DEFB    226,236,10 ; #10
  2052.         DEFB    216,236,0
  2053.         DEFB    40,236,0
  2054.         DEFB    30,236,10
  2055.         DEFB    20,226,10
  2056.         DEFB    20,216,0 ; #15
  2057.         DEFB    20,40,0
  2058.         DEFB    20,30,10
  2059.         DEFB    30,20,10
  2060.         DEFB    40,20,0
  2061.         DEFB    30,236,246 ; #20
  2062.         DEFB    20,226,246
  2063.         DEFB    20,30,246
  2064.         DEFB    30,20,246
  2065.         DEFB    226,20,246
  2066.         DEFB    236,30,246 ; #25
  2067.         DEFB    236,226,246
  2068.         DEFB    226,236,246
  2069.         DEFB    20,0,246
  2070.         DEFB    0,236,246
  2071.         DEFB    0,20,246 ; #30
  2072.         DEFB    236,0,246
  2073.  
  2074.         DEFB    0,0,63 ; normal vectors - polygon #1
  2075.         DEFB    0,0,63
  2076.         DEFB    193,0,63
  2077.         DEFB    193,193,63
  2078.         DEFB    0,193,63 ; #5
  2079.         DEFB    63,193,63
  2080.         DEFB    63,0,63
  2081.         DEFB    63,63,63
  2082.         DEFB    0,63,63
  2083.         DEFB    193,63,63 ; #10
  2084.         DEFB    0,0,193
  2085.         DEFB    0,0,193
  2086.         DEFB    193,0,193
  2087.         DEFB    193,193,193
  2088.         DEFB    0,193,193 ; #15
  2089.         DEFB    63,193,193
  2090.         DEFB    63,0,193
  2091.         DEFB    63,63,193
  2092.         DEFB    0,63,193
  2093.         DEFB    193,63,193 ; #20
  2094.  
  2095.         DEFB    7,6,6 ; direction vector
  2096.  
  2097. LNTAB1  ; lines table
  2098.         DEFB    0,6,6,7,7,1,1,0,3,10,10,9,9,14,14,13,13,18,18,17
  2099.         DEFB    17,4,4,3,2,11,11,8,8,15,15,12,12,19,19,16,16,5,5,2
  2100.         DEFB    31,29,29,28,28,30,30,31,24,27,27,26,26,21
  2101.         DEFB    21,20,20,23,23,22,22,25,25,24
  2102.         DEFB    3,2,10,11,9,8,14,15,13,12,18,19,17,16,4,5
  2103.         DEFB    24,2,27,11,26,8,21,15,20,12,23,19,22,16
  2104.         DEFB    25,5
  2105.  
  2106. PGPTB1 ; polygons table
  2107.         DEFW    POL11,POL12,POL13,POL14,POL15,POL16,POL17
  2108.         DEFW    POL18,POL19,POL110,POL111,POL112,POL113,POL114
  2109.         DEFW    POL115,POL116,POL117,POL118,POL119,POL120
  2110. POL11   DEFB    4,32
  2111.         DEFW    POL111
  2112.         DEFB    1,2,3,4
  2113. POL12   DEFB    8,32
  2114.         DEFW    POL112
  2115.         DEFB    5,6,7,8,9,10,11,12
  2116. POL13   DEFB    4,34
  2117.         DEFW    POL117
  2118.         DEFB    13,34,5,33
  2119. POL14   DEFB    4,35
  2120.         DEFW    POL118
  2121.         DEFB    14,35,6,34
  2122. POL15   DEFB    4,36
  2123.         DEFW    POL119
  2124.         DEFB    15,36,7,35
  2125. POL16   DEFB    4,37
  2126.         DEFW    POL120
  2127.         DEFB    16,37,8,36
  2128. POL17   DEFB    4,38
  2129.         DEFW    POL113
  2130.         DEFB    17,38,9,37
  2131. POL18   DEFB    4,39
  2132.         DEFW    POL114
  2133.         DEFB    18,39,10,38
  2134. POL19   DEFB    4,40
  2135.         DEFW    POL115
  2136.         DEFB    19,40,11,39
  2137. POL110 DEFB     4,41
  2138.         DEFW    POL116
  2139.         DEFB    20,33,12,40
  2140. POL111 DEFB     4,42,0,0,21,22,23,24
  2141. POL112 DEFB     8,42,0,0,25,26,27,28,29,30,31,32
  2142. POL113 DEFB     4,44,0,0,13,42,25,41
  2143. POL114 DEFB     4,45,0,0,14,43,26,42
  2144. POL115 DEFB     4,46,0,0,15,44,27,43
  2145. POL116 DEFB     4,47,0,0,16,45,28,44
  2146. POL117 DEFB     4,48,0,0,17,46,29,45
  2147. POL118 DEFB     4,49,0,0,18,47,30,46
  2148. POL119 DEFB     4,50,0,0,19,48,31,47
  2149. POL120 DEFB     4,51,0,0,20,41,32,48
  2150.  
  2151. RTINF1 DEFB     1,0,0,0,0,0
  2152. SHINF1 DEFB     80,20,50
  2153.  
  2154. PTTAB2  DEFB    0,0,20
  2155.         DEFB    0,17,246
  2156.         DEFB    0,239,246
  2157.         DEFB    63,0,0
  2158.  
  2159. LNTAB2  DEFB    0,1,1,2,2,0
  2160.  
  2161. PGPTB2 DEFW     POL21
  2162.  
  2163. POL21   DEFB    3,3,1,0,1,2,3
  2164.  
  2165. RTINF2 DEFB     1,0,0,0,0,0
  2166. SHINF2 DEFB     0,0,0
  2167.  
  2168. PTTAB3  DEFB    0,0,15 ; #0
  2169.         DEFB    244,218,0
  2170.         DEFB    216,0,0
  2171.         DEFB    244,38,0
  2172.         DEFB    32,24,0
  2173.         DEFB    32,232,0 ; #5
  2174.         DEFB    236,0,241
  2175.         DEFB    250,19,241
  2176.         DEFB    16,12,241
  2177.         DEFB    16,244,241
  2178.         DEFB    250,237,241 ; #10
  2179.         DEFB    232,239,63
  2180.         DEFB    232,17,63
  2181.         DEFB    9,28,63
  2182.         DEFB    29,0,63
  2183.         DEFB    9,228,63 ; #15
  2184.         DEFB    209,222,193
  2185.         DEFB    209,34,193
  2186.         DEFB    18,55,193
  2187.         DEFB    58,0,193
  2188.         DEFB    18,201,193 ; #20
  2189.         DEFB    0,0,193
  2190.         DEFB    10,10,6 ; direction vector
  2191.  
  2192. LNTAB3  DEFB    1,2,2,3,3,4,4,5,5,1,10,6,6,7,7,8,8,9,9,10
  2193.         DEFB    0,2,0,4,0,5,0,1
  2194.         DEFB    2,6,3,7,4,8,5,9,1,10,0,3
  2195.  
  2196. PGPTB3 DEFW     POL31,POL32,POL33,POL34,POL35,POL36
  2197.         DEFW    POL37,POL38,POL39,POL310,POL311
  2198.  
  2199. POL31   DEFB    3,11,1,0,1,11,14
  2200. POL32   DEFB    3,12,1,0,2,11,20
  2201. POL33   DEFB    3,13,1,0,3,20,12
  2202. POL34   DEFB    3,14,1,0,4,12,13
  2203. POL35   DEFB    3,15,1,0,5,13,14
  2204. POL36   DEFB    4,16,1,0,1,6,19,15
  2205. POL37   DEFB    4,17,1,0,2,7,15,16
  2206. POL38   DEFB    4,18,1,0,3,8,16,17
  2207. POL39   DEFB    4,19,1,0,4,9,17,18
  2208. POL310 DEFB     4,20,1,0,5,10,18,19
  2209. POL311 DEFB     5,21,1,0,6,7,8,9,10
  2210.  
  2211. RTINF3 DEFB     3,0,0,0,0,0
  2212. SHINF3 DEFB     80,0,50
  2213.  
  2214. PTTAB5  DEFB    0,236,0 ; #0
  2215.         DEFB    0,0,251
  2216.         DEFB    0,20,0
  2217.         DEFB    0,0,5
  2218.         DEFB    0,216,5
  2219.         DEFB    0,216,251 ; #5
  2220.         DEFB    0,0,241
  2221.         DEFB    0,40,251
  2222.         DEFB    0,40,5
  2223.         DEFB    0,0,15
  2224.         DEFB    206,236,251 ; #10
  2225.         DEFB    206,236,5
  2226.         DEFB    206,0,10
  2227.         DEFB    206,20,5
  2228.         DEFB    206,20,251
  2229.         DEFB    206,0,246 ; #15
  2230.         DEFB    186,246,251
  2231.         DEFB    186,246,5
  2232.         DEFB    186,10,5
  2233.         DEFB    186,10,251 ; #19
  2234.         DEFB    63,0,0 ; #20
  2235.         DEFB    250,240,63
  2236.         DEFB    250,240,193
  2237.         DEFB    250,16,63
  2238.         DEFB    250,16,193
  2239.         DEFB    248,240,63 ; #25
  2240.         DEFB    248,240,193
  2241.         DEFB    240,0,63
  2242.         DEFB    240,0,193
  2243.         DEFB    248,16,63
  2244.         DEFB    248,16,193 ; #30
  2245.         DEFB    231,193,0
  2246.         DEFB    224,193,0
  2247.         DEFB    193,0,0
  2248.         DEFB    224,63,0
  2249.         DEFB    231,63,0 ; #35
  2250.         DEFB    7,8,8 ; direction vector
  2251.  
  2252. LNTAB5  DEFB    0,1,1,2,2,3,3,0
  2253.         DEFB    4,5,5,6,6,7,7,8,8,9,9,4
  2254.         DEFB    9,12,6,15,4,11,5,10,8,13,7,14
  2255.         DEFB    11,12,10,15,12,13,15,14
  2256.         DEFB    13,18,14,19,12,18,15,19
  2257.         DEFB    12,17,15,16,11,17,10,16,17,18,16,19
  2258.         DEFB    10,11,17,16,18,19,13,14
  2259.  
  2260. PGPTB5 DEFW     POL51,POL52,POL53,POL54,POL55
  2261.         DEFW    POL56,POL57,POL58,POL59,POL510
  2262.         DEFW    POL511,POL512,POL513,POL514,POL515
  2263.         DEFW    POL516,POL517
  2264.  
  2265. POL51   DEFB    4,20
  2266.         DEFW    POL515
  2267.         DEFB    1,2,3,4
  2268. POL52   DEFB    6,20
  2269.         DEFW    POL515
  2270.         DEFB    5,6,7,8,9,10
  2271. POL53   DEFB    4,21,1,0,13,10,11,17
  2272. POL54   DEFB    4,22,1,0,14,6,12,18
  2273. POL55   DEFB    4,23,1,0,11,9,15,19
  2274. POL56   DEFB    4,24,1,0,12,7,16,20
  2275. POL57   DEFB    3,25,1,0,17,25,27
  2276. POL58   DEFB    3,26,1,0,18,26,28
  2277. POL59   DEFB    3,27,1,0,25,29,23
  2278. POL510  DEFB    3,28,1,0,26,30,24
  2279. POL511  DEFB    3,29,1,0,19,23,21
  2280. POL512  DEFB    3,30,1,0,20,24,22
  2281. POL513  DEFB    4,31,1,0,13,14,5,31
  2282. POL514  DEFB    4,32,1,0,27,28,31,32
  2283. POL515  DEFB    4,33,0,0,29,30,32,33
  2284. POL516  DEFB    4,34,1,0,21,22,33,34
  2285. POL517  DEFB    4,35,1,0,15,16,34,8
  2286.  
  2287. RTINF5 DEFB     1,0,0,0,0,0
  2288. SHINF5 DEFB     80,20,50
  2289. ;--------------------------include end---
  2290.  
  2291.  
  2292. CC      EQU     3
  2293.  
  2294. PTTAB4  DEFB    0,40,CC ;
  2295.         DEFB    0,40,256-CC
  2296.         DEFB    0,40-CC,0
  2297.         DEFB    0,40+CC,0
  2298.         DEFB    0,28,28+CC ;
  2299.         DEFB    0,28,28-CC
  2300.         DEFB    0,28-CC,28
  2301.         DEFB    0,28+CC,28
  2302.         DEFB    0,0,40+CC ;
  2303.         DEFB    0,0,40-CC
  2304.         DEFB    0,256-CC,40
  2305.         DEFB    0,CC,40
  2306.         DEFB    0,228,28+CC ;
  2307.         DEFB    0,228,28-CC
  2308.         DEFB    0,228-CC,28
  2309.         DEFB    0,228+CC,28
  2310.         DEFB    0,216,CC ;
  2311.         DEFB    0,216,256-CC
  2312.         DEFB    0,216-CC,0
  2313.         DEFB    0,216+CC,0
  2314.         DEFB    0,228,228+CC ;
  2315.         DEFB    0,228,228-CC
  2316.         DEFB    0,228-CC,228
  2317.         DEFB    0,228+CC,228
  2318.         DEFB    0,0,216+CC ;
  2319.         DEFB    0,0,216-CC
  2320.         DEFB    0,256-CC,216
  2321.         DEFB    0,CC,216
  2322.         DEFB    0,28,228+CC ;
  2323.         DEFB    0,28,228-CC
  2324.         DEFB    0,28-CC,228
  2325.         DEFB    0,28+CC,228
  2326.         DEFB    63,0,0
  2327.  
  2328. LNTAB4  DEFB    0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  2329.         DEFB    16,17,18,19,20,21,22,23,24,25,26,27
  2330.         DEFB    28,29,30,31
  2331.  
  2332. PGPTB4  DEFW    POL41
  2333. POL41   DEFB    16,32,1,0,1,2,3,4,5,6,7,8,9,10
  2334.         DEFB    11,12,13,14,15,16
  2335.  
  2336. ;генерируемые данные
  2337.  
  2338. TAB1    EQU #C900       ;DEFS 256       ;ORG кратен 256
  2339. TAB2    EQU TAB1+256    ;DEFS 256       ;
  2340. TAB3    EQU TAB2+256    ;DEFS 256       ;
  2341. TAB4    EQU TAB3+256    ;DEFS 256       ;
  2342.                         ;
  2343. SNOWTAB EQU TAB4+256    ;DEFS   32      ;
  2344. SNOWPTR EQU SNOWTAB+32  ;DEFS   2       ;
  2345. RNDPTR  EQU SNOWPTR+2   ;DEFS   2       ;
  2346. RNDTAB  EQU RNDPTR+2    ;DEFS   64      ;конец блока
  2347. PTSNUM  EQU RNDTAB+64   ;DEFB   0
  2348. LNSNUM  EQU PTSNUM+1    ;DEFB   0
  2349. PGSNUM  EQU LNSNUM+1    ;DEFB   0
  2350. PPTS    EQU PGSNUM+1    ;DEFW   0 ; ptr on constant pts table
  2351. PLNS    EQU PPTS+2      ;DEFW   0 ; ptr on lines table
  2352. PPGP    EQU PLNS+2      ;DEFW   0 ; ptr on ptr on polygons
  2353. ROTPTR  EQU PPGP+2      ;DEFW   0
  2354. SHIPTR  EQU ROTPTR+2    ;DEFW   0
  2355. SMTPTR  EQU SHIPTR+2    ;DEFW   0
  2356. INIPTR  EQU SMTPTR+2    ;DEFW   0
  2357. RANGE   EQU INIPTR+2    ;DEFS   3 ; xyz-range
  2358. DONEPTR EQU RANGE+3     ;DEFW   0
  2359. INIFLAG EQU DONEPTR+2   ;DEFS   1
  2360. DIRVECN EQU INIFLAG+1   ;DEFS   1
  2361. FY0     EQU DIRVECN+1   ;DEFS   1
  2362. FZ0     EQU FY0+1       ;DEFS   1
  2363. DFY     EQU FZ0+1       ;DEFS   1
  2364. DFZ     EQU DFY+1       ;DEFS   1
  2365. LNDRAW  EQU DFZ+1       ;DEFS   64
  2366. PGDRAW  EQU LNDRAW+64   ;DEFS   32
  2367. PTDRAW  EQU PGDRAW+32   ;DEFS   64
  2368. PTBUFF  EQU PTDRAW+64   ;DEFS   64*3
  2369. COSTBL  EQU 64*3+PTBUFF ;DEFS   128*ANGSNUM
  2370. PTTABL  EQU 128*ANGSNUM+COSTBL  ;DEFS   64*3 ; permanent basic pts table
  2371. RTINFO  EQU 64*3+PTTABL ;DEFS   6
  2372. SHINFO  EQU RTINFO+6    ;DEFS   3
  2373. MASK    EQU SHINFO+3    ;DEFS   4
  2374. CSRFLAG EQU MASK+4      ;DEFS   1
  2375. MNGPTR  EQU CSRFLAG+1   ;DEFW   0
  2376. FIRE_c  EQU MNGPTR+2    ;DEFB   0 ; flag indicating our fire conditions
  2377. HISPWR  EQU FIRE_c+1    ;DEFB   200
  2378. CONSTH  EQU HISPWR+1    ;DEFB   32 ; decrement of his power
  2379. OURPWR  EQU CONSTH+1    ;DEFB   200
  2380. CONSTO  EQU OURPWR+1    ;DEFB   32 ; decrement of our power
  2381. OINIPWR EQU CONSTO+1    ;DEFW   200 ; our initial power
  2382. HISCNT  EQU OINIPWR+2   ;DEFB   0
  2383. OURCNT  EQU HISCNT+1    ;DEFB   0
  2384. REACT   EQU OURCNT+1    ;DEFB   0
  2385. HBULSFT EQU REACT+1     ;DEFS   2 ; yz of his bullets shift
  2386. ANGCNT  EQU HBULSFT+2   ;DEFB   0 ; angle counter used for alien shift
  2387. CODEBUF EQU ANGCNT+1    ;DEFS   16 ; used for code substitutions
  2388. ISSOUND EQU CODEBUF+16  ;DEFB   0 ; should sound appear
  2389. DATAEND EQU ISSOUND+100
  2390. ;выше заменить на EQU
  2391.