Subversion Repositories pentevo

Rev

Rev 635 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ;LAST UPDATE: 03.02.2014 savelij
  3.  
  4. ;        MAIN   "*",#C6
  5. WB              EQU %01000111
  6. WW              EQU %11111111
  7. BB              EQU %00000000
  8. BW              EQU %10111000
  9.                 DUPL LOW (-$),0;        DS      .(-$)
  10. HINTLEFT
  11. ;1,3,0,2
  12.       ;1
  13.         DB      BB
  14.         DB      BB
  15.         DB      BB
  16.         DB      BB
  17.         DB      BW
  18.         DB      WW
  19.         DB      WW
  20.         DB      WW
  21.         DB      WW
  22.         DB      WW
  23.         DB      WW
  24.         DB      BW
  25.         DB      BB
  26.         DB      BB
  27.         DB      BB
  28.         DB      BB
  29.       ;3
  30.         DB      BW
  31.         DB      WW
  32.         DB      WW
  33.         DB      WW
  34.         DB      WW
  35.         DB      WW
  36.         DB      WW
  37.         DB      WW
  38.         DB      WW
  39.         DB      WW
  40.         DB      WW
  41.         DB      WW
  42.         DB      WW
  43.         DB      WW
  44.         DB      WW
  45.         DB      BW
  46.       ;0
  47.         DB      BB
  48.         DB      BB
  49.         DB      BB
  50.         DB      BB
  51.         DB      BB
  52.         DB      BB
  53.         DB      BW
  54.         DB      WW
  55.         DB      WW
  56.         DB      BW
  57.         DB      BB
  58.         DB      BB
  59.         DB      BB
  60.         DB      BB
  61.         DB      BB
  62.         DB      BB
  63.       ;2
  64.         DB      BB
  65.         DB      BB
  66.         DB      BW
  67.         DB      WW
  68.         DB      WW
  69.         DB      WW
  70.         DB      WW
  71.         DB      WW
  72.         DB      WW
  73.         DB      WW
  74.         DB      WW
  75.         DB      WW
  76.         DB      WW
  77.         DB      BW
  78.         DB      BB
  79.         DB      BB
  80. HINTRIGHT
  81. ;1,3,0,2
  82.       ;2
  83.         DB      BB
  84.         DB      BB
  85.         DB      WB
  86.         DB      WW
  87.         DB      WW
  88.         DB      WW
  89.         DB      WW
  90.         DB      WW
  91.         DB      WW
  92.         DB      WW
  93.         DB      WW
  94.         DB      WW
  95.         DB      WW
  96.         DB      WB
  97.         DB      BB
  98.         DB      BB
  99.       ;0
  100.         DB      BB
  101.         DB      BB
  102.         DB      BB
  103.         DB      BB
  104.         DB      BB
  105.         DB      BB
  106.         DB      WB
  107.         DB      WW
  108.         DB      WW
  109.         DB      WB
  110.         DB      BB
  111.         DB      BB
  112.         DB      BB
  113.         DB      BB
  114.         DB      BB
  115.         DB      BB
  116.       ;3
  117.         DB      WB
  118.         DB      WW
  119.         DB      WW
  120.         DB      WW
  121.         DB      WW
  122.         DB      WW
  123.         DB      WW
  124.         DB      WW
  125.         DB      WW
  126.         DB      WW
  127.         DB      WW
  128.         DB      WW
  129.         DB      WW
  130.         DB      WW
  131.         DB      WW
  132.         DB      WB
  133.       ;1
  134.         DB      BB
  135.         DB      BB
  136.         DB      BB
  137.         DB      BB
  138.         DB      WB
  139.         DB      WW
  140.         DB      WW
  141.         DB      WW
  142.         DB      WW
  143.         DB      WW
  144.         DB      WW
  145.         DB      WB
  146.         DB      BB
  147.         DB      BB
  148.         DB      BB
  149.         DB      BB
  150. HINTDOWN
  151. ;1,3,0,2
  152.       ;1
  153.         DB      WW
  154.         DB      WW
  155.         DB      WW
  156.         DB      BW
  157.         DB      BB
  158.         DB      BB
  159.         DB      BB
  160.         DB      BB
  161.       ;3
  162.         DB      WW
  163.         DB      WW
  164.         DB      WW
  165.         DB      WW
  166.         DB      WW
  167.         DB      WW
  168.         DB      WW
  169.         DB      BW
  170.       ;0
  171.         DB      WW
  172.         DB      BW
  173.         DB      BB
  174.         DB      BB
  175.         DB      BB
  176.         DB      BB
  177.         DB      BB
  178.         DB      BB
  179.       ;2
  180.         DB      WW
  181.         DB      WW
  182.         DB      WW
  183.         DB      WW
  184.         DB      WW
  185.         DB      BW
  186.         DB      BB
  187.         DB      BB
  188. ;1,3,0,2 rgt
  189.       ;1
  190.         DB      WW
  191.         DB      WW
  192.         DB      WW
  193.         DB      WW
  194.         DB      WW
  195.         DB      WB
  196.         DB      BB
  197.         DB      BB
  198.       ;3
  199.         DB      WW
  200.         DB      WB
  201.         DB      BB
  202.         DB      BB
  203.         DB      BB
  204.         DB      BB
  205.         DB      BB
  206.         DB      BB
  207.       ;0
  208.         DB      WW
  209.         DB      WW
  210.         DB      WW
  211.         DB      WW
  212.         DB      WW
  213.         DB      WW
  214.         DB      WW
  215.         DB      WB
  216.       ;2
  217.         DB      WW
  218.         DB      WW
  219.         DB      WW
  220.         DB      WB
  221.         DB      BB
  222.         DB      BB
  223.         DB      BB
  224.         DB      BB
  225. HINTUP
  226. ;1,3,0,2
  227.       ;1
  228.         DB      BB
  229.         DB      BB
  230.         DB      BB
  231.         DB      BB
  232.         DB      BW
  233.         DB      WW
  234.         DB      WW
  235.         DB      WW
  236.       ;3
  237.         DB      BW
  238.         DB      WW
  239.         DB      WW
  240.         DB      WW
  241.         DB      WW
  242.         DB      WW
  243.         DB      WW
  244.         DB      WW
  245.       ;0
  246.         DB      BB
  247.         DB      BB
  248.         DB      BB
  249.         DB      BB
  250.         DB      BB
  251.         DB      BB
  252.         DB      BW
  253.         DB      WW
  254.       ;2
  255.         DB      BB
  256.         DB      BB
  257.         DB      BW
  258.         DB      WW
  259.         DB      WW
  260.         DB      WW
  261.         DB      WW
  262.         DB      WW
  263. ;1,3,0,2 rgt
  264.       ;1
  265.         DB      BB
  266.         DB      BB
  267.         DB      WB
  268.         DB      WW
  269.         DB      WW
  270.         DB      WW
  271.         DB      WW
  272.         DB      WW
  273.       ;3
  274.         DB      BB
  275.         DB      BB
  276.         DB      BB
  277.         DB      BB
  278.         DB      BB
  279.         DB      BB
  280.         DB      WB
  281.         DB      WW
  282.       ;0
  283.         DB      WB
  284.         DB      WW
  285.         DB      WW
  286.         DB      WW
  287.         DB      WW
  288.         DB      WW
  289.         DB      WW
  290.         DB      WW
  291.       ;2
  292.         DB      BB
  293.         DB      BB
  294.         DB      BB
  295.         DB      BB
  296.         DB      WB
  297.         DB      WW
  298.         DB      WW
  299.         DB      WW
  300. HINTFIRE
  301. ;1,3,0,2
  302.       ;1
  303.         DB      00
  304.         DB      WW
  305.         DB      WW
  306.         DB      WW
  307.         DB      WW
  308.         DB      WW
  309.         DB      WW
  310.         DB      BB
  311.       ;3
  312.         DB      WW
  313.         DB      WW
  314.         DB      WW
  315.         DB      WW
  316.         DB      WW
  317.         DB      WW
  318.         DB      WW
  319.         DB      WW
  320.       ;0
  321.         DB      BB
  322.         DB      BB
  323.         DB      BW
  324.         DB      WW
  325.         DB      WW
  326.         DB      BW
  327.         DB      BB
  328.         DB      BB
  329.       ;2
  330.         DB      BW
  331.         DB      WW
  332.         DB      WW
  333.         DB      WW
  334.         DB      WW
  335.         DB      WW
  336.         DB      WW
  337.         DB      BW
  338. ;1,3,0,2 rgt
  339.       ;1
  340.         DB      WB
  341.         DB      WW
  342.         DB      WW
  343.         DB      WW
  344.         DB      WW
  345.         DB      WW
  346.         DB      WW
  347.         DB      WB
  348.       ;3
  349.         DB      BB
  350.         DB      BB
  351.         DB      WB
  352.         DB      WW
  353.         DB      WW
  354.         DB      WB
  355.         DB      BB
  356.         DB      BB
  357.       ;0
  358.         DB      WW
  359.         DB      WW
  360.         DB      WW
  361.         DB      WW
  362.         DB      WW
  363.         DB      WW
  364.         DB      WW
  365.         DB      WW
  366.       ;2
  367.         DB      BB
  368.         DB      WW
  369.         DB      WW
  370.         DB      WW
  371.         DB      WW
  372.         DB      WW
  373.         DB      WW
  374.         DB      BB
  375. HINTOFF
  376.                 DUPL 64,0;        DS    64
  377.  
  378. ASKBIBIK
  379.         LD      E,10 ;время
  380.         LD      HL,200
  381.         JR      BIBIK
  382. GOODBIBIK
  383.         LD      E,7 ;время
  384.         LD      HL,50
  385.         JR      BIBIK
  386. NZBADBIBIK
  387.         RET     Z ;Z=отпустили кнопку, NZ=нажали
  388. BADBIBIK
  389.         LD      E,15 ;время
  390.         LD      HL,800
  391. BIBIK
  392. ;E=время (период огибающей)
  393. ;HL=период тона
  394.         LD      D,0XC
  395.         CALL    OUTAY
  396.         LD      D,2
  397.         LD      E,L
  398.         CALL    OUTAY
  399.         INC     D
  400.         LD      E,H
  401.         CALL    OUTAY
  402. ;тип огибающей 1, запуск огибающей
  403.         LD      DE,0XD01
  404. OUTAY
  405.         LD      BC,-3
  406.         OUT     (C),D
  407.         LD      B,0XBF
  408.         OUT     (C),E
  409.         RET    
  410.  
  411. DEPKS16
  412. ;HX=атрибут пустых частей экрана (для ATM)
  413.        PUSH     IX
  414.         LD      DE,addr
  415.         PUSH    BC
  416.         PUSH DE
  417.         LDIR   
  418.         POP     DE
  419.         POP BC
  420.         XOR     A
  421.         LD      L,A
  422.         LD H,L
  423.         SBC     HL,BC
  424.         EX DE,HL       
  425.         LD      A,p14
  426.         CALL    OUTA
  427.         PUSH    DE
  428.         LDIR   
  429.         POP     IX
  430.         LD      DE,addr
  431.         LD      HL,0X6000
  432.         CALL    UNILDRAR ;распаковываем IX->DE (длина=HL)
  433.       ;LD A,6
  434.       ;OUT (-2),A
  435.  
  436.        POP      IX
  437.         LD      HL,addr+192
  438. _y := 0
  439. _x := 0
  440.         xy2adr
  441.         LD      DE,_a-0X8000
  442.         LD      BC,3*192
  443.         CALL    DEPKST
  444.         LD      HL,addr+(3*192)
  445. _y := 0
  446. _x := 0
  447.         xy2adr
  448.         LD      DE,_a-0X6000
  449.         CALL    DEPKST
  450. ;убиваем уже распакованные столбцы
  451.         LD      B,64
  452.         CALL    DEPKILL
  453. ;сейчас данные ниже 0XE000
  454.         LD      HL,addr+192
  455. _y := 0
  456. _x := 0
  457.         xy2adr
  458.         LD      DE,_a+0X2000
  459.         LD      C,192 ;B=0
  460.         CALL    DEPKST
  461. ;убиваем распакованный столбец
  462.         LD      B,32
  463.         CALL    DEPKILL
  464. ;сейчас данные ниже 0XE000
  465.         LD      HL,addr
  466. _y := 0
  467. _x := 0
  468.         xy2adr
  469.         LD      DE,_a
  470.         LD      C,B ;=0
  471. DEPKST
  472.                 IF atm=1;       IFN     atm
  473.         PUSH    BC
  474.         PUSH DE
  475.                 REPT 4
  476.         DEC     E
  477.                 ENDM
  478.         LD      IXL,4
  479.         CALL    BLNKST0
  480.         SET     5,E
  481.         LD      IXL,4
  482.         CALL    BLNKST0
  483.         POP     DE
  484.         POP BC
  485.        ENDIF   
  486.         LD      IXL,32
  487. DEPKST0 PUSH    DE
  488.         PUSH    BC
  489.         LD      B,192
  490. DEPKST1 LD      A,(HL)
  491.                 LD (DE),A
  492.         INC     HL
  493.         CALL    DDE
  494.         DJNZ    DEPKST1
  495.                 IF atm=1;       IFN     atm
  496.         LD      B,8
  497. DEPKST2 LD      A,IXH
  498.         LD      (DE),A
  499.         CALL    DDE
  500.         DJNZ    DEPKST2
  501.        ENDIF   
  502.         POP     BC
  503.         ADD     HL,BC
  504.         POP     DE
  505.         INC     E
  506.         DEC     IXL
  507.         JR NZ,DEPKST0
  508.         RET    
  509.                 IF atm=1;       IFN     atm
  510. BLNKST0 PUSH    DE
  511.         LD      B,200
  512. BLNKST1 LD      A,IXH
  513.         LD      (DE),A
  514.         CALL    DDE
  515.         DJNZ    BLNKST1
  516.         POP     DE
  517.         INC     E
  518.         DEC     IXL
  519.         JR NZ,BLNKST0
  520.         RET    
  521.        ENDIF   
  522.  
  523. DEPKILL
  524.         LD      HL,addr-192
  525.         LD      DE,addr
  526. DEPKIL0 PUSH    BC
  527.         LD      BC,192
  528.         ADD     HL,BC
  529.         LDIR   
  530.         POP     BC
  531.         DJNZ    DEPKIL0
  532.         RET    
  533. DDE
  534.                 IF atm=1;       IFN     atm
  535.         PUSH    HL
  536.         LD      HL,40
  537.         ADD     HL,DE
  538.         EX DE,HL       
  539.         POP     HL
  540.         RET    
  541.        ELSE    
  542.         INC     D
  543.         LD      A,D
  544.         AND     7
  545.         RET     NZ
  546.         LD      A,E
  547.         ADD     A,32
  548.         LD      E,A
  549.         RET     C
  550.         LD      A,D
  551.         SUB     8
  552.         LD      D,A
  553.         RET    
  554.        ENDIF   
  555. UDE
  556.                 IF atm=1;       IFN     atm
  557.         PUSH    HL
  558.         LD      HL,-40
  559.         ADD     HL,DE
  560.         EX DE,HL       
  561.         POP     HL
  562.         RET    
  563.        ELSE    
  564.         LD      A,D
  565.         DEC     D
  566.         AND     7
  567.         RET     NZ
  568.         LD      A,E
  569.         SUB     32
  570.         LD      E,A
  571.         RET     C
  572.         LD      A,D
  573.         ADD     A,8
  574.         LD      D,A
  575.         RET    
  576.        ENDIF   
  577.  
  578.