?login_element?

Subversion Repositories NedoOS

Rev

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

  1. MXDM    DEFM    "////////////////////////" ;табл.альтернатив
  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. DD      RLCA
  382. WA      RLCA
  383. BA      ADD     A,L
  384.         LD      L,A
  385.         JR      NC,BA_
  386.         INC     H
  387. BA_     LD      A,(HL)
  388.         RET
  389.  
  390. INS     LD      A,(IX) ;точка в боксе
  391.         CP      L
  392.         RET     NC
  393.         LD      A,L
  394.         CP      (IX+2)
  395.         RET     NC
  396.         LD      A,(IX+1)
  397.         CP      H
  398.         RET     NC
  399.         LD      A,H
  400.         CP      (IX+3)
  401.         RET
  402.  
  403. NAL     CALL    STD ;наличные
  404.         LD      HL,#1700
  405.         LD      (SX),HL
  406.         XOR     A
  407.         LD      (HIGH),A
  408.         LD      A,132
  409.         CALL    NWRDM
  410.         LD      HL,MONEY
  411.         CALL    WD
  412.         JP      WORD
  413.  
  414.  
  415.  
  416. _words  DEFW    WORDS;/NAMES
  417.  
  418. NWRD    LD      B,A
  419.         INC     B
  420.         LD      HL,(_words)
  421. NW0     LD      A,(HL)
  422.         INC     HL
  423.         CP      #7E
  424.         JR      NZ,NW0
  425.         DJNZ    NW0
  426.         JP      WORDHL
  427.  
  428. NWRDM   LD      L,A
  429.         Ms      1
  430.         LD      A,L
  431.         CALL    NWRD
  432.         JP      MEM7
  433.  
  434. BACK    LD      HL,SCR
  435.         LD      DE,DSCR
  436.         LD      BC,6912
  437.         LDIR
  438.         RET
  439.  
  440. NOKEYw  CALL CONTR ;ждать ненажатия
  441.         AND %111111
  442.         JR NZ,NOKEYw
  443.         LD A,14
  444.         JP DELAY
  445.  
  446. TMOF    ;ждать FIRE
  447.         CALL NOKEYw
  448. TMOf    CALL CONTR
  449.         AND %111111
  450.         RET NZ
  451.         JR TMOf
  452. ;Цвета меню
  453. DMCOL   DEFB    #38,#30,#70,#4D,#69,000,000,#79,#39,#72
  454.         DEFB    #7A,#68,#38,#69,#71,#78,#6B,#7A,#72,#38
  455.         DEFB    #79,#38,#46,#68,#78,#78,#58,#30,#78,#78
  456.         DEFB    #43,#38,#38,#68,#79,#68,#38,#68,#68,#4D
  457.         DEFB    #79,#38,#46,#68,#47,#71,#56,#72,#30,#7A
  458.         DEFB    #39,#38,#69,#57,#60,#78,#7A,#38,#38,#71
  459.         DEFB    #60,#79,#30,#7A,#7A,#78,#78,#78,#7A,#57
  460.         DEFB    #7A,#7A,#38,#69,#71,#78,#7A,#79,#72,#79
  461.         DEFB    #71,#7A,#38,#38,#39,#78,#38,#38,#38,#38
  462.         DEFB    000,000,000,#4F,#6A,#7A,#38,#38
  463.  
  464. ;============параметры ландшафта
  465. L_LAND  DEFB 1 ;ТИП ландшафта (0-7,8-КолонII,9-UбазаII,10-корабльII)
  466. L_UFO   DEFB 6 ;тип НЛО (0..8)
  467. L_MOD   DEFB 1 ;модификация ландш.
  468. L_IPOS  DEFW 1 ;поз.истр
  469. B_RET   DEFB 1 ;рез-т боя(0/1/2-гибель/эвак/победа)
  470. ;===========пришельцы
  471. A_RASA  DEFB 4 ;раса(1..5)
  472. A_NUM   DEFB 22 ;макс число (4..22)
  473. ;===============================
  474.  
  475. WEAPON  ;парам оруж(TU,TUp,PREC,PRECp,HE,FR,Quantity,POWER)
  476.         DEFB    25,50,60,90,32,0,25,0
  477.         DEFB    45,90,50,110,90,0,6,1
  478.         DEFB    90,90,120,120,210,0,5,2
  479.         DEFB    55,75,70,120,0,120,6,0
  480.         DEFB    40,75,60,90,60,0,16,1
  481.         DEFB    30,30,100,100,80,0,0,0
  482.         DEFB    25,25,100,100,150,0,0,0
  483.         DEFB    45,80,50,100,105,0,15,3
  484.         DEFB    40,60,75,110,75,0,25,2
  485.         DEFB    50,70,80,115,130,0,14,3
  486.         DEFB    45,45,100,100,120,0,0,2
  487.         DEFB    40,40,100,100,0,80,0,0
  488.         DEFB    40,60,70,105,0,0,7,0
  489.         DEFB    45,45,100,100,0,0,0,0
  490.         DEFB    24,24,100,100,0,0,0,0
  491.         DEFB    0,0,0,0,60,0,0,2 ;для взрыв.предм
  492.         DEFB    TIM_6,TIM_6,100,100,0,0,0,0 ;для тентак
  493. ;Цена выстрела
  494. WP_PRC  DEFW    55,900,3500,2400,550,0,0,1100,700,950,0,300,0,0,0
  495.  
  496. ATRB2   INC H
  497.         INC H
  498.         JP ATRBAR
  499.  
  500. B_DRAW  DEFB 0; 0 -из меню, 1 -из боя
  501. SOLDAT  DEFB 0
  502. SOLD_D  DEFW 0
  503. Db      DEFB    1
  504.  
  505. DRAW_P  LD IX,(SOLD_D)
  506. ;----рис.поле.параметров
  507.         CALL OFFD
  508.         CALL STD
  509.         LD A,#13
  510.         LD (Db),A
  511.         LD (HIGH),A
  512.         LD B,6
  513.         LD HL,#40A
  514.         PUSH IX
  515.         CHNs XOR_
  516. DWP     PUSH BC
  517.         PUSH HL
  518.         LD (SX),HL
  519.         LD A,(IX+3)
  520.         CALL WB
  521.         LD A,(Db)
  522.         ADD A,16
  523.         LD (Db),A
  524.         LD D,A
  525.         LD E,#70
  526.         LD H,0
  527.         LD L,(IX+3)
  528.         INC L
  529.         INC IX
  530.         ADD HL,DE
  531.         LD B,11
  532. DR4     CALL LINE
  533.         INC H
  534.         INC D
  535.         DJNZ DR4
  536.         POP HL
  537.         INC H
  538.         INC H
  539.         POP BC
  540.         DJNZ DWP
  541.         POP IX
  542.         Ms 3
  543.         CALL STD
  544.         ATRs 0,#2018,#28;всё
  545.         LD BC,#1C04
  546.         LD A,#30   ;Ф.И.О.
  547.         CALL ATRBAR
  548.         ATRs #400,#40C,#79;оруж
  549.         LD B,4
  550.         LD DE,xWBUTTN
  551. P12     PUSH BC
  552.         LD BC,#403
  553.         CALL PUTSIM
  554.         INC H
  555.         INC H
  556.         INC H
  557.         POP BC
  558.         DJNZ P12
  559.         ATRs #406,#30C,#72;парам
  560.         LD B,3
  561.         LD DE,xPARAM
  562.         CALL PUTSIM
  563.         LD HL,#20E
  564.         LD BC,#E02
  565.         LD A,#38  ;парам.линии
  566.         CALL ATRB2
  567.         LD A,#70
  568.         CALL ATRB2
  569.         LD A,#58
  570.         CALL ATRB2
  571.         LD A,#78
  572.         CALL ATRB2
  573.         LD A,#60
  574.         CALL ATRB2
  575.         LD A,#68
  576.         CALL ATRB2
  577.         LD B,4
  578.         LD DE,xBUTTON
  579.         LD HL,28
  580. P14     PUSH BC
  581.         LD BC,#404
  582.         CALL PUTSIM
  583.         LD A,4
  584.         ADD A,H
  585.         LD H,A
  586.         POP BC
  587.         DJNZ P14
  588.         LD BC,#202
  589.         LD HL,#FD1D
  590.         LD DE,xLABEL
  591.         CALL PBL
  592.         LD DE,4*32+xLABEL
  593.         CALL PBL
  594.         LD DE,24*32+xLABEL
  595.         CALL PBL
  596.         LD DE,3*32+xLABEL
  597.         CALL PBL
  598.         LD E,(IX+1)
  599.         LD L,3*3*8
  600.         CALL MULB
  601.         LD HL,xSIGN
  602.         ADD HL,DE
  603.         PUSH HL
  604.         ATRs #1100,#303,#70 ;звание
  605.         POP DE
  606.         CALL PUTSIM
  607.         LD E,(IX+2)
  608.         LD L,3*3*8
  609.         CALL MULB
  610.         LD HL,24*24+xSIGN
  611.         ADD HL,DE
  612.         PUSH HL
  613.         ATRs #110F,#303,#78 ;защита
  614.         POP DE
  615.         CALL PUTSIM
  616.         LD B,4   ;оружие
  617.         PUSH IX
  618.         LD A,(B_DRAW)
  619.         OR A
  620.         JR Z,DR50
  621.         LD A,17-9 ;(из боя)
  622.         CALL HER_BA
  623.         PUSH HL
  624.         POP IX
  625. DR50    LD HL,#2400
  626. DR5     PUSH BC
  627.         LD A,(IX+9)
  628.         INC IX
  629.         CP 255
  630.         JR Z,DR6
  631.         PUSH HL
  632.         LD L,A
  633.         LD E,4*2*8
  634.         CALL MULB
  635.         LD HL,xWEAPON
  636.         ADD HL,DE
  637.         EX DE,HL
  638.         POP HL
  639.         LD BC,#410
  640.         CALL PUTSCR
  641. DR6     LD A,H
  642.         ADD A,24
  643.         LD H,A
  644.         POP BC
  645.         DJNZ DR5
  646.         POP IX
  647.         LD A,2
  648.         LD (HIGH),A
  649.         LD A,(IX+1)
  650.         LD HL,#1204
  651.         LD (SX),HL
  652.         ADD A,80
  653.         CALL NWRDM
  654.         LD A,#13
  655.         LD (SX),A
  656.         LD A,(IX+2)
  657.         OR A
  658.         JR Z,DW1
  659.         ADD A,14
  660.         JR DW2
  661. DW1     LD A,160
  662. DW2     CALL NWRDM
  663.         LD HL,#101
  664.         LD (SX),HL
  665.         LD HL,NAMES
  666.         LD (_words),HL
  667.         LD A,(IX)
  668.         DEC A
  669.         CALL NWRDM
  670.         LD HL,WORDS
  671.         LD (_words),HL
  672.         XOR A
  673.         LD (HIGH),A
  674.         WRDs #1104,158
  675.         WRDs #1113,159
  676.         JP MEM7
  677.  
  678. PBL     INC H
  679.         INC H
  680.         INC H
  681.         INC H
  682.         JP PUTSIM
  683.  
  684. SELM    LD HL,SELmr ;Выбор без выводa инф.
  685. SELTX   LD (sx1+1),HL ;HL-Sub.ADR
  686.         LD (sx2+1),HL
  687.         CALL MEM7
  688.         CALL INIMNU ;Выбор c выводом инф.
  689.         CALL MENUC
  690. SELTN   CALL MARK_
  691.         JR C,SELTN
  692.         LD A,(MPOS)
  693. sx2     CALL 15635
  694. selm_   CALL MARK
  695.         PUSH AF
  696. sx1     CALL 15635
  697.         POP AF
  698.         JR NC,selm_
  699.         CP 254
  700.         RET NC ;NC-отмена
  701.         LD HL,MXDM
  702.         CALL BA
  703.         SCF
  704. SELmr   RET
  705.  
  706. E_I     pushs;$
  707.         EI
  708.         HALT
  709.         DI
  710.         pops;$
  711.         RET
  712.  
  713. YES_NO  LD BC,#DFFE  ;Z-Yes/NZ-No
  714.         IN A,(C)
  715.         AND #10
  716.         RET Z
  717.         LD B,#7F
  718.         IN A,(C)
  719.         CPL
  720.         AND 8
  721.         RET NZ
  722.         JR YES_NO
  723.  
  724. RESNUM  ;выч числа иссл
  725.         LD HL,RS
  726.         LD BC,#5000
  727. RESU1   LD A,(HL)
  728.         INC HL
  729.         OR A
  730.         JR NZ,RESU2
  731.         INC C
  732. RESU2   DJNZ RESU1
  733.         LD A,C
  734.         SUB #1F
  735.         RET
  736.  
  737.  
  738. ;===================================
  739.  
  740. VICTRY  ;полная победа
  741.         CALL LDASM3
  742.         CALL POBEDA
  743.         CALL LDASM2
  744.         CALL NW_GE
  745.         CALL OFFS
  746.         CALL MLOOP
  747.  
  748. WAREND  DEFB 0 ;не 0 - нет Пси-контр
  749. BATRES  DEFB 2 ;рез-т боя
  750. BATTL_  CALL PREBAT ;один бой
  751.         CALL LDASM3
  752.         CALL L_Land
  753.         CALL L_OFF
  754.         CALL SWPBAT
  755.         CALL PT128
  756.         LD (BATRET+1),SP
  757.         CALL COMBAT
  758. BATRET  ;A=0-гибель,1-эвак.,2-победа
  759.         LD SP,#4022
  760.         LD (BATRES),A
  761.         PUSH AF
  762.         CALL PICK
  763.         CALL TO_INT
  764.         CALL SWPBAT
  765.         CALL LDASM1
  766.         CALL LDASM2
  767.         CALL MEM7
  768.         POP AF
  769.         RET
  770.  
  771. L_ON    LD HL,#E000 ;[]-откр поле
  772.         LD BC,#2000
  773.         LD A,(xHACK)
  774.         CP #7F
  775.         RET NZ
  776. LQWE    RES 7,(HL)
  777.         INC HL
  778.         DEC BC
  779.         LD A,C
  780.         OR B
  781.         JR NZ,LQWE
  782.         RET
  783.  
  784. ;LODT   DEFW LESHA,ASMBL1,ASMBL2
  785. ;LODLEN DEFW #1500,#1500,#1800
  786. ;LODLPc  PUSH AF
  787. ;       LD HL,LODLEN
  788. ;       CALL WT
  789. ;       POP AF
  790. ;       PUSH HL
  791. ;       LD HL,LODT ;без компр
  792. ;       CALL WT
  793. ;       XOR A
  794. ;       CALL MEM
  795. ;       POP BC
  796. ;       LDIR
  797. ;       RET
  798.  
  799.        if 0
  800. LODLPc  LD HL,#4000 ;c компр
  801.         CALL WT
  802.         XOR A
  803.         CALL MEM
  804.         JP DELPC
  805.        endif
  806.  
  807. BATREE  LD (WAREND),A
  808.         JR BATRET
  809.  
  810. SWPBAT  CALL MEM7
  811.         LD DE,SwpADR
  812.         LD HL,SwpMEM
  813.         LD BC,#1A00
  814.         JP SWAP_X
  815.  
  816. LDASM1  LD DE,#AB00
  817.         LD A,1
  818.         JR lda
  819. LDASM3  LD DE,SwpADR
  820.         LD A,3
  821.         JR lda
  822. LDASM2  LD DE,SwpADR
  823.         LD A,2
  824. lda     CALL LODmlz;LODLPc
  825.         JP MEM7
  826.  
  827. LODALX  LD DE,DSCR
  828.         PUSH DE
  829.         XOR A
  830.         CALL LODmlz;LODLPc
  831.         CALL PT128
  832.         LD BC,#1500
  833.         POP HL
  834.         LD DE,#B000
  835.         LDIR
  836.         RET
  837.  
  838. B_LOOP  ;вызов 1-3х этапов боя
  839.         CALL CLEAR
  840.         LD A,(T_TYPE)
  841.         CP 7
  842.         JR C,BP1
  843.         LD A,5
  844.         CALL BAT_A
  845.         CP 2
  846.         JP C,SMERT
  847.         LD A,8
  848.         CALL BAT_A
  849.         CP 2
  850.         JP C,SMERT
  851.         LD A,7
  852.         CALL BAT_A
  853.         CP 2
  854.         JP C,SMERT
  855.         CALL VICTRY
  856. BP1     CALL BAT_A
  857.         JP Z,EVAC
  858.         JP C,ALLDIE
  859.         LD A,(RS+57)
  860.         OR A
  861.         JR NZ,BPOK ;не знаем о нижн этажах
  862.         LD A,(T_TYPE)
  863.         CP 1
  864.         JR Z,BP21
  865.         CP 5
  866.         JR C,BPOK ;нет нижн эт
  867.         ADD A,3
  868.         JR BP2
  869. BP21    LD A,10
  870. BP2     CALL BAT_A
  871.         JP Z,EVAC
  872.         JP C,ALLDIE
  873. BPOK    CALL BACK
  874.         LD IX,MU95
  875.         JP MNU
  876.  
  877. MU95    DEFW #404,#5F14
  878. BAT_A   LD (L_LAND),A
  879.         CALL BATTL_
  880.         CP 1
  881.         RET
  882.  
  883. BATTLE    ;бой с нло
  884.         CALL SEABAT
  885.  
  886. BATTL1   ;битва
  887.         DI
  888.         CALL NOKEYw
  889.          LD A,R
  890.          LD (RNB),A
  891. ;       JR RRJR ;==
  892. ;        LD HL,256*5+13 ;GUN
  893. ;        LD (AQNAVT+9),HL
  894. ;        LD HL,256*11+12 ;GUN
  895. ;        LD (AQNAVT+11),HL
  896. ;        LD A,1
  897. ;        LD (T_TYPE),A
  898.        
  899. RRJR    CALL B_LOOP
  900.         CALL POSTBAT
  901.         CALL GOhome
  902.         JP MLOOP
  903.