Subversion Repositories NedoOS

Rev

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

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