?login_element?

Subversion Repositories NedoOS

Rev

Rev 1005 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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.         EI
  710.         HALT
  711.         DI
  712.         pops;$
  713.         RET
  714.  
  715. YES_NO  LD BC,#DFFE  ;Z-Yes/NZ-No
  716.         IN A,(C)
  717.         AND #10
  718.         RET Z
  719.         LD B,#7F
  720.         IN A,(C)
  721.         CPL
  722.         AND 8
  723.         RET NZ
  724.         JR YES_NO
  725.  
  726. RESNUM  ;выч числа иссл
  727.         LD HL,RS
  728.         LD BC,#5000
  729. RESU1   LD A,(HL)
  730.         INC HL
  731.         OR A
  732.         JR NZ,RESU2
  733.         INC C
  734. RESU2   DJNZ RESU1
  735.         LD A,C
  736.         SUB #1F
  737.         RET
  738.  
  739.  
  740. ;===================================
  741.  
  742. VICTRY  ;полная победа
  743.         CALL LDASM3
  744.         CALL POBEDA
  745.         CALL LDASM2
  746.         CALL NW_GE
  747.         CALL OFFS
  748.         CALL MLOOP
  749.  
  750. WAREND  DEFB 0 ;не 0 - нет Пси-контр
  751. BATRES  DEFB 2 ;рез-т боя
  752. BATTL_  CALL PREBAT ;один бой
  753.         CALL LDASM3
  754.         CALL L_Land
  755.         CALL L_OFF
  756.         CALL SWPBAT
  757.         CALL PT128
  758.         LD (BATRET+1),SP
  759.         CALL COMBAT
  760. BATRET  ;A=0-гибель,1-эвак.,2-победа
  761.         LD SP,#4022
  762.         LD (BATRES),A
  763.         PUSH AF
  764.         CALL PICK
  765.         CALL TO_INT
  766.         CALL SWPBAT
  767.         CALL LDASM1
  768.         CALL LDASM2
  769.         CALL MEM7
  770.         POP AF
  771.         RET
  772.  
  773. L_ON    LD HL,#E000 ;[]-откр поле
  774.         LD BC,#2000
  775.         LD A,(xHACK)
  776.         CP #7F
  777.        if CHEATS == 0
  778.         RET NZ
  779.        endif
  780. LQWE    RES 7,(HL)
  781.         INC HL
  782.         DEC BC
  783.         LD A,C
  784.         OR B
  785.         JR NZ,LQWE
  786.         RET
  787.  
  788. ;LODT   DEFW LESHA,ASMBL1,ASMBL2
  789. ;LODLEN DEFW #1500,#1500,#1800
  790. ;LODLPc  PUSH AF
  791. ;       LD HL,LODLEN
  792. ;       CALL WT
  793. ;       POP AF
  794. ;       PUSH HL
  795. ;       LD HL,LODT ;без компр
  796. ;       CALL WT
  797. ;       XOR A
  798. ;       CALL MEM
  799. ;       POP BC
  800. ;       LDIR
  801. ;       RET
  802.  
  803.        if 0
  804. LODLPc  LD HL,#4000 ;c компр
  805.         CALL WT
  806.         XOR A
  807.         CALL MEM
  808.         JP DELPC
  809.        endif
  810.  
  811. BATREE  LD (WAREND),A
  812.         JR BATRET
  813.  
  814. SWPBAT  CALL MEM7
  815.         LD DE,SwpADR
  816.         LD HL,SwpMEM
  817.         LD BC,#1A00
  818.         JP SWAP_X
  819.  
  820. LDASM1  LD DE,#AB00
  821.         LD A,1
  822.         JR lda
  823. LDASM3  LD DE,SwpADR
  824.         LD A,3
  825.         JR lda
  826. LDASM2  LD DE,SwpADR
  827.         LD A,2
  828. lda     CALL LODmlz;LODLPc
  829.         JP MEM7
  830.  
  831. LODALX  LD DE,DSCR
  832.         PUSH DE
  833.         XOR A
  834.         CALL LODmlz;LODLPc
  835.         CALL PT128
  836.         LD BC,#1500
  837.         POP HL
  838.         LD DE,#B000
  839.         LDIR
  840.         RET
  841.  
  842. B_LOOP  ;вызов 1-3х этапов боя
  843.         CALL CLEAR
  844.         LD A,(T_TYPE)
  845.         CP 7
  846.         JR C,BP1
  847.         LD A,5
  848.         CALL BAT_A
  849.         CP 2
  850.         JP C,SMERT
  851.         LD A,8
  852.         CALL BAT_A
  853.         CP 2
  854.         JP C,SMERT
  855.         LD A,7
  856.         CALL BAT_A
  857.         CP 2
  858.         JP C,SMERT
  859.         CALL VICTRY
  860. BP1     CALL BAT_A
  861.         JP Z,EVAC
  862.         JP C,ALLDIE
  863.         LD A,(RS+57)
  864.         OR A
  865.         JR NZ,BPOK ;не знаем о нижн этажах
  866.         LD A,(T_TYPE)
  867.         CP 1
  868.         JR Z,BP21
  869.         CP 5
  870.         JR C,BPOK ;нет нижн эт
  871.         ADD A,3
  872.         JR BP2
  873. BP21    LD A,10
  874. BP2     CALL BAT_A
  875.         JP Z,EVAC
  876.         JP C,ALLDIE
  877. BPOK    CALL BACK
  878.         LD IX,MU95
  879.         JP MNU
  880.  
  881. MU95    DEFW #404,#5F14
  882. BAT_A   LD (L_LAND),A
  883.         CALL BATTL_
  884.         CP 1
  885.         RET
  886.  
  887. BATTLE    ;бой с нло
  888.         CALL SEABAT
  889.  
  890. BATTL1   ;битва
  891.         DI
  892.         CALL NOKEYw
  893.          LD A,R
  894.          LD (RNB),A
  895. ;       JR RRJR ;==
  896. ;        LD HL,256*5+13 ;GUN
  897. ;        LD (AQNAVT+9),HL
  898. ;        LD HL,256*11+12 ;GUN
  899. ;        LD (AQNAVT+11),HL
  900. ;        LD A,1
  901. ;        LD (T_TYPE),A
  902.        
  903. RRJR    CALL B_LOOP
  904.         CALL POSTBAT
  905.         CALL GOhome
  906.         JP MLOOP
  907.