?login_element?

Subversion Repositories NedoOS

Rev

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

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