Subversion Repositories NedoOS

Rev

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

  1. DEAT77  LD      A,129 ;'0' inverted
  2.         LD      (UP1),A
  3.         JP      DEATH
  4.  
  5. DEAT88  LD      A,129 ;'0' inverted
  6.         LD      (UP2),A
  7.         JP      DEATH
  8. ENDGAME
  9.         LD      A,(ENDG) ;1: ухэхЁшЁєхь "GAME OVER"
  10.         CP      100 ;"GAME OVER" яЁшхїры ш ёЄю ы 98 ърфЁют
  11.         JP      nc,END4 ;с√ыю Z,END4, эю яюыєўрхЄё  яютшёюэ яЁш фтєъЁрЄэющ ухэхЁрЎшш "GAME OVER"???
  12.         CP      1
  13.         RET     NZ
  14.         LD      IX,UNITS
  15.         LD      (IX+UNIT_COUNTER),0
  16.         LD      (IX+UNIT_ANIMATION),0
  17.         LD      DE,4*UNITSZ;96
  18.         ADD     IX,DE
  19.         LD      (IX+UNIT_COUNTER),0
  20.         LD      (IX+UNIT_ANIMATION),0
  21.         LD      IX,SLU
  22.         LD      (IX+UNIT_YESORNOT),0
  23.         LD      DE,UNITSZ;24
  24.         ADD     IX,DE
  25.         LD      (IX+UNIT_YESORNOT),0
  26.         LD      IX,BRONITS
  27.         ;LD     DE,24
  28.         ADD     IX,DE
  29.         LD      (IX+UNIT_YESORNOT),7 ;P500
  30.         LD      HL,SPRGAMEOVER0;256+40
  31.         LD      (IX+UNIT_NUMBERSPRITES),L
  32.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  33.  
  34.         LD      L,128-8
  35.         LD      H,0
  36.         LD      (IX+UNIT_X),L
  37.         LD      (IX+UNIT_X+1),H
  38.         LD      L,MAXY;224
  39.         LD      H,0
  40.         LD      (IX+UNIT_Y),L
  41.         LD      (IX+UNIT_Y+1),H
  42.         LD      (IX+UNIT_TIMEFORSHOTONWAR),0
  43.         ;LD     DE,24
  44.         ADD     IX,DE
  45.         LD      (IX+UNIT_YESORNOT),8 ;LAYERS2
  46.         LD      HL,SPRGAMEOVER1;256+42
  47.         LD      (IX+UNIT_NUMBERSPRITES),L
  48.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  49.         LD      L,128+8
  50.         LD      H,0
  51.         LD      (IX+UNIT_X),L
  52.         LD      (IX+UNIT_X+1),H
  53.         LD      L,MAXY;224
  54.         LD      H,0
  55.         LD      (IX+UNIT_Y),L
  56.         LD      (IX+UNIT_Y+1),H
  57.         LD      (IX+UNIT_TIMEFORSHOTONWAR),0
  58.         LD      A,2
  59.         LD      (ENDG),A
  60.         XOR     A
  61.         LD      (MAP),A
  62.         RET
  63. END1
  64.         LD      L,(IX+UNIT_Y)
  65.         LD      H,(IX+UNIT_Y+1)
  66.         DEC     HL ;move "GAME OVER" up???
  67.         LD      A,L
  68.         CP      128-24
  69.         RET     Z
  70.         LD      (IX+UNIT_Y),L
  71.         LD      (IX+UNIT_Y+1),H
  72.         RET
  73.  
  74. END2
  75.         LD      L,(IX+UNIT_Y)
  76.         LD      H,(IX+UNIT_Y+1)
  77.         DEC     HL ;move "GAME OVER" up???
  78.         LD      A,L
  79.         CP      128-24
  80.         JR      Z,END3
  81.         LD      (IX+UNIT_Y),L
  82.         LD      (IX+UNIT_Y+1),H
  83.         RET
  84. END3    LD      A,(ENDG)
  85.         INC     A
  86.         LD      (ENDG),A
  87.         RET
  88.  
  89. ENN     DEFB    0 ;1=resources loaded
  90. END4
  91. ;тч Єю шч CHEKPOINT (шэрўх эх юсэюты ыё  ЁхъюЁф)
  92.          AND    A
  93.          LD     DE,(POINTP1)
  94.          LD     HL,(POINTP2)
  95.          SBC    HL,DE
  96.          CALL   C,HISTO
  97.          CALL   HISTO2
  98.  
  99.         LD      A,1
  100.         LD      (ENN),A ;resources loaded
  101.         POP     HL
  102.  
  103. END55   XOR     A
  104.         LD      (STAKEY),A ;start not unpressed
  105.         LD      (STR6),A ;time in startmusic
  106.         LD      A,#13
  107.         LD      (STR),A ;scroll page?
  108.         LD      HL,65535-228
  109.         LD      (STR2),HL ;scroll position in page?
  110.         LD      HL,126
  111.         LD      (KORM2),HL ;Y
  112.         ;EI
  113.         ;IM     1
  114.         CALL    CLSSTART ;???
  115.         LD      HL,WAR
  116.         LD      B,20
  117. NHF     LD      DE,5
  118.         LD      A,1
  119.         LD      (HL),A
  120.         ADD     HL,DE
  121.         DJNZ    NHF
  122.         LD      A,20
  123.         LD      (WARTAN),A;-------------------------------
  124.         LD      A,(NEWLEVEL)
  125.         CP      1
  126.         JR      Z,NNNNN
  127.         LD      HL,UP1
  128.         LD      A,132 ;'3'
  129.         LD      (HL),A
  130.         LD      HL,UP2
  131.         ;LD     A,132 ;'3'
  132.         LD      (HL),A
  133. NNNNN
  134.         LD      A,#10
  135.         LD      (SM1),A
  136.         LD      A,#13
  137.         LD      (SM2),A
  138.         LD      HL,#C001-4096
  139.         LD      (WERH),HL
  140.         LD      HL,65536-512
  141.         LD      (WERH2),HL
  142.         LD      A,(NEWLEVEL)
  143.         CP      1
  144.         JR      Z,NJNA
  145.         XOR     A
  146.         LD      (MAP),A
  147. NJNA
  148.         XOR     A
  149.         LD      (ENDG),A
  150.         LD      (BOM1X),A
  151.         LD      (BOM1Y),A
  152.         LD      (BOMIX),A
  153.         LD      (COM1X),A
  154.         LD      (COM1Y),A
  155.         LD      (COMIX),A
  156.         LD      (COMA),A
  157.         LD      (MMM),A
  158.         LD      (MMM2),A
  159.         LD      HL,(KORM);---X
  160.         LD      BC,(KORM2);----Y
  161.         LD      D,2
  162.         CALL    PRINT
  163.         CALL    CLS
  164.  
  165. SSSD    LD      IX,UNITS
  166.         LD      DE,8*UNITSZ;192
  167.         ADD     IX,DE
  168. SSS     LD      A,(IX+UNIT_YESORNOT)
  169.         CP      255 ;PEXIT
  170.         JP      Z,ST2
  171.         LD      (IX+UNIT_YESORNOT),0
  172.         LD      DE,UNITSZ;24
  173.         ADD     IX,DE
  174.         JR      SSS
  175. ST2     LD      IX,BRONITS
  176. SSS2    LD      A,(IX+UNIT_YESORNOT)
  177.         CP      255 ;PEXIT
  178.         JP      Z,ST3
  179.         LD      (IX+UNIT_YESORNOT),0
  180.         LD      DE,UNITSZ;24
  181.         ADD     IX,DE
  182.         JR      SSS2
  183. ST3     LD      IX,UNITS
  184.         LD      (IX+UNIT_DIRECTION),1
  185.         LD      (IX+UNIT_COUNTER),0
  186.         ld (ix+(UNITSZ+UNIT_YESORNOT)),0 ;(IX+24),0
  187.         ld (ix+(2*UNITSZ+UNIT_YESORNOT)),0 ;(IX+48),0
  188.         ld (ix+(3*UNITSZ+UNIT_YESORNOT)),0 ;(IX+72),0
  189.         LD      DE,4*UNITSZ;96
  190.         ADD     IX,DE
  191.         LD      (IX+UNIT_DIRECTION),1
  192.         LD      (IX+UNIT_COUNTER),0
  193.         ld (ix+(UNITSZ+UNIT_YESORNOT)),0 ;(IX+24),0
  194.         ld (ix+(2*UNITSZ+UNIT_YESORNOT)),0 ;(IX+48),0
  195.         ld (ix+(3*UNITSZ+UNIT_YESORNOT)),0 ;(IX+72),0
  196.         XOR     A
  197.         LD      (TANKB),A
  198.         LD      (BOS),A
  199.         LD      A,32
  200.         LD      (BOSTART),A
  201.         LD      A,(NEWLEVEL)
  202.         CP      1
  203.         JP      Z,STARTM
  204.         JP      STARTS
  205. ENDG    DEFB    0 ;1=game over, 2=game over хфхЄ, 3..100=game over яЁшхїры ш ёЄюшЄ???
  206.  
  207. EXITKK  POP     HL                              ;ёэшьрхь рфЁхё тючтЁрЄр
  208.         XOR     A                               ;
  209.         LD      (STAKEY),A ;start not unpressed
  210.         LD      (STR6),A ;time in startmusic
  211.         LD      A,#13
  212.         LD      (STR),A ;scroll page?
  213.         LD      HL,65535-228
  214.         LD      (STR2),HL ;scroll position in page?
  215.         LD      HL,126
  216.         LD      (KORM2),HL ;Y
  217.         JP      STARTS                  ;т√тюфшь уыртэюх ьхэ■
  218.  
  219. TESTKEY
  220.         LD      HL,TABL
  221. LOOP    LD      A,(HL)
  222.         CP      255
  223.         RET     Z
  224.         LD      C,A
  225.         INC     HL
  226.         LD      A,(HL)
  227.         LD      B,A
  228.         INC     HL
  229.         CALL    CHBIT
  230.         JP      Z,CHLOOP
  231.         INC     HL
  232.         JP      LOOP
  233. CHLOOP
  234.         CALL    CHBIT
  235.         JP      Z,CHLOOP
  236.         LD      A,(CHTEX)
  237.         CP      0
  238.         JP      Z,TUP
  239.         CP      1
  240.         JP      Z,TDOWN
  241.         CP      2
  242.         JP      Z,TLEFT
  243.         CP      3
  244.         JP      Z,TRIGHT
  245.         CP      4
  246.         JP      Z,TFIRE
  247.         CP      5
  248.         JP      Z,TFIREA
  249.         CP      6
  250.         JP      Z,TSTART
  251.  
  252. ;╟рфрхь яюыєўхээє■ ъыртш°є, ъръ ъыртш°є ┬┬┼╨╒
  253. TUP             LD      A,(P1)                  ;яЁютхЁър эюьхЁр шуЁюър
  254.                 AND     A                               ;хёыш чрфрхЄё  єяЁртыхэшх тЄюЁюую шуЁюър
  255.                 JR      NZ,TUP2                 ;Єю яхЁхїюфшь эр ёююЄт. єўрёЄюъ
  256.  
  257.                 LD      (Keys1PlUp),BC  ;ёюїЁрэ хь рфЁхё яюЁЄр
  258.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр
  259.                 LD      (Keys1PlUp),a;+2),A
  260.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  261.                 INC     A
  262.                 LD      (CHTEX),A
  263.                 RET
  264. TUP2    LD      (Keys2PlUp),BC  ;ёюїЁрэ хь рфЁхё яюЁЄр
  265.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр
  266.                 LD      (Keys2PlUp),a;+2),A
  267.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  268.                 INC     A
  269.                 LD      (CHTEX),A
  270.                 RET
  271.  
  272. ;╟рфрхь яюыєўхээє■ ъыртш°є, ъръ ъыртш°є ┬═╚╟
  273. TDOWN   LD      A,(P1)                  ;яЁютхЁър эюьхЁр шуЁюър
  274.                 AND     A                               ;хёыш чрфрхЄё  єяЁртыхэшх тЄюЁюую шуЁюър
  275.                 JR      NZ,TDOWN2               ;Єю яхЁхїюфшь эр ёююЄт. єўрёЄюъ
  276.  
  277.                 LD      (Keys1PlDn),BC  ;ёюїЁрэ хь рфЁхё яюЁЄр
  278.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр
  279.                 LD      (Keys1PlDn),a;+2),A
  280.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  281.                 INC     A
  282.                 LD      (CHTEX),A
  283.                 RET
  284. TDOWN2  LD      (Keys2PlDn),BC  ;ёюїЁрэ хь рфЁхё яюЁЄр
  285.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр
  286.                 LD      (Keys2PlDn),a;+2),A
  287.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  288.                 INC     A
  289.                 LD      (CHTEX),A
  290.                 RET
  291.  
  292. ;╟рфрхь яюыєўхээє■ ъыртш°є, ъръ ъыртш°є ┬╦┼┬╬
  293. TLEFT   LD      A,(P1)                  ;яЁютхЁър эюьхЁр шуЁюър
  294.                 AND     A                               ;хёыш чрфрхЄё  єяЁртыхэшх тЄюЁюую шуЁюър
  295.                 JR      NZ,TLEFT2               ;Єю яхЁхїюфшь эр ёююЄт. єўрёЄюъ
  296.                
  297.                 LD      (Keys1PlLt),BC  ;ёюїЁрэ хь рфЁхё яюЁЄр
  298.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр  
  299.                 LD      (Keys1PlLt),a;+2),A    
  300.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  301.                 INC     A                      
  302.                 LD      (CHTEX),A
  303.                 RET
  304. TLEFT2  LD      (Keys2PlLt),BC  ;ёюїЁрэ хь рфЁхё яюЁЄр
  305.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр  
  306.                 LD      (Keys2PlLt),a;+2),A
  307.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  308.                 INC     A
  309.                 LD      (CHTEX),A
  310.                 RET
  311.  
  312. ;╟рфрхь яюыєўхээє■ ъыртш°є, ъръ ъыртш°є ┬╧╨└┬╬
  313. TRIGHT  LD      A,(P1)                  ;яЁютхЁър эюьхЁр шуЁюър
  314.                 AND     A                               ;хёыш чрфрхЄё  єяЁртыхэшх тЄюЁюую шуЁюър
  315.                 JR      NZ,TRIGHT2              ;Єю яхЁхїюфшь эр ёююЄт. єўрёЄюъ
  316.  
  317.                 LD      (Keys1PlRt),BC  ;ёюїЁрэ хь рфЁхё яюЁЄр
  318.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр
  319.                 LD      (Keys1PlRt),a;+2),A
  320.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  321.                 INC     A
  322.                 LD      (CHTEX),A
  323.                 RET
  324. TRIGHT2 LD      (Keys2PlRt),BC  ;ёюїЁрэ хь рфЁхё яюЁЄр
  325.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр
  326.                 LD      (Keys2PlRt),a;+2),A
  327.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  328.                 INC     A
  329.                 LD      (CHTEX),A
  330.                 RET
  331.  
  332. ;╟рфрхь яюыєўхээє■ ъыртш°є, ъръ ъыртш°є ╬├╬═▄
  333. TFIRE   LD      A,(P1)                  ;яЁютхЁър эюьхЁр шуЁюър
  334.                 AND     A                               ;хёыш чрфрхЄё  єяЁртыхэшх тЄюЁюую шуЁюър
  335.                 JR      NZ,TFIRE2               ;Єю яхЁхїюфшь эр ёююЄт. єўрёЄюъ
  336.        
  337.                 LD      (Keys1PlFr),BC  ;ёюїЁрэ хь рфЁхё яюЁЄр
  338.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр
  339.                 LD      (Keys1PlFr),a;+2),A
  340.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  341.                 INC     A
  342.                 LD      (CHTEX),A
  343.                 RET
  344. TFIRE2  LD      (Keys2PlFr),BC  ;ёюїЁрэ хь рфЁхё яюЁЄр
  345.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр
  346.                 LD      (Keys2PlFr),a;+2),A
  347.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  348.                 INC     A
  349.                 LD      (CHTEX),A
  350.                 JP      TSTARTP                 ;фы  тЄюЁюую шуЁюър ╬├╬═▄ - яюёыхфэ   чрфртрхьр  ъыртш°р
  351.  
  352. ;╟рфрхь яюыєўхээє■ ъыртш°є, ъръ ъыртш°є ╬├╬═▄2
  353. TFIREA  LD      A,(P1)                  ;яЁютхЁър эюьхЁр шуЁюър
  354.                 AND     A                               ;фы  тЄюЁюую шуЁюър ╬├╬═▄ - яюёыхфэ   чрфртрхьр  ъыртш°р
  355.                 JR      NZ,TSTARTP
  356.  
  357.                 LD      (Keys1PlFr2),BC ;ёюїЁрэ хь рфЁхё яюЁЄр
  358.                 LD      A,(CHBITP)              ;ёюїЁрэ хь эюьхЁ сшЄр
  359.                 LD      (Keys1PlFr2),a;+2),A
  360.                 LD      A,(CHTEX)               ;єтхышўштрхь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  361.                 INC     A
  362.                 LD      (CHTEX),A
  363.                 RET
  364.  
  365. ;╟рфрхь яюыєўхээє■ ъыртш°є, ъръ ъыртш°є ╤╥└╨╥
  366. TSTART  LD      (Keys1PlStart),BC       ;ёюїЁрэ хь рфЁхё яюЁЄр
  367.                 LD      A,(CHBITP)                      ;ёюїЁрэ хь эюьхЁ сшЄр
  368.                 LD      (Keys1PlStart),a;+2),A
  369.                 XOR     A                                       ;юсэєы хь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  370.                 LD      (CHTEX),A
  371.                 INC     A                                       ;яхЁхїюфшь ъ чрфрэш■ єяЁртыхэш  тЄюЁюую шуЁюър
  372.                 LD      (P1),A
  373.                 RET
  374.  
  375. ;т√їюф чрфрэш  ъыртш° єяЁртыхэш  (яюёых тЄюЁюую шуЁюър)
  376. TSTARTP XOR     A                                       ;юсэєы хь эюьхЁ шуЁюър
  377.                 LD      (P1),A
  378.                 LD      (CHTEX),A                       ;юсэєы хь эюьхЁ ёЄЁшэур (UP/DOWN/LEFT/...)
  379.                 POP     HL                                      ;ёэшьрхь ╦╚╪═╚╔ рфЁхё тючтЁрЄр
  380.                 JP      EXITKK                          ;яхЁхїюфшь эр т√їюф шч REDEFINE KEYS
  381.  
  382. RedefineKeys
  383.  
  384. ReadKey         LD      HL,KbdTbl               ;keyboadrd symbols
  385. ReadKey3        LD      BC,#FEFE                ;port addr - right bottom row
  386. ReadKey2        LD      D,%00000001             ;edge row key
  387. ReadKey4        IN      A,(C)
  388.                         AND     D
  389.                         JR      NZ,RdAntiFr             ;ъыртш°р эрцрЄр - шфхь эр рэЄшфЁхсхчу,
  390.                                                                 ;р є эрё т HL-ёшьтюы эрцрЄющ ъэюяъш, т BC - рфЁхё яюЁЄр эрцрЄющ ъэюяъш, т A - ьрёър эрцрЄющ ъэюяъш
  391.                         INC     HL                              ;хёыш ъыртш°р эх эрцрЄр, яхЁхїюфшь ъ ёыхф. ъэюяъх т ЄрсышЎх,
  392.                         INC     HL
  393.                         SLA     D                               ;яхЁхїюфшь ъ ёыхфє■∙хщ ъыртш°х Ё фр
  394.                         LD      A,D                             ;яЁютхЁшь эх яЁютхЁшыш ыш тхё№ яюыєЁ ф
  395.                         SUB     %00100000
  396.                         JR      Z,RdNextRow             ;хёыш яЁю°ыш, яхЁхїюфшь ъ яЁютхЁъх ёыхф. Ё фр
  397.                         JR      ReadKey4
  398. RdNextRow       SLL     B                               ;рфЁхё яюЁЄр эр рфЁхё ёыхф. яюЁЄр
  399.                         LD      A,B                             ;яЁютхЁшь, эх яЁютхЁшыш ыш тёх яюыєЁ ф√
  400.                         CP      %11111111               ;хёыш х∙х эх тёх Ё ф√ яхЁхсЁрыш
  401.                         JR      NZ,ReadKey2             ;ўшЄрхь ёыхф. Ё ф
  402.                         JR      ReadKey3                ;хёыш Ё ф√ ъюэўшышё№, р ъыртш°р эх эрцрЄр яхЁхсшЁрхь яюЁЄ√ ёэютр
  403. RdAntiFr        IN      A,(C)                   ;єёЄЁрэхэшх рэЄшфЁхсхчур
  404.                         AND     D                               ;цфхь яюър ъыртш°р эх юЄяє∙хэр
  405.                         JR      Z,RdAntiFr              ;ъыртш°р эрцрЄр - яЁюфюыцрхь цфрЄ№
  406.                         LD      A,(HL)                  ;яЁютхЁшь, эх  ты хЄё  ыш ъыртш°р CAPS SHIFT. ┼ую шёъы■ўрхь, ўЄюс√ эх с√ыю ёЁрсрЄ√трэш  эр ёЄЁхыърї
  407.                         AND     A                               ;хёыш эрцрЄр эхфюяєёЄшьр  ъыртш°р,
  408.                         JR      Z,ReadKey               ;эрўшэрхь юяЁюё ё ёрьюую эрўрыр
  409.  
  410. KbdTbl          DEFB    'CS','Z ','X ','C ','V '
  411.                         DEFB    'A ','S ','D ','F ','G '
  412.                         DEFB    'Q ','W ','E ','R ','T '
  413.                         DEFB    '1 ','2 ','3 ','4 ','5 '
  414.                         DEFB    '0 ','9 ','8 ','7 ','6 '
  415.                         DEFB    'P ','O ','I ','U ','Y '
  416.                         DEFB    'EN','L ','K ','J ','H '
  417.                         DEFB    'SP','SS','M ','N ','B '       
  418.  
  419. TABL    DEFW    32766
  420.         DEFB    1;0
  421.         DEFW    32766
  422.         DEFB    2;1
  423.         DEFW    32766
  424.         DEFB    4;2
  425.         DEFW    32766
  426.         DEFB    8;3
  427.         DEFW    32766
  428.         DEFB    16;4
  429.         DEFW    49150
  430.         DEFB    1;0
  431.         DEFW    49150
  432.         DEFB    2;1
  433.         DEFW    49150
  434.         DEFB    4;2
  435.         DEFW    49150
  436.         DEFB    8;3
  437.         DEFW    49150
  438.         DEFB    16;4
  439.         DEFW    57342
  440.         DEFB    1;0
  441.         DEFW    57342
  442.         DEFB    2;1
  443.         DEFW    57342
  444.         DEFB    4;2
  445.         DEFW    57342
  446.         DEFB    8;3
  447.         DEFW    57342
  448.         DEFB    16;4
  449.         DEFW    61438
  450.         DEFB    1;0
  451.         DEFW    61438
  452.         DEFB    2;1
  453.         DEFW    61438
  454.         DEFB    4;2
  455.         DEFW    61438
  456.         DEFB    8;3
  457.         DEFW    61438
  458.         DEFB    16;4
  459.         DEFW    63486
  460.         DEFB    1;0
  461.         DEFW    63486
  462.         DEFB    2;1
  463.         DEFW    63486
  464.         DEFB    4;2
  465.         DEFW    63486
  466.         DEFB    8;3
  467.         DEFW    63486
  468.         DEFB    16;4
  469.         DEFW    64510
  470.         DEFB    1;0
  471.         DEFW    64510
  472.         DEFB    2;1
  473.         DEFW    64510
  474.         DEFB    4;2
  475.         DEFW    64510
  476.         DEFB    8;3
  477.         DEFW    64510
  478.         DEFB    16;4
  479.         DEFW    65022
  480.         DEFB    1;0
  481.         DEFW    65022
  482.         DEFB    2;1
  483.         DEFW    65022
  484.         DEFB    4;2
  485.         DEFW    65022
  486.         DEFB    8;3
  487.         DEFW    65022
  488.         DEFB    16;4
  489.         DW      65278
  490.         DB      1;0
  491.         DEFW    65278
  492.         DEFB    2;1
  493.         DEFW    65278
  494.         DEFB    4;2
  495.         DEFW    65278
  496.         DEFB    8;3
  497.         DEFW    65278
  498.         DEFB    16;4
  499.         DEFB    255
  500.         DEFB    255
  501.         DEFB    255
  502. REDIFIN
  503.                 LD      HL,(Keys1PlStart)       ;цфхь юЄяєёърэш  ъыртш°ш START
  504.                 LD      B,H                                    
  505.                 LD      C,#FE                          
  506.                 IN      A,(C)
  507.         AND     L
  508.                 JR              Z,REDIFIN
  509.                 LD              A,8                                     ;яЁюшуЁ√трхь чтєъютющ ¤ЇЇхъЄ
  510.                 CALL    AFXPLAY
  511.                 CALL    PLAYSA
  512.                 CALL    CLSR                            ;юўш∙рхь ¤ъЁрэ ш т√тюфшь эрфяшёш
  513. REDIFI2
  514.         CALL    TESTKEY
  515.         LD      HL,TEX1
  516.         LD      A,(P1)
  517.         CP      0
  518.         JR      Z,NOL2
  519.         LD      DE,19
  520.         ADD     HL,DE
  521. NOL2    LD      D,#C0 ;const
  522.         LD      E,#10 ;const
  523.         LD      (TEXTW),HL
  524.         LD      HL,52
  525.         LD      BC,64
  526.         CALL    TEXT
  527.         LD      HL,TEX2
  528.         LD      A,(CHTEX)
  529.         CP      0
  530.         JR      Z,CHLOOP2
  531.         LD      B,A
  532. CHLOOP3 LD      DE,6
  533.         ADD     HL,DE
  534.         DJNZ    CHLOOP3
  535. CHLOOP2 LD      (TEXTW),HL
  536.         LD      D,#C0 ;const
  537.         LD      E,#10 ;const
  538.         LD      HL,52
  539.         LD      BC,64+156
  540.         CALL    TEXT
  541.         ;HALT
  542.        call doscreen
  543.         ;LD     BC,TSCONFIG; SPRITE PRINT
  544.         ;LD     A,%10000000
  545.         ;OUT    (C),A
  546.         JP      REDIFI2
  547.  
  548. TEX1    DEFM    "1 PLAYER PRESS KEY"
  549.                 DEFB    255
  550. TEX1A   DEFM    "2 PLAYER PRESS KEY"
  551.                 DEFB    255
  552. P1              DEFB    0
  553. CHTEX   DEFB    0               ;эюьхЁ Єхъє∙хую т√тюфшьюую ёЄЁшэур (UP/DOWN/LEFT/...)
  554. TEX2    DEFM    "UP   "
  555.                 DEFB    255
  556.                 DEFM    "DOWN "
  557.                 DEFB    255
  558.                 DEFM    "LEFT "
  559.                 DEFB    255
  560.                 DEFM    "RIGHT"
  561.                 DEFB    255
  562.                 DEFM    "FIRE1"
  563.                 DEFB    255
  564.                 DEFM    "FIRE2"
  565.                 DEFB    255
  566.                 DEFM    "START"
  567.                 DEFB    255
  568.  
  569. CLSR
  570.        if 1==1 ;???
  571.         call clstiles
  572.        else
  573.         LD      HL,25998
  574.         LD      A,%00010001
  575.         LD      (HL),A
  576.         INC     HL
  577.         LD      (HL),A
  578.         DEC     HL
  579.         LD      DE,#C000
  580.         LD      B,95 ;wid/8-1?
  581.         LD      C,240 ;hgt-1?
  582.         LD      A,#05
  583.         LD      (PAGEFR),A
  584.         LD      A,#10
  585.         LD      (PAGETO),A
  586.         LD      A,%00110100
  587.         CALL    DMASTART
  588.        endif
  589.         HALT
  590.         HALT
  591.         XOR     A
  592.         LD      HL,(KORM);---X
  593.         LD      BC,(KORM2);----Y
  594.         LD      D,2
  595.         ;CALL   PRINT ;чрўхь???
  596.          xor a
  597.          ld (sprlist+1),a ;disable sprite #0
  598.         RET
  599.  
  600.  
  601. TANKP2 ;when TANKP==4
  602.         PUSH    AF
  603.         LD      A,(TANK)
  604.         INC     A
  605.         INC     A
  606.         LD      (TANK),A ;next sprite phase
  607.         POP     AF
  608.         RET
  609. TANKP3 ;when TANKP==8
  610.         PUSH    AF
  611.         LD      A,(TANK)
  612.         DEC     A
  613.         DEC     A
  614.         LD      (TANK),A ;prev sprite phase
  615.         POP     AF
  616.         XOR     A
  617.         RET
  618. TANK    DEFB    0
  619. TANKP   DEFB    0 ;sprite phase
  620. KORM    DEFW    104
  621. KORM2   DEFW    126
  622. KEYDD2  LD      HL,(Keys1PlDn)          ;LD             HL,Keys1PlDn+2
  623.                 LD      B,H                                     ;LD             BC,(Keys1PlDn)
  624.                 LD      C,#FE                           ;CALL   CHBIT
  625.                 IN      A,(C)
  626.         AND     L
  627.                 JR              Z,KEYDD2
  628.                 LD              A,1
  629.                 CALL    AFXPLAY
  630.                 CALL    PLAYSA
  631.  
  632.         LD      HL,(KORM2)
  633.         LD      DE,10
  634.         ADD     HL,DE
  635.         LD      A,L
  636.         CP      166
  637.         CALL    Z,KEYDD3
  638.         LD      (KORM2),HL
  639.         RET
  640.  
  641. KEYDD3  LD      HL,126
  642.         RET
  643. KEYUU2  LD      HL,(Keys1PlUp)          ;LD             HL,Keys1PlUp+2
  644.                 LD      B,H                                     ;LD             BC,(Keys1PlUp)
  645.                 LD      C,#FE                           ;CALL   CHBIT
  646.                 IN      A,(C)
  647.         AND     L
  648.                 JR              Z,KEYUU2
  649.                 LD              A,1
  650.                 CALL    AFXPLAY
  651.                 CALL    PLAYSA
  652.         LD      HL,(KORM2)
  653.         LD      DE,10
  654.         SBC     HL,DE
  655.         LD      A,L
  656.         CP      116
  657.         CALL    Z,KEYUU3
  658.         LD      (KORM2),HL
  659.         RET
  660. KEYUU3  LD      HL,156
  661.  
  662.         RET
  663.        
  664.  
  665. STR7    PUSH    AF
  666.         LD      D,#C0 ;const
  667.         LD      E,#10 ;const
  668.         LD      HL,TEXT3        ;рфЁхё ёЄЁюъш ;copyrights
  669.         LD      (TEXTW),HL      ;чрэюёшь т яхЁхьхээє■
  670.        if TILES87
  671.         LD      HL,208;240-24   ;Y
  672.        else
  673.         ld hl,184 ;Y
  674.        endif
  675.         LD      BC,56           ;X
  676.         CALL    TEXT    ;т√тюф ЄхъёЄр
  677.         LD      D,#C0 ;const
  678.         LD      E,#10 ;const
  679.         LD      HL,TEXT4 ;hiscores
  680.         LD      (TEXTW),HL
  681.         LD      HL,8;0
  682.         LD      BC,58
  683.         CALL    TEXT
  684.         POP     AF
  685.         RET
  686.  
  687.  
  688.  
  689.  
  690. EDITOR;START
  691.         POP HL
  692.         LD      A,8
  693.         CALL    AFXPLAY
  694.         CALL    PLAYSA2 ;play #17 sound frames
  695. STA     LD      HL,(Keys1PlStart)       ;LD HL,Keys1PlStart+2
  696.         LD      B,H                     ;LD BC,(Keys1PlStart)
  697.         LD      C,#FE                   ;CALL   CHBIT
  698.         IN      A,(C)
  699.         AND     L
  700.         JR      Z,STA ;wait START unpress
  701.                 ;LD             BC,BORDER
  702.                 ;LD             A,8
  703.                 ;OUT            (C),A
  704.         call border8
  705.  
  706.         CALL    CLS
  707.  
  708.          ld a,255
  709.          ld (MAP),a
  710.          call LOADAREA
  711.  
  712.         CALL    TILL;               PRINT TILES ;set tilemode
  713.         LD      A,2 ;brick
  714.         LD      (STEN),A
  715.         CALL    INSTAL
  716. ;   CALL    TEXTLEF
  717.  
  718.         XOR     A
  719.         LD      (TANK),A
  720.         LD      (TANKP),A
  721.  
  722. KERN
  723. ;editor
  724.         call doscreen;_and_logic
  725.  
  726.         LD      A,(NOTILL)
  727.         CP      1
  728.         JR      Z,NOT22
  729.         LD      D,2
  730.         LD      A,(CURSOR)
  731.  if 1==1
  732.        and 127
  733.        jr nz,$+4
  734.         ld a,2*15
  735.        add a,78;80
  736.        cp 96
  737.        jr c,$+4
  738.         add a,176-96
  739.          ld hl,CURSOR
  740.          bit 7,(hl)
  741.          ;ld hl,(NOTILL)
  742.          ;inc l
  743.          ;dec l
  744.  else
  745.         BIT     7,A
  746.  endif
  747.         LD      HL,(XCUR);---X
  748.         LD      BC,(YCUR);----Y
  749.         CALL    NZ,FLICKER ;"ld a,40:ret"
  750.         CALL    PRINT;              PRINT SPRITES
  751.         HALT
  752.         HALT
  753. NOT222  HALT
  754.         ;LD     BC,TSCONFIG; SPRITE PRINT
  755.         ;LD     A,(NOTILL)
  756.         ;CP     1
  757.         ;JR     Z,NOT2
  758.         ;LD     A,%10100000
  759. ;NOT1   ;OUT    (C),A
  760.         CALL    KEY ;editor keys
  761.         JR      KERN
  762. ;NOT2
  763.         ;LD     A,%10000000
  764.         ;JP     NOT1
  765.  
  766. NOT22
  767. ;ьхэ■ хфшЄюЁр
  768.         LD      A,(TANK)
  769.         LD      L,SPRMYTANKLEVEL0+4;44
  770.         ADD     A,L
  771.         LD      HL,(KORM);---X
  772.         LD      BC,(KORM2);----Y
  773.        if TILES87
  774.        dup 7
  775.        dec bc ;ъюёЄ√ы№!!!
  776.        edup
  777.        else
  778.        dup 6
  779.        dec bc ;ъюёЄ√ы№!!!
  780.        edup
  781.        endif
  782.         LD      D,2
  783.         CALL    PRINT
  784.     ;Єю цх т KERFFF!!!???    
  785.         LD      A,(TANKP)
  786.         INC     A
  787.         CP      4
  788.         CALL    Z,TANKP2
  789.         CP      8
  790.         CALL    Z,TANKP3
  791.         LD      (TANKP),A ;Їрчр рэшьрЎшш Єрэър
  792.         CALL    KEY2 ;editor menu keys
  793.         JP      NOT222
  794.  
  795. STEN    DEFB    0 ;brick/beton
  796. INSSTEN
  797.         LD      A,250
  798.         LD      (BETONARM),A
  799.         RET
  800.  
  801. INSTAL
  802.         LD      A,(STEN)
  803.         CP      12 ;beton
  804.         CALL    Z,INSSTEN ;(BETONARM)=250
  805.         ;LD     BC,PAGE3
  806.         ;LD     A,#08
  807.         ;OUT    (C),A
  808.         call setpg8
  809.         LD      A,(STEN)
  810.        if 1==1
  811.        if TILES87
  812.         ld hl,tilemap+15+(29*BYTESPERTILELINE)
  813.        else
  814.         ld hl,tilemap+15+((MAXY/8+1)*BYTESPERTILELINE)
  815.        endif
  816.         call prchar_tilemap_hl
  817.         TILEMAPLINEUP
  818.         call prchar_tilemap_hl
  819.         TILEMAPLINEUP
  820.         call prchar_tilemap_hl
  821.         TILEMAPRIGHT
  822.         call prchar_tilemap_hl
  823.         TILEMAPRIGHT
  824.         call prchar_tilemap_hl
  825.         TILEMAPRIGHT
  826.         call prchar_tilemap_hl
  827.         TILEMAPLINEDOWN
  828.         call prchar_tilemap_hl
  829.         TILEMAPLINEDOWN
  830.         call prchar_tilemap_hl
  831.         TILEMAPLEFT
  832.         ld a,95 ;eagle bottom-right tile
  833.         call prchar_tilemap_hl
  834.         TILEMAPLEFT
  835.         ld a,94 ;eagle bottom-left tile
  836.         call prchar_tilemap_hl
  837.         TILEMAPLINEUP
  838.         ld a,30 ;eagle top-left tile
  839.         call prchar_tilemap_hl
  840.         TILEMAPRIGHT
  841.         ld a,31 ;eagle top-right tile
  842.         call prchar_tilemap_hl
  843.        else
  844.         LD      HL,49152+32+5120+2048
  845.         LD      (HL),30 ;eagle top-left tile
  846.         INC     HL
  847.         INC     HL
  848.         LD      (HL),31 ;eagle top-right tile
  849.         LD      DE,254
  850.         ADD     HL,DE
  851.         LD      (HL),94 ;eagle bottom-left tile
  852.         INC     HL
  853.         INC     HL
  854.         LD      (HL),95 ;eagle bottom-right tile
  855.         LD      HL,49152+30+5120+2048+256
  856.         LD      (HL),A ;bottom wall left of eagle
  857.         LD      DE,6
  858.         ADD     HL,DE
  859.         LD      (HL),A ;bottom wall right of eagle
  860.         LD      HL,49152+30+5120+2048
  861.         LD      (HL),A ;wall left of eagle
  862.         LD      DE,6
  863.         ADD     HL,DE
  864.         LD      (HL),A ;wall right of eagle
  865.         LD      HL,49152+30+5120+2048-256
  866.         LD      (HL),A ;walls atop of eagle
  867.         INC     HL
  868.         INC     HL
  869.         LD      (HL),A
  870.         INC     HL
  871.         INC     HL
  872.         LD      (HL),A
  873.         INC     HL
  874.         INC     HL
  875.         LD      (HL),A
  876.        endif
  877.         RET
  878.  
  879. KEYDDD2 LD      HL,(Keys1PlDn)  ;LD             HL,Keys1PlDn+2
  880.                 LD      B,H                             ;LD             BC,(Keys1PlDn)
  881.                 LD      C,#FE                   ;CALL   CHBIT
  882.                 IN      A,(C)
  883.         AND     L
  884.                 JR              Z,KEYDDD2
  885.                 LD              HL,(KORM2)
  886.                 LD              DE,8
  887.                 ADD             HL,DE
  888.                 LD              A,L
  889.                 CP              122-16
  890.                 CALL    Z,KEYDDD3
  891.                 LD              (KORM2),HL
  892.                 RET
  893. KEYDDD3 LD      HL,90
  894.         RET
  895. KEYUUU2 LD      HL,(Keys1PlUp)  ;LD             HL,Keys1PlUp+2
  896.                 LD      B,H                             ;LD             BC,(Keys1PlUp)
  897.                 LD      C,#FE                   ;CALL   CHBIT
  898.                 IN      A,(C)
  899.         AND     L
  900.                 JR              Z,KEYUUU2
  901.                 LD              HL,(KORM2)
  902.                 LD              DE,8
  903.                 SBC             HL,DE
  904.                 LD              A,L
  905.                 CP              82
  906.                 CALL    Z,KEYUUU3
  907.                 LD              (KORM2),HL
  908.                 RET
  909. KEYUUU3 LD      HL,98
  910.         RET
  911.  
  912. KEY2
  913. ;editor menu keys
  914.         LD      HL,(Keys1PlDn)  ;LD             HL,Keys1PlDn+2
  915.                 LD      B,H                             ;LD             BC,(Keys1PlDn)
  916.                 LD      C,#FE                   ;CALL   CHBIT
  917.                 IN      A,(C)
  918.         AND     L
  919.                 CALL    Z,KEYDDD2
  920.                 LD      HL,(Keys1PlUp)  ;LD             HL,Keys1PlUp+2
  921.                 LD      B,H                             ;LD             BC,(Keys1PlUp)
  922.                 LD      C,#FE                   ;CALL   CHBIT
  923.                 IN      A,(C)
  924.         AND     L
  925.                 CALL    Z,KEYUUU2
  926.                 RET
  927.  
  928. FLICKER LD      A,SPRMYTANKLEVEL0;40
  929.         RET
  930.  
  931. KEY
  932. ;editor keys
  933.          LD A,(NOTILL)
  934.          CP 1
  935.          JR Z,KEYinmenu
  936.         CALL    KEYR;   UPRAVLENIE
  937.         CALL    KEYL
  938.         CALL    KEYD
  939.         CALL    KEYU
  940.         CALL    KEYX ;fire 2 (change tile)
  941.         CALL    SPACE ;fire (draw)
  942. KEYinmenu
  943.         CALL    ENTER
  944.         LD      A,(SPFLIC)
  945.         CP      8
  946.         CALL    Z,SPFLIC2
  947.         LD      A,(SPFLIC)
  948.         CP      16
  949.         CALL    Z,SPFLIC3
  950.         LD      A,(SPFLIC)
  951.         INC     A
  952.         LD      (SPFLIC),A
  953.         RET
  954. EXITM   POP     HL
  955.         ;LD     BC,TSCONFIG; SPRITE PRINT
  956.         ;LD     A,%00000000
  957.         ;OUT    (C),A
  958.         LD      A,255
  959.         LD      (MAP),A
  960.         CALL    SAVEAREA
  961.         JP      EXITKK
  962.  
  963.  
  964. ENTER   LD      HL,(Keys1PlStart)       ;LD             HL,Keys1PlStart+2
  965.                 LD      B,H                             ;LD             BC,(Keys1PlStart)
  966.                 LD      C,#FE                   ;CALL   CHBIT
  967.                 IN      A,(C)
  968.         AND     L
  969.                 RET     NZ
  970. ENTER2  LD      HL,(Keys1PlStart)       ;LD             HL,Keys1PlStart+2
  971.                 LD      B,H                             ;LD             BC,(Keys1PlStart)
  972.                 LD      C,#FE                   ;CALL   CHBIT
  973.                 IN      A,(C)
  974.         AND     L
  975.                 JR      Z,ENTER2
  976.  
  977.        if 1==1 ;???
  978.         LD      A,(NOTILL)
  979.         or a
  980.         jr nz,editor_skipkeep
  981.         call setpg8
  982.         ld hl,tilemap
  983.         if TILES87
  984.         LD de,#C000
  985.         ld bc,0x800
  986.         else
  987.         LD de,#C000+(TOPYLOAD/8*BYTESPERTILELINE)
  988.         ld bc,0x800-(TOPYLOAD/8*BYTESPERTILELINE)
  989.         endif
  990.         ldir
  991. editor_skipkeep
  992.         call clstiles
  993.        else
  994.         LD      HL,25998
  995.         LD      A,%00010001
  996.         LD      (HL),A
  997.         INC     HL
  998.         LD      (HL),A
  999.         DEC     HL
  1000.         LD      DE,#C000
  1001.         LD      B,95 ;wid/8-1?
  1002.         LD      C,240 ;hgt-1?
  1003.         LD      A,#05
  1004.         LD      (PAGEFR),A
  1005.         LD      A,#10
  1006.         LD      (PAGETO),A
  1007.         LD      A,%00110100
  1008.         CALL    DMASTART
  1009.        endif
  1010.         HALT
  1011.         HALT
  1012.  
  1013.         LD      A,(NOTILL)
  1014.         or a ;CP        0
  1015.         JP      Z,ENTER3
  1016. ;---------------------------------------------------MENU
  1017.         XOR     A
  1018.         LD      (NOTILL),A
  1019.         LD      A,2 ;brick
  1020.         LD      (STEN),A
  1021.         CALL    INSTAL
  1022.         ;LD     BC,BORDER
  1023.         ;LD     A,8
  1024.         ;OUT    (C),A
  1025.         call border8
  1026.         LD      HL,(KORM2)
  1027.         LD      A,L
  1028.         CP      98
  1029.         JP      Z,EXITM
  1030.        
  1031.        if 1==1 ;???
  1032.         call clstiles_field
  1033.         call setpg8
  1034.         ld de,tilemap
  1035.         if TILES87
  1036.         LD HL,#C000
  1037.         ld bc,0x800
  1038.         else
  1039.         LD HL,#C000+(TOPYLOAD/8*BYTESPERTILELINE)
  1040.         ld bc,0x800-(TOPYLOAD/8*BYTESPERTILELINE)
  1041.         endif
  1042.         ldir
  1043.        
  1044.        else
  1045.         LD      HL,25998
  1046.         LD      A,%00010001
  1047.         LD      (HL),A
  1048.         INC     HL
  1049.         LD      (HL),A
  1050.         DEC     HL
  1051.         LD      DE,#C000
  1052.         LD      B,63 ;wid/8-1?
  1053.         LD      C,240 ;hgt-1?
  1054.         LD      A,#05
  1055.         LD      (PAGEFR),A
  1056.         LD      A,#10
  1057.         LD      (PAGETO),A
  1058.         LD      A,%00010100
  1059.         CALL    DMASTART
  1060.         HALT
  1061.         LD      HL,25994
  1062.         LD      A,%10001000
  1063.         LD      (HL),A
  1064.         INC     HL
  1065.         LD      (HL),A
  1066.         DEC     HL
  1067.         LD      DE,#C088
  1068.         LD      B,13 ;wid/8-1?
  1069.         LD      C,240 ;hgt-1?
  1070.         LD      A,#05
  1071.         LD      (PAGEFR),A
  1072.         LD      A,#10
  1073.         LD      (PAGETO),A
  1074.         LD      A,%00010100
  1075.         CALL    DMASTART
  1076.         HALT
  1077.        endif
  1078.        
  1079. ;  CALL    TEXTLEF
  1080.  
  1081.         RET
  1082.  
  1083. ENTER3  CALL    TEXTP
  1084.         LD      HL,96
  1085.         LD      BC,90
  1086.         LD      (KORM),HL;---X
  1087.         LD      (KORM2),BC;----Y
  1088.         LD      A,1
  1089.         LD      (NOTILL),A
  1090.         RET
  1091.  
  1092.  
  1093. SPFLIC2 LD      A,(CURSOR)
  1094.         SET     7,A
  1095.         LD      (CURSOR),A
  1096.         RET
  1097. SPFLIC3 XOR     A
  1098.         LD      (SPFLIC),A
  1099.         LD      A,(CURSOR)
  1100.         RES     7,A
  1101.         LD      (CURSOR),A
  1102.         RET
  1103. SPFLIC  DEFB    0
  1104. SPMETKA DEFB    0
  1105. CHBITP  DEFB    0
  1106. CHBIT
  1107.         LD      A,(HL)
  1108.         LD      (CHBITP),A
  1109.         CP      1;0
  1110.         JP      Z,CHBIT0
  1111.         CP      2;1
  1112.         JP      Z,CHBIT1
  1113.         CP      4;2
  1114.         JP      Z,CHBIT2
  1115.         CP      8;3
  1116.         JP      Z,CHBIT3
  1117.         CP      16;4
  1118.         JP      Z,CHBIT4
  1119.         RET
  1120. CHBIT0  IN      A,(C)
  1121.         BIT     0,A
  1122.         RET
  1123. CHBIT1  IN      A,(C)
  1124.         BIT     1,A
  1125.         RET
  1126. CHBIT2  IN      A,(C)
  1127.         BIT     2,A
  1128.         RET
  1129. CHBIT3  IN      A,(C)
  1130.         BIT     3,A
  1131.         RET
  1132. CHBIT4  IN      A,(C)
  1133.         BIT     4,A
  1134.         RET
  1135.  
  1136. SPACE
  1137.         LD      HL,(Keys1PlFr)  ;LD HL,Keys1PlFr+2
  1138.         LD      B,H             ;LD BC,(Keys1PlFr)
  1139.         LD      C,#FE           ;CALL   CHBIT
  1140.         IN      A,(C)
  1141.         AND     L
  1142.         RET     NZ ;fire not pressed
  1143.         ;LD     BC,PAGE3
  1144.         ;LD     A,#08
  1145.         ;OUT    (C),A
  1146.         call setpg8
  1147.         LD      HL,(XCUR)
  1148.         LD      A,H
  1149.         ;LD     (SPMETKA),A
  1150.          rra
  1151.         LD      A,L
  1152.          rra ;RRCA
  1153.         RRCA
  1154.         if BYTESPERTILE == 1
  1155.          rrca
  1156.         endif
  1157.         ;LD     L,A
  1158.         ;PUSH   HL
  1159.         ;POP    DE
  1160.          ld e,a
  1161.          ld d,0
  1162.         LD      HL,(YCUR)
  1163.         ADD     HL,HL
  1164.         ADD     HL,HL
  1165.         ADD     HL,HL
  1166.         if BYTESPERTILE == 2
  1167.          ADD    HL,HL ;
  1168.         endif
  1169.         if BYTESPERTILELINE == 256
  1170.          ADD    HL,HL ;
  1171.         endif
  1172.         PUSH    HL
  1173.         POP     BC
  1174.         ;LD     HL,#C000
  1175.         ld hl,tilemap
  1176.         ADD     HL,DE
  1177.         ;LD     A,(SPMETKA)
  1178.         ;CP     1
  1179.         ;CALL   Z,SPADD
  1180.         ADD     HL,BC
  1181.         LD      A,(CURSOR)
  1182.         RES     7,A
  1183.         CP      4
  1184.         JP      Z,S4
  1185.         CP      6
  1186.         JP      Z,S6
  1187.         CP      8
  1188.         JP      Z,S8
  1189.         CP      10
  1190.         JP      Z,S10
  1191.         CP      14
  1192.         JP      Z,S14
  1193.         CP      16
  1194.         JP      Z,S16
  1195.         CP      18
  1196.         JP      Z,S18
  1197.         CP      20
  1198.         JP      Z,S20
  1199.        if 1==1
  1200.         call prchar_tilemap_hl
  1201.         TILEMAPRIGHT
  1202.         call prchar_tilemap_hl
  1203.         TILEMAPLEFTLINEDOWN
  1204.         call prchar_tilemap_hl
  1205.         TILEMAPRIGHT
  1206.         call prchar_tilemap_hl
  1207.        else
  1208.         LD      (HL),A
  1209.         INC     HL
  1210.         INC     HL
  1211.         LD      (HL),A
  1212.         LD      BC,254
  1213.         ADD     HL,BC
  1214.         LD      (HL),A
  1215.         INC     HL
  1216.         INC     HL
  1217.         LD      (HL),A
  1218.        endif
  1219.         LD      A,2 ;brick
  1220.         LD      (STEN),A
  1221.         CALL    INSTAL
  1222.         RET
  1223.  
  1224. S4
  1225.        if 1==1
  1226.         LD      A,2 ;brick
  1227.         TILEMAPRIGHT
  1228.         call prchar_tilemap_hl
  1229.         TILEMAPLINEDOWN
  1230.         call prchar_tilemap_hl
  1231.        else
  1232.         INC     HL
  1233.         INC     HL
  1234.         LD      (HL),2 ;brick
  1235.         LD      BC,254
  1236.         ADD     HL,BC
  1237.         INC     HL
  1238.         INC     HL
  1239.         LD      (HL),2 ;brick
  1240.         LD      A,2 ;brick
  1241.        endif
  1242.         LD      (STEN),A
  1243.         CALL    INSTAL
  1244.         RET
  1245. S6
  1246.        if 1==1
  1247.         LD      A,2 ;brick
  1248.         TILEMAPLINEDOWN
  1249.         call prchar_tilemap_hl
  1250.         TILEMAPRIGHT
  1251.         call prchar_tilemap_hl
  1252.        else
  1253.         LD      BC,254
  1254.         ADD     HL,BC
  1255.         INC     HL
  1256.         INC     HL
  1257.         LD      (HL),2 ;brick
  1258.         INC     HL
  1259.         INC     HL
  1260.         LD      (HL),2 ;brick
  1261.         LD      A,2 ;brick
  1262.        endif
  1263.         LD      (STEN),A
  1264.         CALL    INSTAL
  1265.         RET
  1266. S8
  1267.        if 1==1
  1268.         LD      A,2 ;brick
  1269.         call prchar_tilemap_hl
  1270.         TILEMAPLINEDOWN
  1271.         call prchar_tilemap_hl
  1272.        else
  1273.         LD      (HL),2 ;brick
  1274.         LD      BC,254
  1275.         ADD     HL,BC
  1276.         INC     HL
  1277.         INC     HL
  1278.         LD      (HL),2 ;brick
  1279.         LD      A,2 ;brick
  1280.        endif
  1281.         LD      (STEN),A
  1282.         CALL    INSTAL
  1283.         RET
  1284. S10
  1285.        if 1==1
  1286.         LD      A,2 ;brick
  1287.         call prchar_tilemap_hl
  1288.         TILEMAPRIGHT
  1289.         call prchar_tilemap_hl
  1290.        else
  1291.         LD      (HL),2 ;brick
  1292.         INC     HL
  1293.         INC     HL
  1294.         LD      (HL),2 ;brick
  1295.         LD      A,2 ;brick
  1296.        endif
  1297.         LD      (STEN),A
  1298.         CALL    INSTAL
  1299.         RET
  1300. S14
  1301.        if 1==1
  1302.         LD      A,12 ;beton
  1303.         TILEMAPRIGHT
  1304.         call prchar_tilemap_hl
  1305.         TILEMAPLINEDOWN
  1306.         call prchar_tilemap_hl
  1307.        else
  1308.         INC     HL
  1309.         INC     HL
  1310.         LD      (HL),12 ;beton
  1311.         LD      BC,254
  1312.         ADD     HL,BC
  1313.         ;INC    HL
  1314.         ;INC    HL ;???
  1315.         LD      (HL),12 ;beton
  1316.        endif
  1317.         LD      A,2 ;brick
  1318.         LD      (STEN),A
  1319.         CALL    INSTAL
  1320.         RET
  1321. S16
  1322.        if 1==1
  1323.         LD      A,12 ;beton
  1324.         TILEMAPLINEDOWN
  1325.         call prchar_tilemap_hl
  1326.         TILEMAPRIGHT
  1327.         call prchar_tilemap_hl
  1328.        else
  1329.         LD      BC,254
  1330.         ADD     HL,BC
  1331.         INC     HL
  1332.         INC     HL
  1333.         LD      (HL),12 ;beton
  1334.         INC     HL
  1335.         INC     HL
  1336.         LD      (HL),12 ;beton
  1337.        endif
  1338.         LD      A,2 ;brick
  1339.         LD      (STEN),A
  1340.         CALL    INSTAL
  1341.         RET
  1342. S18
  1343.        if 1==1
  1344.         LD      A,12 ;beton
  1345.         call prchar_tilemap_hl
  1346.         TILEMAPLINEDOWN
  1347.         call prchar_tilemap_hl
  1348.        else
  1349.         LD      (HL),12 ;beton
  1350.         LD      BC,254
  1351.         ADD     HL,BC
  1352.         INC     HL
  1353.         INC     HL
  1354.         LD      (HL),12 ;beton
  1355.        endif
  1356.         LD      A,2 ;brick
  1357.         LD      (STEN),A
  1358.         CALL    INSTAL
  1359.         RET
  1360. S20
  1361.        if 1==1
  1362.         LD      A,12 ;beton
  1363.         call prchar_tilemap_hl
  1364.         TILEMAPRIGHT
  1365.         call prchar_tilemap_hl
  1366.        else
  1367.         LD      (HL),12 ;beton
  1368.         INC     HL
  1369.         INC     HL
  1370.         LD      (HL),12 ;beton
  1371.        endif
  1372.         LD      A,2 ;brick
  1373.         LD      (STEN),A
  1374.         CALL    INSTAL
  1375.         RET
  1376.  
  1377.         if 1==0
  1378. SPADD
  1379. ;usage:
  1380.         ;LD     HL,#C000
  1381.         ;ADD    HL,DE
  1382.         ;LD     A,(SPMETKA)
  1383.         ;CP     1
  1384.         ;CALL   Z,SPADD
  1385.         ;ADD    HL,BC ;???
  1386.  
  1387.         LD      DE,256-64
  1388.         SBC     HL,DE
  1389.         RET
  1390.         endif
  1391.  
  1392. KEYX    LD      HL,(Keys1PlFr2) ;LD HL,Keys1PlFr2+2
  1393.         LD      B,H             ;LD BC,(Keys1PlFr2)
  1394.         LD      C,#FE           ;CALL   CHBIT
  1395.         IN      A,(C)
  1396.         AND     L
  1397.         RET     NZ ;fire2 not pressed
  1398. KEYX2   LD      HL,(Keys1PlFr2) ;LD HL,Keys1PlFr2+2
  1399.         LD      B,H             ;LD BC,(Keys1PlFr2)
  1400.         LD      C,#FE           ;CALL   CHBIT
  1401.         IN      A,(C)
  1402.         AND     L
  1403.         JR      Z,KEYX2 ;wait fire2 unpress
  1404.  
  1405.                 LD              A,(CURSOR)
  1406.                 RES             7,A
  1407.                 CP              28
  1408.                 JR              Z,NOL
  1409.                 INC             A
  1410.                 INC             A
  1411.                 LD              (CURSOR),A
  1412.                 RET
  1413. NOL     XOR     A
  1414.         LD      (CURSOR),A
  1415.         RET
  1416.  
  1417. KEYR    LD      HL,(Keys1PlRt)  ;LD             HL,Keys1PlRt+2
  1418.                 LD      B,H                             ;LD             BC,(Keys1PlRt)
  1419.                 LD      C,#FE                   ;CALL   CHBIT
  1420.                 IN      A,(C)
  1421.         AND     L
  1422.                 JR      Z,KEYR2
  1423.                 RET
  1424. KEYL    LD      HL,(Keys1PlLt)  ;LD             HL,Keys1PlLt+2
  1425.                 LD      B,H                             ;LD             BC,(Keys1PlLt)
  1426.                 LD      C,#FE                   ;CALL   CHBIT
  1427.                 IN      A,(C)
  1428.         AND     L
  1429.                 JP              Z,KEYL2
  1430.                 RET
  1431. KEYD    LD      HL,(Keys1PlDn)  ;LD             HL,Keys1PlDn+2
  1432.                 LD      B,H                             ;LD             BC,(Keys1PlDn)
  1433.                 LD      C,#FE                   ;CALL   CHBIT
  1434.                 IN      A,(C)
  1435.         AND     L
  1436.                 JP              Z,KEYD2
  1437.                 RET
  1438. KEYU    LD      HL,(Keys1PlUp)  ;LD             HL,Keys1PlUp+2
  1439.                 LD      B,H                             ;LD             BC,(Keys1PlUp)
  1440.                 LD      C,#FE                   ;CALL   CHBIT
  1441.                 IN      A,(C)
  1442.         AND     L
  1443.                 JP              Z,KEYU2
  1444.                 RET
  1445. KEYR2   LD              A,(NOTILL)
  1446.                 CP              1
  1447.                 JP              Z,KEYR3
  1448.                 LD              HL,(XCUR)
  1449.                 LD              A,1
  1450.                 CP              H
  1451.                 RET             Z
  1452.                 LD              DE,16
  1453.                 ADD             HL,DE
  1454.                 LD              (XCUR),HL
  1455.                 RET
  1456.  
  1457. KEYL33  LD      HL,(Keys1PlLt)  ;LD             HL,Keys1PlLt+2
  1458.                 LD      B,H                             ;LD             BC,(Keys1PlLt)
  1459.                 LD      C,#FE                   ;CALL   CHBIT
  1460.                 IN      A,(C)
  1461.         AND     L
  1462.                 JR              Z,KEYL33
  1463.                 LD              HL,(KORM2)
  1464.                 LD              A,L
  1465. ;               CP              90
  1466. ;               JR      Z,KEYL333
  1467. ;               CP      98
  1468. ;               JR      Z,KEYL333
  1469.                 RET
  1470.  
  1471. ;KEYL333        LD      HL,TEXT1
  1472. ;       LD      DE,30
  1473. ;       ADD     HL,DE
  1474. ;       LD      A,(HL)
  1475. ;       DEC     A
  1476. ;       CP      47
  1477. ;       CALL    Z,KN2
  1478. ;       LD      (HL),A
  1479. ;       CALL    TEXTP
  1480. ;       RET
  1481. ;KN2    DEC     HL
  1482. ;       LD      A,(HL)
  1483. ;       DEC     A
  1484. ;       CP      47
  1485. ;       JP      Z,KN22
  1486. ;       LD      (HL),A
  1487. ;       INC     HL
  1488. ;       LD      A,57
  1489. ;       RET
  1490. ;KN22   XOR     A
  1491. ;       LD      (MAP),A
  1492. ;       LD      A,48
  1493. ;       LD      (HL),A
  1494. ;       INC     HL
  1495. ;       RET
  1496.  
  1497.  
  1498.  
  1499. KEYR3   LD      HL,(Keys1PlRt)  ;LD             HL,Keys1PlRt+2
  1500.                 LD      B,H                             ;LD             BC,(Keys1PlRt)
  1501.                 LD      C,#FE                   ;CALL   CHBIT
  1502.                 IN      A,(C)
  1503.         AND     L
  1504.                 JR              Z,KEYR3
  1505.                 LD              HL,(KORM2)
  1506.                 LD              A,L
  1507.                 CP              90
  1508.                 JR              Z,KEYR33
  1509.                 CP              98
  1510.                 JR              Z,KEYR33
  1511.                 RET
  1512. KEYR33  LD      HL,TEXT1
  1513.         LD      DE,30
  1514.         ADD     HL,DE
  1515.         LD      A,(HL)
  1516.         INC     A
  1517.         CP      58
  1518.         CALL    Z,KN
  1519.         LD      (HL),A
  1520.         CALL    TEXTP
  1521.         RET
  1522. KN      DEC     HL
  1523.         LD      A,(HL)
  1524.         INC     A
  1525.         LD      (HL),A
  1526.         INC     HL
  1527.         LD      A,48
  1528.         RET
  1529. KEYL2   LD      A,(NOTILL)
  1530.         CP      1
  1531.         JP      Z,KEYL33
  1532.         LD      HL,(XCUR)
  1533.         LD      A,0
  1534.         CP      H
  1535.         CALL    Z,KEYL3
  1536.         LD      DE,15
  1537.         SBC     HL,DE
  1538.         LD      (XCUR),HL
  1539.         RET
  1540. KEYL3   LD      A,0
  1541.         CP      L
  1542.         RET     NZ
  1543.         POP     HL
  1544.         RET
  1545.  
  1546. KEYD2   LD      HL,(YCUR)
  1547.         LD      A,MAXY;224
  1548.         CP      L
  1549.         RET     Z
  1550.         LD      DE,16
  1551.         ADD     HL,DE
  1552.         LD      (YCUR),HL
  1553.         RET
  1554. KEYU2   LD      HL,(YCUR)
  1555.         LD      A,0
  1556.         CP      L
  1557.         RET     Z
  1558.         LD      DE,15
  1559.         SBC     HL,DE
  1560.         LD      (YCUR),HL
  1561.         RET
  1562.  
  1563.  
  1564.  
  1565. XCUR    DEFW    0
  1566. YCUR    DEFW    0
  1567. CURSOR  DEFB    0
  1568.  
  1569.  
  1570. CLS
  1571.        if 1==0
  1572.         ;LD     BC,PAGE3; CHANGE MEMORY FOR SPRITES
  1573.         ;LD     A,#16
  1574.         ;OUT    (C),A
  1575.         call setpg16
  1576.         LD      HL,49152
  1577.         XOR     A
  1578.         LD      (HL),A
  1579.         LD      DE,49153
  1580.         LD      BC,16384 -1
  1581.         LDIR         ;-------------- CLS ALL LEVEL
  1582.        endif
  1583.        if 1==1 ;???
  1584.         call clstiles_field
  1585.        else
  1586.         LD      HL,25996
  1587.         LD      (HL),0
  1588.         LD      DE,#C000
  1589.         LD      B,127 ;wid/8-1?
  1590.         LD      C,40 ;hgt-1?
  1591.         LD      A,#05
  1592.         LD      (PAGEFR),A
  1593.         LD      A,#08
  1594.         LD      (PAGETO),A
  1595.         LD      A,%00000100
  1596.         CALL    DMASTART
  1597.         HALT
  1598.         HALT
  1599.         LD      HL,25998
  1600.         LD      A,%00010001
  1601.         LD      (HL),A
  1602.         INC     HL
  1603.         LD      (HL),A
  1604.         DEC     HL
  1605.         LD      DE,#C000
  1606.         LD      B,95 ;wid/8-1?
  1607.         LD      C,240 ;hgt-1?
  1608.         LD      A,#05
  1609.         LD      (PAGEFR),A
  1610.         LD      A,#10
  1611.         LD      (PAGETO),A
  1612.         LD      A,%00110100
  1613.         CALL    DMASTART
  1614.         HALT
  1615.         HALT
  1616.         LD      HL,25994
  1617.         LD      A,%10001000
  1618.         LD      (HL),A
  1619.         INC     HL
  1620.         LD      (HL),A
  1621.         DEC     HL
  1622.         LD      DE,#C088
  1623.         LD      B,13 ;wid/8-1?
  1624.         LD      C,240 ;hgt-1?
  1625.         LD      A,#05
  1626.         LD      (PAGEFR),A
  1627.         LD      A,#10
  1628.         LD      (PAGETO),A
  1629.         LD      A,%00010100
  1630.         CALL    DMASTART
  1631.  
  1632.         HALT
  1633.         HALT
  1634.        endif
  1635.         CALL    CLST
  1636.         RET
  1637.  
  1638. CLST    ;LD     BC,PAGE3; CHANGE MEMORY FOR SPRITES
  1639.         ;LD     A,#08
  1640.         ;OUT    (C),A
  1641.         call setpg8
  1642.         LD      HL,49152; CUSTOM TILES
  1643.         LD      B,30
  1644. LTIL2   PUSH    BC
  1645.         LD      B,34;32
  1646. LTIL    XOR     A; NUMBER OF TILES
  1647.         LD      (HL),A
  1648.         ;INC    HL
  1649.         ;INC    HL
  1650.         TILEMAPRIGHT
  1651.         DJNZ    LTIL
  1652.         LD      DE,BYTESPERTILELINE-34;192
  1653.         ADD     HL,DE
  1654.         POP     BC
  1655.         DJNZ    LTIL2
  1656.         RET
  1657.  
  1658.         if 1==0
  1659. DMASTART
  1660. ;b=wid/8-1?
  1661. ;c=hgt-1?
  1662.         LD      (SIZEBC),BC
  1663.         LD      (CLSDATA),A
  1664.         LD      BC,DMASADH; FROM
  1665.         LD      A,H
  1666.         OUT     (C),A
  1667.         LD      BC,DMASADL
  1668.         LD      A,L
  1669.         OUT     (C),A
  1670.         LD      BC,DMASADX; PAGE FROM
  1671.         LD      A,(PAGEFR)
  1672.         OUT     (C),A
  1673.  
  1674.         LD      BC,DMADADH; TO
  1675.         LD      A,D
  1676.         OUT     (C),A
  1677.         LD      BC,DMADADL
  1678.         LD      A,E
  1679.         OUT     (C),A
  1680.         LD      BC,DMADADX; PAGE TO
  1681.         LD      A,(PAGETO)
  1682.         OUT     (C),A
  1683.  
  1684.         LD      BC,DMALEN; LEN
  1685.         LD      HL,(SIZEBC)
  1686.         LD      A,H
  1687.         OUT     (C),A
  1688.         LD      BC,DMANUM
  1689.         LD      A,L
  1690.         OUT     (C),A
  1691.  
  1692.         LD      BC,DMACTR; PRINT
  1693.         LD      A,(CLSDATA)
  1694.         OUT     (C),A
  1695.         RET
  1696.         endif
  1697.  
  1698. TEXTP
  1699.         LD      A,2
  1700.         LD      (STEN),A
  1701.         CALL    INSTAL
  1702.         LD      HL,TEXT1
  1703.         LD      DE,29
  1704.         ADD     HL,DE
  1705.         LD      B,(HL)
  1706.         INC     HL
  1707.         LD      C,(HL)
  1708.         LD      DE,16
  1709.         ADD     HL,DE
  1710.         LD      (HL),B
  1711.         INC     HL
  1712.         LD      (HL),C
  1713.         LD      D,#C0 ;const
  1714.         LD      E,#10 ;const
  1715.         LD      HL,TEXT1
  1716.         LD      (TEXTW),HL
  1717.         LD      HL,86
  1718.         LD      BC,96
  1719.         CALL    TEXT
  1720.         ;LD     BC,BORDER
  1721.         ;LD     A,1
  1722.         ;OUT    (C),A
  1723.         ;RET
  1724.         jp border1
  1725.  
  1726. TEXT
  1727. ;hl=Y
  1728. ;bc=X
  1729.         CALL    PERECHET        ;яЁюшчтюфшь яхЁхёўхЄ ъююЁфшэрЄ
  1730.         LD      HL,(TEXTW)      ;схЁхь рфЁхё ёЄЁюъш
  1731. ;de=scr
  1732. ;hl=text
  1733. TEXTC   LD      (PAGETO),A
  1734.         LD      B,0
  1735.         LD      A,(HL)          ;схЁхь срщЄ ёЄЁюъш
  1736.         CP      255             ;255 - чрърэўштрхь яхўрЄ№ (ъюэхЎ ЄхъёЄр)
  1737.         RET     Z
  1738.         CP      254             ;254 - яхЁхїюфшь эр ёыхфє■∙є■ ¤ъЁрээє■ ёЄЁюъє
  1739.         JP      Z,NEXTPR
  1740.        
  1741.         if 1==1
  1742.         push hl
  1743.          add a,128-32
  1744.         call prchar_tilemap
  1745.         dup BYTESPERTILE
  1746.         inc de
  1747.         edup
  1748.         pop hl
  1749.         else
  1750.                 LD              C,A                     ;схЁхь срщЄ ёЄЁюъш
  1751.                 LD              A,(PAGETO)
  1752.                 PUSH    HL,AF
  1753.                 LD      HL,#C000+4096+4-256+124
  1754.                 ;LD     HL,#C000+4096+4-512+124+2048
  1755.                 LD              A,C                     ;схЁхь срщЄ ёЄЁюъш
  1756.                 CP              96                      ;хёыш >= (╤), ёююЄтхЄёЄтхээю ьхэ хь HL
  1757.                 CALL    NC,REGUP
  1758.                 ADD             HL,BC
  1759.                 ADD             HL,BC
  1760.                 ADD             HL,BC
  1761.                 ADD             HL,BC
  1762.  
  1763.                 LD              B,1
  1764.                 LD              C,7
  1765.                 LD              A,#C0
  1766.                 LD              (PAGEFR),A
  1767.                 LD              A,%00110001
  1768.                 PUSH    DE
  1769.                 CALL    DMASTART
  1770.                 POP             DE
  1771.                 POP             AF,HL
  1772.         INC     DE
  1773.         INC     DE
  1774.         INC     DE
  1775.         INC     DE ;screen addr???
  1776.         endif
  1777.         INC     HL
  1778.         JR      TEXTC
  1779.  
  1780. NEXTPR
  1781.         PUSH    HL,BC
  1782.         LD      HL,(SAVEY)
  1783.         LD      DE,8
  1784.        ;ld a,l
  1785.        ;cp 192
  1786.        ;jr nc,$+3
  1787.          ADD    HL,DE
  1788.         LD      BC,(SAVEX)
  1789.         LD      D,#C0 ;const
  1790.         LD      E,#10 ;const
  1791.         CALL    PERECHET
  1792.         POP     BC,HL
  1793.         INC     HL
  1794.         JR      TEXTC
  1795.                
  1796. REGUP   LD      HL,#C000+4096+4-512+124+2048
  1797.         RET
  1798.  
  1799. PERECHET
  1800. ;hl=Y
  1801. ;bc=X
  1802. ;out: de=scr
  1803.        ;ld a,l
  1804.        ;cp 192
  1805.        ;jr c,$+4
  1806.        ;ld l,192
  1807.         LD      (SAVEY),HL      ;ёюїЁрэ хь Y
  1808.         LD      (SAVEX),BC      ;ёюїЁрэ хь X
  1809.        if 1==1
  1810.        if 1==1
  1811.         ld a,l
  1812.         and 0xf8
  1813.         ld l,a
  1814.         ;add hl,hl
  1815.         ;add hl,hl
  1816.         ;add hl,hl
  1817.         add hl,hl
  1818.         add hl,hl
  1819.         add hl,hl ;*64
  1820.         if BYTESPERTILE == 2
  1821.          add hl,hl ;*128
  1822.         endif
  1823.         push bc
  1824.         srl b
  1825.         rr c
  1826.         srl b
  1827.         rr c
  1828.         if BYTESPERTILE == 1
  1829.          srl b
  1830.          rr c
  1831.         endif
  1832.         add hl,bc
  1833.         ld bc,tilemap
  1834.         add hl,bc
  1835.         pop bc
  1836.         ex de,hl
  1837.        else
  1838.         ld d,h
  1839.         ld e,l
  1840.         add hl,hl
  1841.         add hl,hl
  1842.         add hl,de
  1843.         add hl,hl
  1844.         add hl,hl
  1845.         add hl,hl ;*40
  1846.         srl b
  1847.         rr c
  1848.         srl b
  1849.         rr c
  1850.         srl b
  1851.         rr c
  1852.         add hl,bc
  1853.         ld a,h
  1854.         add a,0x40
  1855.         ld h,a
  1856.         ex de,hl
  1857.        endif
  1858.        else
  1859.         LD      A,L             ;схЁхь ьырф°є■ срщЄ юЄ Y
  1860.         AND     %00111111       ;юЄсЁрё√трхь 2 ёЄрЁ°шї сшЄр
  1861.         OR      D               ;OR 11000000
  1862.         LD      D,A             ;т D яюыєўхь эютє■ ьырф°є■ ўрёЄ№ Y
  1863.         ADD     HL,HL           ;Y*4
  1864.         ADD     HL,HL
  1865.         LD      A,H             ;схЁхь ёЄрЁ°є■ ўрёЄ№ Y*4
  1866.         ADD     A,E             ;яЁшсрты хь ъ эхщ #10 (00010000)
  1867.         SRL     B               ;X/2
  1868.         RR      C
  1869.         LD      E,C             ;т E - ьырф°я  ўрёЄ№ X/2
  1870.        endif
  1871.         RET
  1872.  
  1873. CLSSTART
  1874.         if 1==1 ;???
  1875.         call clstiles
  1876.         else
  1877.         LD      HL,25998
  1878.         LD      A,%00010001
  1879.         LD      (HL),A
  1880.         INC     HL
  1881.         LD      (HL),A
  1882.         DEC     HL
  1883.         LD      DE,#C000
  1884.         LD      B,95 ;wid/8-1?
  1885.         LD      C,240 ;hgt-1?
  1886.         LD      A,#05
  1887.         LD      (PAGEFR),A
  1888.         LD      A,#10
  1889.         LD      (PAGETO),A
  1890.         LD      A,%00110100
  1891.         CALL    DMASTART
  1892.         HALT
  1893.         HALT
  1894.         endif
  1895.         RET
  1896.  
  1897. TEXTLEF
  1898.        if 1==1 ;???
  1899.         ld hl,tilemap+(22*BYTESPERTILELINE)+35
  1900.         ld a,50
  1901.         call prchar_tilemap_hl
  1902.         TILEMAPRIGHT
  1903.         ld a,51
  1904.         call prchar_tilemap_hl
  1905.         TILEMAPLINEDOWN
  1906.         ld a,64+51
  1907.         call prchar_tilemap_hl
  1908.         TILEMAPLEFT
  1909.         ld a,64+50
  1910.         call prchar_tilemap_hl
  1911.        else
  1912.         LD      HL,49152+128+64+8
  1913.         LD      DE,49152+128+12
  1914.         LD      B,3 ;wid/8-1?
  1915.         LD      C,15 ;hgt-1?
  1916.         LD      A,#C0
  1917.         LD      (PAGEFR),A
  1918.         LD      A,#13
  1919.         LD      (PAGETO),A
  1920.         LD      A,%00110001
  1921.         CALL    DMASTART
  1922.        endif
  1923.  
  1924.         LD      HL,TEXT6
  1925.         LD      (TEXTW),HL
  1926.         LD      D,#C0
  1927.         LD      E,#10
  1928.         LD      BC,256+24
  1929.         LD      HL,128
  1930.         CALL    TEXT
  1931.  
  1932.         LD      A,(PLAYER)
  1933.         CP      0
  1934.         JP      Z,PKS
  1935.         LD      HL,TEXT7
  1936.         LD      (TEXTW),HL
  1937.         LD      D,#C0 ;const
  1938.         LD      E,#10 ;const
  1939.         LD      BC,256+24
  1940.         LD      HL,128+24
  1941.         CALL    TEXT
  1942. PKS
  1943.         LD      HL,LEVEL
  1944.         CALL    TEXR ;write 2 bytes map number INVERTED DIGITS in (HL)
  1945.  
  1946.         LD      HL,LEVEL
  1947.         LD      (TEXTW),HL
  1948.         LD      D,#C0 ;const
  1949.         LD      E,#10 ;const
  1950.         LD      BC,256+30
  1951.         LD      HL,192;128+64+12 ;???
  1952.         CALL    TEXT
  1953.  
  1954.         LD      HL,WAR
  1955. CIKL    LD      A,(HL)
  1956.         CP      0
  1957.         RET     Z
  1958.         PUSH    HL
  1959.         LD      HL,TEXT5 ;ёшьтюы 40 - ьрыхэ№ъшщ ў╕Ёэ√щ Єрэъ???
  1960.         LD      (TEXTW),HL
  1961.         POP     BC
  1962.         PUSH    BC
  1963.         INC     BC
  1964.         LD      A,(BC)
  1965.         LD      L,A
  1966.         INC     BC
  1967.         LD      A,(BC)
  1968.         LD      H,A ;hl=Y
  1969.         POP     DE
  1970.         PUSH    DE
  1971.         INC     DE
  1972.         INC     DE
  1973.         INC     DE
  1974.         LD      A,(DE)
  1975.         LD      C,A
  1976.         INC     DE
  1977.         LD      A,(DE)
  1978.         LD      B,A ;bc=X
  1979.         LD      D,#C0 ;const
  1980.         LD      E,#10 ;const
  1981.         CALL    TEXT
  1982.         POP     HL
  1983.         INC     HL
  1984.         INC     HL
  1985.         INC     HL
  1986.         INC     HL
  1987.         INC     HL
  1988.         JR      CIKL
  1989.         ;RET ;???
  1990.  
  1991. PAGE=setpg17
  1992.         ;LD     BC,PAGE3; CHANGE MEMORY FOR SPRITES
  1993.         ;LD     A,#17
  1994.         ;OUT    (C),A
  1995.         ;RET
  1996. PAGE2AA=setpg18
  1997.         ;LD     BC,PAGE3; CHANGE MEMORY FOR SPRITES
  1998.         ;LD     A,#18
  1999.         ;OUT    (C),A
  2000.         ;RET
  2001. PAGE2A
  2002.         SBC     A,16
  2003.         RET
  2004. ;LAR
  2005.         ;RET
  2006. LOADAREA
  2007.         ld a,(levelsloaded)
  2008.         or a
  2009.         jr z,loadarea_00notloaded
  2010. ;т яЁшэЎшях, тё╕ чруЁєцхэю, эю хёыш ърЁЄр 00, Єю эрфю чруЁєчшЄ№
  2011.         ld a,(MAP)
  2012.         cp 255
  2013.         jr nz,loadarea_skip00
  2014. loadarea_00notloaded
  2015.                         ;LD             BC,PAGE3                ;Loading 0 (user) mission
  2016.                         ;LD             A,#18
  2017.                         ;OUT            (C),A
  2018.         call setpg18
  2019.                         ;TRDReadFromHere        #C000,#04
  2020.         ld de,fn_lvl00us
  2021.         ld hl,0xc000
  2022.         call loadfile
  2023. loadarea_skip00
  2024. levelsloaded=$+1
  2025.         ld a,0
  2026.         or a
  2027.         jr nz,loadarea_loaded
  2028.                 ;LD             BC,PAGE3                ;Loading 1-16 missions
  2029.                         ;LD             A,#16
  2030.                         ;OUT            (C),A
  2031.         call setpg16
  2032.                         ;LD             DE,(DiskAddrLevels)
  2033.                         ;TRDReadFromDE  #C000,#40
  2034.         ld de,fn_lvl0116
  2035.         ld hl,0xc000
  2036.         call loadfile
  2037.  
  2038.                         ;LD             BC,PAGE3                ;Loading 17-32 missions
  2039.                         ;LD             A,#17
  2040.                         ;OUT            (C),A
  2041.         call setpg17
  2042.                         ;TRDReadFromHere        #C000,#40
  2043.                         ;LD      HL,(#5CF4)                             ;Save position of 0 (user) mission on disk
  2044.                         ;LD             (DiskAddrUsrLev),HL
  2045.         ld de,fn_lvl1732
  2046.         ld hl,0xc000
  2047.         call loadfile
  2048.        
  2049.         ld a,1
  2050.         ld (levelsloaded),a
  2051. loadarea_loaded
  2052.  
  2053.                         ;LD             BC,PAGE3        ;CHANGE MEMORY FOR SPRITES
  2054.                         ;LD             A,#16
  2055.                         ;OUT            (C),A
  2056.         call setpg16
  2057.  
  2058.                         LD              A,(MAP)
  2059.                         CP              16
  2060.                         CALL    NC,PAGE ;setpg17
  2061.  
  2062.                         LD              A,(MAP)
  2063.                         CP              255
  2064.                         CALL    Z,PAGE2AA
  2065.  
  2066.                         LD              HL,#C000
  2067.                         LD              (SAVEBUF),HL
  2068.         ld de,tilemap;0x4000
  2069.         ld (prmappos),de
  2070.  
  2071.         if TILES87
  2072.                 LD HL,#C000
  2073.         else
  2074.                 LD HL,#C000+(TOPYLOAD/8*34)
  2075.         endif
  2076.                         LD              A,(MAP)
  2077.                         CP              255
  2078.                         JR              Z,SSSS
  2079.  
  2080.                 LD      A,(MAP)
  2081.                 CP      16
  2082.                 CALL    NC,PAGE2A
  2083.                 LD      B,A
  2084. LOP             LD      DE,1024
  2085.                 ADD     HL,DE
  2086.                 DJNZ    LOP
  2087. SSSS
  2088.         if TILES87
  2089.                 LD      B,30
  2090.         else
  2091.                 LD      B,26
  2092.         endif
  2093. LOLOOP2         PUSH    BC
  2094.                 LD      B,34
  2095. LOLOOP          LD      A,(HL)
  2096.                 CALL    LOAD1
  2097.                 INC     HL
  2098.                 DJNZ    LOLOOP
  2099.                 POP     BC
  2100.                 DJNZ    LOLOOP2
  2101.         call setpg8
  2102.                 RET
  2103. LOAD1           PUSH    HL,DE,BC
  2104.                         PUSH    AF
  2105.                         ;LD             BC,PAGE3
  2106.                         ;LD             A,#08
  2107.                         ;OUT            (C),A
  2108.         call setpg8
  2109.                         POP             AF
  2110.                         LD              HL,(SAVEBUF)
  2111.                         LD              (HL),A
  2112.         push hl
  2113. prmappos=$+1
  2114.         ld de,0
  2115.         call prchar_tilemap
  2116.         dup BYTESPERTILE
  2117.         inc de
  2118.         edup
  2119.         ld (prmappos),de
  2120.         pop hl
  2121.                        
  2122.                         INC             HL
  2123.                         INC             HL
  2124.                         LD              A,(LOADBUF) ;X in map
  2125.                         INC             A
  2126.                         CP              34
  2127.                         CALL    Z,NEXTLOAD
  2128.                         LD              (LOADBUF),A ;X in map
  2129.                         LD              (SAVEBUF),HL
  2130.                         ;LD             BC,PAGE3
  2131.                         ;LD             A,#16
  2132.                         ;OUT            (C),A
  2133.                         call setpg16
  2134.                         LD              A,(MAP)
  2135.                         CP              16
  2136.                         CALL    NC,PAGE
  2137.                         LD              A,(MAP)
  2138.                         CP              255
  2139.                         CALL    NC,PAGE2AA
  2140.                         POP             BC,DE,HL
  2141.                         RET
  2142. NEXTLOAD
  2143.         push hl
  2144.         ld hl,(prmappos)
  2145.         ld de,BYTESPERTILELINE-(BYTESPERTILE*34);40*7-34
  2146.         add hl,de
  2147.         ld (prmappos),hl
  2148.         pop hl
  2149.         LD      DE,256-68
  2150.         ADD     HL,DE
  2151.         XOR     A ;X in map
  2152.         RET
  2153. LOADBUF         DEFB    0
  2154. SAVEAREA
  2155.         ;LD             BC,PAGE3        ;Saving 0 (user) mission
  2156.         ;LD             A,#08
  2157.         ;OUT            (C),A
  2158.         call setpg8
  2159.         if TILES87
  2160.         LD HL,#C000
  2161.         else
  2162.         LD HL,#C000+(TOPYLOAD/8*34)
  2163.         endif
  2164.         LD      (SAVEBUF),HL
  2165.         if TILES87
  2166.         LD HL,#C000
  2167.         ld b,30
  2168.         else
  2169.         LD HL,#C000+(TOPYLOAD/8*BYTESPERTILELINE)
  2170.         ld b,26
  2171.         endif
  2172. SALOOP2 PUSH    BC
  2173.         LD      B,34
  2174. SALOOP  LD      A,(HL)
  2175.         CALL    SAVE1
  2176.         ;INC    HL
  2177.         ;INC    HL
  2178.         TILEMAPRIGHT
  2179.         DJNZ    SALOOP
  2180.         POP     BC
  2181.         LD DE,BYTESPERTILELINE-(BYTESPERTILE*34);256-68
  2182.         ADD HL,DE
  2183.         DJNZ    SALOOP2
  2184.         ;LD     BC,PAGE3
  2185.         ;LD     A,#18
  2186.         ;OUT    (C),A
  2187.         call setpg18
  2188.  
  2189.         ;LD     DE,(DiskAddrUsrLev)             ;Save 0 (user) mission
  2190.         ;TRDWriteFromDE #C000,#04
  2191.         ;RET
  2192.         ld de,fn_lvl00us
  2193.         ld hl,0xc000
  2194.         ld bc,0x0400
  2195.         jp savefile
  2196.  
  2197. SAVE1           PUSH    HL,DE,BC
  2198.                         PUSH    AF
  2199.                         ;LD             BC,PAGE3
  2200.                         ;LD             A,#18
  2201.                         ;OUT            (C),A
  2202.                         call setpg18
  2203.                         POP             AF
  2204.                         LD              HL,(SAVEBUF)
  2205.                         LD              (HL),A
  2206.                         INC             HL
  2207.                         LD              (SAVEBUF),HL
  2208.                         ;LD             BC,PAGE3
  2209.                         ;LD             A,#08
  2210.                         ;OUT            (C),A
  2211.                         call setpg8
  2212.                         POP             BC,DE,HL
  2213.                         RET
  2214.  
  2215. SAVEBUF DEFW    #C000
  2216.  
  2217. BONG1
  2218. ;яюяры т ёЄхэє???
  2219.         LD      A,(IX+UNIT_TIMEFORSHOTONWAR)
  2220.         INC     A
  2221.         LD      (IX+UNIT_TIMEFORSHOTONWAR),A
  2222.         CP      3
  2223.         CALL    Z,BONG2
  2224.         LD      HL,SPRBOOM0;56
  2225.         LD      (IX+UNIT_NUMBERSPRITES),L
  2226.         LD      (IX+UNIT_NUMBERSPRITES+1),H
  2227.         LD      (IX+UNIT_DIRECTION),0
  2228.         RET
  2229. BONG2   LD      (IX+UNIT_YESORNOT),0
  2230.         LD      (IX+UNIT_TIMEFORSHOTONWAR),0
  2231.         LD      (YESORNO),A
  2232.         RET
  2233. SHOT1   LD      A,(IX+UNIT_TIMEFORSHOTONWAR)
  2234.         CP      0
  2235.         RET     Z
  2236.         DEC     A
  2237.         LD      (IX+UNIT_TIMEFORSHOTONWAR),A
  2238.         RET
  2239.  
  2240. EGGLE ;eagle
  2241.         PUSH    HL
  2242.        if 1==1
  2243. ;draw fallen flag tiles
  2244.        if TILES87
  2245.         ld hl,tilemap+16+(28*BYTESPERTILELINE)
  2246.        else
  2247.         ld hl,tilemap+16+(MAXY/8*BYTESPERTILELINE)
  2248.        endif
  2249.         ld a,32
  2250.         call prchar_tilemap_hl
  2251.         TILEMAPRIGHT
  2252.         ld a,33
  2253.         call prchar_tilemap_hl
  2254.         TILEMAPLINEDOWN
  2255.         ld a,97
  2256.         call prchar_tilemap_hl
  2257.         TILEMAPLEFT
  2258.         ld a,96
  2259.         call prchar_tilemap_hl
  2260.        else
  2261.         LD      HL,49152+32+5120+2048 ;???
  2262.         LD      (HL),32
  2263.         INC     HL
  2264.         INC     HL
  2265.         LD      (HL),33
  2266.         LD      DE,254
  2267.         ADD     HL,DE
  2268.         LD      (HL),96
  2269.         INC     HL
  2270.         INC     HL
  2271.         LD      (HL),97 ;fallen flag tiles
  2272.        endif
  2273.         LD      (IX+UNIT_YESORNOT),3 ;BONG1
  2274.         LD      (IX+UNIT_TIMEFORSHOTONWAR),0
  2275.         LD      (YESORNO),A
  2276.         POP     HL
  2277.         LD      IX,UNITS
  2278.         LD      DE,2*UNITSZ;48
  2279.         ADD     IX,DE
  2280.         LD      (IX+UNIT_X),128
  2281.         LD      (IX+UNIT_X+1),0
  2282.         LD      (IX+UNIT_Y),MAXY;224
  2283.         LD      (IX+UNIT_Y+1),0
  2284.         LD      (IX+UNIT_YESORNOT),4 ;BADABUM
  2285.         LD      (IX+UNIT_SAND),254 ;flag for BAD7
  2286.         LD      (IX+UNIT_DIRECTION2),3
  2287.         POP     HL
  2288.         RET
  2289.  
  2290. INTRO
  2291.         LD              HL,0
  2292.                 LD              (JOINTP1),HL
  2293.                 LD              (JOINTP2),HL
  2294.                 XOR             A
  2295.                 LD              (PAUSE),A
  2296.                 LD              (PAU1),A
  2297.                 LD              (T1),HL
  2298.                 LD              (T2),HL
  2299.                 LD              (T3),HL
  2300.                 LD              (T4),HL
  2301.                 LD              (T12),HL
  2302.                 LD              (T22),HL
  2303.                 LD              (T32),HL
  2304.                 LD              (T42),HL
  2305.  
  2306.                 LD      HL,(Keys1PlStart)       ;LD             HL,Keys1PlStart+2
  2307.                 LD      B,H                                     ;LD             BC,(Keys1PlStart)
  2308.                 LD      C,#FE                           ;CALL   CHBIT
  2309.                 IN      A,(C)
  2310.         AND     L
  2311.                 JR              Z,INTRO
  2312.                 JP              INTRO2
  2313. INT2
  2314.         LD      A,100
  2315.         LD      (MMM),A
  2316.         RET
  2317. INT22   LD      A,100
  2318.         LD      (MMM2),A
  2319.         RET
  2320.  
  2321. PRMIS   PUSH    AF
  2322.         LD      D,#C0
  2323.         LD      E,#10
  2324.         LD      HL,TEXT16 ;stage
  2325.         LD      (TEXTW),HL
  2326.        if TILES87
  2327.         LD      HL,112
  2328.        else
  2329.         LD      HL,112-16
  2330.        endif
  2331.         LD      BC,124
  2332.         CALL    TEXT
  2333.         LD      A,(MAP)
  2334.         CP      15
  2335.         CALL    Z,BOSSLEV
  2336.         CP      31
  2337.         CALL    Z,BOSSLEV
  2338.         CP      32
  2339.         CALL    Z,ENDLEV
  2340.         LD      HL,TEXT17 ;"00" INVERTED DIGITS
  2341.         CALL    TEXR ;write 2 bytes map number INVERTED DIGITS in (HL)
  2342.         LD      D,#C0
  2343.         LD      E,#10
  2344.         LD      HL,TEXT17 ;map number INVERTED DIGITS
  2345.         LD      (TEXTW),HL
  2346.        if TILES87
  2347.         LD      HL,112
  2348.        else
  2349.         LD      HL,112-16
  2350.        endif
  2351.         LD      BC,124+48
  2352.         CALL    TEXT
  2353.        call doscreen
  2354.        call doscreen
  2355.         POP     AF
  2356.         RET
  2357. BOSSLEV
  2358.         LD      D,#C0
  2359.         LD      E,#10
  2360.         LD      HL,TEXT18 ;boss
  2361.         LD      (TEXTW),HL
  2362.         LD      HL,112+10
  2363.         LD      BC,124-8
  2364.         CALL    TEXT
  2365.         LD      D,#C0
  2366.         LD      E,#10
  2367.         LD      HL,TEXT19 ;level
  2368.         LD      (TEXTW),HL
  2369.         LD      HL,112+10
  2370.         LD      BC,124+32
  2371.         CALL    TEXT
  2372.         RET
  2373.  
  2374. TX      XOR     A
  2375.         RET
  2376. TEXR
  2377. ;write 2 bytes map number INVERTED DIGITS in (HL)
  2378.         LD      A,(MAP)
  2379.         CP      255
  2380.         CALL    Z,TX ;xor a
  2381. ;TEXRR
  2382.         CP      69
  2383.         JP      NC,PTEXT7
  2384.         CP      59
  2385.         JP      NC,PTEXT6
  2386.         CP      49
  2387.         JP      NC,PTEXT5
  2388.         CP      39
  2389.         JP      NC,PTEXT4
  2390.         CP      29
  2391.         JP      NC,PTEXT3
  2392.         CP      19
  2393.         JP      NC,PTEXT2
  2394.         CP      9
  2395.         JP      NC,PTEXT
  2396.         INC     A
  2397.         ADD     A,129 ;inverted '0'
  2398.         INC     HL
  2399.         LD      (HL),A
  2400.         RET
  2401. PTEX    INC     A
  2402.         ADD     A,130 ;inverted '1'
  2403.         INC     HL
  2404.         LD      (HL),A
  2405.         RET
  2406. PTEXT   LD      A,130 ;inverted '1'
  2407.         LD      (HL),A
  2408.         LD      A,(MAP)
  2409.         SBC     A,11
  2410.         JP      PTEX
  2411. PTEXT2  LD      A,131 ;inverted '2'
  2412.         LD      (HL),A
  2413.         LD      A,(MAP)
  2414.         SBC     A,21
  2415.         JP      PTEX
  2416. PTEXT3  LD      A,132 ;inverted '3'
  2417.         LD      (HL),A
  2418.         LD      A,(MAP)
  2419.         SBC     A,31
  2420.         JP      PTEX
  2421. PTEXT4  LD      A,133 ;inverted '4'
  2422.         LD      (HL),A
  2423.         LD      A,(MAP)
  2424.         SBC     A,41
  2425.         JP      PTEX
  2426. PTEXT5  LD      A,134 ;inverted '5'
  2427.         LD      (HL),A
  2428.         LD      A,(MAP)
  2429.         SBC     A,51
  2430.         JP      PTEX
  2431. PTEXT6  LD      A,135 ;inverted '6'
  2432.         LD      (HL),A
  2433.         LD      A,(MAP)
  2434.         SBC     A,61
  2435.         JP      PTEX
  2436. PTEXT7  LD      A,136 ;inverted '7'
  2437.         LD      (HL),A
  2438.         LD      A,(MAP)
  2439.         SBC     A,71
  2440.         JP      PTEX
  2441. TEXT16  DEFM    "stage"
  2442.         DEFB    255
  2443. TEXT18  DEFM    "boss"
  2444.         DEFB    255
  2445. TEXT19  DEFM    "level"
  2446.         DEFB    255
  2447. TEXT17  DEFB    129 ;"00" INVERTED DIGITS
  2448.         DEFB    129
  2449.         DEFB    255
  2450. RP2
  2451.         ;LD     BC,PAGE3
  2452.         ;LD     A,12
  2453.         ;OUT    (C),A
  2454.         call setpgc ;ьєч√ър яюсхф√?
  2455.         CALL    #C000
  2456.        ld a,201
  2457.        ld (AFXFRAME),a ;р Єю ьєч√ър шуЁрхЄ ёю ∙хыўърьш
  2458. GG      EI
  2459.         HALT
  2460.         CALL    #C005
  2461.        call EXIT
  2462.         JP      GG
  2463.  
  2464. INTRO2  CALL    FX
  2465.                 CALL    FX2
  2466.                 HALT
  2467.                 LD              A,(MMM)
  2468.                 CP              80
  2469.                 CALL    Z,PRMIS
  2470.                 CP              200
  2471.                 RET             Z
  2472.                 INC             A
  2473.                 LD              (MMM),A
  2474.                 LD              A,(MMM2)
  2475.                 INC             A
  2476.                 CP              200
  2477.                 CALL    Z,INT22
  2478.                 LD              (MMM2),A
  2479.  
  2480.                 LD              HL,(WERH)
  2481.                 LD              DE,512
  2482.                 ADD             HL,DE
  2483.                 LD              (WERH),HL
  2484.  
  2485.                 LD              HL,(WERH2)
  2486.                 LD              DE,512
  2487.                 SBC             HL,DE
  2488.                 LD              (WERH2),HL
  2489.                 LD              A,(MMM)
  2490.                 CP              100
  2491.                 JP              C,INTRO2
  2492.                 LD      HL,(Keys1PlStart)       ;LD             HL,Keys1PlStart+2
  2493.                 LD      B,H                                     ;LD             BC,(Keys1PlStart)
  2494.                 LD      C,#FE                           ;CALL   CHBIT
  2495.                 IN      A,(C)
  2496.         AND     L
  2497.                 RET             Z
  2498.                 JP              INTRO2
  2499.  
  2500. FXN
  2501.         LD      HL,#C001-512
  2502.         LD      (WERH),HL
  2503.         LD      A,(SM1)
  2504.         INC     A
  2505.         LD      (SM1),A
  2506.         ;LD     BC,PAGE3; CHANGE MEMORY FOR SPRITES
  2507.         LD      A,(SM1)
  2508.         ;OUT    (C),A
  2509.         ;RET
  2510.         jp setpg
  2511. FXN2
  2512.         LD      HL,65536-512
  2513.         LD      (WERH2),HL
  2514.         LD      A,(SM2)
  2515.         DEC     A
  2516.         LD      (SM2),A
  2517.         ;LD     BC,PAGE3; CHANGE MEMORY FOR SPRITES
  2518.         LD      A,(SM2)
  2519.         ;OUT    (C),A
  2520.         ;RET
  2521.         jp setpg
  2522. FX
  2523.          if 1==0 ;???
  2524.         ;LD     BC,PAGE3; CHANGE MEMORY FOR SPRITES
  2525.         LD      A,(SM1)
  2526.         ;OUT    (C),A
  2527.         call setpg
  2528.         LD      A,(MMM)
  2529.         CP      8
  2530.         RET     C
  2531.         CP      72
  2532.         RET     NC
  2533.         LD      A,(MMM)
  2534.         CP      40
  2535.         CALL    Z,FXN
  2536.         LD      HL,(WERH) ;0xc001???
  2537.         DEC     HL
  2538.         LD      A,%10001000
  2539.         LD      (HL),A
  2540.         LD      DE,(WERH)
  2541.         LD      BC,511
  2542.         LDIR
  2543.          endif
  2544.         RET
  2545. FX2
  2546.          if 1==0 ;???
  2547.         ;LD     BC,PAGE3; CHANGE MEMORY FOR SPRITES
  2548.         LD      A,(SM2)
  2549.         ;OUT    (C),A
  2550.         call setpg
  2551.         LD      A,(MMM2)
  2552.         CP      68
  2553.         RET     NC
  2554.         CP      64
  2555.          push af ;??? fix
  2556.         CALL    Z,FXN2
  2557.          pop af ;??? fix
  2558.         CP      32
  2559.         CALL    Z,FXN2
  2560.         LD      HL,(WERH2) ;0xc001???
  2561.         DEC     HL
  2562.         LD      A,%10001000
  2563.         LD      (HL),A
  2564.         LD      DE,(WERH2)
  2565.         LD      BC,511
  2566.         LDIR
  2567.          endif
  2568.         RET
  2569.  
  2570. WAR
  2571. ;5 bytes element:
  2572. ;+0: 1 or 0
  2573. ;+1(2b): Y
  2574. ;+3(2b): X
  2575.         DEFB    1
  2576.         DEFW    0
  2577.         DEFW    256+24
  2578.         DEFB    1
  2579.         DEFW    0
  2580.         DEFW    256+32
  2581.         DEFB    1
  2582.         DEFW    8
  2583.         DEFW    256+24
  2584.         DEFB    1
  2585.         DEFW    8
  2586.         DEFW    256+32
  2587.         DEFB    1
  2588.         DEFW    16
  2589.         DEFW    256+24
  2590.         DEFB    1
  2591.         DEFW    16
  2592.         DEFW    256+32
  2593.         DEFB    1
  2594.         DEFW    24
  2595.         DEFW    256+24
  2596.         DEFB    1
  2597.         DEFW    24
  2598.         DEFW    256+32
  2599.         DEFB    1
  2600.         DEFW    32
  2601.         DEFW    256+24
  2602.         DEFB    1
  2603.         DEFW    32
  2604.         DEFW    256+32
  2605.         DEFB    1
  2606.         DEFW    40
  2607.         DEFW    256+24
  2608.         DEFB    1
  2609.         DEFW    40
  2610.         DEFW    256+32
  2611.         DEFB    1
  2612.         DEFW    48
  2613.         DEFW    256+24
  2614.         DEFB    1
  2615.         DEFW    48
  2616.         DEFW    256+32
  2617.         DEFB    1
  2618.         DEFW    56
  2619.         DEFW    256+24
  2620.         DEFB    1
  2621.         DEFW    56
  2622.         DEFW    256+32
  2623.         DEFB    1
  2624.         DEFW    64
  2625.         DEFW    256+24
  2626.         DEFB    1
  2627.         DEFW    64
  2628.         DEFW    256+32
  2629.         DEFB    1
  2630.         DEFW    72
  2631.         DEFW    256+24
  2632.         DEFB    1
  2633.         DEFW    72
  2634.         DEFW    256+32
  2635.         DEFB    0
  2636. TEXT1   DEFM    "                "
  2637.         DEFB    254
  2638. TEXT1A  DEFM    "  EXIT MENU    "
  2639.         DEFB    254
  2640.         DEFM    "  START GAME   "
  2641.         DEFB    254
  2642.         DEFM    "                "
  2643.         DEFB    255
  2644. TEXT3   DEFM    "     @2020 NAMCO LTD     "
  2645.         DEFB    254
  2646.         DEFM    "SPECIAL EDITION FOR ZXEVO"
  2647.         DEFB    254
  2648.         DEFM    "   ALL RIGHTS RESERVED   "
  2649.         DEFB    255
  2650. TEXT4   DEFM    "I-00000 HI-00000 II-00000"
  2651.         DEFB    255
  2652. TEXT2   DEFB    62
  2653.         DEFB    255
  2654. TEXT5   DEFB    40
  2655.         DEFB    255
  2656. TEXT6   DEFB    130 ;'1' INVERTED DIGIT
  2657.         DEFM    "p"
  2658.         DEFB    254 ;nextline
  2659.         DEFM    ")" ;little brown tank
  2660. UP1     DEFB    128 ;129 '0' ;132 '3'
  2661.         DEFB    255
  2662. TEXT7   DEFB    131 ;'2' INVERTED DIGIT
  2663.         DEFM    "p"
  2664.         DEFB    254 ;nextline
  2665.         DEFM    ")" ;little brown tank
  2666. UP2     DEFB    128 ;129 '0' ;132 '3'
  2667.         DEFB    255
  2668. LEVEL   DEFB    129 ;'0' INVERTED DIGIT
  2669.         DEFB    129 ;'0' INVERTED DIGIT
  2670.         DEFB    255
  2671. SAVEY   DEFW    0
  2672. SAVEX   DEFW    0
  2673. TEXTW   DEFW    0
  2674. PAGEFR  DEFB    0
  2675. PAGETO  DEFB    0
  2676. SIZEBC  DEFW    0
  2677. CLSDATA DEFB    0
  2678.         display "MAP=",$
  2679. MAP     DEFB    0
  2680.  
  2681. ;Keyboard Control table
  2682.         ;1st player
  2683. Keys1PlStart    DEFB    %00000001       ;Start - Space
  2684.                 DEFB    #7F
  2685. Keys1PlDn       DEFB    %00010000       ;Down - 6 (Arror Dn)
  2686.                 DEFB    #EF
  2687. Keys1PlUp       DEFB    %00001000       ;Up - 7 (Arrow Up)
  2688.                 DEFB    #EF
  2689. Keys1PlRt       DEFB    %00000100       ;Right - 8 (Arrow Rt)
  2690.                 DEFB    #EF
  2691. Keys1PlLt       DEFB    %00010000       ;Left - 5 (Arrow Lt)
  2692.                 DEFB    #F7
  2693. Keys1PlFr       DEFB    %00000010       ;Fire - Z
  2694.                 DEFB    #FE
  2695. Keys1PlFr2      DEFB    %00000100       ;Fire2 - X
  2696.                 DEFB    #FE
  2697.         ;2nd player
  2698. Keys2PlDn       DEFB    %00000010       ;Down - S
  2699.                 DEFB    #FD
  2700. Keys2PlUp       DEFB    %00000010       ;Up - W
  2701.                 DEFB    #FB
  2702. Keys2PlRt       DEFB    %00000100       ;Right - D
  2703.                 DEFB    #FD
  2704. Keys2PlLt       DEFB    %00000001       ;Left - A
  2705.                 DEFB    #FD
  2706. Keys2PlFr       DEFB    %00001000       ;Fire - R
  2707.                 DEFB    #FB
  2708.  
  2709. NOTILL  DEFB    0
  2710. TEST    DEFW    0
  2711. XYFLY   DEFB    10,112; COORD SPRITES ON SCREEN
  2712. SPBUFY  DEFW    0
  2713. SPBUFX  DEFW    0
  2714. WARTAN  DEFB    20 ;how many enemies remained? т урЁрцх?
  2715.  
  2716.