?login_element?

Subversion Repositories NedoOS

Rev

Rev 1035 | Blame | Compare with Previous | Last modification | View Log | Download

  1. MXDM    db      "////////////////////////" ;табл.альтернатив
  2.  
  3. ZT      DEFW    Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,ZA,ZB,ZC,ZD,ZE,ZT
  4. MBU2    EQU     #DB00;(1024B-128)               ;
  5. MBU     EQU     #DE80;(48B/128)                 ;Pg7
  6. ScrBU   EQU     #DF00;(1728B/1792)              ;
  7. SwpMEM  EQU     #E600;(6656B)                   ;
  8. SwpADR  EQU     #7580 ;swap-адр
  9.  
  10. MBEG    DEFB 1      ;у-1я стр. меню
  11. MEND    DEFB 22     ;у-последняя
  12. MOLD    DEFB 255    ;у-текущая предыдущая
  13. MTMP    DEFB 255    ;у-текущая
  14. MPOS    DEFB 0      ;пункт меню [0..MEND-MBEG]
  15. MXSH    DEFB 1      ;x-отступ
  16. MLEN    DEFB 2      ;ширина пункта меню
  17. MC21    DEFB 1      ;0-восстановить строки 21-23
  18. TXM     DEFW 0      ;текст меню
  19. MCOLOR  DEFB 0      ;цвет
  20.  
  21. ;команды: 0-набор WORDS, 1/2-высота 1/2, 3/4-центрир.фраза/слово(N),
  22. ; 5-ВК/ПС, 6/7-нецентрир.фраза/слово(N),8/9/<?>-вывод byte,word,double,
  23. ; <->/<.>/<,>-меню по усл."равно"/"неравно"/без условия
  24. ; <:>-набор NAMES
  25.  
  26. MENU    PUSH    IX
  27.         CALL    STD
  28.         LD      HL,MTXTM
  29.         LD      (MTXT+1),HL
  30.         LD      HL,MTX0M
  31.         LD      (MTX0+1),HL
  32.         LD      HL,#FFFF
  33.         LD      (MOLD),HL
  34.         LD      (MBEG),HL
  35.         LD      L,(IX)
  36.         INC     L
  37.         INC     IX
  38.         LD      H,(IX)
  39.         LD      (SX),HL
  40.         INC     IX
  41.         LD      A,(IX)
  42.         LD      (MLEN),A
  43.         INC     IX
  44.         LD A,(C_ONOF)
  45.         OR A
  46.         LD A,#38
  47.         JR NZ,Coff
  48.         LD      A,(IX)
  49.         LD      HL,DMCOL
  50.         CALL    BT
  51. Coff    LD      (MCOLOR),A
  52.         XOR     A
  53.         LD      (HIGH),A
  54.         LD      A,(SX)
  55.         LD      (MXSH),A
  56.  
  57.         Ms      1
  58.         LD      HL,MENUS
  59.         LD      A,(IX)
  60.         INC     IX
  61.         OR      A
  62.         JR      Z,JF
  63.         LD      B,A
  64. JH      LD      A,(HL)
  65.         INC     HL
  66.         CP      #7F
  67.         JR      NZ,JH
  68.         DJNZ    JH
  69. JF      LD      (TXM),HL
  70.         CALL    MTOP
  71.         CALL    MTXT
  72.         LD      HL,WORDS
  73.         LD      (_words),HL
  74.         XOR     A
  75.         LD      (HIGH),A
  76.         POP     IX
  77.         JR      MBOT
  78.  
  79. BLNK    PUSHs;$
  80.         LD      DE,(SX)
  81.         LD      A,(MXSH)
  82.         LD      E,A
  83.         INC     D
  84.         LD      (SX),DE
  85.         DEC     E
  86.         LD      BC,FONT
  87.         LD      L,104
  88.         LD      A,1
  89.         CALL    SYMBOL
  90.         LD      A,(MLEN)
  91.         LD      L,15
  92.         CALL    SYMBOL
  93.         LD      A,1
  94.         LD      L,111
  95.         CALL    SYMBOL
  96.         CALL    MPAI
  97.         POPs;$
  98.         RET
  99.  
  100. MTOP    LD      DE,(SX)
  101.         DEC     E
  102.         LD      BC,FONT
  103.         LD      A,1
  104.         LD      L,106
  105.         CALL    SYMBOL
  106.         LD      A,(MLEN)
  107.         LD      L,105
  108.         CALL    SYMBOL
  109.         LD      A,1
  110.         LD      L,107
  111.         CALL    SYMBOL
  112.         JR      MPAI
  113.  
  114. MBOT    LD      DE,(SX)
  115.         DEC     E
  116.         LD      BC,FONT
  117.         LD      A,1
  118.         LD      L,108
  119.         CALL    SYMBOL
  120.         LD      A,(MLEN)
  121.         LD      L,110
  122.         CALL    SYMBOL
  123.         LD      A,1
  124.         LD      L,109
  125.         CALL    SYMBOL
  126.  
  127. MPAI    LD      HL,(SX)
  128.         DEC     L
  129.         LD      BC,(MLEN-1)
  130.         INC     B
  131.         INC     B
  132.         LD      C,1
  133.         LD      A,(MCOLOR)
  134.         JP      ATRBAR
  135.  
  136. MTXTM   CALL    BLNK
  137.         LD      HL,(TXM)
  138.         LD      A,(HL)
  139.         OR      #80
  140.         INC     A
  141.         RET     Z
  142.         CALL    BLNK
  143.         LD      HL,SY
  144.         DEC     (HL)
  145. MTX0M   LD      HL,(TXM)
  146.         LD      A,(HL)
  147.         INC     HL
  148.         LD      (TXM),HL
  149.         LD      HL,ZT
  150.         CALL    WT
  151.         JP      (HL)
  152.  
  153. MTX0    JP      MTX0M
  154. MTXT    JP      MTXTM
  155.  
  156. Z0      LD      HL,WORDS
  157. Z0E     LD      (_words),HL
  158.         JR      MTX0
  159. ZE      LD      HL,NAMES
  160.         JR      Z0E
  161. Z1      XOR     A
  162.         JR      Z2_1
  163. Z2      LD      A,#1
  164. Z2_1    LD      (HIGH),A
  165.         JR      MTX0
  166. Z5      LD      A,(HIGH)
  167.         OR      A
  168.         JR      Z,MTXT
  169.         LD      HL,SY
  170.         INC     (HL)
  171.         JR      MTXT
  172. Z6      LD      HL,(TXM)
  173.         CALL    WORDHL
  174.         LD      HL,(TXT)
  175.         LD      (TXM),HL
  176.         JP      MTX0
  177. Z7      LD      A,(IX)
  178.         INC     IX
  179.         CALL    NWRD
  180.         JP      MTX0
  181. Z8      LD      L,(IX)
  182.         LD      H,(IX+1)
  183.         INC     IX
  184.         INC     IX
  185.         CALL    WBHL
  186.         JP      MTX0
  187. Z9      LD      L,(IX)
  188.         LD      H,(IX+1)
  189.         INC     IX
  190.         INC     IX
  191.         CALL    WW
  192.         JP      MTX0
  193. ZA      LD      L,(IX)
  194.         INC     IX
  195.         LD      H,(IX)
  196.         INC     IX
  197.         CALL    WD
  198.         JP      MTX0
  199.  
  200. Z3      LD      HL,(TXM)
  201.         LD      (TXT),HL
  202.         LD      B,-1
  203. Z33     LD      A,(HL)
  204.         INC     HL
  205.         INC     B
  206.         CP      128
  207.         JR      C,Z333
  208.         INC     B
  209. Z333    CP      126
  210.         JR      NZ,Z33
  211.         LD      (TXM),HL
  212.         LD      A,(MLEN)
  213.         SUB     B
  214.         SRL     A
  215.         LD      DE,(SX)
  216.         ADD     A,E
  217.         LD      E,A
  218.         LD      (SX),DE
  219.         CALL    WORD
  220.         JP      Z5
  221.  
  222. Z46     LD      A,(HL)
  223.         INC     HL
  224.         CP      126
  225.         JR      NZ,Z46
  226.         DJNZ    Z46
  227.         LD      (TXT),HL
  228.         LD      B,-1
  229. Z47     LD      A,(HL)
  230.         INC     HL
  231.         INC     B
  232.         CP      128
  233.         JR      C,Z48
  234.         INC     B
  235. Z48     CP      126
  236.         JR      NZ,Z47
  237.         LD      A,(MLEN)
  238.         SUB     B
  239.         SRL     A
  240.         LD      DE,(SX)
  241.         ADD     A,E
  242.         LD      E,A
  243.         LD      (SX),DE
  244.         JP      WORD
  245.  
  246. Z4      LD      HL,(_words)
  247.         LD      B,(IX)
  248.         INC     IX
  249.         CALL    Z46
  250.         JP      Z5
  251.  
  252. ZD      XOR     A
  253.         LD      (HIGH),A
  254.         LD      L,(IX)
  255.         INC     IX
  256.         LD      H,(IX)
  257.         INC     IX
  258.         LD      B,(IX)
  259.         INC     IX
  260.         LD      DE,MXDM
  261.         LD      A,(SY)
  262.         LD      (MBEG),A
  263.         LD      C,0
  264. Z_3     PUSHs;$
  265.         LD      B,(HL)
  266.         LD      HL,(_words)
  267.         CALL    Z46
  268.         POPs;$
  269.         INC     HL
  270.         LD      A,(SY)
  271.         LD      (MEND),A
  272.         CALL    BLNK
  273.         LD      A,C
  274.         LD      (DE),A
  275.         INC     C
  276.         INC     DE
  277.         DJNZ    Z_3
  278.         JP      MTXT
  279.  
  280. ZB      LD      A,#20;jr nz
  281.         LD      (Z_E),A
  282.         JR      Z11
  283. ZC      LD      A,#28;jr z
  284.         LD      (Z_E),A
  285. Z11     XOR     A
  286.         LD      (HIGH),A
  287.         LD      DE,MXDM
  288.         LD      C,0
  289.         LD      A,(SY)
  290.         LD      (MBEG),A
  291.         DEC     A
  292.         LD      (MEND),A
  293.         LD      L,(IX)
  294.         INC     IX
  295.         LD      H,(IX)
  296.         INC     IX
  297.         LD      B,(IX)
  298.         INC     IX
  299.         EXX
  300.         LD      B,(IX)
  301.         INC     IX
  302.         LD      L,(IX)
  303.         INC     IX
  304.         LD      H,(IX)
  305.         INC     IX
  306.         EXX
  307. Z_1     EXX
  308.         LD      A,(HL)
  309.         INC     HL
  310.         CP      B
  311.         EXX
  312. Z_E     JR      NZ,Z_7
  313.         PUSHs;$
  314.         LD      B,(HL)
  315.         LD      HL,(_words)
  316.         CALL    Z46
  317.         POPs;$
  318.         LD      A,(SY)
  319.         LD      (MEND),A
  320.         CALL    BLNK
  321.         LD      A,C
  322.         LD      (DE),A
  323.         INC     DE
  324. Z_7     INC     C
  325.         INC     HL
  326.         DJNZ    Z_1
  327.         JP      MTXT
  328.  
  329. ;------------------------
  330. SWAP_X  LD      A,(HL) ;Обмен по XOR
  331.         XOR     #C6
  332.         EX      AF,AF
  333.         LD      A,(DE)
  334.         XOR     #C6
  335.         EX      AF,AF
  336.         LD      (DE),A
  337.         EX      AF,AF
  338.         LD      (HL),A
  339.         INC     HL
  340.         INC     DE
  341.         DEC     BC
  342.         LD      A,C
  343.         OR      B
  344.         JR      NZ,SWAP_X
  345.         RET     Z
  346.  
  347. DECM    LD      IX,MONEY
  348. DECR    EX      DE,HL
  349.         LD      L,(IX)
  350.         LD      H,(IX+1)
  351.         EXX
  352.         LD      L,(IX+2)
  353.         LD      H,(IX+3)
  354.         EXX
  355.         CALL    SUBDW
  356.         RET     C
  357. IM3     LD      (IX),L
  358.         LD      (IX+1),H
  359.         EXX
  360.         LD      (IX+2),L
  361.         LD      (IX+3),H
  362.         EXX
  363.         RET
  364.  
  365. INCM    LD      IX,MONEY
  366. INCR    EX      DE,HL
  367.         LD      L,(IX)
  368.         LD      H,(IX+1)
  369.         EXX
  370.         LD      L,(IX+2)
  371.         LD      H,(IX+3)
  372.         EXX
  373.         CALL    ADDDW
  374.         JR      NC,IM3
  375.         LD      HL,#FFFE
  376.         EXX
  377.         LD      HL,#0FFF  ;до268млн
  378.         EXX
  379.         JR      IM3
  380.  
  381.        if 0
  382. DD      RLCA
  383. WA      RLCA
  384. BA      ADD     A,L
  385.         LD      L,A
  386.         JR      NC,BA_
  387.         INC     H
  388. BA_     LD      A,(HL)
  389.         RET
  390.        endif
  391.  
  392. INS     LD      A,(IX) ;точка в боксе
  393.         CP      L
  394.         RET     NC
  395.         LD      A,L
  396.         CP      (IX+2)
  397.         RET     NC
  398.         LD      A,(IX+1)
  399.         CP      H
  400.         RET     NC
  401.         LD      A,H
  402.         CP      (IX+3)
  403.         RET
  404.  
  405. NAL     CALL    STD ;наличные
  406.         LD      HL,#1700
  407.         LD      (SX),HL
  408.         XOR     A
  409.         LD      (HIGH),A
  410.         LD      A,132
  411.         CALL    NWRDM
  412.         LD      HL,MONEY
  413.         CALL    WD
  414.         JP      WORD
  415.  
  416.  
  417.  
  418. _words  DEFW    WORDS;/NAMES
  419.  
  420. NWRD    LD      B,A
  421.         INC     B
  422.         LD      HL,(_words)
  423. NW0     LD      A,(HL)
  424.         INC     HL
  425.         CP      #7E
  426.         JR      NZ,NW0
  427.         DJNZ    NW0
  428.         JP      WORDHL
  429.  
  430. NWRDM   LD      L,A
  431.         Ms      1
  432.         LD      A,L
  433.         CALL    NWRD
  434.         JP      MEM7
  435.  
  436. BACK    LD      HL,SCR
  437.         LD      DE,DSCR
  438.         LD      BC,6912
  439.         LDIR
  440.         RET
  441.  
  442. NOKEYw  CALL CONTR ;ждать ненажатия
  443.         AND %111111
  444.         JR NZ,NOKEYw
  445.         LD A,14
  446.         JP DELAY
  447.  
  448. TMOF    ;ждать FIRE
  449.         CALL NOKEYw
  450. TMOf    CALL CONTR
  451.         AND %111111
  452.         RET NZ
  453.         JR TMOf
  454. ;Цвета меню
  455. DMCOL   DEFB    #38,#30,#70,#4D,#69,000,000,#79,#39,#72
  456.         DEFB    #7A,#68,#38,#69,#71,#78,#6B,#7A,#72,#38
  457.         DEFB    #79,#38,#46,#68,#78,#78,#58,#30,#78,#78
  458.         DEFB    #43,#38,#38,#68,#79,#68,#38,#68,#68,#4D
  459.         DEFB    #79,#38,#46,#68,#47,#71,#56,#72,#30,#7A
  460.         DEFB    #39,#38,#69,#57,#60,#78,#7A,#38,#38,#71
  461.         DEFB    #60,#79,#30,#7A,#7A,#78,#78,#78,#7A,#57
  462.         DEFB    #7A,#7A,#38,#69,#71,#78,#7A,#79,#72,#79
  463.         DEFB    #71,#7A,#38,#38,#39,#78,#38,#38,#38,#38
  464.         DEFB    000,000,000,#4F,#6A,#7A,#38,#38
  465.  
  466. ;============параметры ландшафта
  467. L_LAND  DEFB 1 ;ТИП ландшафта (0-7,8-КолонII,9-UбазаII,10-корабльII)
  468. L_UFO   DEFB 6 ;тип НЛО (0..8)
  469. L_MOD   DEFB 1 ;модификация ландш.
  470. L_IPOS  DEFW 1 ;поз.истр
  471. B_RET   DEFB 1 ;рез-т боя(0/1/2-гибель/эвак/победа)
  472. ;===========пришельцы
  473. A_RASA  DEFB 4 ;раса(1..5)
  474. A_NUM   DEFB 22 ;макс число (4..22)
  475. ;===============================
  476.  
  477. WEAPON  ;парам оруж(TU,TUp,PREC,PRECp,HE,FR,Quantity,POWER)
  478.         DEFB    25,50,60,90,32,0,25,0
  479.         DEFB    45,90,50,110,90,0,6,1
  480.         DEFB    90,90,120,120,210,0,5,2
  481.         DEFB    55,75,70,120,0,120,6,0
  482.         DEFB    40,75,60,90,60,0,16,1
  483.         DEFB    30,30,100,100,80,0,0,0
  484.         DEFB    25,25,100,100,150,0,0,0
  485.         DEFB    45,80,50,100,105,0,15,3
  486.         DEFB    40,60,75,110,75,0,25,2
  487.         DEFB    50,70,80,115,130,0,14,3
  488.         DEFB    45,45,100,100,120,0,0,2
  489.         DEFB    40,40,100,100,0,80,0,0
  490.         DEFB    40,60,70,105,0,0,7,0
  491.         DEFB    45,45,100,100,0,0,0,0
  492.         DEFB    24,24,100,100,0,0,0,0
  493.         DEFB    0,0,0,0,60,0,0,2 ;для взрыв.предм
  494.         DEFB    TIM_6,TIM_6,100,100,0,0,0,0 ;для тентак
  495. ;Цена выстрела
  496. WP_PRC  DEFW    55,900,3500,2400,550,0,0,1100,700,950,0,300,0,0,0
  497.  
  498. ATRB2   INC H
  499.         INC H
  500.         JP ATRBAR
  501.  
  502. B_DRAW  DEFB 0; 0 -из меню, 1 -из боя
  503. SOLDAT  DEFB 0
  504. SOLD_D  DEFW 0
  505. Db      DEFB    1
  506.  
  507. DRAW_P  LD IX,(SOLD_D)
  508. ;----рис.поле.параметров
  509.         CALL OFFD
  510.         CALL STD
  511.         LD A,#13
  512.         LD (Db),A
  513.         LD (HIGH),A
  514.         LD B,6
  515.         LD HL,#40A
  516.         PUSH IX
  517.         CHNs XOR_
  518. DWP     PUSH BC
  519.         PUSH HL
  520.         LD (SX),HL
  521.         LD A,(IX+3)
  522.         CALL WB
  523.         LD A,(Db)
  524.         ADD A,16
  525.         LD (Db),A
  526.         LD D,A
  527.         LD E,#70
  528.         LD H,0
  529.         LD L,(IX+3)
  530.         INC L
  531.         INC IX
  532.         ADD HL,DE
  533.         LD B,11
  534. DR4     CALL LINE
  535.         INC H
  536.         INC D
  537.         DJNZ DR4
  538.         POP HL
  539.         INC H
  540.         INC H
  541.         POP BC
  542.         DJNZ DWP
  543.         POP IX
  544.         Ms 3
  545.         CALL STD
  546.         ATRs 0,#2018,#28;всё
  547.         LD BC,#1C04
  548.         LD A,#30   ;Ф.И.О.
  549.         CALL ATRBAR
  550.         ATRs #400,#40C,#79;оруж
  551.         LD B,4
  552.         LD DE,xWBUTTN
  553. P12     PUSH BC
  554.         LD BC,#403
  555.         CALL PUTSIM
  556.         INC H
  557.         INC H
  558.         INC H
  559.         POP BC
  560.         DJNZ P12
  561.         ATRs #406,#30C,#72;парам
  562.         LD B,3
  563.         LD DE,xPARAM
  564.         CALL PUTSIM
  565.         LD HL,#20E
  566.         LD BC,#E02
  567.         LD A,#38  ;парам.линии
  568.         CALL ATRB2
  569.         LD A,#70
  570.         CALL ATRB2
  571.         LD A,#58
  572.         CALL ATRB2
  573.         LD A,#78
  574.         CALL ATRB2
  575.         LD A,#60
  576.         CALL ATRB2
  577.         LD A,#68
  578.         CALL ATRB2
  579.         LD B,4
  580.         LD DE,xBUTTON
  581.         LD HL,28
  582. P14     PUSH BC
  583.         LD BC,#404
  584.         CALL PUTSIM
  585.         LD A,4
  586.         ADD A,H
  587.         LD H,A
  588.         POP BC
  589.         DJNZ P14
  590.         LD BC,#202
  591.         LD HL,#FD1D
  592.         LD DE,xLABEL
  593.         CALL PBL
  594.         LD DE,4*32+xLABEL
  595.         CALL PBL
  596.         LD DE,24*32+xLABEL
  597.         CALL PBL
  598.         LD DE,3*32+xLABEL
  599.         CALL PBL
  600.         LD E,(IX+1)
  601.         LD L,3*3*8
  602.         CALL MULB
  603.         LD HL,xSIGN
  604.         ADD HL,DE
  605.         PUSH HL
  606.         ATRs #1100,#303,#70 ;звание
  607.         POP DE
  608.         CALL PUTSIM
  609.         LD E,(IX+2)
  610.         LD L,3*3*8
  611.         CALL MULB
  612.         LD HL,24*24+xSIGN
  613.         ADD HL,DE
  614.         PUSH HL
  615.         ATRs #110F,#303,#78 ;защита
  616.         POP DE
  617.         CALL PUTSIM
  618.         LD B,4   ;оружие
  619.         PUSH IX
  620.         LD A,(B_DRAW)
  621.         OR A
  622.         JR Z,DR50
  623.         LD A,17-9 ;(из боя)
  624.         CALL HER_BA
  625.         PUSH HL
  626.         POP IX
  627. DR50    LD HL,#2400
  628. DR5     PUSH BC
  629.         LD A,(IX+9)
  630.         INC IX
  631.         CP 255
  632.         JR Z,DR6
  633.         PUSH HL
  634.         LD L,A
  635.         LD E,4*2*8
  636.         CALL MULB
  637.         LD HL,xWEAPON
  638.         ADD HL,DE
  639.         EX DE,HL
  640.         POP HL
  641.         LD BC,#410
  642.         CALL PUTSCR
  643. DR6     LD A,H
  644.         ADD A,24
  645.         LD H,A
  646.         POP BC
  647.         DJNZ DR5
  648.         POP IX
  649.         LD A,2
  650.         LD (HIGH),A
  651.         LD A,(IX+1)
  652.         LD HL,#1204
  653.         LD (SX),HL
  654.         ADD A,80
  655.         CALL NWRDM
  656.         LD A,#13
  657.         LD (SX),A
  658.         LD A,(IX+2)
  659.         OR A
  660.         JR Z,DW1
  661.         ADD A,14
  662.         JR DW2
  663. DW1     LD A,160
  664. DW2     CALL NWRDM
  665.         LD HL,#101
  666.         LD (SX),HL
  667.         LD HL,NAMES
  668.         LD (_words),HL
  669.         LD A,(IX)
  670.         DEC A
  671.         CALL NWRDM
  672.         LD HL,WORDS
  673.         LD (_words),HL
  674.         XOR A
  675.         LD (HIGH),A
  676.         WRDs #1104,158
  677.         WRDs #1113,159
  678.         JP MEM7
  679.  
  680. PBL     INC H
  681.         INC H
  682.         INC H
  683.         INC H
  684.         JP PUTSIM
  685.  
  686. SELM    LD HL,SELmr ;Выбор без выводa инф.
  687. SELTX   LD (sx1+1),HL ;HL-Sub.ADR
  688.         LD (sx2+1),HL
  689.         CALL MEM7
  690.         CALL INIMNU ;Выбор c выводом инф.
  691.         CALL MENUC
  692. SELTN   CALL MARK_
  693.         JR C,SELTN
  694.         LD A,(MPOS)
  695. sx2     CALL 15635
  696. selm_   CALL MARK
  697.         PUSH AF
  698. sx1     CALL 15635
  699.         POP AF
  700.         JR NC,selm_
  701.         CP 254
  702.         RET NC ;NC-отмена
  703.         LD HL,MXDM
  704.         CALL BA
  705.         SCF
  706. SELmr   RET
  707.  
  708. E_I     pushs;$
  709.        if MUSIC
  710.         halt ;keep regs
  711.        else
  712.         EI
  713.         HALT
  714.         DI
  715.        endif
  716.         pops;$
  717.         RET
  718.  
  719. YES_NO  LD BC,#DFFE  ;Z-Yes/NZ-No
  720.         IN A,(C)
  721.         AND #10
  722.         RET Z
  723.         LD B,#7F
  724.         IN A,(C)
  725.         CPL
  726.         AND 8
  727.         RET NZ
  728.         JR YES_NO
  729.  
  730. RESNUM  ;выч числа иссл
  731.         LD HL,RS
  732.         LD BC,#5000
  733. RESU1   LD A,(HL)
  734.         INC HL
  735.         OR A
  736.         JR NZ,RESU2
  737.         INC C
  738. RESU2   DJNZ RESU1
  739.         LD A,C
  740.         SUB #1F
  741.         RET
  742.  
  743.  
  744. ;===================================
  745.  
  746. VICTRY  ;полная победа
  747.         CALL LDASM3
  748.         CALL POBEDA
  749.         CALL LDASM2
  750.         CALL NW_GE
  751.         CALL OFFS
  752.        if MUSIC
  753.        call SETMENUMUSIC
  754.        endif
  755.         CALL MLOOP
  756.  
  757. WAREND  DEFB 0 ;не 0 - нет Пси-контр
  758. BATRES  DEFB 2 ;рез-т боя
  759. BATTL_  CALL PREBAT ;один бой
  760.         CALL LDASM3
  761.         CALL L_Land
  762.         CALL L_OFF
  763.         CALL SWPBAT
  764.         CALL PT128
  765.         LD (BATRET+1),SP
  766.         CALL COMBAT
  767. BATRET  ;A=0-гибель,1-эвак.,2-победа
  768.         LD SP,#4022
  769.         LD (BATRES),A
  770.         PUSH AF
  771.         CALL PICK
  772.         CALL TO_INT
  773.         CALL SWPBAT
  774.         CALL LDASM1
  775.         CALL LDASM2
  776.         CALL MEM7
  777.         POP AF
  778.         RET
  779.  
  780. L_ON    LD HL,#E000 ;[]-откр поле
  781.         LD BC,#2000
  782.         LD A,(xHACK)
  783.         CP #7F
  784.        if CHEATS == 0
  785.         RET NZ
  786.        endif
  787. LQWE    RES 7,(HL)
  788.         INC HL
  789.         DEC BC
  790.         LD A,C
  791.         OR B
  792.         JR NZ,LQWE
  793.         RET
  794.  
  795. ;LODT   DEFW LESHA,ASMBL1,ASMBL2
  796. ;LODLEN DEFW #1500,#1500,#1800
  797. ;LODLPc  PUSH AF
  798. ;       LD HL,LODLEN
  799. ;       CALL WT
  800. ;       POP AF
  801. ;       PUSH HL
  802. ;       LD HL,LODT ;без компр
  803. ;       CALL WT
  804. ;       XOR A
  805. ;       CALL MEM
  806. ;       POP BC
  807. ;       LDIR
  808. ;       RET
  809.  
  810.        if 0
  811. LODLPc  LD HL,#4000 ;c компр
  812.         CALL WT
  813.         XOR A
  814.         CALL MEM
  815.         JP DELPC
  816.        endif
  817.  
  818. BATREE  LD (WAREND),A
  819.         JR BATRET
  820.  
  821. SWPBAT  CALL MEM7
  822.         LD DE,SwpADR
  823.         LD HL,SwpMEM
  824.         LD BC,#1A00
  825.         JP SWAP_X
  826.  
  827. LDASM1  LD DE,#AB00
  828.         LD A,1
  829.         JR lda
  830. LDASM3  LD DE,SwpADR
  831.         LD A,3
  832.         JR lda
  833. LDASM2  LD DE,SwpADR
  834.         LD A,2
  835. lda     CALL LODmlz;LODLPc
  836.         JP MEM7
  837.  
  838. LODALX  LD DE,DSCR
  839.         PUSH DE
  840.         XOR A
  841.         CALL LODmlz;LODLPc
  842.         CALL PT128
  843.         LD BC,#1500
  844.         POP HL
  845.         LD DE,#B000
  846.         LDIR
  847.         RET
  848.  
  849. B_LOOP  ;вызов 1-3х этапов боя
  850.         CALL CLEAR
  851.         LD A,(T_TYPE)
  852.         CP 7
  853.         JR C,BP1
  854.         LD A,5
  855.         CALL BAT_A
  856.         CP 2
  857.         JP C,SMERT
  858.         LD A,8
  859.         CALL BAT_A
  860.         CP 2
  861.         JP C,SMERT
  862.         LD A,7
  863.         CALL BAT_A
  864.         CP 2
  865.         JP C,SMERT
  866.         CALL VICTRY
  867. BP1     CALL BAT_A
  868.         JP Z,EVAC
  869.         JP C,ALLDIE
  870.         LD A,(RS+57)
  871.         OR A
  872.         JR NZ,BPOK ;не знаем о нижн этажах
  873.         LD A,(T_TYPE)
  874.         CP 1
  875.         JR Z,BP21
  876.         CP 5
  877.         JR C,BPOK ;нет нижн эт
  878.         ADD A,3
  879.         JR BP2
  880. BP21    LD A,10
  881. BP2     CALL BAT_A
  882.         JP Z,EVAC
  883.         JP C,ALLDIE
  884. BPOK    CALL BACK
  885.         LD IX,MU95
  886.         JP MNU
  887.  
  888. MU95    DEFW #404,#5F14
  889. BAT_A   LD (L_LAND),A
  890.         CALL BATTL_
  891.         CP 1
  892.         RET
  893.  
  894. BATTLE    ;бой с нло
  895.         CALL SEABAT
  896.  
  897. BATTL1   ;битва
  898.         DI
  899.         CALL NOKEYw
  900.          LD A,R
  901.          LD (RNB),A
  902. ;       JR RRJR ;==
  903. ;        LD HL,256*5+13 ;GUN
  904. ;        LD (AQNAVT+9),HL
  905. ;        LD HL,256*11+12 ;GUN
  906. ;        LD (AQNAVT+11),HL
  907. ;        LD A,1
  908. ;        LD (T_TYPE),A
  909.        
  910. RRJR    CALL B_LOOP
  911.         CALL POSTBAT
  912.         CALL GOhome
  913.        if MUSIC
  914.        call SETMENUMUSIC
  915.        endif
  916.         JP MLOOP
  917.