?login_element?

Subversion Repositories NedoOS

Rev

Rev 1181 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. PRPUB   LD      HL,UP1
  2.         LD      A,(HL)
  3.         CP      129 ;'0' inverted?
  4.         RET     NZ
  5.         LD      HL,UP2
  6.         LD      A,(HL)
  7.         CP      129 ;'0' inverted?
  8.         RET     NZ
  9. ;both players have 0 lives
  10.         LD      A,1 ;game over
  11.         LD      (ENDG),A
  12.         XOR     A
  13.         LD      (MAP),A
  14.         LD      HL,TEXT17
  15.         LD      A,129 ;'0' inverted?
  16.         LD      (HL),A
  17.         INC     HL
  18.         LD      (HL),A
  19.         LD      HL,LEVEL
  20.         LD      A,129 ;'0' inverted?
  21.         LD      (HL),A
  22.         INC     HL
  23.         LD      (HL),A
  24.         RET
  25.  
  26.  
  27.  
  28. T1      DEFW    0
  29. T2      DEFW    0
  30. T3      DEFW    0
  31. T4      DEFW    0
  32. T12     DEFW    0
  33. T22     DEFW    0
  34. T32     DEFW    0
  35. T42     DEFW    0
  36.         DEFW    0
  37.         DEFW    0
  38.         DEFW    0
  39.         DEFW    0
  40. T5      DEFM    "00"
  41.         DEFB    255
  42.         DEFB    255
  43.         DEFW    0
  44.         DEFW    0
  45. T55     DEFM    "0000"
  46.         DEFB    255
  47.         DEFB    255
  48. TOTAL   DEFM    "TOTAL"
  49.         DEFB    255
  50. T555    DEFM    "00000"
  51.         DEFB    255
  52.  
  53. PAUSE   DEFB    0
  54. PAU1    DEFB    0
  55. POONE
  56. ;for CHEKPOINT
  57.         LD      A,(PAU1)
  58.         CP      1
  59.         CALL    Z,POO1
  60.         LD      A,(PAU1)
  61.         CP      2
  62.         CALL    Z,POO2
  63.         LD      A,(PAU1)
  64.         CP      3
  65.         CALL    Z,POO3
  66.         LD      A,(PAU1)
  67.         CP      4
  68.         CALL    Z,POO4
  69.         LD      A,(PAU1)
  70.         CP      5
  71.         CALL    Z,POO5
  72.         EI
  73.         HALT
  74.         LD      A,(PAUSE)
  75.         INC     A
  76.         CP      50
  77.         CALL    Z,P255
  78.         LD      (PAUSE),A
  79.         RET
  80. P255    LD      A,(PAU1)
  81.         INC     A
  82.         CP      5
  83.         JP      Z,P88 ;sound, ld (PAU1),a
  84.         CP      6
  85.         JR      Z,P2555
  86.         LD      (PAU1),A
  87.         LD      A,1
  88.         CALL    AFXPLAY
  89.         CALL    PLAYSA
  90.  
  91. P2555
  92.         XOR     A
  93.         RET
  94. P88     PUSH    AF
  95.         LD      A,8
  96.         CALL    AFXPLAY
  97.         CALL    PLAYSA2 ;play #17 sound frames
  98.         POP     AF
  99.         LD      (PAU1),A
  100.         XOR     A
  101.         RET
  102. PLAYSA
  103.         LD      B,4
  104. PLAYSAA
  105.         PUSH    BC
  106.         CALL    AFXFRAME
  107.         POP     BC
  108.         HALT
  109.         DJNZ    PLAYSAA
  110.         LD      HL,48000
  111.         CALL    AFXINIT
  112.         RET
  113. PLAYSA2
  114.         LD      B,#17
  115. PLAYSA3 PUSH    BC
  116.         CALL    AFXFRAME
  117.         POP     BC
  118.         HALT
  119.         DJNZ    PLAYSA3
  120. afxinit
  121.         LD      HL,48000
  122.         CALL    AFXINIT ;stop sound
  123.         RET
  124. POO1
  125.         LD      HL,(T1)
  126.         LD      B,L
  127.         LD      A,L
  128.         or a;CP 0
  129.         JR      Z,Q11
  130.         LD      HL,0
  131.         LD      DE,10
  132. Q1      ADD     HL,DE
  133.         DJNZ    Q1
  134. Q11     LD      DE,T55 ;"0000"
  135.         DEC     DE
  136.         LD      (TEXCLO),DE
  137.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  138.         LD      D,#C0 ;const
  139.         LD      E,#10 ;const
  140.         LD      HL,T55 ;"0000"
  141.         LD      (TEXTW),HL
  142.         LD      HL,68
  143.         LD      BC,108-72
  144.         CALL    TEXT
  145.  
  146.         LD      HL,(T1)
  147.         LD      DE,T5 ;"000"
  148.         DEC     DE
  149.         DEC     DE
  150.         DEC     DE
  151.         LD      (TEXCLO),DE
  152.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  153.         LD      D,#C0 ;const
  154.         LD      E,#10 ;const
  155.         LD      HL,T5
  156.         LD      (TEXTW),HL
  157.         LD      HL,68
  158.         LD      BC,108
  159.         CALL    TEXT
  160.         jp doscreenifpause
  161.  
  162. POO2    LD      HL,(T2)
  163.         LD      B,L
  164.         LD      A,L
  165.         CP      0
  166.         JR      Z,Q22
  167.         LD      HL,0
  168.         LD      DE,20
  169. Q2      ADD     HL,DE
  170.         DJNZ    Q2
  171. Q22     LD      DE,T55 ;"0000"
  172.         DEC     DE
  173.         LD      (TEXCLO),DE
  174.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  175.         LD      D,#C0 ;const
  176.         LD      E,#10 ;const
  177.         LD      HL,T55 ;"0000"
  178.         LD      (TEXTW),HL
  179.         LD      HL,68+32
  180.         LD      BC,108-72
  181.         CALL    TEXT
  182.  
  183.         LD      HL,(T2)
  184.         LD      DE,T5 ;"00"
  185.         DEC     DE
  186.         DEC     DE
  187.         DEC     DE
  188.         LD      (TEXCLO),DE
  189.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  190.         LD      D,#C0 ;const
  191.         LD      E,#10 ;const
  192.         LD      HL,T5 ;"00"
  193.         LD      (TEXTW),HL
  194.         LD      HL,68+32
  195.         LD      BC,108
  196.         CALL    TEXT
  197.         jp doscreenifpause
  198.  
  199. POO3    LD      HL,(T3)
  200.         LD      B,L
  201.         LD      A,L
  202.         or a;CP 0
  203.         JR      Z,Q33
  204.         LD      HL,0
  205.         LD      DE,30
  206. Q3      ADD     HL,DE
  207.         DJNZ    Q3
  208. Q33     LD      DE,T55 ;"0000"
  209.         DEC     DE
  210.         LD      (TEXCLO),DE
  211.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  212.         LD      D,#C0 ;const
  213.         LD      E,#10 ;const
  214.         LD      HL,T55 ;"0000"
  215.         LD      (TEXTW),HL
  216.         LD      HL,68+64
  217.         LD      BC,108-72
  218.         CALL    TEXT
  219.  
  220.         LD      HL,(T3)
  221.         LD      DE,T5
  222.         DEC     DE
  223.         DEC     DE
  224.         DEC     DE
  225.         LD      (TEXCLO),DE
  226.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  227.         LD      D,#C0 ;const
  228.         LD      E,#10 ;const
  229.         LD      HL,T5
  230.         LD      (TEXTW),HL
  231.         LD      HL,68+64
  232.         LD      BC,108
  233.         CALL    TEXT
  234.         jp doscreenifpause
  235.  
  236. POO4    LD      HL,(T4)
  237.         LD      B,L
  238.         LD      A,L
  239.         or a;CP 0
  240.         JR      Z,Q44
  241.         LD      HL,0
  242.         LD      DE,40
  243. Q4      ADD     HL,DE
  244.         DJNZ    Q4
  245. Q44     LD      DE,T55 ;"0000"
  246.         DEC     DE
  247.         LD      (TEXCLO),DE
  248.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  249.         LD      D,#C0 ;const
  250.         LD      E,#10 ;const
  251.         LD      HL,T55 ;"0000"
  252.         LD      (TEXTW),HL
  253.         LD      HL,68+96
  254.         LD      BC,108-72
  255.         CALL    TEXT
  256.  
  257.         LD      HL,(T4)
  258.         LD      DE,T5
  259.         DEC     DE
  260.         DEC     DE
  261.         DEC     DE
  262.         LD      (TEXCLO),DE
  263.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  264.         LD      D,#C0 ;const
  265.         LD      E,#10 ;const
  266.         LD      HL,T5
  267.         LD      (TEXTW),HL
  268.         LD      HL,68+64+32
  269.         LD      BC,108
  270.         CALL    TEXT
  271.         jp doscreenifpause
  272.  
  273. POO6
  274. ;стрелочки для первого игрока?
  275.        if 1==1
  276.         ld hl,tilemap+(8*BYTESPERTILELINE)+16
  277.         ld a,56 ;left arrow
  278.         call prchar_tilemap_hl
  279.         ld hl,tilemap+(12*BYTESPERTILELINE)+16
  280.         call prchar_tilemap_hl
  281.         ld hl,tilemap+(16*BYTESPERTILELINE)+16
  282.         call prchar_tilemap_hl
  283.         ld hl,tilemap+(20*BYTESPERTILELINE)+16
  284.         call prchar_tilemap_hl
  285.        
  286.         ld hl,tilemap+(22*BYTESPERTILELINE)+13
  287.         ld a,60 ;bold underline
  288.         dup 11
  289.         call prchar_tilemap_hl
  290.         TILEMAPRIGHT
  291.         edup
  292.        
  293. BONUSTANKY=60
  294. BONUSTANKX=18*8-4
  295.         ld hl,sprlist
  296. ;+0: y
  297. ;+1: 2(ysize:SPSIZ16) +0x20(SPACT) +0x40(deact) +0x80(mirrorvert) +1(SPSIZBS)
  298. ;+2: x
  299. ;+3: 2(xsize:SPSIZ16) +1(SPSIZBS) +0x80(mirrorhor)
  300. ;+4,5: pattern number
  301.         ld (hl),BONUSTANKY
  302.         inc hl
  303.         ld (hl),0x20
  304.         inc hl
  305.         ld (hl),BONUSTANKX
  306.         inc hl
  307.         ld (hl),0
  308.         inc hl
  309.         ld (hl),SPRENEMY1&0xff
  310.         inc hl
  311.         ld (hl),SPRENEMY1/256
  312.         inc hl
  313.  
  314.         ld (hl),BONUSTANKY+32
  315.         inc hl
  316.         ld (hl),0x20
  317.         inc hl
  318.         ld (hl),BONUSTANKX
  319.         inc hl
  320.         ld (hl),0
  321.         inc hl
  322.         ld (hl),SPRENEMY2&0xff
  323.         inc hl
  324.         ld (hl),SPRENEMY2/256
  325.         inc hl
  326.  
  327.         ld (hl),BONUSTANKY+32+32
  328.         inc hl
  329.         ld (hl),0x20
  330.         inc hl
  331.         ld (hl),BONUSTANKX
  332.         inc hl
  333.         ld (hl),0
  334.         inc hl
  335.         ld (hl),SPRENEMY3&0xff
  336.         inc hl
  337.         ld (hl),SPRENEMY3/256
  338.         inc hl
  339.  
  340.         ld (hl),BONUSTANKY+32+32+32
  341.         inc hl
  342.         ld (hl),0x20
  343.         inc hl
  344.         ld (hl),BONUSTANKX
  345.         inc hl
  346.         ld (hl),0
  347.         inc hl
  348.         ld (hl),SPRENEMY4&0xff
  349.         inc hl
  350.         ld (hl),SPRENEMY4/256
  351.        else
  352.         LD      DE,72-10
  353.         LD      HL,#C000+128+32
  354.         LD      B,3 ;wid/8-1?
  355.         LD      C,15 ;hgt-1?
  356.         LD      A,#C1
  357.         LD      (PAGEFR),A
  358.         LD      A,#11
  359.         LD      (PAGETO),A
  360.         LD      A,%00110001
  361.         CALL    DMASTART
  362.         HALT
  363.         LD      DE,72+8192-10
  364.         LD      HL,#C000+128+32
  365.         LD      B,3 ;wid/8-1?
  366.         LD      C,15 ;hgt-1?
  367.         LD      A,#C1
  368.         LD      (PAGEFR),A
  369.         LD      A,#11
  370.         LD      (PAGETO),A
  371.         LD      A,%00110001
  372.         CALL    DMASTART
  373.         HALT
  374.         LD      DE,72-10
  375.         LD      HL,#C000+128+32
  376.         LD      B,3 ;wid/8-1?
  377.         LD      C,15 ;hgt-1?
  378.         LD      A,#C1
  379.         LD      (PAGEFR),A
  380.         LD      A,#12
  381.         LD      (PAGETO),A
  382.         LD      A,%00110001
  383.         CALL    DMASTART
  384.         HALT
  385.         LD      DE,72+8192-10
  386.         LD      HL,#C000+128+32
  387.         LD      B,3 ;wid/8-1?
  388.         LD      C,15 ;hgt-1?
  389.         LD      A,#C1
  390.         LD      (PAGEFR),A
  391.         LD      A,#12
  392.         LD      (PAGETO),A
  393.         LD      A,%00110001
  394.         CALL    DMASTART
  395.         HALT
  396.        endif
  397.         RET
  398.  
  399. POO62
  400. ;стрелочки для второго игрока?
  401.         LD      A,(PLAYER)
  402.         CP      0
  403.         RET     Z
  404.        if 1==1
  405.         ld hl,tilemap+(8*BYTESPERTILELINE)+20
  406.         ld a,58 ;right arrow
  407.         call prchar_tilemap_hl
  408.         ld hl,tilemap+(12*BYTESPERTILELINE)+20
  409.         call prchar_tilemap_hl
  410.         ld hl,tilemap+(16*BYTESPERTILELINE)+20
  411.         call prchar_tilemap_hl
  412.         ld hl,tilemap+(20*BYTESPERTILELINE)+20
  413.         call prchar_tilemap_hl
  414.        else
  415.         LD      DE,72+10
  416.         LD      HL,#C000+128+40
  417.         LD      B,3 ;wid/8-1?
  418.         LD      C,15 ;hgt-1?
  419.         LD      A,#C1
  420.         LD      (PAGEFR),A
  421.         LD      A,#11
  422.         LD      (PAGETO),A
  423.         LD      A,%00110001
  424.         CALL    DMASTART
  425.         HALT
  426.         LD      DE,72+8192+10
  427.         LD      HL,#C000+128+40
  428.         LD      B,3 ;wid/8-1?
  429.         LD      C,15 ;hgt-1?
  430.         LD      A,#C1
  431.         LD      (PAGEFR),A
  432.         LD      A,#11
  433.         LD      (PAGETO),A
  434.         LD      A,%00110001
  435.         CALL    DMASTART
  436.         HALT
  437.         LD      DE,72+10
  438.         LD      HL,#C000+128+40
  439.         LD      B,3 ;wid/8-1?
  440.         LD      C,15 ;hgt-1?
  441.         LD      A,#C1
  442.         LD      (PAGEFR),A
  443.         LD      A,#12
  444.         LD      (PAGETO),A
  445.         LD      A,%00110001
  446.         CALL    DMASTART
  447.         HALT
  448.         LD      DE,72+8192+10
  449.         LD      HL,#C000+128+40
  450.         LD      B,3 ;wid/8-1?
  451.         LD      C,15 ;hgt-1?
  452.         LD      A,#C1
  453.         LD      (PAGEFR),A
  454.         LD      A,#12
  455.         LD      (PAGETO),A
  456.         LD      A,%00110001
  457.         CALL    DMASTART
  458.         HALT
  459.        endif
  460.         RET
  461.  
  462.  
  463. POO5    LD      HL,(JOINTP1)
  464.         LD      DE,T555 ;"00000"
  465.         LD      (TEXCLO),DE
  466.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  467.         LD      D,#C0 ;const
  468.         LD      E,#10 ;const
  469.         LD      HL,T555 ;"00000"
  470.         LD      (TEXTW),HL
  471.         LD      HL,196
  472.         LD      BC,134-64
  473.         CALL    TEXT
  474.         jp doscreenifpause
  475.  
  476. POTWO
  477. ;for CHEKPOINT
  478.         LD      A,(PLAYER)
  479.         CP      0
  480.         RET     Z
  481.         LD      A,(PAU1)
  482.         CP      1
  483.         CALL    Z,POO12
  484.         LD      A,(PAU1)
  485.         CP      2
  486.         CALL    Z,POO22
  487.         LD      A,(PAU1)
  488.         CP      3
  489.         CALL    Z,POO32
  490.         LD      A,(PAU1)
  491.         CP      4
  492.         CALL    Z,POO42
  493.         LD      A,(PAU1)
  494.         CP      5
  495.         CALL    Z,POO52
  496.         RET
  497.  
  498.  
  499. POO12   LD      HL,(T12)
  500.         LD      B,L
  501.         LD      A,L
  502.         CP      0
  503.         JR      Z,Q11A
  504.         LD      HL,0
  505.         LD      DE,10
  506. Q1A     ADD     HL,DE
  507.         DJNZ    Q1A
  508. Q11A    LD      DE,T55 ;"0000"
  509.         DEC     DE
  510.         LD      (TEXCLO),DE
  511.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  512.         LD      D,#C0 ;const
  513.         LD      E,#10 ;const
  514.         LD      HL,T55 ;"0000"
  515.         LD      (TEXTW),HL
  516.         LD      HL,68
  517.         LD      BC,108+144-16
  518.         CALL    TEXT
  519.         LD      HL,(T12)
  520.         LD      DE,T5
  521.         DEC     DE
  522.         DEC     DE
  523.         DEC     DE
  524.         LD      (TEXCLO),DE
  525.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  526.         LD      D,#C0 ;const
  527.         LD      E,#10 ;const
  528.         LD      HL,T5
  529.         LD      (TEXTW),HL
  530.         LD      HL,68
  531.         LD      BC,108+72
  532.         CALL    TEXT
  533.         jp doscreenifpause
  534.  
  535. POO22   LD      HL,(T22)
  536.         LD      B,L
  537.         LD      A,L
  538.         or a;CP 0
  539.         JR      Z,Q22A
  540.         LD      HL,0
  541.         LD      DE,20
  542. Q2A     ADD     HL,DE
  543.         DJNZ    Q2A
  544. Q22A    LD      DE,T55 ;"0000"
  545.         DEC     DE
  546.         LD      (TEXCLO),DE
  547.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  548.         LD      D,#C0 ;const
  549.         LD      E,#10 ;const
  550.         LD      HL,T55 ;"0000"
  551.         LD      (TEXTW),HL
  552.         LD      HL,68+32
  553.         LD      BC,108+144-16
  554.         CALL    TEXT
  555.         LD      HL,(T22)
  556.         LD      DE,T5
  557.         DEC     DE
  558.         DEC     DE
  559.         DEC     DE
  560.         LD      (TEXCLO),DE
  561.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  562.         LD      D,#C0 ;const
  563.         LD      E,#10 ;const
  564.         LD      HL,T5
  565.         LD      (TEXTW),HL
  566.         LD      HL,68+32
  567.         LD      BC,108+72
  568.         CALL    TEXT
  569.         jp doscreenifpause
  570.  
  571. POO32   LD      HL,(T32)
  572.         LD      B,L
  573.         LD      A,L
  574.         or a;CP 0
  575.         JR      Z,Q33A
  576.         LD      HL,0
  577.         LD      DE,30
  578. Q3A     ADD     HL,DE
  579.         DJNZ    Q3A
  580. Q33A    LD      DE,T55 ;"0000"
  581.         DEC     DE
  582.         LD      (TEXCLO),DE
  583.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  584.         LD      D,#C0 ;const
  585.         LD      E,#10 ;const
  586.         LD      HL,T55 ;"0000"
  587.         LD      (TEXTW),HL
  588.         LD      HL,68+64
  589.         LD      BC,108+144-16
  590.         CALL    TEXT
  591.         LD      HL,(T32)
  592.         LD      DE,T5
  593.         DEC     DE
  594.         DEC     DE
  595.         DEC     DE
  596.         LD      (TEXCLO),DE
  597.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  598.         LD      D,#C0 ;const
  599.         LD      E,#10 ;const
  600.         LD      HL,T5
  601.         LD      (TEXTW),HL
  602.         LD      HL,68+64
  603.         LD      BC,108+72
  604.         CALL    TEXT
  605.         jp doscreenifpause
  606.  
  607. POO42   LD      HL,(T42)
  608.         LD      B,L
  609.         LD      A,L
  610.         or a;CP 0
  611.         JR      Z,Q44A
  612.         LD      HL,0
  613.         LD      DE,40
  614. Q4A     ADD     HL,DE
  615.         DJNZ    Q4A
  616. Q44A    LD      DE,T55 ;"0000"
  617.         DEC     DE
  618.         LD      (TEXCLO),DE
  619.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  620.         LD      D,#C0 ;const
  621.         LD      E,#10 ;const
  622.         LD      HL,T55 ;"0000"
  623.         LD      (TEXTW),HL
  624.         LD      HL,68+96
  625.         LD      BC,108+144-16
  626.         CALL    TEXT
  627.  
  628.         LD      HL,(T42)
  629.         LD      DE,T5
  630.         DEC     DE
  631.         DEC     DE
  632.         DEC     DE
  633.         LD      (TEXCLO),DE
  634.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  635.         LD      D,#C0 ;const
  636.         LD      E,#10 ;const
  637.         LD      HL,T5
  638.         LD      (TEXTW),HL
  639.         LD      HL,68+64+32
  640.         LD      BC,108+72
  641.         CALL    TEXT
  642.         jp doscreenifpause
  643.  
  644. POO52   LD      HL,(JOINTP2)
  645.         LD      DE,T555 ;"00000"
  646.         LD      (TEXCLO),DE
  647.         CALL    POINT666 ;write 5 digits HL in (TEXCLO++)
  648.         LD      D,#C0 ;const
  649.         LD      E,#10 ;const
  650.         LD      HL,T555 ;"00000"
  651.         LD      (TEXTW),HL
  652.         LD      HL,196
  653.         LD      BC,134+64
  654.         CALL    TEXT
  655. doscreenifpause
  656.         ld a,(PAUSE)
  657.         or a
  658.         ret nz
  659.        call doscreen
  660.        call doscreen
  661.         RET
  662. TEXSTA  DEFM    "STAGE"
  663.         DEFB    255
  664. TEXPTS  DEFM    "PTS"
  665.         DEFB    255
  666.  
  667. RETZ    LD      HL,0
  668.         LD      (POINTP1),HL
  669.         LD      (POINTP2),HL
  670.         RET
  671. HISTO
  672.         LD      DE,(POINTP1)
  673.         LD      HL,(HISTORE)
  674.         SBC     HL,DE
  675.         CALL    C,HISTO3
  676.         RET
  677. HISTO3  LD      HL,(POINTP1)
  678.         LD      (HISTORE),HL
  679.         ;LD     DE,(DiskAddrHiStore)
  680.         ;TRDWriteFromDE HISTORE,#01
  681.         ;RET
  682.         ld de,fn_hiscore
  683.         ld hl,HISTORE
  684.         ld bc,0x0100
  685.         jp savefile
  686. HISTO2
  687.         LD      DE,(POINTP2)
  688.         LD      HL,(HISTORE)
  689.         SBC     HL,DE
  690.         CALL    C,HISTO4
  691.         RET
  692. HISTO4  LD      HL,(POINTP2)
  693.         LD      (HISTORE),HL
  694.         ;LD     DE,(DiskAddrHiStore)
  695.         ;TRDWriteFromDE HISTORE,#01
  696.         ;RET
  697.         ld de,fn_hiscore
  698.         ld hl,HISTORE
  699.         ld bc,0x0100
  700.         jp savefile
  701.  
  702. DA
  703.         LD      A,(HL)
  704.         SBC     A,81
  705.         JR      DAA1
  706.  
  707. CHEKPOINT
  708.         LD      A,(MAP)
  709.         or a;CP 0
  710.         JP      Z,RETZ
  711.         CP      255
  712.         JP      Z,RETZ
  713.         LD      HL,48000
  714.         CALL    AFXINIT
  715.         AND     A
  716.         LD      DE,(POINTP1)
  717.         LD      HL,(POINTP2)
  718.         SBC     HL,DE
  719.         CALL    C,HISTO
  720.         CALL    HISTO2
  721.         ;LD     BC,BORDER
  722.         ;LD     A,1
  723.         ;OUT    (C),A
  724.         call border1
  725.  
  726.         CALL    CLSSTART ;???
  727.         CALL    POINTHI ;формирует в TEXT4 строку со счётом
  728.         LD      D,#C0 ;const
  729.         LD      E,#10 ;const
  730.         LD      HL,TEXT4
  731.         LD      (TEXTW),HL
  732.         LD      HL,0+8
  733.         LD      BC,58
  734.         CALL    TEXT
  735.         LD      HL,TEXSTA
  736.         LD      (TEXTW),HL
  737.         LD      D,#C0 ;const
  738.         LD      E,#10 ;const
  739.         LD      BC,128-8 ;а то было слитно
  740.         LD      HL,16+8
  741.         CALL    TEXT
  742.         LD      A,(MAP)
  743.         DEC     A
  744.         LD      (MAP),A
  745.         LD      HL,LEVEL
  746.         CALL    TEXR
  747.         LD      HL,LEVEL
  748.         LD      A,(MAP)
  749.         CP      10
  750.         JR      Z,DA
  751.         ;XOR    A
  752.         LD      A,(HL)
  753.         sub 81 ;SBC     A,81
  754. DAA1    LD      (HL),A
  755.         INC     HL
  756.         LD      A,(HL)
  757.         SBC     A,81 ;???
  758.         LD      (HL),A
  759.         LD      HL,LEVEL
  760.         LD      (TEXTW),HL
  761.         LD      D,#C0 ;const
  762.         LD      E,#10 ;const
  763.         LD      BC,118+54
  764.         LD      HL,16+8
  765.         CALL    TEXT
  766.         LD      HL,LEVEL
  767.         LD      A,(HL)
  768.         ADD     A,81 ;???
  769.         LD      (HL),A
  770.         INC     HL
  771.         LD      A,(HL)
  772.         ADD     A,81 ;???
  773.         LD      (HL),A
  774.         LD      A,(MAP)
  775.         INC     A
  776.         LD      (MAP),A
  777.        if 1==0 ;???
  778.         LD      DE,72
  779.         LD      HL,#C000+128
  780.         LD      B,3 ;wid/8-1?
  781.         LD      C,15 ;hgt-1?
  782.         LD      A,#C1
  783.         LD      (PAGEFR),A
  784.         LD      A,#11
  785.         LD      (PAGETO),A
  786.         LD      A,%00110001
  787.         CALL    DMASTART
  788.         HALT
  789.         LD      DE,72+8192
  790.         LD      HL,#C000+128+8
  791.         LD      B,3 ;wid/8-1?
  792.         LD      C,15 ;hgt-1?
  793.         LD      A,#C1
  794.         LD      (PAGEFR),A
  795.         LD      A,#11
  796.         LD      (PAGETO),A
  797.         LD      A,%00110001
  798.         CALL    DMASTART
  799.         HALT
  800.         LD      DE,72
  801.         LD      HL,#C000+128+16
  802.         LD      B,3 ;wid/8-1?
  803.         LD      C,15 ;hgt-1?
  804.         LD      A,#C1
  805.         LD      (PAGEFR),A
  806.         LD      A,#12
  807.         LD      (PAGETO),A
  808.         LD      A,%00110001
  809.         CALL    DMASTART
  810.         HALT
  811.         LD      DE,72+8192
  812.         LD      HL,#C000+128+24
  813.         LD      B,3 ;wid/8-1?
  814.         LD      C,15 ;hgt-1?
  815.         LD      A,#C1
  816.         LD      (PAGEFR),A
  817.         LD      A,#12
  818.         LD      (PAGETO),A
  819.         LD      A,%00110001
  820.         CALL    DMASTART
  821.         HALT
  822.         LD      DE,72+8192+4096
  823.         LD      HL,#C000+128+48
  824.         LD      B,3 ;wid/8-1?
  825.         LD      C,15 ;hgt-1?
  826.         LD      A,#C1
  827.         LD      (PAGEFR),A
  828.         LD      A,#12
  829.         LD      (PAGETO),A
  830.         LD      A,%00110001
  831.         CALL    DMASTART
  832.         HALT
  833.         LD      DE,72+8192+4096+8
  834.         LD      HL,#C000+128+48
  835.         LD      B,3 ;wid/8-1?
  836.         LD      C,15 ;hgt-1?
  837.         LD      A,#C1
  838.         LD      (PAGEFR),A
  839.         LD      A,#12
  840.         LD      (PAGETO),A
  841.         LD      A,%00110001
  842.         CALL    DMASTART
  843.         HALT
  844.         LD      DE,72+8192+4096-8
  845.         LD      HL,#C000+128+48
  846.         LD      B,3 ;wid/8-1?
  847.         LD      C,15 ;hgt-1?
  848.         LD      A,#C1
  849.         LD      (PAGEFR),A
  850.         LD      A,#12
  851.         LD      (PAGETO),A
  852.         LD      A,%00110001
  853.         CALL    DMASTART
  854.         HALT
  855.        endif
  856.          xor a
  857.          ld (sprlist+1),a ;disable sprite #0
  858.        call doscreen
  859.        call doscreen
  860.         CALL    POO6 ;стрелочки для первого игрока
  861.         CALL    POO62 ;стрелочки для второго игрока
  862.  
  863.         LD      D,#C0 ;const
  864.         LD      E,#10 ;const
  865.         LD      HL,TOTAL
  866.         LD      (TEXTW),HL
  867.         LD      HL,196
  868.         LD      BC,134
  869.         CALL    TEXT
  870.  
  871.         LD      HL,68
  872.         LD      BC,92-16
  873.         LD      (CBC),BC
  874.         CALL    PTS
  875.         LD      A,(PLAYER)
  876.         or a;CP 0
  877.         JP      Z,UP222
  878.         LD      HL,68
  879.         LD      BC,92+96+16
  880.         LD      (CBC),BC
  881.         CALL    PTS
  882. UP222
  883. CHEK2
  884.      ifdef CLIENT
  885.       if CLIENT
  886.        call sendjoyTMP
  887.        ld hl,reter;menucheckkeys ;TODO CHEK2logic
  888.        call readfrominet_tojoy1joy2 ;читать ровно одно сообщение, выполнить логику. и так пока есть сообщения
  889.       else
  890.        call readfrominet_tojoy2 ;может быть принято сколько угодно сообщений - берём последнее
  891.        call sendjoy1joy2 ;в каждом цикле логики
  892.        ds 3 ;TODO call CHEK2logic
  893.       endif
  894.      else
  895.      endif
  896.  
  897.         CALL    PRINT1 ;POONE,POTWO
  898.         ;jr $ ;на этот момент видно STAGE01
  899.        ;ld a,(PAUSE)
  900.        ;cp 49;or a
  901.        ;jr nz,CHEK2noscreen
  902.        ;call doscreen
  903.        ;call doscreen ;теперь видно PTS...TOTAL (без цифр), примерно на 60-м проходе появляются первые цифры
  904. ;CHEK2noscreen
  905.                 ;LD             BC,TSCONFIG; SPRITE PRINT
  906.                 ;LD             A,%11000000
  907.                 ;OUT            (C),A
  908.        if VIRTUALKEYS
  909.         ld a,(joy1state)
  910.         and JOYMASK_FIRE
  911.        else
  912.         LD      HL,(Keys1PlFr)  ;LD HL,Keys1PlFr+2
  913.         LD      B,H             ;LD BC,(Keys1PlFr)
  914.         LD      C,#FE           ;CALL   CHBIT
  915.         IN      A,(C)
  916.         AND     L
  917.        endif
  918.         RET     Z
  919.        if VIRTUALKEYS
  920.         ld a,(joy2state)
  921.         and JOYMASK_START
  922.        else
  923.         LD      HL,(Keys2PlFr)  ;LD HL,Keys2PlFr+2
  924.         LD      B,H             ;LD BC,(Keys2PlFr)
  925.         LD      C,#FE           ;CALL   CHBIT
  926.         IN      A,(C)
  927.         AND     L
  928.        endif
  929.         RET     Z
  930.        if VIRTUALKEYS
  931.         ld a,(joy1state)
  932.         and JOYMASK_START
  933.        else
  934.         LD      HL,(Keys1PlStart)       ;LD HL,Keys1PlStart+2
  935.         LD      B,H                     ;LD BC,(Keys1PlStart)
  936.         LD      C,#FE                   ;CALL   CHBIT
  937.         IN      A,(C)
  938.         AND     L
  939.        endif
  940.         RET     Z
  941.         JR      CHEK2
  942.