?login_element?

Subversion Repositories NedoOS

Rev

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

  1. ;cтраница 7
  2. TMOM    LD A,(CONTRB)
  3.         AND %10000
  4.         RET Z
  5.         JR NZ,TMOM
  6.  
  7. ;----работа с меню
  8. bSETUP  ;нач
  9.         XOR A
  10.         LD (_S_CFt),A
  11.         LD HL,TXC2-1
  12.         LD (_S_CFx),HL
  13.         ;
  14.         LD HL,KEYJOY
  15.         PUSH HL
  16.         LD DE,S_kj
  17.         LD BC,12
  18.         LDIR
  19.         LD HL,S_gSPD
  20.         LD A,18
  21.         SUB (HL)
  22.         LD (HL),A
  23.         DEC HL
  24.         DEC (HL)
  25.         LD HL,0
  26.         LD (S_kb),HL
  27.         POP HL
  28.         LD A,(HL)
  29.         OR A
  30.         RET NZ
  31.         LD HL,(KEYS)
  32.         LD DE,KBR
  33.         SBC HL,DE
  34.         LD HL,S_kb
  35.         JR Z,bSE1
  36.         INC HL
  37. bSE1    INC (HL)
  38.         RET
  39.  
  40. SETUP    CALL bSETUP ;вх.уст
  41.          CALL TMOM
  42.          CALL oSETUP
  43.          JP eSETUP
  44.  
  45. oSETUP  ;блок настроек
  46.         CALL STD ;????
  47.         if EGA
  48. ;выключить стрелочку
  49. ;стереть стрелочку
  50.         LD A,2
  51.         LD (V_FLAG),A
  52.         CALL V_PUT1
  53.         endif        
  54.         LD HL,setuTB
  55.         LD B,6
  56. sup1    PUSH BC
  57.         LD E,(HL)
  58.         INC HL
  59.         LD D,(HL)
  60.         INC HL
  61.         LD C,(HL)
  62.         INC HL
  63.         LD B,(HL)
  64.         INC HL
  65.         INC HL
  66.         CALL MU_BOX
  67.         POP BC
  68.         DJNZ sup1
  69.         ;выв текстов
  70.         LD DE,#102
  71.         LD HL,TXC1
  72.         CALL PRINTS
  73.         LD DE,#402
  74.         LD HL,TXM2
  75.         CALL PRINTS
  76.         LD DE,#502
  77.         LD HL,TXM3
  78.         CALL PRINTS
  79.         LD DE,#602
  80.         LD HL,TXM4
  81.         CALL PRINTS
  82.         LD DE,#903
  83.         LD HL,TXM5
  84.         CALL PRINTS
  85.         LD DE,#C02
  86.         LD HL,TX_MUS
  87.         CALL PRINTS
  88.         LD DE,#D02
  89.         LD HL,TX_EFF
  90.         CALL PRINTS
  91.         LD DE,#E02
  92.         LD HL,TXcolr
  93.         CALL PRINTS
  94.         LD DE,#F02
  95.         LD HL,TXdisc
  96.         CALL PRINTS
  97.         LD DE,#1202
  98.         LD HL,TXM9
  99.         CALL PRINTS
  100.         LD DE,#1502
  101.         LD HL,TXM10
  102.         CALL PRINTS
  103.         ;раскрас
  104.         LD HL,setuTB
  105.         CALL STS
  106.         LD B,6
  107. sup2    PUSH BC
  108.         LD E,(HL)
  109.         INC HL
  110.         LD D,(HL)
  111.         INC HL
  112.         LD B,(HL)
  113.         INC HL
  114.         LD C,(HL)
  115.         INC HL
  116.         LD A,(HL)
  117.         INC HL
  118.         PUSH HL
  119.         EX DE,HL
  120.         LD E,A
  121.         CALL ATRBAR
  122.         POP HL
  123.         POP BC
  124.         DJNZ sup2
  125.         if EGA
  126. ;прочитать стрелочку
  127. ;включить стрелочку
  128.         CALL V_GET1
  129.         xor a
  130.         LD (V_FLAG),A
  131.         else
  132.         LD HL,#2828
  133.         LD (ATR+532),HL
  134.         LD (ATR+564),HL
  135.         LD HL,#3939
  136.         LD (ATR+468),HL
  137.         LD (ATR+436),HL
  138.         endif
  139. Setup0
  140.         if EGA==0
  141.         CALL BLITE2 ;иначе мигает
  142.         endif
  143.         CALL oSETpr
  144.  
  145.         if EGA
  146.         LD A,2
  147.         LD (V_FLAG),A ;cursor off
  148.         CALL V_PUT1 ;visible screen
  149.         endif
  150.        
  151.         CALL Copper
  152.        
  153.         if EGA
  154.         CALL V_GET1
  155.         call V_MRK1 ;на видимом экране (в это время G_MX не обновляется, т.к. стрелочка выключена)
  156.         xor a
  157.         LD (V_FLAG),A ;cursor on
  158.         endif
  159.        
  160.         CALL BMOV
  161.         CALL fSzone
  162.         HALT ;YIELD никогда не попадёт в наш перехваченный обработчик прерываний
  163.         JR Setup0
  164.  
  165. BLITE2  CALL BLITER ;копируем на экран, рисуем курсор
  166.         JP V_PUT2 ;стираем курсор
  167.  
  168. TXM2    DEFB 22,59,48,50,56,48,66,67,64,48, 10, 32,12,26,28,24, 127
  169. TXM3    DEFB 20,61,66,53,64,68,53,57,65, 10, 02, 127
  170. TXM4    DEFB 22,53,60,63,65,66,62,61, 10, 52,54,62,57,65,66,56,58, 127
  171. TXM5    DEFB 22,53,60,63,65,66,62,61, 10, 60,75,72,58,48, 127
  172. TX_MUS  DEFB 12,86,10,24,67,55,75,58,48, 127
  173. TX_EFF  DEFB 12,86,10,40,68,68,53,58,66,75, 127
  174. TXcolr  DEFB 34,50,53,66,61,48,79,10,56,51,64,48, 127
  175. TXdisc  DEFB 26,66,51,64,67,55,58,56,10,61,48,10,87,12,88, 127
  176. TXM9    DEFB 24,84,81,10,10, 22,67,64,65,62,64,10,10, 24,12,33,127
  177. TXM10   DEFB 24,84,81,10, 29,58,62,64,62,65,66,74,10
  178.         DEFB 56,51,64,75,10, 24,12,33,127
  179.  
  180.  
  181. ;врем парм - порядок неизm
  182. S_kb    DEFB 1
  183. S_in2   DEFB 0
  184. S_kj    DEFB 0
  185.  
  186. S_km    DEFB 0 ;начальное значение не влияет? см. PMOUSE
  187. S_ayM   DEFB 1
  188. S_ayE   DEFB 0
  189. S_colr  DEFB 1
  190. S_disk  DEFB 0
  191. S_cSPD  DEFB 4
  192. S_gSPD  DEFB 16
  193. S_ani   DEFB 1
  194. S_vis   DEFB 0
  195. S_gsML  DEFB 15 ;unus
  196. S_gsEL  DEFB 2 ;
  197.  
  198. _S_cnt  DEFB 1
  199. _S_cn_  DEFB 1
  200. _S_CFx  DEFW 0
  201. _S_CFt  DEFB 0
  202. _S_CFc  DEFB 0
  203.  
  204. _oSlet  LD A,12
  205.         JR _oSpx1
  206.         ;
  207. _oSpx   LD A,96
  208. _oSpx1  ADD A,(HL)
  209.         INC HL
  210.         CALL PRINT
  211.         INC D
  212.         DEC E
  213.         RET
  214.  
  215. oSETpr  ;выв парм. сетупа
  216.         CALL STD
  217.         LD DE,#414
  218.         LD HL,S_kb
  219.         LD B,3
  220. oSP1    CALL _oSpx
  221.         DJNZ oSP1
  222.         LD DE,#912
  223.         CALL _oSpx
  224.         LD B,3
  225.         LD DE,#C0F
  226. oSP2    CALL _oSpx
  227.         DJNZ oSP2
  228.         CALL _oSlet
  229.         LD DE,#1302
  230.         LD B,14
  231.         CALL _oSlin
  232.         LD DE,#1602
  233.         LD B,19
  234.         CALL _oSlin
  235.         LD A,(S_ani)
  236.         OR A
  237.         LD A,113
  238.         JR NZ,oSP3
  239.         LD A,56
  240. oSP3    LD DE,#B014
  241.         CALL _oSani
  242.         CALL ANIMTR
  243.         LD A,(S_vis)
  244.         CALL _shdw
  245.         LD A,49
  246.         LD DE,#A8B4
  247.         JP _oSani
  248.  
  249. _oSlin  ;выв рулера (B-длина)
  250.         LD A,92
  251.         CALL PRINT
  252. _oSl1   LD A,93
  253.         CALL PRINT
  254.         DJNZ _oSl1
  255.         LD A,95
  256.         CALL PRINT
  257.         LD A,(HL)
  258.         INC HL
  259.         ADD A,3
  260.         LD E,A
  261.         LD A,94
  262.         JP PRINT
  263.  
  264. SzoneT  ;X,widhtX, Y,widhtY
  265.         DEFB 2,20, 4,3
  266.         DEFB 3,16, 9,1
  267.         DEFB 2,15, 12,4
  268.         DEFB 3,14, 18,3
  269.         DEFB 3,19, 21,3
  270.         DEFB 19,4, 12,3
  271.         DEFB 19,4, 16,3
  272.         DEFB 24,8, 0,24
  273.  
  274.  
  275. SFU5    LD HL,S_vis;темнота
  276.         JR SFU_
  277.  
  278. SFU6    LD HL,S_ani
  279.         JR SFU_
  280.  
  281. SFU0    LD HL,S_kb ;тип упр
  282.         PUSH HL
  283.         LD (HL),0
  284.         INC HL
  285.         LD (HL),0
  286.         INC HL
  287.         LD (HL),0
  288.         POP HL
  289.         CALL BA
  290.         INC (HL)
  291.         RET
  292.  
  293. SFU1    LD HL,S_km;мыша
  294. SFU_    LD A,(_S_cnt)
  295.         OR A
  296.         RET NZ
  297.         LD A,(HL)
  298.         XOR 1
  299.         LD (HL),A
  300.         RET
  301.  
  302. SFU2    EX AF,AF
  303.         LD A,(_S_cnt)
  304.         OR A
  305.         RET NZ
  306.         EX AF,AF
  307.         LD HL,S_ayM ;тип муз
  308.         CALL BA
  309.         XOR 1
  310.         LD (HL),A
  311.         RET
  312.  
  313. SFU3    LD A,(BX)
  314.         SUB 3
  315.         LD (S_cSPD),A
  316.         RET
  317.  
  318. SFU4    LD A,(BX)
  319.         SUB 3
  320.         LD (S_gSPD),A
  321.         RET
  322.  
  323. SFU7    ;return
  324.         LD A,(_S_cnt)
  325.         OR A
  326.         RET NZ
  327.         POP AF;!
  328.         RET
  329.  
  330. SzoneF  DEFW SFU0,SFU1,SFU2,SFU3,SFU4,SFU5,SFU6,SFU7
  331. fSzone  ;ф-ции по зонам
  332.         LD HL,_S_cn_
  333.         LD A,(HL)
  334.         LD (_S_cnt),A
  335.         LD A,(CONTRB)
  336.         LD (HL),A
  337.         AND %10000
  338.         RET Z
  339. fS4     LD B,0
  340.         LD HL,SzoneT
  341. fS0     PUSH HL
  342.         CALL _fSzs
  343.         POP HL
  344.         JR C,fS1
  345.         INC HL
  346.         INC HL
  347.         INC HL
  348.         INC HL
  349.         INC B
  350.         LD A,B
  351.         CP 8; макс число зон
  352.         JR C,fS0
  353.         RET NC
  354. fS1     PUSH AF
  355.         LD A,B
  356.         LD HL,SzoneF
  357.         CALL WT
  358.         POP AF
  359.         JP (HL)
  360.  
  361. _fSzs   LD DE,(BX)
  362.         LD A,E
  363.         SUB (HL)
  364.         INC HL
  365.         CP (HL)
  366.         RET NC
  367.         LD A,D
  368.         INC HL
  369.         SUB (HL)
  370.         INC HL
  371.         CP (HL)
  372.         RET
  373.  
  374. TXC1    DEFB 10,10,10,10,35,80,64,61,75,57, 10
  375.         DEFB 14,62,64,62,61, 10,10,10,10,127
  376. TXC2    DEFB 12,50,66,62,64, 10
  377.         DEFB 14,45,29,45,24,53,52,61,62,61,62,51,62,50, 127
  378. TXC3    DEFB 29,26,28,28,17,82,10,85,17,17,30,10,10,87,65,88,1,9,9,7,127
  379. TXC4    DEFB 10,10,10, 29,48,61,58,66,91,27,53,66,53,64,49,67,64,51
  380.         DEFB 10,10,10, 127, 126
  381.  
  382.         if 1==0
  383. ;-----pM
  384.  
  385. tst60a  PUSH DE ;[**] на вх. =#C9
  386.         PUSH AF
  387. tst60   ADD A,(HL) ;[**]
  388.         INC HL
  389.         DEC C
  390.         JR NZ,tst60
  391.         DEC B
  392.         JR NZ,tst60
  393.         LD HL,#DB00
  394.         CP (HL)
  395.         RET NZ;err
  396.         POP AF
  397.         POP HL
  398.         LD (tst60a),HL
  399.         RET
  400.         endif
  401.  
  402. Copper  LD HL,(_S_CFx)
  403.         LD A,(HL)
  404.         CP 127
  405.         JR NZ,Cop1
  406.         LD HL,_S_CFt
  407.         INC (HL)
  408.         LD A,(HL)
  409.         CP 60
  410.         RET C
  411.         LD A,2
  412.         LD (_S_CFc),A
  413.         LD (_S_CFt),A
  414.         LD HL,(_S_CFx)
  415.         INC HL
  416.         LD A,(HL)
  417.         CP 126
  418.         JR NZ,Cop2
  419.         LD HL,TXC1
  420. Cop2    LD (_S_CFx),HL
  421.         RET
  422. Cop1    LD HL,_S_CFc
  423.         LD E,(HL)
  424.         INC (HL)
  425.         LD D,1
  426.         LD HL,(_S_CFx)
  427.         LD A,(HL)
  428.         INC HL
  429.         LD (_S_CFx),HL
  430.         CALL PRINT
  431.         RET
  432.  
  433. eSETUP  ;out menu
  434.         LD HL,S_kj
  435.         PUSH HL
  436.         LD DE,KEYJOY
  437.         LD BC,12
  438.         LDIR
  439.         LD HL,SLOW
  440.         LD A,18
  441.         SUB (HL)
  442.         LD (HL),A
  443.         DEC HL
  444.         INC (HL)
  445.         POP HL
  446.         LD A,(HL)
  447.         OR A
  448.         RET NZ
  449.         DEC HL
  450.         LD A,(HL)
  451.         OR A
  452.         LD HL,KBR
  453.         JR Z,eSE1
  454.         LD HL,INT2
  455. eSE1    LD (KEYS),HL
  456.         RET
  457.  
  458.  
  459.  
  460. TXMM1   DEFB 31,65,66,48,61,62,50,56,66,74,10, 62,63,70,56,56,127
  461. TXMM2   DEFB 10,29,62,69,64,48,61,56,66,74, 10, 56,51,64,67,127
  462. TXMM3   DEFB 17,73,80,10, 62,52,61,48,10, 63,62,63,75,66,58,48,127
  463. TXMM4   DEFB 10,19,48,58,62,61,71,56,66,74,10, 56,51,64,67,127
  464.  
  465. M_MENU  ;>>главное меню
  466.         LD A,2
  467.         LD (V_FLAG),A ;cursor off
  468.         if EGA
  469.         CALL V_PUT1 ;visible screen
  470.         endif
  471.        
  472.         CALL STS
  473.         ;пункты
  474.         LD B,4
  475.         LD HL,#403
  476. M_M1    PUSH BC
  477.         PUSH HL
  478.         LD BC,#312
  479.         LD E,#7A
  480.         CALL ATRBAR
  481.         LD BC,#1203
  482.         POP DE
  483.         PUSH DE
  484.         CALL MU_BOX
  485.         POP HL
  486.         INC H
  487.         INC H
  488.         INC H
  489.         INC H
  490.         POP BC
  491.         DJNZ M_M1
  492.         LD HL,TXMM1
  493.         LD DE,#504
  494.         LD B,4
  495. M_M2    PUSH DE
  496.         CALL PRINTS
  497.         INC HL
  498.         POP DE
  499.         INC D
  500.         INC D
  501.         INC D
  502.         INC D
  503.         DJNZ M_M2
  504.  
  505.         if EGA
  506.         CALL V_GET1
  507.         call V_MRK1 ;на видимом экране (в это время G_MX не обновляется, т.к. стрелочка выключена)
  508.         endif
  509.         XOR A
  510.         LD (V_FLAG),A ;cursor on
  511.         ;опрос гл.меню
  512.         CALL TMOM
  513. M_M3    CALL Mfunc
  514.         LD B,4
  515.         LD HL,#1003
  516. M_M30   LD A,D
  517.         INC A
  518.         CP B
  519.         LD E,#7A
  520.         JR NZ,M_M31
  521.         LD E,#71
  522. M_M31   PUSHs
  523.         LD BC,#312
  524.         CALL ATRBAR
  525.         POPs
  526.         DEC H
  527.         DEC H
  528.         DEC H
  529.         DEC H
  530.         DJNZ M_M30
  531.         HALT
  532.         LD A,(CONTRB)
  533.         AND %10000
  534.         JR Z,M_M3
  535.         ;по ф-циям
  536.         LD A,D
  537.         CP #FF
  538.         RET Z
  539.         OR A
  540.         JP Z,SETUP ;-в уст
  541.         CP 2
  542.         JP C,M_M9
  543.         PUSH AF
  544.         ;exit menu
  545.         LD A,2
  546.         LD (V_FLAG),A
  547.         CALL V_PUT1
  548.         LD HL,TXMMex
  549.         LD DE,#1104
  550.         POP AF
  551.         PUSH AF
  552.         JR NZ,M_M5
  553.         LD HL,TXMrst
  554.         LD D,#D
  555. M_M5    CALL PRINTS
  556.         CALL YES_NO
  557.         JR Z,M_M6
  558.         POP AF ;No
  559.         RET
  560. M_M6    POP AF
  561.         JP Z,LODrtr
  562.         ;exit
  563.        
  564.         if 1==1
  565. ;NedoOS
  566.         call swapimer
  567.         im 1
  568.         call shutay ;outSND уже затёрт?
  569.         ei
  570.         halt ;чтобы кнопка была поймана системой
  571.         GET_KEY ;вычитать кнопку Y
  572.         QUIT
  573. shutay
  574.         ld de,0xe00
  575. shutay0
  576.         dec d
  577.         ld bc,0xfffd
  578.         out (c),d
  579.         ld b,0xbf
  580.         out (c),e
  581.         jr nz,shutay0
  582.         ret
  583.  
  584.         else
  585.        
  586.         DI
  587.         LD HL,#4000
  588.         LD DE,#4001
  589.         LD (HL),4
  590.         LD B,#20
  591.         LDIR
  592.         XOR A
  593.         LD BC,#7FFD
  594.         JP M_Mexi
  595.         endif
  596.  
  597. YES_NO  LD BC,#DFFE  ;Z-Yes/NZ-No
  598.         IN A,(C)
  599.         AND #10
  600.         RET Z
  601.         LD B,#7F
  602.         IN A,(C)
  603.         CPL
  604.         AND 8
  605.         RET NZ
  606.         JR YES_NO
  607.  
  608. Mfunc   CALL BMOV ;(D:=#FF,0-3)
  609.         LD D,#FF
  610.         LD A,(BX)
  611.         CP 3
  612.         RET C
  613.         CP 21
  614.         RET NC
  615.         LD A,(BY)
  616.         SUB 4
  617.         RET C
  618.         CP 16
  619.         RET NC
  620.         LD E,A
  621.         AND 3
  622.         CP 3
  623.         RET Z
  624.         LD D,E
  625.         SRL D
  626.         SRL D
  627.         RET
  628.  
  629. TXMMex  DEFB 27,64,62,73,48,53,60,65,79,10,87,86,90,81,88,44,127
  630. TXMrst  DEFB 10,28,53,65,66,48,64,66,10,87,86,90,81,88,44,10,127
  631. TXMsav  DEFB 61,48,10,52,56,65,58,10,00,43,87,86,90,81,88,44,127 ;на диск Х
  632.  
  633. M_M9    ;меню save
  634.         INC A
  635.         LD (V_FLAG),A
  636.         CALL V_PUT2
  637.         LD HL,#606
  638.         PUSH HL
  639.         LD BC,#C0C
  640.         PUSH BC
  641.         LD E,#4
  642.         CALL ATRBAR
  643.         POP BC
  644.         POP DE
  645.         CALL MU_BOX
  646.         LD B,8
  647.         LD DE,#F08
  648.         LD HL,TXMgme
  649. M_M90   PUSHs
  650.         LD A,B
  651.         LD (TXMgme+7),A
  652.         CALL PRINTS
  653.         POPs
  654.         DEC D
  655.         DJNZ M_M90
  656.         CALL V_GET1
  657.         XOR A
  658.         LD (V_FLAG),A
  659.         CALL TMOM
  660. M_M91   HALT
  661.         CALL BMOV
  662.         LD D,#FF
  663.         LD HL,(BX)
  664.         LD A,L
  665.         SUB 6
  666.         CP 12
  667.         JR NC,M_M92
  668.         LD A,H
  669.         SUB 8
  670.         CP 8
  671.         JR NC,M_M92
  672.         LD D,A
  673. M_M92   LD B,8
  674.         LD HL,#F06
  675. M_M94   PUSHs
  676.         LD A,D
  677.         INC A
  678.         CP B
  679.         LD E,#4
  680.         JR NZ,M_M93
  681.         LD E,#4F
  682. M_M93   LD BC,#10C
  683.         CALL ATRBAR
  684.         POPs
  685.         DEC H
  686.         DJNZ M_M94
  687.         LD A,(CONTRB)
  688.         AND %10000
  689.         JR Z,M_M91
  690.         CALL TMOM
  691.         LD A,D
  692.         CP #FF
  693.         RET Z
  694.         PUSH AF
  695.         LD A,2
  696.         LD (V_FLAG),A
  697.         CALL V_PUT1
  698.         LD BC,#0414
  699.         LD HL,#1102
  700.         LD E,#57
  701.         PUSH HL
  702.         CALL ATRBAR
  703.         POP DE
  704.         LD BC,#1404
  705.         CALL MU_BOX
  706.         LD HL,TXMM2
  707.         LD DE,#1204
  708.         CALL PRINTS
  709.         LD A,(SAVDSK)
  710.         ADD A,12
  711.         LD (TXMsav+8),A
  712.         LD DE,#1304
  713.         LD HL,TXMsav
  714.         CALL PRINTS
  715.         CALL YES_NO
  716.         POP BC
  717.         RET NZ
  718.         LD A,B
  719.         JP SAVgam
  720.  
  721. ;----окончание
  722. MU_END  ;A=1/2 -победа/поражение
  723.         PUSH AF
  724.         CALL STS
  725.         LD A,2
  726.         LD (V_FLAG),A
  727.         CALL V_PUT1
  728.         POP AF
  729.         DEC A
  730.         JR NZ,meMIS
  731.         ;победа
  732.         LD DE,#701
  733.         PUSH DE
  734.         LD BC,#160C
  735.         CALL MU_BOX
  736.         POP HL
  737.         LD BC,#0C16
  738.         LD E,%01001110
  739.         CALL ATRBAR
  740.         LD DE,#909
  741.         LD HL,Evic1
  742.         CALL PRINTS
  743.         LD DE,#A03
  744.         LD HL,Evic2
  745.         CALL PRINTS
  746.         LD DE,#C05
  747.         CALL TUtime
  748.         LD DE,#1004
  749.         LD HL,TXMM2
  750.         CALL PRINTS
  751.         LD DE,#1109
  752.         LD HL,Ey_n
  753.         CALL PRINTS
  754.         ATRs #1005,#20E,%01011110
  755.         CALL YES_NO
  756.         CALL Z,M_M9
  757.         JP LODnxt
  758. meMIS   ;поражение
  759.         LD DE,#802
  760.         PUSH DE
  761.         LD BC,#140A
  762.         CALL MU_BOX
  763.         POP HL
  764.         LD BC,#A14
  765.         LD E,%01111010
  766.         CALL ATRBAR
  767.         LD DE,#A06
  768.         LD HL,Emis1
  769.         CALL PRINTS
  770.         LD DE,#C07
  771.         LD HL,Emis2
  772.         CALL PRINTS
  773.         LD DE,#F05
  774.         PUSH DE
  775.         LD HL,Emis3
  776.         CALL PRINTS
  777.         POP HL
  778.         LD BC,#10F
  779.         LD E,%01101010
  780.         CALL ATRBAR
  781.         CALL bWAIT
  782.         CALL TMOM
  783.         JP LODrtr
  784.  
  785. setuTB  DEFW #0000,#1807
  786.         DEFB #31
  787.         DEFW #0B01,#170D
  788.         DEFB #4E
  789.         DEFW #0800,#1509
  790.         DEFB #69
  791.         DEFW #0301,#1507
  792.         DEFB #7A
  793.         DEFW #0802,#1203
  794.         DEFB #7B
  795.         DEFW #0C13,#0407
  796.         DEFB #60
  797.  
  798. ;----- п/п вывода панели
  799.  
  800. oMN_WD  ;вывод денег/леcа
  801.         LD HL,(MONEY1)
  802.         LD A,L
  803.         OR H
  804.         JR NZ,oMN1WD
  805.         LD HL,(WOOD1)
  806.         LD A,L
  807.         OR H
  808.         JR NZ,oMN1WD
  809.         LD HL,ATR+57
  810.         EXX
  811.         LD DE,#119
  812.         LD HL,MONEY
  813.         CALL outmw
  814.         LD HL,ATR+121
  815.         EXX
  816.         LD DE,#319
  817.         LD HL,WOOD
  818. outmw   LD C,0
  819. om0     LD A,(HL)
  820.         INC HL
  821.         OR A
  822.         JR NZ,om2
  823.         CP C
  824.         JR NZ,om2
  825.         LD A,11
  826.         LD B,#50
  827.         JR om1
  828. om2     INC C
  829.         LD B,#68
  830. om1     CALL MONEYPRINT
  831.         if EGA==0
  832.         LD A,B
  833.         EXX
  834.         LD (HL),A
  835.         INC HL
  836.         EXX
  837.         endif
  838.         LD A,E
  839.         CP #1E
  840.         JR C,om0
  841.         RET NZ
  842.         LD A,(HL)
  843.         JR om2
  844.  
  845. oMN1WD  LD HL,ATR+57 ;альт.вывод
  846.         EXX
  847.         LD DE,#119
  848.         LD HL,MONEY1+1
  849.         CALL out1mw
  850.         LD HL,ATR+121
  851.         EXX
  852.         LD DE,#319
  853.         LD HL,WOOD1+1
  854. out1mw  LD C,0
  855.         LD A,11
  856.         CALL MONEYPRINT
  857.         LD A,11
  858.         CALL MONEYPRINT
  859.         if EGA==0
  860.         EXX
  861.         LD (HL),#50
  862.         INC HL
  863.         LD (HL),#50
  864.         INC HL
  865.         EXX
  866.         endif
  867. o1m8    CALL o1m0
  868. o1m0    LD A,(HL)
  869.         RLCA
  870.         RLCA
  871.         RLCA
  872.         RLCA
  873.         CALL o1m7
  874.         LD A,(HL)
  875.         LD (HL),0
  876.         DEC HL
  877. o1m7    AND #F
  878.         OR A
  879.         JR NZ,o1m2
  880.         CP C
  881.         JR NZ,o1m2
  882.         LD A,E
  883.         CP #1E
  884.         LD A,0
  885.         JR NC,o1m2
  886.         LD A,11
  887.         LD B,#50
  888.         JR o1m1
  889. o1m2    INC C
  890.         LD B,#58
  891. o1m1    CALL MONEYPRINT
  892.         if EGA==0
  893.         LD A,B
  894.         EXX
  895.         LD (HL),A
  896.         INC HL
  897.         EXX
  898.         endif
  899.         RET
  900.  
  901. TX48x7 
  902. ;выв.назв.героя
  903.         if EGA
  904.         ld a,24;29
  905.         call _128
  906.         LD A,2
  907.         LD (V_FLAG),A ;выключить стрелочку
  908.         CALL V_PUT1 ;на видимом экране
  909.         LD de,(TX_AD) ;выв.назв.героя (переменная в 8000+!)
  910.         call setpgsscr40008000_current
  911.         call TX48x7doscr ;на выходе должна поставить pgmain
  912.         CALL V_GET1
  913.         call V_MRK1 ;на видимом экране (в это время G_MX не обновляется, т.к. стрелочка выключена)
  914.         xor a
  915.         LD (V_FLAG),A ;включить стрелочку
  916.         CALL V_PUT2 ;на рисуемом экране
  917.         LD de,(TX_AD) ;выв.назв.героя (переменная в 8000+!)
  918.         call setpgsscr40008000 ;на рисуемом экране
  919.         call TX48x7doscr ;на выходе должна поставить pgmain
  920.         jp V_GET_MRK2 ;на рисуемом экране
  921. TX48x7doscr
  922.         ld hl,scrbase+(65*40)+25
  923.         ld bc,0x0718
  924.         jp primgega_pixsz
  925.         else ;~EGA
  926.         LD HL,(TX_AD) ;выв.назв.героя
  927.         LD E,(HL)
  928.         INC HL
  929.         LD D,(HL)
  930.         INC HL
  931.         LD (SET_SP+1),SP
  932.         LD SP,HL
  933.         LD HL,SCR+#900+25
  934.         LD B,3
  935. T4S0    LD (HL),E
  936.         INC H
  937.         LD (HL),D
  938.         INC H
  939.         POP DE
  940.         LD (HL),E
  941.         INC H
  942.         LD (HL),D
  943.         INC H
  944.         POP DE
  945.         LD (HL),E
  946.         INC H
  947.         LD (HL),D
  948.         INC H
  949.         POP DE
  950.         LD (HL),E
  951.         LD H,SCR/256+9
  952.         INC L
  953.         LD (HL),D
  954.         INC H
  955.         POP DE
  956.         LD (HL),E
  957.         INC H
  958.         LD (HL),D
  959.         INC H
  960.         POP DE
  961.         LD (HL),E
  962.         INC H
  963.         LD (HL),D
  964.         INC H
  965.         POP DE
  966.         LD (HL),E
  967.         INC H
  968.         LD (HL),D
  969.         POP DE
  970.         LD H,SCR/256+9
  971.         INC L
  972.         DJNZ T4S0
  973.         JP SET_SP
  974.         endif
  975.  
  976. OUTBAR  ;общий вывод панели
  977. ;TODO выводить это всё на двух экранах и обвязать стиранием стрелочки
  978.         CALL STS
  979. ;;      LD HL,WFONT
  980. ;;      LD (FONT),HL
  981.         CALL oMN_WD
  982.         CALL outTX
  983.         CALL oINDY
  984.         if EGA
  985.         call clearbuttonframes ;затирает рамки кнопок (немножко срезает с левой цифры)
  986.         CALL oBUT ;не перерисовывает кнопки, если они не изменились?
  987.         CALL outNUM ;
  988.         CALL outSQR
  989.         else
  990.         CALL outSQR
  991.         CALL oBUT
  992.         CALL outNUM
  993.         endif
  994.         JP outLED
  995.  
  996.         ;ds #FFFE-$
  997.         ;nop ;CHK_7     DEFB #EE; [**B] чек-сум7 7:#FFFE
  998.         ;ds 1
  999.