Subversion Repositories NedoOS

Rev

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

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