Subversion Repositories NedoOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1.         DEFS 35,#1
  2.  
  3. ;-------Энциклопедия
  4. UPLEN   EQU     60
  5. UP1st   EQU     54
  6. USF     DEFB    55 ;файл
  7. USN     DEFB    59 ;ЗАПРОС
  8. UST     DEFB    0 ;0-Изобр.
  9.  
  10. ;Цвета уфопедии 60*2
  11. UCOL    DEFB    #30,#78,#68,#38,#70,#38,#68,#78,#28,#68,#38,#60
  12.         DEFB    #58,#68,#78
  13.         DEFB    #69,#60,#72
  14.         DEFB    #38,#71,#78
  15.         DEFB    #60,#29,#72,#68,#78,#7A,#30,#58,#78,#69,#58,#68
  16.         DEFS    6,#68
  17.         DEFB    #70,#70,#78
  18.         DEFB    #71,#70,#78,#38,#68,#58,#78,#70,#60
  19.         DEFB    #6A,#58,#78,#69,#60,#30,#38,#68,#72
  20.  
  21. UCOL2   DEFB    #28,#60,#70,#50,#78,#58,#60,#70,#50,#30,#68,#78
  22.         DEFB    #68,#78,#70
  23.         DEFB    #69,#60,#71
  24.         DEFB    #38,#71,#78
  25.         DEFB    #68,#58,#78,#79,#60,#70,#60,#58,#79,#72,#71,#78
  26.  
  27.  
  28. uCOPY   LD      A,192
  29.         LD      HL,DSCR
  30.         LD      DE,SCR
  31. Ux7     LD      BC,28
  32.         LDIR
  33.         LD      BC,4
  34.         ADD     HL,BC
  35.         EX      DE,HL
  36.         ADD     HL,BC
  37.         EX      DE,HL
  38.         DEC     A
  39.         JR      NZ,Ux7
  40.         CALL    E_I
  41.         LD      HL,0
  42. uh      LD      BC,#1C03
  43. uHI     EQU     uh+1
  44.         LD      A,(COLOR)
  45.         CALL    ATRBAR
  46.         LD      H,C
  47.         LD      C,#15
  48.         LD A,3
  49.         LD (uHI),A
  50.         LD      A,(COLOR+1)
  51.         JP      ATRBAR
  52.  
  53. ;копирование экрана из буфера(A:0..2)
  54. UX      LD      BC,5376
  55.         LD      HL,SCR+5376
  56.         CP      1
  57.         JR      Z,Ux1
  58.         JR      C,Ux2
  59.         ADD     HL,BC
  60.         JR      Ux1
  61. Ux2     AND A
  62.         SBC     HL,BC
  63. Ux1     EX      DE,HL
  64.         CALL    STD
  65.         LD      BC,#1C18
  66.         LD      HL,0
  67.         CALL    PUTSIM
  68.         EXX
  69.         CALL MEM7
  70.         EXX
  71.         CALL    STS
  72.         XOR     A
  73.         CALL    ATRBAR
  74.         JR      uCOPY
  75. ;Уфопедиа  (файлы 1-20)
  76. USA     CALL    LDASM3
  77. USA_    CALL    PT128
  78.         LD      DE,(USN)
  79.         LD      L,3
  80.         CALL    DIVB
  81.         LD      A,(USF)
  82.         CP      E
  83.         LD      A,D
  84.         JR      Z,US1
  85.         LD      A,E
  86.         LD      (USF),A
  87.         ADD     A,UP1st
  88.         LD      HL,SCR
  89.         CALL    READ
  90.         LD      BC,(SCR)
  91.         LD      HL,SCR+2
  92.         ADD     HL,BC
  93.         DEC     HL
  94.         LD      DE,#FFFE
  95.         LDDR
  96.         EX      DE,HL
  97.         INC     HL
  98.         LD      DE,SCR
  99.         CALL    DELPC
  100.         JR      USA_
  101.  
  102. US1     PUSH DE
  103.         CALL LDASM2
  104.         CALL PT128
  105.         POP DE
  106.         LD      A,(USN)
  107.         PUSH AF
  108.         LD      HL,UCOL
  109.         CALL    BA
  110.         LD      H,A
  111.         LD      L,A
  112.         LD      (COLOR),HL
  113.         POP AF
  114.         CP 33
  115.         JR NC,US11
  116.         PUSH AF
  117.         LD HL,UCOL2
  118.         CALL BA
  119.         LD (COLOR),A
  120.         POP AF
  121.         CP 13
  122.         JR NC,US11
  123.         LD A,7
  124.         LD (uHI),A
  125. US11    LD A,(C_ONOF)
  126.         OR A
  127.         JR Z,US111
  128.         LD HL,#3838
  129.         LD (COLOR),HL
  130. US111   LD      A,D
  131.         CALL    UX
  132.         JP      ARRINI
  133.  
  134. UTA     CALL    STD
  135.         BYTs    0,#1C18,#FF
  136.         LD      HL,#2028;Цвет заголовка UP +Цвет текта UP
  137.         LD      (COLOR),HL
  138.         LD      A,9
  139.         LD      (HIGH),A
  140.         LD      HL,4
  141.         LD      (SX),HL
  142.         LD      A,1+#80 ;M$
  143.         CALL    MEMX
  144.         LD      A,(USN)
  145.         CALL    NWRD
  146.         XOR     A
  147.         LD      (HIGH),A
  148.         LD      HL,#300
  149.         LD      (SX),HL
  150.         LD      HL,PEDIA
  151.         LD      A,(USN)
  152.         AND     A
  153.         JR      Z,UQ
  154.         LD      B,A
  155. UJ      LD      A,(HL)
  156.         INC     HL
  157.         CP      127
  158.         JR      NZ,UJ
  159.         DJNZ    UJ
  160. UQ      CALL    TEXT
  161.         CALL    UPARAM
  162.         CALL    UPUFO
  163.         CALL    STS
  164.         CALL    MEM7
  165.         JP      uCOPY
  166.  
  167. UP      CALL    INIMNU
  168.         LD      HL,#FFFF
  169.         LD      (MOLD),HL
  170.         LD      (MBEG),HL
  171.         LD      A,98
  172.         LD      (USF),A
  173.         LD      (UST),A
  174.         CALL    DTBAR
  175. UP_     LD      A,(UST)
  176.         OR      A
  177.         PUSH    AF
  178.         CALL    NZ,UTA
  179.         POP     AF
  180.         CALL    Z,USA
  181. UPM_    CALL    MARK_
  182.         JR      NC,UPM_
  183. UPD_    CALL    MARK_
  184.         JR      C,UPD_
  185.         LD      A,(MX)
  186.         CP      226
  187.         JR      C,UPM_
  188.         LD      A,(MY)
  189.         CP      16
  190.         JR      C,UPM_
  191.         CP      48
  192.         JR      C,UPU
  193.         CP      80
  194.         JR      C,UPS
  195.         CP      112
  196.         JR      C,UPT
  197.         CP      144
  198.         JR      C,UPD
  199.         CP      176
  200.         JR      NC,UPM_
  201.         RET     C
  202. UPS     XOR     A
  203.         LD      (UST),A
  204.         JR      UP_
  205. UPU     LD      A,(USN)
  206.         DEC     A
  207.         CP      255
  208.         JR      NZ,Mr4
  209.         LD      A,UPLEN-1
  210. Mr4     LD      (USN),A
  211.         LD      HL,RS
  212.         CALL    BT
  213.         OR      A
  214.         JR      Z,UP_
  215.         JR      UPU
  216. UPD     LD      A,(USN)
  217.         INC     A
  218.         CP      UPLEN
  219.         JR      C,Mr5
  220.         XOR     A
  221. Mr5     LD      (USN),A
  222.         LD      HL,RS
  223.         CALL    BT
  224.         OR      A
  225.         JR      Z,UP_
  226.         JR      UPD
  227. UPT     LD      (UST),A
  228.         JR      UP_
  229.  
  230. DTBAR   Ms 3+#80
  231.         CALL OFFD
  232.         CALL STD
  233.         LD HL,28
  234.         LD BC,#418
  235.         LD A,#30 ;цвет кнопок  UP
  236.         CALL ATRBAR
  237.         LD H,2
  238.         LD BC,#504
  239.         LD DE,xLABEL
  240. DXT     PUSH BC
  241.         PUSH DE
  242.         LD B,4
  243.         LD DE,xBUTTON
  244.         CALL PUTSIM
  245.         POP DE
  246.         INC H
  247.         INC L
  248.         LD BC,#202
  249.         CALL PUTSIM
  250.         DEC L
  251.         INC H
  252.         INC H
  253.         INC H
  254.         LD A,32
  255.         ADD A,E
  256.         LD E,A
  257.         JR NC,DXQ
  258.         INC D
  259. DXQ     POP BC
  260.         DJNZ DXT
  261.         CALL OFFS
  262.         JP COPYAT
  263.  
  264. TXMN    DEFW XM1,XM2,XM3,XM4,XM5,XM6,XM7,XMopt,XMR
  265. XMENUS           ;Гл.меню
  266.         CALL SAVMON
  267. XMENU   CALL OFFD
  268.         CALL STD
  269.         ATRs 0,#2018,#70
  270.         CALL NAL
  271.         LD IX,MU14
  272.         CALL SELM
  273.         JP NC,XMR
  274.         LD HL,TXMN
  275.         CALL WT
  276.         LD (XMS+1),HL
  277. XMS     CALL #3D2E
  278.         JR XMENU
  279.  
  280.  
  281. XM1U    CP 255
  282.         RET Z
  283.         LD HL,#160B
  284.         LD (SX),HL
  285.         LD HL,MXDM
  286.         CALL BA
  287.         LD (SOLDAT),A
  288.         ADD A,A
  289.         ADD A,A
  290.         ADD A,A
  291.         ADD A,A
  292.         LD HL,AQNAVT
  293.         CALL BA
  294.         LD (SOLD_D),HL
  295.         INC HL
  296.         LD A,(HL)
  297.         ADD A,80
  298.         JP NWRDM
  299.  
  300. MU14    DEFW #502,#E1A,T+97
  301.         DEFB 9
  302.  
  303. MU41    DEFW #804,#2916
  304. MU34    DEFW #403,#2218,DSDAT,#0A,DSDAT
  305. XM1     LD A,(AQU) ;ЭКИПАЖ
  306.         OR A
  307.         JR NZ,PR1
  308.         LD IX,MU41
  309.         JP MNU
  310. PR1     LD DE,DSDAT
  311.         LD B,10
  312.         LD HL,AQNAVT
  313. PR11    PUSH BC
  314.         LD A,(HL)
  315.         LD (DE),A
  316.         INC DE
  317.         LD BC,16
  318.         ADD HL,BC
  319.         POP BC
  320.         DJNZ PR11
  321.         CALL STD
  322.         BYTs #1400,#2004,255
  323.         WRDs #1601,158
  324.         LD IX,MU34
  325.         LD HL,XM1U
  326.         CALL SELTX
  327.         RET NC
  328. X1OK    CALL DRAW_P
  329.         CALL COPYAT
  330.         CALL SAVE_6
  331. X1EN    LD HL,#FFFF
  332.         LD (MBEG),HL
  333.         LD (MOLD),HL
  334. P141    CALL MARK_
  335.         JR C,P141
  336. P15     CALL MARK_
  337.         JR NC,P15
  338.         LD IX,AQUWIN-4
  339.         LD HL,(MX)
  340.         CALL INSW
  341.         JP C,W_GUN
  342.         CALL INSW
  343.         JR C,W_PAR
  344.         CALL INSW
  345.         JP C,W_NXT
  346.         CALL INSW
  347.         JR NC,P15
  348. P151    LD HL,S_ARM ;защита
  349.         LD (W_XXX),HL
  350.         LD IX,MU37
  351.         XOR A
  352.         LD (TTY),A
  353.         LD HL,XM1S
  354.         CALL SELTX
  355.         JR NC,X1NXT
  356.         LD A,(W_TYP)
  357.         CP 3
  358.         JR NC,P156
  359.         LD HL,W_NUM
  360.         LD A,(HL)
  361.         INC HL
  362.         OR (HL)
  363.         JR Z,X1NXT
  364. P156    LD IX,(SOLD_D)
  365.         LD A,(IX+2)
  366.         OR A
  367.         JR Z,P152
  368.         DEC A
  369.         LD HL,(W_XXX)
  370.         CALL WA
  371.         CALL INCW
  372. P152    LD A,(W_TYP)
  373.         INC A
  374.         CP 4
  375.         JR NC,P153
  376.         LD (IX+2),A
  377.         LD HL,(W_ADR)
  378.         CALL DECW
  379. P154    JP X1OK
  380. P153    LD (IX+2),0
  381.         JR P154
  382. X1NXT   CALL LOAD_6
  383.         CALL COPYAT
  384.         JP X1EN
  385. W_PAR   LD A,H
  386.         SUB (IX+1)
  387.         RRA
  388.         RRA
  389.         RRA
  390.         RRA
  391.         AND 7
  392.         ADD A,162
  393.         LD (MU35+4),A
  394.         LD IX,MU35
  395.         CALL MENUC
  396. W_PW    CALL MARK_
  397.         JR C,W_PW
  398.         JR X1NXT
  399.  
  400. W_NXT   LD A,H
  401.         RLCA
  402.         RLCA
  403.         RLCA
  404.         AND 7
  405.         JR Z,WND
  406.         CP 2
  407.         RET C
  408.         JR Z,WOUT
  409. WNU     LD A,(SOLDAT)
  410.         INC A
  411.         CP 10
  412.         JR C,WU1
  413.         XOR A
  414. WU1     LD (SOLDAT),A
  415.         CALL E_AQ
  416.         JR Z,WNU
  417.         JP X1OK
  418. WND     LD HL,SOLDAT
  419.         LD A,(HL)
  420.         DEC (HL)
  421.         OR A
  422.         JR NZ,W1D
  423.         LD A,9
  424.         LD (HL),A
  425. W1D     LD A,(HL)
  426.         CALL E_AQ
  427.         JR Z,WND
  428.         JP X1OK
  429. WOUT    LD IX,MU38
  430.         CALL SELM
  431.         JR NC,X1NXT
  432.         OR A
  433.         JR NZ,X1NXT
  434.         LD HL,(SOLD_D)
  435.         LD (HL),0
  436.         LD HL,AQU
  437.         DEC (HL)
  438.         RET
  439.  
  440.  
  441. MU38    DEFW #508,#2610,T+157,2
  442. MU40    DEFW #405,#2813
  443.         DEFB 0
  444.         DEFW T+157,2
  445.  
  446. E_AQ    LD HL,AQNAVT ;проверка: есть акв. (A)?
  447.         RLCA
  448.         RLCA
  449.         CALL DD
  450.         LD A,(HL)
  451.         LD (SOLD_D),HL
  452.         OR A
  453.         RET ;Z-нет
  454.  
  455. W_GUN   LD A,H
  456.         SUB (IX+1)
  457.         LD E,A
  458.         LD L,24
  459.         CALL DIVB
  460.         LD A,8
  461.         ADD A,E
  462.         LD E,A
  463.         LD D,0
  464.         LD HL,(SOLD_D)
  465.         INC HL
  466.         LD A,(HL)
  467.         LD (W_MC_R),A
  468.         ADD HL,DE
  469.         LD A,(HL)
  470.         CP 255
  471.         JR Z,WG1
  472.         PUSH HL
  473.         LD IX,MU40
  474.         INC A
  475.         LD (MU40+4),A
  476.         CALL SELM
  477.         POP HL
  478.         JP NC,X1NXT
  479.         OR A
  480.         JP NZ ,X1NXT
  481.         LD A,(HL)
  482.         LD B,255
  483.         LD (HL),B
  484.         LD HL,S_GUN
  485.         CALL WA
  486.         CALL INCW
  487.         JP X1OK
  488. W_MC_R  DEFB    1;ранг для МС
  489. WG1     LD (DSDAT),HL
  490. WG01    XOR A
  491.         LD (TTY),A
  492.         LD HL,S_GUN
  493.         LD (W_XXX),HL
  494.         LD IX,MU36
  495.         LD HL,XM1S
  496.         CALL SELTX
  497.         JP NC,X1NXT
  498.         LD HL,W_NUM
  499.         LD A,(HL)
  500.         INC HL
  501.         OR (HL)
  502.         JP Z,X1NXT
  503.         LD A,(W_TYP)
  504.         CP 12
  505.         JR NZ,WG12
  506.         LD A,(W_MC_R)
  507.         CP 7
  508.         JR NC,WG12
  509.         LD IX,MU45
  510.         CALL MNU
  511.         JP X1NXT
  512. WG12    LD HL,(SOLD_D) ;massa
  513.         LD DE,9
  514.         ADD HL,DE
  515.         EX DE,HL
  516.         LD BC,#400
  517. WG16    LD A,(DE)
  518.         CP 255
  519.         JR Z,WG17
  520.         LD HL,MASSA
  521.         CALL BA
  522.         ADD A,C
  523.         LD C,A
  524. WG17    INC DE
  525.         DJNZ WG16
  526.         LD A,(W_MC_R)
  527.         INC A
  528.         SRL A
  529.         ADD A,4
  530.         SUB C
  531.         LD C,A
  532.         LD A,(W_TYP)
  533.         LD HL,MASSA
  534.         CALL BA
  535.         CP C
  536.         JR C,WG18
  537.         LD IX,MU47
  538.         CALL MNU
  539.         JR WG01
  540. WG18    LD HL,(W_ADR)
  541.         CALL DECW
  542.         LD HL,(DSDAT)
  543.         LD A,(W_TYP)
  544.         LD (HL),A
  545.         JP X1OK
  546. MU47    DEFW #106,#2F14
  547. MU45    DEFW #407,#2D16
  548.         DEFB 13
  549.  
  550. MASSA   DEFB 2,3,5,4,2,1,2,4,3,3,0,1,3,0,0
  551.  
  552. W_XXX   DEFW 0;нач таб
  553. W_ADR   DEFW 0;тек адр
  554. W_NUM   DEFW 0;К-во
  555. W_TYP   DEFB 0;тип
  556.  
  557. T16     DEFB 16,17,18,158
  558. MU37    DEFW #507,#2511,T16,4,RS+15
  559. MU36    DEFW #005,#2416,T+1,15,RS
  560. MU35    DEFW #1104,#230f
  561.         DEFB 0
  562.  
  563. DECW    LD A,(HL)
  564.         DEC (HL)
  565.         OR A
  566.         RET NZ
  567.         INC HL
  568.         DEC (HL)
  569.         RET
  570.  
  571. INCW    INC (HL)
  572.         RET NZ
  573.         INC HL
  574.         INC (HL)
  575.         RET
  576.  
  577. XM1S    CP 255
  578.         RET Z
  579.         LD HL,MXDM
  580.         CALL BA
  581.         LD (W_TYP),A
  582.         PUSH AF
  583.         LD HL,TTY
  584.         LD A,(HL)
  585.         OR A
  586.         JR NZ,xm1S
  587.         DEC (HL)
  588.         WRDs #1610,128
  589. xm1S    POP AF
  590.         LD HL,#161A
  591.         LD (SX),HL
  592.         LD HL,(W_XXX)
  593.         CALL WA
  594.         LD (W_ADR),HL
  595.         PUSH HL
  596.         LD A,(HL)
  597.         INC HL
  598.         LD H,(HL)
  599.         LD L,A
  600.         LD (W_NUM),HL
  601.         POP HL
  602.         JP WW
  603.  
  604.        if PROTECT
  605. CHK_3   ;3 проверка сrc3 []
  606.         LD HL,#FF02
  607.         LD (TX),HL
  608.         XOR A
  609.         CALL MEM
  610.         XOR A
  611.         LD C,A
  612.         ADD A,#3D
  613.         LD B,A
  614. prt3    LD DE,TY
  615.         LD A,(DE)
  616.         EXX
  617.         LD HL,TX
  618.         SUB (HL)
  619.         LD (HL),A
  620.         EXX
  621.         LDD
  622.         JP PE,prt3
  623.         RET
  624.        endif
  625.  
  626. AQUWIN  DEFW #400*8,#1004*8
  627.         DEFW #406*8,#1009*8
  628.         DEFW #1C*8,#101F*8+6
  629.         DEFW #110F*8,#1412*8
  630.  
  631. INSW    LD DE,4
  632.         ADD IX,DE
  633.         JP INS
  634. MU2     DEFW    #202,#21A
  635. M20U    DEFB    1
  636.         DEFW    RSN
  637. M21U    DEFB    0
  638.         DEFW    T+121
  639.         DEFB    2
  640. MU9     DEFW    #806,#912
  641. MU4     DEFW    #001,#41C
  642.         DEFB    1
  643.         DEFW    T+1,#FE50,RS
  644.  
  645. XM2             ;Исследования
  646.         LD      B,80
  647. PRT20   LD      C,0
  648.         LD      HL,RS
  649. P21     LD      A,(HL)
  650.         OR      A
  651.         JR      Z,P22
  652.         CP      254
  653.         JR      C,P23
  654.         JR      NZ,P22
  655.         INC     C
  656. P22     INC     HL
  657.         DJNZ    P21
  658.         LD      A,C
  659.         CP      12
  660.         LD      IX,MU4
  661.         LD      A,6
  662.         JR      C,P24
  663.         XOR     A
  664. P24     LD      (IX+1),A
  665.         LD      (IX+4),123
  666.         CALL    SELM
  667.         RET     NC
  668.         PUSH    AF
  669.         LD      HL,RS
  670.         CALL    BA
  671.         POP     AF ;вычисл.времени
  672.         LD      B,18
  673.         CP      12
  674.         JR      C,P2T
  675.         LD      B,30
  676.         CP      18
  677.         JR      C,P2T
  678.         LD      B,90
  679.         CP      21
  680.         JR      C,P2T
  681.         LD      B,28
  682.         CP      33
  683.         JR      C,P2T
  684.         LD      B,16
  685.         CP      39
  686.         JR      C,P2T
  687.         LD      B,35
  688.         CP      60
  689.         JR      C,P2T
  690.         LD      B,24
  691. P2T     LD      (HL),B
  692.         LD      A,B
  693.         LD      (R_TM),A
  694.         JR      XM2
  695. P23     LD      A,81   ;Текущее
  696.         SUB     B
  697.         LD      (M20U),A
  698.         LD      A,(R_TM)
  699.         SRL     A
  700.         SRL     A
  701.         LD      E,A
  702.         LD      C,127
  703.         LD      B,3
  704. P26     CP      (HL)
  705.         JR      NC,P25
  706.         ADD     A,E
  707.         DEC     C
  708.         DJNZ    P26
  709. P25     LD      A,C
  710.         LD      (M21U),A
  711.         LD      IX,MU2
  712.         CALL    SELM
  713.         RET     NC
  714.         OR      A
  715.         JR      NZ,P28
  716.         LD      A,(M20U)
  717.         LD      HL,RS-1
  718.         CALL    BA
  719.         LD      (HL),254
  720.         LD      IX,MU9
  721.         JR      P27
  722. P28     LD      IX,MU4
  723.         LD      (IX+1),0
  724.         LD      (IX+4),122
  725. P27     JP      MNU
  726.  
  727. PRICEs  DEFW    700,3000,1500,985,48000,56000,62500
  728. PRICE   DEFW    0;текущ.табл. цен
  729. MT11    DEFB    1,2,5,51,19,20,21
  730. MT11R   DEFB    1,2,5,30,19,20,21
  731. MU11    DEFW    #405,#B14,MT11,7,MXDM+11
  732. price   DEFW    2;текущ.цена
  733. S_new   DEFW    2;К-во. в сделке
  734. S_old   DEFW    2;текущ.к-во
  735. S_adr   DEFW    2;адр.текущ.к-ва
  736. SUMM    DEFS    4,2
  737.  
  738. XM4             ;Покупка
  739.         LD B,7
  740.         LD HL,MT11R
  741.         LD DE,MXDM+11
  742. P40     LD A,(HL)
  743.         INC HL
  744.         PUSH HL
  745.         LD HL,RS-1
  746.         CALL BA
  747.         POP  HL
  748.         LD (DE),A
  749.         INC DE
  750.         DJNZ P40
  751.         CALL TITNAL
  752.         LD IX,MU11
  753.         LD HL,PRICEs
  754.         LD (PRICE),HL
  755.         LD HL,XM4OU
  756.         CALL SELTX
  757.         RET NC
  758.         CP 4
  759.         JR C,P41
  760.         SUB 4
  761.         LD B,A
  762.         LD A,(T_INTR)
  763.         RLA
  764.         JR C,P42
  765.         LD IX,MU16
  766.         JP MNU
  767. P42     LD HL,(price)
  768.         LD E,(HL)
  769.         INC HL
  770.         LD H,(HL)
  771.         LD L,E
  772.         CALL DECM
  773.         JR NC,P43
  774.         LD IX,MU15
  775.         JP MNU
  776. P43     LD A,B
  777.         LD (T_INTR),A
  778.         LD HL,INT_MX
  779.         CALL BA
  780.         LD (P43u2+1),A
  781.         LD BC,#AFF
  782.         LD IX,AQNAVT ;уволить лишних
  783. P43u    LD A,(IX)
  784.         OR A
  785.         JR Z,P43u1
  786.         INC C
  787.         LD A,C
  788. P43u2   CP 0
  789.         JR C,P43u1
  790.         LD (IX),0
  791.         LD HL,AQU
  792.         DEC (HL)
  793. P43u1   LD DE,16
  794.         ADD IX,DE
  795.         DJNZ P43u
  796.         JP XM4
  797.  
  798. P41     LD DE,130*256+153
  799.         CALL SELEC1
  800. P45     CALL SELEC2
  801.         CALL SELPM
  802.         CP 1
  803.         JP Z,PM47      ;OK
  804.         JR NC,P47
  805.         LD HL,(DSDAT)  ;CANCEL
  806.         LD (MONEY),HL
  807.         LD HL,(DSDAT+2)
  808.         LD (MONEY+2),HL
  809.         LD DE,(S_old)
  810.         LD HL,(S_adr)
  811.         LD (HL),E
  812.         INC HL
  813.         LD (HL),D
  814. PM47    JP XM4
  815. P47     CP 2
  816.         LD HL,(price)
  817.         LD E,(HL)
  818.         INC HL
  819.         LD D,(HL)
  820.         LD HL,S_new
  821.         LD A,(HL)
  822.         JR Z,P46
  823.         CP 250
  824.         JR NC,P45
  825.         EX DE,HL
  826.         CALL DECM ;<+>
  827.         JR C,P45
  828.         EX DE,HL
  829.         LD IX,SUMM
  830.         CALL INCR
  831.         LD HL,S_new
  832.         INC (HL)
  833.         LD HL,(S_adr)
  834.         INC (HL)
  835.         JR NZ,P45
  836.         INC HL
  837.         INC (HL)
  838.         JR P45
  839. P46     OR A;<->
  840.         JR Z,P45
  841.         DEC (HL)
  842.         LD IX,(S_adr)
  843.         LD A,(IX)
  844.         OR (IX+1)
  845.         JR Z,P45
  846.         LD A,(IX)
  847.         DEC (IX)
  848.         OR A
  849.         JR NZ,P466
  850.         DEC (IX+1)
  851. P466    EX DE,HL
  852.         CALL INCM
  853.         EX DE,HL
  854.         LD IX,SUMM
  855.         CALL DECR
  856.         JP P45
  857.  
  858. COPY3   LD BC,2048
  859.         LD HL,DSCR+4096
  860.         LD DE,SCR+4096
  861.         LDIR
  862.         RET
  863.  
  864. MU15    DEFW #306,#0F15
  865. MU16    DEFW #201,#1016
  866. MU17    DEFW #302,#1118
  867.  
  868. XM4OU   CP 255
  869.         RET Z
  870.         LD HL,MXDM
  871.         CALL BA
  872.         PUSH AF
  873.         LD HL,#1613
  874.         LD (SX),HL
  875.         LD HL,(PRICE)
  876.         CALL WA
  877.         LD (price),HL
  878.         CALL WW
  879.         CALL WORD
  880.         LD HL,#1513
  881.         LD (SX),HL
  882.         POP AF
  883.         CP 3
  884.         JR NZ,XO40
  885.         LD HL,S_ART+14
  886.         JR XO44
  887. XO40    JR  NC,XO41
  888.         CP 2
  889.         JR NZ,XO42
  890.         INC A
  891.         INC A
  892. XO42    LD HL,S_GUN
  893.         CALL WA
  894. XO44    LD (S_adr),HL
  895.         LD E,(HL)
  896.         INC HL
  897.         LD D,(HL)
  898.         DEC HL
  899.         LD (S_old),DE
  900.         JP WW
  901. XO41    LD HL,0
  902.         SUB 4
  903.         LD B,A
  904.         LD A,(T_INTR)
  905.         CP B
  906.         JR NZ,XO45
  907.         INC HL
  908. XO45    LD (S_adr),HL
  909.         LD HL,S_adr
  910.         JP WW
  911.  
  912. TITNAL  CALL NAL
  913.         BYTs #1300,#2002,#FF
  914.         WRDs #1600,127
  915.         WRDs #1500,128
  916.         RET
  917.  
  918. MT12    DEFB 111,89,91,90,92
  919. MT_111  DEFB 44,45,46,47,48,49,50,51,112,113
  920. P_ART   DEFW 12000,8900,4700,6200,5500,10500,62000,250,7400,4100
  921. P_GUN   DEFW 450,2250,8200,4600,1200,1800
  922.         DEFW 2770,3300,2100,3520,910,680
  923. P_EQU   DEFW 5000,1300,1550
  924. P_ARM   DEFW 2400,3700,4990
  925. P_INTR  DEFW 20000,22500,25700
  926. MU12    DEFW #807,#C12,MT12,5
  927. MU27    DEFW #100,#1B1E
  928. MU29    DEFW #206,#1D10
  929.         DEFB 0
  930.         DEFW T+155,2
  931. MU13    DEFW #103,#D13;ДЛЯ ВСЕХ ТИПОВ
  932.         DEFB 111
  933.         DEFW 0,0
  934.         DEFW DSDAT
  935. S_XXX   DEFW 0
  936.  
  937. SAVE_6  CALL PT128 ;сохр/восст DSCR в Page6
  938.         LD BC,6912
  939.         CALL CY_
  940.         JP MEM7
  941.  
  942. LOAD_6  CALL PT128
  943.         LD DE,DSCR
  944.         LD HL,SCR
  945.         LD BC,6912
  946.         LDIR
  947.         JP MEM7
  948.  
  949. XM5     LD IX,MU12      ;Продажа
  950.         CALL SELM
  951.         RET NC
  952.         PUSH AF
  953.         CALL SAVE_6
  954.         POP AF
  955.         LD B,A
  956.         LD HL,MT12
  957.         CALL BT
  958.         LD (MU13+4),A
  959.         LD A,B
  960.         CP 3
  961.         JR C,P50
  962.         JR Z,P51
  963.         LD A,(T_INTR)
  964.         CP 3
  965.         LD IX,MU27
  966.         JP NC,MNU
  967. P52     LD B,A
  968.         ADD A,19
  969.         LD (MU29+4),A
  970.         LD A,B
  971.         LD HL,P_INTR
  972.         CALL WT
  973.         LD (price),HL
  974.         CALL NAL
  975.         WRDs #1500,127
  976.         LD A,#13
  977.         LD (SX),A
  978.         LD HL,price
  979.         CALL WW
  980.         CALL WORD
  981.         LD IX,MU29
  982.         CALL SELM
  983.         RET NC
  984.         OR A
  985.         RET NZ
  986.         LD A,255
  987.         LD (T_INTR),A
  988.         LD HL,(price)
  989.         JP INCM
  990. P51     LD HL,S_EQU
  991.         LD DE,T+13
  992.         LD BC,P_EQU
  993.         JR P53_
  994. P50     CP 1
  995.         JR Z,P54
  996.         JR C,P55
  997.         LD HL,S_ARM
  998.         LD BC,P_ARM
  999.         LD DE,T+16
  1000. P53_    LD A,3
  1001.         JR P53
  1002. P54     LD HL,S_GUN
  1003.         LD BC,P_GUN
  1004.         LD DE,T+1
  1005.         LD A,12
  1006.         JR P53
  1007. P55     LD HL,S_ART
  1008.         LD BC,P_ART
  1009.         LD DE,MT_111
  1010.         LD A,10
  1011. P53     LD (MU13+5),DE
  1012.         LD (MU13+7),A
  1013.         LD (PRICE),BC
  1014.         LD (S_XXX),HL
  1015. P577    LD A,(MU13+7)
  1016.         LD B,A
  1017.         LD DE,DSDAT
  1018.         LD HL,(S_XXX)
  1019. P533    LD A,(HL)
  1020.         INC HL
  1021.         OR (HL)
  1022.         INC HL
  1023.         LD (DE),A
  1024.         INC DE
  1025.         DJNZ P533
  1026. P57     CALL TITNAL
  1027.         LD IX,MU13
  1028.         LD HL,XM5OU
  1029.         CALL SELTX
  1030.         PUSH AF
  1031.         JP NC,P58
  1032. P501    LD DE,129*256+131
  1033.         CALL SELEC1
  1034. P505    CALL SELEC2
  1035.         CALL SELPM
  1036.         CP 1
  1037.         JP Z,P58      ;OK
  1038.         JR NC,P507
  1039.         LD HL,(DSDAT)  ;CANCEL
  1040.         LD (MONEY),HL
  1041.         LD HL,(DSDAT+2)
  1042.         LD (MONEY+2),HL
  1043.         LD DE,(S_old)
  1044.         LD HL,(S_adr)
  1045.         LD (HL),E
  1046.         INC HL
  1047.         LD (HL),D
  1048.         JR P58
  1049. P507    CP 2
  1050.         LD HL,(price)
  1051.         LD E,(HL)
  1052.         INC HL
  1053.         LD D,(HL)
  1054.         LD HL,S_new
  1055.         LD A,(HL)
  1056.         JR Z,P506
  1057.         CP 250
  1058.         JR NC,P505
  1059.         LD IX,(S_adr)
  1060.         LD A,(IX)
  1061.         OR (IX+1)
  1062.         JR Z,P505
  1063.         LD A,(IX)
  1064.         DEC (IX)
  1065.         OR A
  1066.         JR NZ,P5051
  1067.         DEC (IX+1)
  1068. P5051   EX DE,HL
  1069.         CALL INCM ;<+>
  1070.         EX DE,HL
  1071.         LD IX,SUMM
  1072.         CALL INCR
  1073.         LD HL,S_new
  1074.         INC (HL)
  1075.         JR P505
  1076. P506    OR A;<->
  1077.         JR Z,P505
  1078.         DEC (HL)
  1079.         LD HL,(S_adr)
  1080.         INC (HL)
  1081.         JR NZ,P511
  1082.         INC HL
  1083.         INC (HL)
  1084. P511    EX DE,HL
  1085.         CALL DECM
  1086.         EX DE,HL
  1087.         LD IX,SUMM
  1088.         CALL DECR
  1089.         JR P505
  1090.  
  1091. P58     CALL LOAD_6
  1092.         CALL NAL
  1093.         POP AF
  1094.         JP C,P577
  1095.         JP XM5
  1096.  
  1097. SELEC1  LD HL,#1300
  1098.         LD (SX),HL
  1099.         LD A,E
  1100.         PUSH DE
  1101.         CALL NWRDM
  1102.         POP DE
  1103.         LD HL,#1400
  1104.         LD (SX),HL
  1105.         LD A,D
  1106.         CALL NWRDM
  1107. SELEC6  CALL INIPM
  1108.         LD HL,(MONEY)
  1109.         LD (DSDAT),HL
  1110.         LD HL,(MONEY+2)
  1111.         LD (DSDAT+2),HL
  1112.         XOR A
  1113.         LD L,A
  1114.         LD H,A
  1115.         LD (S_new),A
  1116.         LD (SUMM),HL
  1117.         LD (SUMM+2),HL
  1118.         RET
  1119.  
  1120. SELEC2  CALL NAL
  1121.         LD HL,#130E
  1122.         LD (SX),HL
  1123.         LD HL,SUMM
  1124.         CALL WD
  1125.         CALL WORD
  1126.         LD HL,#1413
  1127.         LD (SX),HL
  1128.         LD HL,S_new
  1129.         CALL WW
  1130.         LD HL,#1513
  1131.         LD (SX),HL
  1132.         LD HL,(S_adr)
  1133.         CALL WW
  1134.         CALL COPY3
  1135.         JP E_I
  1136.  
  1137. XM5OU   CP 255
  1138.         RET Z
  1139.         LD HL,MXDM
  1140.         CALL BA
  1141.         PUSH AF
  1142.         LD HL,#1613
  1143.         LD (SX),HL
  1144.         LD HL,(PRICE)
  1145.         CALL WA
  1146.         LD (price),HL
  1147.         CALL WW
  1148.         CALL WORD
  1149.         LD HL,#1513
  1150.         LD (SX),HL
  1151.         POP AF
  1152.         LD HL,(S_XXX)
  1153.         CALL WA
  1154.         LD (S_adr),HL
  1155.         LD E,(HL)
  1156.         INC HL
  1157.         LD D,(HL)
  1158.         LD (S_old),DE
  1159.         DEC HL
  1160.         JP WW
  1161.  
  1162. MU32    DEFW #A04,#2016,T+108,3
  1163. MU33    DEFW #B04,#2116,T+108,2
  1164. ZP      DEFW 15000,7000,25000
  1165. XXX     DEFB 0 ;(0-RSN...2-AQU)
  1166. OLD_6   DEFB 0
  1167. OLD_AD  DEFW 0
  1168. OLD_AQU DEFB 0
  1169. MAXXX   DEFB 0
  1170. INT_MX  DEFB 7,8,10;вместимость истр.
  1171.  
  1172. XM6     LD A,(AQU)      ;Найм
  1173.         LD (OLD_AQU),A
  1174.         LD IX,MU32
  1175.         LD HL,XM6OU
  1176.         CALL SELTX
  1177.         RET NC
  1178.         CP 2
  1179.         LD B,100
  1180.         JR C,PR6
  1181.         LD A,(T_INTR)
  1182.         CP 3
  1183.         LD B,6
  1184.         JR NC,PR6
  1185.         LD HL,INT_MX
  1186.         CALL BA
  1187.         LD B,A
  1188. PR6     LD HL,MAXXX
  1189.         LD (HL),B
  1190.         LD HL,(OLD_AD)
  1191.         LD A,(HL)
  1192.         LD (OLD_6),A
  1193.         CALL SELEC6
  1194. PR60    CALL NAL
  1195.         LD A,(XXX)
  1196.         CALL XM6E
  1197.         CALL COPY3
  1198.         CALL SELPM
  1199.         CP 4
  1200.         JR NC,PR60
  1201.         CP 1
  1202.         JP Z,XM6NAN
  1203.         JR NC,PR61
  1204.         LD HL,DSDAT
  1205.         LD DE,MONEY
  1206.         LD BC,4
  1207.         LDIR
  1208.         LD A,(OLD_6)
  1209.         LD HL,(OLD_AD)
  1210.         LD (HL),A
  1211.         CALL NAL
  1212.         LD A,(XXX)
  1213.         CALL XM6E
  1214.         JR XM6
  1215. PR61    CP 2
  1216.         JR NZ,PR62;<->
  1217.         LD HL,(OLD_AD)
  1218.         LD A,(OLD_6)
  1219.         CP (HL)
  1220.         JR Z,PR60
  1221.         DEC (HL)
  1222.         LD HL,(price)
  1223.         CALL INCM
  1224.         JR PR60
  1225. PR62    LD HL,(OLD_AD);<+>
  1226.         LD A,(MAXXX)
  1227.         CP (HL)
  1228.         JR C,PR60
  1229.         JR Z,PR60
  1230.         PUSH HL
  1231.         LD HL,(price)
  1232.         CALL DECM
  1233.         POP HL
  1234.         JR C,PR60
  1235.         INC (HL)
  1236.         JR PR60
  1237.  
  1238. XM6OU   LD (XXX),A
  1239.         CP 255
  1240.         RET Z
  1241. XM6E    PUSH AF
  1242.         WRDs #1500,133
  1243.         POP AF
  1244.         PUSH AF
  1245.         LD HL,RSN
  1246.         CALL BA
  1247.         LD (OLD_AD),HL
  1248.         CALL WB
  1249.         WRDs #1600,134
  1250.         POP AF
  1251.         LD B,A
  1252.         LD HL,ZP
  1253.         CALL WT
  1254.         LD (price),HL
  1255.         LD A,B
  1256.         LD HL,ZP
  1257.         CALL WA
  1258.         CALL WW
  1259.         JP WORD
  1260.  
  1261. XM6NAN  LD A,(XXX)
  1262.         CP 2
  1263.         JP C,XM6 ;найм акванавтов
  1264.         LD HL,OLD_AQU
  1265.         LD A,(AQU)
  1266.         SUB (HL)
  1267.         LD (NRECR),A
  1268.         JP Z,XM6
  1269.         POP AF  ;dec2 SP
  1270.         JP MLOOP
  1271.  
  1272. NRECR   DEFB 0 ;сколько нанять
  1273.  
  1274. RECRUT  LD HL,NRECR ;найм акв
  1275.         LD A,(HL)
  1276.         OR A
  1277.         RET Z
  1278.         LD B,A
  1279.         XOR A
  1280.         LD (HL),A
  1281.         PUSH BC
  1282.         LD A,39
  1283.         CALL DISPL
  1284.         POP BC
  1285. RECR0   PUSH BC
  1286.         LD HL,AQNAVT
  1287.         LD DE,16
  1288.         LD B,10
  1289. RER0    LD A,(HL)
  1290.         OR A
  1291.         JR Z,RER1
  1292.         ADD HL,DE
  1293.         DJNZ RER0
  1294.         JP SMERT
  1295. RER1    PUSH HL
  1296.         POP IX
  1297.         INC HL
  1298.         LD (HL),A
  1299.         INC HL
  1300.         LD (HL),A
  1301.         LD (IX+6),A
  1302.         LD (IX+14),A
  1303.         DEC A
  1304.         LD (IX+9),A
  1305.         LD (IX+10),A
  1306.         LD (IX+11),A
  1307.         LD (IX+12),A
  1308.         LD (IX+13),16
  1309.         LD A,105-42-16 ;TU 6+
  1310.         CALL RECRND
  1311.         LD A,106-35-16 ;EN 5+
  1312.         CALL RECRND
  1313.         LD A,86-49-16 ;HEALTH 7+
  1314.         CALL RECRND
  1315.         INC HL
  1316.         LD A,100-28-16 ;МОRAL 4+
  1317.         CALL RECRND
  1318.         LD A,105-35-16 ;PREC 5+
  1319.         CALL RECRND
  1320.         LD HL,N_AQU
  1321.         LD A,(HL)
  1322.         LD (IX),A
  1323.         DEC A
  1324.         LD (DSDAT),A
  1325.         JR NZ,RER2
  1326.         LD A,192
  1327.         LD (IX+3),75
  1328.         LD (IX+4),78
  1329.         LD (IX+5),62
  1330.         LD (IX+1),2
  1331. RER2    LD (HL),A
  1332.         LD A,43
  1333.         CALL DISPLX
  1334.         POP BC
  1335.         DJNZ RECR0
  1336.         RET
  1337.  
  1338. RECRND  ;случ.парам A+RND(16)
  1339.         LD B,A
  1340.         CALL RND
  1341.         AND %1111
  1342.         ADD A,B
  1343.         INC HL
  1344.         LD (HL),A
  1345.         RET
  1346.  
  1347. XM7             ;Увольнение
  1348.         LD HL,Pr_Q
  1349.         LD A,(HL)
  1350.         OR A
  1351.         JR Z,X7M
  1352.         LD A,(ENG)
  1353.         OR A
  1354.         JP Z,PRSTOP
  1355. X7M     LD IX,MU33
  1356.         LD HL,XM6OU
  1357.         CALL SELTX
  1358.         RET NC
  1359.         LD HL,(OLD_AD)
  1360.         LD A,(HL)
  1361.         LD (OLD_6),A
  1362.         CALL SELEC6
  1363. PR70    CALL NAL
  1364.         LD A,(XXX)
  1365.         CALL XM6E
  1366.         CALL COPY3
  1367.         CALL SELPM
  1368.         CP 4
  1369.         JR NC,PR70
  1370.         CP 1
  1371.         JR Z,XM7
  1372.         JR NC,PR71
  1373.         LD HL,DSDAT
  1374.         LD DE,MONEY
  1375.         LD BC,4
  1376.         LDIR
  1377.         LD A,(OLD_6)
  1378.         LD HL,(OLD_AD)
  1379.         LD (HL),A
  1380.         CALL NAL
  1381.         LD A,(XXX)
  1382.         CALL XM6E
  1383.         JR XM7
  1384. PR71    CP 3
  1385.         JR NZ,PR72;<+>
  1386.         LD HL,(OLD_AD)
  1387.         LD A,(OLD_6)
  1388.         CP (HL)
  1389.         JR Z,PR70
  1390.         INC (HL)
  1391.         JR PR70
  1392. PR72    LD HL,(OLD_AD);<->
  1393.         LD A,(HL)
  1394.         OR A
  1395.         JR Z,PR70
  1396.         DEC (HL)
  1397.         JR PR70
  1398.  
  1399. INFO    ;инфо
  1400.         LD IX,TTX
  1401.         LD A,(T_INTR)
  1402.         CP 3
  1403.         JR C,INU0
  1404.         LD A,27
  1405.         JR INU9
  1406. INU0    ADD A,18
  1407.         LD (TTX),A
  1408.         LD A,26
  1409. INU9    CALL DISPL
  1410.         LD B,8
  1411.         LD HL,BASE+8
  1412. INU1    DEC HL
  1413.         PUSH BC
  1414.         PUSH HL
  1415.         LD A,B
  1416.         ADD A,191
  1417.         LD (TTX),A
  1418.         LD A,22
  1419.         CALL DISPL
  1420.         POP HL
  1421.         PUSH HL
  1422.         LD A,(HL)
  1423.         CP 100
  1424.         JR NC,INU2
  1425.         OR A
  1426.         LD A,23
  1427.         JR Z,INU3
  1428.         LD (TTX),HL
  1429.         LD A,25
  1430.         JR INU3
  1431. INU2    LD A,24
  1432. INU3    CALL DISPL
  1433.         POP HL
  1434.         POP BC
  1435.         DJNZ INU1
  1436.         JP LOOP
  1437.  
  1438. PMXY    DEFW 0  ;коорд. пикс
  1439. PBXY    DEFW 0  ;--"--  з/м
  1440. INIPM   LD A,3+#40      ;иниц. плюс-минус
  1441.         CALL MEMX ;M$
  1442.         LD HL,#FFFF
  1443.         LD (MBEG),HL
  1444.         LD (MOLD),HL
  1445.         LD HL,(MX)
  1446.         LD A,H
  1447.         SUB 24
  1448.         AND #F8
  1449.         LD H,A
  1450.         LD A,L
  1451.         LD L,56
  1452.         CP 128
  1453.         JR C,IPc
  1454.         LD L,104
  1455. IPc     LD (PMXY),HL
  1456.         SRL H
  1457.         SRL H
  1458.         SRL H
  1459.         SRL L
  1460.         SRL L
  1461.         SRL L
  1462.         LD (PBXY),HL
  1463.         LD BC,#C02
  1464.         CALL STD
  1465.         XOR A
  1466.         CALL SIMBAR
  1467.         LD DE,xPLUS
  1468.         CHNs OR_
  1469.         CALL PUTSIM
  1470.         LD A,#38
  1471.         CALL ATRBAR
  1472.         CALL MEM7
  1473.         CALL COPYAT
  1474. INPM    CALL MARK_
  1475.         JR C,INPM
  1476.         RET
  1477.  
  1478. SELPM   CALL MARK_ ;выбор(0-CANCEL,1-OK,2-<->,3-<+>)
  1479.         PUSH AF
  1480.         LD HL,(PMXY)
  1481.         LD E,L
  1482.         LD A,(MY)
  1483.         SUB H
  1484.         JR C,SPR_
  1485.         CP 16
  1486.         JR NC,SPR_
  1487.         LD A,(MX)
  1488.         SUB L
  1489.         JR C,SPR_
  1490.         CP 95
  1491.         JR NC,SPR_
  1492.         LD E,1
  1493.         CP 48
  1494.         JR NC,SP2_
  1495.         CP 24
  1496.         JR NC,SPR_
  1497.         DEC E
  1498. SPR_    LD HL,(PBXY)
  1499.         CALL STS
  1500.         LD BC,#302
  1501.         XOR A
  1502. SP0_    PUSH AF
  1503.         CP E
  1504.         LD A,#38
  1505.         JR NZ,SP1_
  1506.         LD A,#6A
  1507. SP1_    CALL ATRBAR
  1508.         POP AF
  1509.         INC A
  1510.         INC HL
  1511.         INC HL
  1512.         INC HL
  1513.         CP 4
  1514.         JR NZ,SP0_
  1515.         POP AF
  1516.         JR NC,SELPM
  1517.         LD A,E
  1518.         CP 4
  1519.         JR NC,SELPM
  1520.         OR A
  1521.         RET
  1522. SP2_    INC E
  1523.         CP 72
  1524.         JR C,SPR_
  1525.         INC E
  1526.         JR SPR_
  1527.  
  1528. SCROLL  CALL MEM7 ;скролл на строку
  1529.         LD B,8
  1530. MY90    PUSH BC
  1531.         LD DE,SCR+#9E0
  1532.         LD HL,SCR+#AE0
  1533.         LD B,70
  1534. MY93    PUSH BC
  1535.         PUSH HL
  1536.         LD BC,24
  1537.         LDIR
  1538.         POP DE
  1539.         LD H,D
  1540.         LD L,E
  1541.         INC H
  1542.         LD A,H
  1543.         AND %111
  1544.         JR NZ,MY94
  1545.         LD A,H
  1546.         SUB 8
  1547.         LD H,A
  1548.         LD A,L
  1549.         ADD A,32
  1550.         LD  L,A
  1551.         JR NC,MY94
  1552.         LD A,8
  1553.         ADD A,H
  1554.         LD H,A
  1555. MY94    POP BC
  1556.         DJNZ MY93
  1557.         LD H,D
  1558.         LD L,E
  1559.         INC E
  1560.         LD (HL),255
  1561.         LD BC,24
  1562.         LDIR
  1563.         CALL INT00
  1564.         POP BC
  1565.         DJNZ MY90
  1566.         LD DE,SCR+#10E0
  1567.         LD HL,DSCR+#10E0
  1568.         LD B,8
  1569. MY95    PUSH BC
  1570.         PUSH DE
  1571.         PUSH HL
  1572.         LD BC,24
  1573.         LDIR
  1574.         POP HL
  1575.         PUSH HL
  1576.         LD D,H ;*BLNK*
  1577.         LD E,L
  1578.         INC E
  1579.         LD C,23
  1580.         LD (HL),255
  1581.         LDIR
  1582.         POP HL
  1583.         POP DE
  1584.         POP BC
  1585.         INC D
  1586.         INC H
  1587.         DJNZ MY95
  1588. INT00   PUSH IX
  1589.         CALL INT0
  1590.         POP IX
  1591.         JP E_I
  1592.  
  1593. DSDAT   DEFS 12,#DD;врем. данные дисплея
  1594. DISPLX  LD IX,DSDAT
  1595. DISPL   PUSH IX
  1596.         PUSH AF ;;выв.сообщ (A-No)
  1597.         Ms 1+#40
  1598.         POP AF
  1599.         LD HL,MENUS
  1600.         OR      A
  1601.         JR      Z,JFD
  1602.         LD      B,A
  1603. JHD     LD      A,(HL)
  1604.         INC     HL
  1605.         CP      #7F
  1606.         JR      NZ,JHD
  1607.         DJNZ    JHD
  1608. JFD     LD (TXM),HL
  1609.         LD HL,MTXTD
  1610.         LD (MTXT+1),HL
  1611.         LD HL,MTX0D
  1612.         LD (MTX0+1),HL
  1613.         LD HL,#FFFF
  1614.         LD (MBEG),HL
  1615.         LD HL,WORDS
  1616.         LD (_words),HL
  1617.         LD HL,#1800
  1618.         LD (MXSH),HL
  1619.         CALL MEM7
  1620.         JR MW
  1621. MTXTD   CALL MEM7
  1622.         CALL SCROLL
  1623. MW      CALL CONTR
  1624.         BIT 4,A
  1625.         JR Z,MW1
  1626.         CALL INT00
  1627.         JR MW
  1628. MW1     CALL STD
  1629.         LD HL,#1700
  1630.         LD (SX),HL
  1631. MTX0D   LD A,1+#40 ;M$
  1632.         CALL MEMX
  1633.         XOR A
  1634.         LD (HIGH),A
  1635.         LD HL,(TXM)
  1636.         LD A,(HL)
  1637.         INC HL
  1638.         LD (TXM),HL
  1639.         CP 127
  1640.         JR Z,DIRET
  1641.         LD HL,ZT
  1642.         CALL WT
  1643.         JP (HL)
  1644. DIRET   POP IX
  1645.         JP MEM7
  1646.  
  1647. Range   ;новое звание
  1648.         LD HL,AQNAVT
  1649.         LD B,10
  1650. RNG0    PUSH BC
  1651.         PUSH HL
  1652.         LD A,(HL)
  1653.         LD (DSDAT),A
  1654.         OR A
  1655.         JR Z,RNG1
  1656.         INC HL
  1657.         LD A,(HL)
  1658.         CP 7
  1659.         JR NC,RNG1
  1660.         PUSH HL
  1661.         LD BC,12
  1662.         ADD HL,BC
  1663.         LD A,(HL)
  1664.         DEC (HL)
  1665.         OR A
  1666.         JR NZ,RNG2
  1667.         LD (HL),33
  1668. RNG2    POP HL
  1669.         JR NZ,RNG1
  1670.         INC (HL)
  1671.         LD A,(HL)
  1672.         ADD A,81
  1673.         LD (DSDAT+1),A
  1674.         INC HL
  1675.         INC HL
  1676.         LD A,6
  1677.         ADD A,(HL)
  1678.         LD (HL),A
  1679.         INC HL
  1680.         LD A,5
  1681.         ADD A,(HL)
  1682.         LD (HL),A
  1683.         INC HL
  1684.         LD A,7
  1685.         ADD A,(HL)
  1686.         LD (HL),A
  1687.         INC HL
  1688.         INC HL
  1689.         INC (HL)
  1690.         INC (HL)
  1691.         INC (HL)
  1692.         INC (HL)
  1693.         INC HL
  1694.         LD A,5
  1695.         ADD A,(HL)
  1696.         LD (HL),A
  1697.         LD A,44
  1698.         CALL DISPLX
  1699.         CALL STOP_T
  1700. RNG1    POP HL
  1701.         LD BC,16
  1702.         ADD HL,BC
  1703.         POP BC
  1704.         DJNZ RNG0
  1705.         RET
  1706.  
  1707. ACTH    ;действия каждый час
  1708.         CALL PROH
  1709.         LD HL,(TIM)
  1710.         LD A,L
  1711.         CP 1
  1712.         RET NZ
  1713.         LD A,H
  1714.         OR A
  1715.         JP Z,Range
  1716.         CP 2
  1717.         JP Z,RSDAY
  1718.         CP 5
  1719.         JP Z,DEMBEL
  1720.         RET
  1721.  
  1722. PERCs   DEFB 100,15,15,126
  1723. WRP     PUSH DE
  1724.         LD HL,PERCs
  1725.         LD (TXT),HL
  1726.         CALL WORD
  1727.         POP DE
  1728.         RET
  1729.  
  1730. UPUFO   ;вывод к-ва экипажа НЛО
  1731.         LD A,(USN)
  1732.         SUB 33
  1733.         CP 9
  1734.         RET NC
  1735.         LD HL,AN_UFO
  1736.         CALL BA
  1737.         PUSH AF
  1738.         LD HL,SX
  1739.         LD (HL),2
  1740.         INC HL
  1741.         INC (HL)
  1742.         LD A,200
  1743.         CALL NWRDM
  1744.         POP AF
  1745.         JP WB
  1746.        
  1747. UPARAM  ;вывод парам.оружия
  1748.         LD A,(USN)
  1749.         CP 15
  1750.         RET NC
  1751.         RLCA
  1752.         LD HL,WEAPON
  1753.         CALL DD
  1754.         PUSH HL
  1755.         Ms 3+#C0
  1756.         LD HL,#C02
  1757.         LD BC,#30C
  1758.         LD DE,48*4+xPARAM
  1759.         CALL PUTSIM
  1760.         LD DE,xPARAM
  1761.         LD C,2
  1762.         CALL PUTSIM
  1763.         LD B,5
  1764.         POP DE
  1765.         INC H
  1766.         LD L,7
  1767. UY1     pushs
  1768.         LD (SX),HL
  1769.         LD A,(DE)
  1770.         OR A
  1771.         JR NZ,UY5
  1772.         CALL URG
  1773. UY4     INC DE
  1774.         JR UY2
  1775. UY5     CALL WB
  1776.         LD A,B
  1777.         CP 4
  1778.         JR C,UY4
  1779. UY3     CALL WRP
  1780.         LD A,(DE)
  1781.         LD B,A
  1782.         INC DE
  1783.         LD A,(DE)
  1784.         INC DE
  1785.         CP B
  1786.         JR Z,UY2
  1787.         CALL WB
  1788.         CALL WRP
  1789. UY2     pops
  1790.         INC H
  1791.         INC H
  1792.         DJNZ UY1
  1793.         DEC L
  1794.         DEC L
  1795.         LD (SX),HL
  1796.         LD A,(USN)
  1797.         LD HL,WP_PRC
  1798.         CALL WA
  1799.         OR A
  1800.         JP Z,URG1
  1801.         CALL WW
  1802.         JP WORD
  1803. URG1    LD HL,(SX)
  1804. URG     DEC H ;гашен
  1805.         LD L,2
  1806.         LD BC,#302
  1807.         LD A,255
  1808.         JP SIMBAR
  1809.  
  1810. MU8     DEFW #105,#816,T+3,16,RS+2
  1811. ZERT    DEFB 0,0,10,7,0,1,5,10,3,6,1,0,20,0,0,0,12,25  ;к-во Зербайта
  1812. Pr_PRI  ;цена пр-ва
  1813.         DEFW 0,0,4800,3300,0,1400
  1814.         DEFW 1900,2450,1700,2700,395,325
  1815.         DEFW 3000,700,835
  1816.         DEFW 1750,2950,3550
  1817. pN      DEFB 0;N пр-ва
  1818. pZ      DEFB 0;К-во зерб
  1819. pPR     DEFW 0;цена
  1820. pE      DEFW 0;имеется шт
  1821.  
  1822. XM3U    CP 255
  1823.         RET Z
  1824.         LD HL,MXDM
  1825.         CALL BA
  1826.         INC A
  1827.         INC A
  1828.         LD (pN),A
  1829.         LD B,A
  1830.         LD HL,ZERT
  1831.         CALL BA
  1832.         LD (pZ),A
  1833.         LD A,B
  1834.         LD HL,Pr_PRI
  1835.         CALL WT
  1836.         LD (pPR),HL
  1837.         LD A,B
  1838.         LD HL,S_GUN
  1839.         CALL WT
  1840.         LD (pE),HL
  1841.         LD HL,#1717
  1842.         LD (SX),HL
  1843.         LD HL,pPR
  1844.         CALL WW
  1845.         CALL WORD
  1846.         LD HL,#1609
  1847.         LD (SX),HL
  1848.         LD HL,pE
  1849.         JP WW
  1850. MU48    DEFW #1000,#301E,Pr_Z
  1851. MU7     DEFW #000,#71E
  1852. M7P     DEFB 0
  1853.         DEFW Pr_Q,Pr_PRC,Pr_HWR,Pr_DAY,ENG,T+168,4
  1854. MU49    DEFW #805,#3114
  1855.  
  1856. XM3     ;Производство
  1857.         LD A,(ENG)
  1858.         OR A
  1859.         JR NZ,X3M
  1860.         LD IX,MU49
  1861.         JP MNU
  1862. X3M     LD A,(Pr_Q)
  1863.         OR A
  1864.         JR NZ,P30
  1865.         DEC A
  1866.         LD (RS+4),A
  1867.         WRDs #1700,135
  1868.         WRDs #1600,128
  1869.         LD HL,XM3U
  1870.         LD IX,MU8
  1871.         CALL SELTX
  1872.         EX AF,AF
  1873.         XOR A
  1874.         LD (RS+4),A
  1875.         EX AF,AF
  1876.         RET NC
  1877.         LD A,1
  1878.         LD (Pr_Q),A
  1879.         LD HL,pN
  1880.         LD DE,Pr_N
  1881.         LD BC,4
  1882.         LDIR
  1883.         LD A,(Pr_Z)
  1884.         OR A
  1885.         JR Z,P30
  1886.         LD IX,MU48
  1887.         CALL MNU
  1888. P30     CALL CALC
  1889.         LD A,(Pr_N)
  1890.         INC A
  1891.         LD (M7P),A
  1892.         LD IX,MU7
  1893.         CALL MENUC
  1894. P301    CALL MARK_
  1895.         JR C,P301
  1896. P30E    LD A,80
  1897.         CALL mark_0
  1898.         JR NC,P30E
  1899.         CP 3
  1900.         LD HL,Pr_Q
  1901.         JR C,PR33
  1902. P35     LD A,(HL)
  1903.         OR A
  1904.         RET NZ
  1905.         JR PRSTOP
  1906. PR33    CP 1
  1907.         LD A,(HL)
  1908.         JR Z,P32
  1909.         JR C,P31
  1910. PRSTOP  XOR A
  1911.         LD (HL),A
  1912.         LD HL,0
  1913.         LD (Pr_H_),HL
  1914.         LD IX,MU10
  1915.         JP MNU
  1916. P32     OR A
  1917.         JR Z,P30E
  1918.         DEC (HL)
  1919.         JR P37
  1920. P31     CP 200
  1921.         JR NC,P30E
  1922.         INC (HL)
  1923. P37     CALL CALC
  1924.         CALL X3U1
  1925.         LD A,8
  1926.         CALL DELAY
  1927.         JR P30E
  1928.  
  1929. MU10    DEFW #805,#A14
  1930. X3U1    CALL STD
  1931.         LD A,(Pr_Q)
  1932.         LD HL,#80C
  1933.         LD (SX),HL
  1934.         CALL WB
  1935.         LD HL,#E12
  1936.         LD (SX),HL
  1937.         LD HL,Pr_DAY
  1938.         CALL WW
  1939.         LD DE,SCR
  1940.         LD HL,DSCR
  1941.         LD BC,#1000
  1942.         LDIR
  1943.         RET
  1944.  
  1945. Pr_ONE  ; время пр-ва 1ого вида пр. 1им техником (ч) 100<t<250
  1946.         DEFB 101,101,240,185,101,125
  1947.         DEFB 145,177,110,205,102,110
  1948.         DEFB 222,114,133,150,202,250
  1949. CALC    ;расчЁт времени пр-ва
  1950.         LD A,(Pr_N)
  1951.         LD HL,Pr_ONE
  1952.         CALL BA
  1953.         LD L,A
  1954.         LD H,0
  1955.         LD DE,(ENG)
  1956.         XOR A
  1957.         LD D,A
  1958.         CP E
  1959.         JR NZ,CAC1
  1960.         INC E
  1961. CAC1    SBC HL,DE
  1962.         JR C,CAC2
  1963.         INC A
  1964.         JR CAC1
  1965. CAC2    LD (Pr_HWR),A
  1966.         LD E,A
  1967.         LD HL,(Pr_Q)
  1968.         LD H,0
  1969.         CALL MULB2
  1970.         LD HL,24
  1971.         EX DE,HL
  1972.         LD BC,0
  1973. CAC3    XOR A
  1974.         SBC HL,DE
  1975.         JR C,CAC4
  1976.         INC BC
  1977.         JR CAC3
  1978. CAC4    LD (Pr_DAY),BC
  1979.         RET
  1980.  
  1981. PROH    LD A,(Pr_Q)
  1982.         OR A
  1983.         RET Z
  1984.         LD HL,(Pr_H_)
  1985.         INC HL
  1986.         LD (Pr_H_),HL
  1987.         LD DE,(Pr_HWR)
  1988.         OR A
  1989.         SBC HL,DE
  1990.         RET C
  1991.         LD HL,0
  1992.         LD (Pr_H_),HL
  1993.         LD HL,(14+S_ART)
  1994.         LD DE,(Pr_Z)
  1995.         LD D,0
  1996.         SBC HL,DE
  1997.         LD A,46
  1998.         JR C,PH_E1
  1999.         PUSH HL
  2000.         LD HL,(Pr_PRC)
  2001.         CALL DECM
  2002.         POP HL
  2003.         LD A,15
  2004.         JR C,PH_E1
  2005.         LD (14+S_ART),HL
  2006.         LD A,(Pr_N)
  2007.         LD HL,S_GUN
  2008.         CALL WA
  2009.         CALL INCW
  2010.         LD HL,Pr_Q
  2011.         DEC (HL)
  2012.         LD A,(HL)
  2013.         OR A
  2014.         RET NZ
  2015.         CALL STOP_T
  2016.         LD A,50
  2017.         JP DISPL
  2018. PH_E1   CALL DISPL
  2019.         CALL STOP_T
  2020.         XOR A
  2021.         LD (Pr_Q),A
  2022.         LD A,10
  2023.         JP DISPL
  2024.  
  2025. MEMX    ;OR     %10011000
  2026.         ;LD     BC,#7FFD
  2027.         ;OUT    (C),A
  2028.         call MEM
  2029.         ld e,1
  2030.         OS_SETSCREEN
  2031.         RET
  2032.  
  2033.