Subversion Repositories Kolibri OS

Rev

Rev 7650 | Rev 8814 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;   à®á⮩ ¯à¨¬¥à ¯à®£à ¬¬ë ¤«ï KolibriOS
  2. ;   ®§¢ã稢 ¥â ª®¤ ­ ¦ â®© ª« ¢¨è¨
  3. ;
  4. ;---------------------------------------------------------------------
  5.  
  6.   use32
  7.   org    0
  8.  
  9.   db     'MENUET01'
  10.   dd     1
  11.   dd     START
  12.   dd     I_END
  13.   dd     MEM
  14.   dd     STACKTOP
  15.   dd     0
  16.   dd     0
  17.  
  18. include "lang.inc"
  19. include "../../macros.inc"
  20.  
  21.  
  22. START:
  23.  
  24. red:                    ; ¯¥à¥à¨á®¢ âì ®ª­®
  25.  
  26.     call draw_window    ; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
  27.  
  28. ;---------------------------------------------------------------------
  29. ;---  –ˆŠ‹ Ž€Ž’Šˆ ‘Ž›’ˆ‰  ----------------------------------------
  30. ;---------------------------------------------------------------------
  31.  
  32. still:
  33.     ;mcall 10            ; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
  34.     mov eax, 10
  35.     int 0x40
  36.  
  37.     cmp  eax,2          ; ­ ¦ â  ª« ¢¨è  ?
  38.     je   key            ; ¥á«¨ ¤  - ­  key
  39.     cmp  eax,3          ; ­ ¦ â  ª­®¯ª  ?
  40.     je   button         ; ¥á«¨ ¤  - ­  button
  41.     cmp  eax,1          ; ¯¥à¥à¨á®¢ âì ®ª­® ?
  42.     je   red            ; ¥á«¨ ¤  - ­  ¬¥âªã red
  43.  
  44.     jmp  still          ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ­ ç «® 横« 
  45.  
  46.  
  47.  
  48. ;---------------------------------------------------------------------
  49.  
  50.  
  51.   key:                  ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
  52.     mcall 2             ; äã­ªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®«  (¢ ah)
  53.  
  54.  
  55.         cmp   ah, 0x41        ; A - if Caps Lock ON
  56.         jnz   @f
  57.         jmp   _07
  58.     @@:
  59.         cmp   ah, 0x5a        ; Z
  60.         jnz   @f
  61.         jmp   _08
  62.     @@:
  63.         cmp   ah, 0x53        ; S
  64.         jnz   @f
  65.         jmp   _09
  66.     @@:
  67.         cmp   ah, 0x58        ; X
  68.         jnz   @f
  69.         jmp   _0a
  70.     @@:
  71.         cmp   ah, 0x44        ; D
  72.         jnz   @f
  73.         jmp   _0b
  74.     @@:
  75.         cmp   ah, 0x43        ; C
  76.         jnz   @f
  77.         jmp   _0c
  78.     @@:
  79.         cmp   ah, 0x56        ; V
  80.         jnz   @f
  81.    _01:
  82.         mov   ah, 0x01
  83.         jmp   p
  84.     @@:
  85.         cmp   ah, 0x47        ; G
  86.         jnz   @f
  87.    _02:
  88.         mov   ah, 0x02
  89.         jmp   p
  90.     @@:
  91.         cmp   ah, 0x42        ; B
  92.         jnz   @f
  93.    _03:
  94.         mov   ah, 0x03
  95.         jmp   p
  96.     @@:
  97.         cmp   ah, 0x48        ; H
  98.         jnz   @f
  99.    _04:
  100.         mov   ah, 0x04
  101.         jmp   p
  102.     @@:
  103.         cmp   ah, 0x4e        ; N
  104.         jnz   @f
  105.    _05:
  106.         mov   ah, 0x05
  107.         jmp   p
  108.     @@:
  109.         cmp   ah, 0x4d        ; M
  110.         jnz   @f
  111.    _06:
  112.         mov   ah, 0x06
  113.         jmp   p
  114.     @@:
  115.         cmp   ah, 0x4b        ; K
  116.         jnz   @f
  117.    _07:
  118.         mov   ah, 0x07
  119.         jmp   p
  120.     @@:
  121.         cmp   ah, 0x3c        ; <
  122.         jnz   @f
  123.    _08:
  124.         mov   ah, 0x08
  125.         jmp   p
  126.     @@:
  127.         cmp   ah, 0x4c        ; L
  128.         jnz   @f
  129.    _09:
  130.         mov   ah, 0x09
  131.         jmp   p
  132.     @@:
  133.         cmp   ah, 0x3e        ; >
  134.         jnz   @f
  135.    _0a:
  136.         mov   ah, 0x0a
  137.         jmp   p
  138.     @@:
  139.         cmp   ah, 0x3a        ; :
  140.         jnz   @f
  141.    _0b:
  142.         mov   ah, 0x0b
  143.         jmp   p
  144.     @@:
  145.         cmp   ah, 0x3f        ; ?
  146.         jnz   @f
  147.    _0c:
  148.         mov   ah, 0x0c
  149.         jmp   p
  150.     @@:
  151.         cmp   ah, 0x22        ; "
  152.         jnz   @f
  153.         jmp   _11
  154.     @@:
  155.         cmp   ah, 0x21        ; key !-------
  156.         jnz   @f
  157.         jmp   _0c
  158.     @@:
  159.         cmp   ah, 0x51        ; key Q
  160.         jnz   @f
  161.    _11:
  162.         mov   ah, 0x11
  163.         jmp   p
  164.     @@:
  165.         cmp   ah, 0x40        ; key @
  166.         jnz   @f
  167.    _12:
  168.         mov   ah, 0x12
  169.         jmp   p
  170.     @@:
  171.         cmp   ah, 0x57        ; key W
  172.         jnz   @f
  173.    _13:
  174.         mov   ah, 0x13
  175.         jmp   p
  176.     @@:
  177.         cmp   ah, 0x23        ; key #
  178.         jnz   @f
  179.    _14:
  180.         mov   ah, 0x14
  181.         jmp   p
  182.     @@:
  183.         cmp   ah, 0x45        ; key E
  184.         jnz   @f
  185.    _15:
  186.         mov   ah, 0x15
  187.         jmp   p
  188.     @@:
  189.         cmp   ah, 0x52        ; key R
  190.         jnz   @f
  191.    _16:
  192.         mov   ah, 0x16
  193.         jmp   p
  194.     @@:
  195.         cmp   ah, 0x25        ; key %
  196.         jnz   @f
  197.         jmp   _17
  198.     @@:
  199.         cmp   ah, 0x54        ; key T
  200.         jnz   @f
  201.         jmp   _18
  202.     @@:
  203.         cmp   ah, 0x5e        ; key ^
  204.         jnz   @f
  205.         jmp   _19
  206.     @@:
  207.         cmp   ah, 0x59        ; key Y
  208.         jnz   @f
  209.         jmp   _1a
  210.     @@:
  211.         cmp   ah, 0x26        ; key &
  212.         jnz   @f
  213.         jmp   _1b
  214.     @@:
  215.         cmp   ah, 0x55        ; key U
  216.         jnz   @f
  217.         jmp   _1c
  218.     @@:
  219.         cmp   ah, 0x49        ; key I
  220.         jnz   @f
  221.         jmp   _21
  222.     @@:
  223.         cmp   ah, 0x28        ; key (
  224.         jnz   @f
  225.         jmp   _22
  226.     @@:
  227.         cmp   ah, 0x4f        ; key O
  228.         jnz   @f
  229.         jmp   _23
  230.     @@:
  231.         cmp   ah, 0x29        ; key )
  232.         jnz   @f
  233.         jmp   _24
  234.     @@:
  235.         cmp   ah, 0x50        ; key P
  236.         jnz   @f
  237.         jmp   _25
  238.     @@:
  239.         cmp   ah, 0x7b        ; key {
  240.         jnz   @f
  241.         jmp   _26
  242.     @@:
  243.         cmp   ah, 0x2b        ; key +
  244.         jnz   @f
  245.         jmp   _27
  246.     @@:
  247.         cmp   ah, 0x7d        ; key }
  248.         jnz   @f
  249.         jmp   _28
  250.     @@:
  251.         cmp   ah, 0x7c        ; key |
  252.         jnz   @f
  253.         jmp   _29
  254.     @@:
  255.         cmp   ah, 0x61        ; a - if Caps Lock OFF
  256.         jnz   @f
  257.    _17:
  258.         mov   ah, 0x17
  259.         jmp   p
  260.     @@:
  261.         cmp   ah, 0x7a        ; z
  262.         jnz   @f
  263.    _18:
  264.         mov   ah, 0x18
  265.         jmp   p
  266.     @@:
  267.         cmp   ah, 0x73        ; s
  268.         jnz   @f
  269.    _19:
  270.         mov   ah, 0x19
  271.         jmp   p
  272.     @@:
  273.         cmp   ah, 0x78        ; x
  274.         jnz   @f
  275.    _1a:
  276.         mov   ah, 0x1a
  277.         jmp   p
  278.     @@:
  279.         cmp   ah, 0x64        ; d
  280.         jnz   @f
  281.    _1b:
  282.         mov   ah, 0x1b
  283.         jmp   p
  284.     @@:
  285.         cmp   ah, 0x63        ; c
  286.         jnz   @f
  287.    _1c:
  288.         mov   ah, 0x1c
  289.         jmp   p
  290.     @@:
  291.         cmp   ah, 0x76        ; v
  292.         jnz   @f
  293.    _21:
  294.         mov   ah, 0x21
  295.         jmp   p
  296.     @@:
  297.         cmp   ah, 0x67        ; g
  298.         jnz   @f
  299.    _22:
  300.         mov   ah, 0x22
  301.         jmp   p
  302.     @@:
  303.         cmp   ah, 0x62        ; b
  304.         jnz   @f
  305.    _23:
  306.         mov   ah, 0x23
  307.         jmp   p
  308.     @@:
  309.         cmp   ah, 0x68        ; h
  310.         jnz   @f
  311.    _24:
  312.         mov   ah, 0x24
  313.         jmp   p
  314.     @@:
  315.         cmp   ah, 0x6e        ; n
  316.         jnz   @f
  317.    _25:
  318.         mov   ah, 0x25
  319.         jmp   p
  320.     @@:
  321.         cmp   ah, 0x6d        ; m
  322.         jnz   @f
  323.    _26:
  324.         mov   ah, 0x26
  325.         jmp   p
  326.     @@:
  327.         cmp   ah, 0x6b        ; k
  328.         jnz   @f
  329.    _27:
  330.         mov   ah, 0x27
  331.         jmp   p
  332.     @@:
  333.         cmp   ah, 0x2c        ; ,
  334.         jnz   @f
  335.    _28:
  336.         mov   ah, 0x28
  337.         jmp   p
  338.     @@:
  339.         cmp   ah, 0x6c        ; l
  340.         jnz   @f
  341.    _29:
  342.         mov   ah, 0x29
  343.         jmp   p
  344.     @@:
  345.         cmp   ah, 0x2e        ; .
  346.         jnz   @f
  347.    _2a:
  348.         mov   ah, 0x2a
  349.         jmp   p
  350.     @@:
  351.         cmp   ah, 0x3b        ; ;
  352.         jnz   @f
  353.    _2b:
  354.         mov   ah, 0x2b
  355.         jmp   p
  356.     @@:
  357.         cmp   ah, 0x2f        ; /
  358.         jnz   @f
  359.    _2c:
  360.         mov   ah, 0x2c
  361.         jmp   p
  362.     @@:
  363.         cmp   ah, 0x27        ; '
  364.         jnz   @f
  365.   _31:
  366.         mov   ah, 0x31
  367.         jmp   p
  368.     @@:
  369.         cmp   ah, 0x60        ; key `
  370.         jnz   @f
  371.         jmp   _2c
  372.     @@:
  373.         cmp   ah, 0x09        ; key tab
  374.         jnz   @f
  375.         jmp   _31
  376.     @@:
  377.         cmp   ah, 0x31        ; key 1
  378.         jnz   @f
  379.   _32:
  380.         mov   ah, 0x32
  381.         jmp   p
  382.     @@:
  383.         cmp   ah, 0x71        ; key q
  384.         jnz   @f
  385.   _33:
  386.         mov   ah, 0x33
  387.         jmp   p
  388.     @@:
  389.         cmp   ah, 0x32        ; key 2
  390.         jnz   @f
  391.   _34:
  392.         mov   ah, 0x34
  393.         jmp   p
  394.     @@:
  395.         cmp   ah, 0x77        ; key w
  396.         jnz   @f
  397.   _35:
  398.         mov   ah, 0x35
  399.         jmp   p
  400.     @@:
  401.         cmp   ah, 0x65        ; key e
  402.         jnz   @f
  403.   _36:
  404.         mov   ah, 0x36
  405.         jmp   p
  406.     @@:
  407.         cmp   ah, 0x34        ; key 4
  408.         jnz   @f
  409.   _37:
  410.         mov   ah, 0x37
  411.         jmp   p
  412.     @@:
  413.         cmp   ah, 0x72        ; key r
  414.         jnz   @f
  415.   _38:
  416.         mov   ah, 0x38
  417.         jmp   p
  418.     @@:
  419.         cmp   ah, 0x35        ; key 5
  420.         jnz   @f
  421.   _39:
  422.         mov   ah, 0x39
  423.         jmp   p
  424.     @@:
  425.         cmp   ah, 0x74        ; key t
  426.         jnz   @f
  427.   _3a:
  428.         mov   ah, 0x3a
  429.         jmp   p
  430.     @@:
  431.         cmp   ah, 0x36        ; key 6
  432.         jnz   @f
  433.   _3b:
  434.         mov   ah, 0x3b
  435.         jmp   p
  436.     @@:
  437.         cmp   ah, 0x79        ; key y
  438.         jnz   @f
  439.   _3c:
  440.         mov   ah, 0x3c
  441.         jmp   p
  442.     @@:
  443.         cmp   ah, 0x75        ; key u
  444.         jnz   @f
  445.   _41:
  446.         mov   ah, 0x41
  447.         jmp   p
  448.     @@:
  449.         cmp   ah, 0x38        ; key 8
  450.         jnz   @f
  451.         mov   ah, 0x42
  452.         jmp   p
  453.     @@:
  454.         cmp   ah, 0x69        ; key i
  455.         jnz   @f
  456.         mov   ah, 0x43
  457.         jmp   p
  458.     @@:
  459.         cmp   ah, 0x39        ; key 9
  460.         jnz   @f
  461.         mov   ah, 0x44
  462.         jmp   p
  463.     @@:
  464.         cmp   ah, 0x6f        ; key o
  465.         jnz   @f
  466.         mov   ah, 0x45
  467.         jmp   p
  468.     @@:
  469.         cmp   ah, 0x70        ; key p
  470.         jnz   @f
  471.         mov   ah, 0x46
  472.         jmp   p
  473.     @@:
  474.         cmp   ah, 0x2d        ; key -
  475.         jnz   @f
  476.         mov   ah, 0x47
  477.         jmp   p
  478.     @@:
  479.         cmp   ah, 0x5b        ; key [
  480.         jnz   @f
  481.         mov   ah, 0x48
  482.         jmp   p
  483.     @@:
  484.         cmp   ah, 0x3d        ; key =
  485.         jnz   @f
  486.         mov   ah, 0x49
  487.         jmp   p
  488.     @@:
  489.         cmp   ah, 0x5d        ; key ]
  490.         jnz   @f
  491.         mov   ah, 0x4a
  492.         jmp   p
  493.     @@:
  494.         cmp   ah, 0x5c        ; key \
  495.         jnz   @f
  496.         mov   ah, 0x4b
  497.         jmp   p
  498.     @@:
  499.         cmp   ah, 0x08        ; key backspace
  500.         jnz   @f
  501.         mov   ah, 0x4c
  502.         jmp   p
  503.     @@:
  504.         cmp   ah, 0x0d        ; key enter
  505.         jnz   @f
  506.         mov   ah, 0x51
  507.         jmp   p
  508.     @@:
  509.         cmp   ah, 0x66        ; key f
  510.         jnz   @f
  511.         mov   ah, 0x01
  512.         jmp   p
  513.     @@:
  514.         cmp   ah, 0x6a        ; key j
  515.         jnz   @f
  516.         mov   ah, 0x05
  517.         jmp   p
  518.     @@:
  519.         cmp   ah, 0x33        ; key 3
  520.         jnz   @f
  521.         mov   ah, 0x08
  522.         jmp   p
  523.     @@:
  524.         cmp   ah, 0x37        ; key 7
  525.         jnz   @f
  526.         jmp   _11
  527.     @@:
  528.         cmp   ah, 0x30        ; key 0
  529.         jnz   @f
  530.         jmp   _15
  531.     @@:
  532.         cmp   ah, 0xb4        ; key home
  533.         jnz   @f
  534.         mov   ah, 0x10
  535.         jmp   p
  536.     @@:
  537.         cmp   ah, 0xb5        ; key end
  538.         jnz   @f
  539.    _70:
  540.         mov   ah, 0xfc
  541.         jmp   p
  542.     @@:
  543.         cmp   ah, 0xb8        ; key Page Up
  544.         jnz   @f
  545.         mov   ah, 0x20
  546.         jmp   p
  547.     @@:
  548.         cmp   ah, 0xb7        ; key Page Down
  549.         jnz   @f
  550.         jmp   _70
  551.     @@:
  552.         cmp   ah, 0xff        ; key F12
  553.         jnz   @f
  554.         mov   ah, 0x00
  555.         jmp   p
  556.     @@:
  557.         cmp   ah, 0xb6        ; key Del
  558.         jnz   @f
  559.         jmp   _70
  560.     @@:
  561.  
  562.   p:
  563.     mov  [M+1], ah  ; § ¯¨á âì ª®¤ ᨬ¢®«  ª ª ª®¤ ­®âë
  564.  
  565.     ; äã­ªæ¨ï 55-55: á¨á⥬­ë© ¤¨­ ¬¨ª ("PlayNote")
  566.     ;   esi -  ¤à¥á ¬¥«®¤¨¨
  567.  
  568.        mov  eax,55
  569.        mov  ebx,eax
  570.        mov  esi,M
  571.        int  0x40
  572.  
  573.     ; ¨«¨ ª®à®âª®:
  574.     ;mcall 55, , , , Music
  575.  
  576.     jmp  still          ; ¢¥à­ãâìáï ª ­ ç «ã 横« 
  577.  
  578.  
  579. ;---------------------------------------------------------------------
  580.  
  581.   button:
  582.     mcall 17            ; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
  583.  
  584.         cmp  ah, 0xa1       ; button 1
  585.         jnz  @f
  586.         jmp  _01
  587.     @@:
  588.         cmp  ah, 0x02       ; button 2
  589.         jnz  @f
  590.         jmp  _02
  591.     @@:
  592.         cmp  ah, 0x03       ; button 3
  593.         jnz  @f
  594.         jmp  _03
  595.     @@:
  596.         cmp  ah, 0x04
  597.         jnz  @f
  598.         jmp  _04
  599.     @@:
  600.         cmp  ah, 0x05
  601.         jnz  @f
  602.         jmp  _05
  603.     @@:
  604.         cmp  ah, 0x06
  605.         jnz  @f
  606.         jmp  _06
  607.     @@:
  608.         cmp  ah, 0x07
  609.         jnz  @f
  610.         jmp  _07
  611.     @@:
  612.         cmp  ah, 0x08       ; button 8
  613.         jnz  @f
  614.         jmp  _08
  615.     @@:
  616.         cmp  ah, 0x09
  617.         jnz  @f
  618.         jmp  _09
  619.     @@:
  620.         cmp  ah, 0x0a       ; button 10
  621.         jnz  @f
  622.         jmp  _0a
  623.     @@:
  624.         cmp  ah, 0x0b
  625.         jnz  @f
  626.         jmp  _0b
  627.     @@:
  628.         cmp  ah, 0x0c       ; button 12
  629.         jnz  @f
  630.         jmp  _0c
  631.     @@:
  632.  
  633.         cmp  ah, 0x11
  634.         jnz  @f
  635.         jmp  _11
  636.     @@:
  637.         cmp  ah, 0x12
  638.         jnz  @f
  639.         jmp  _12
  640.     @@:
  641.         cmp  ah, 0x13
  642.         jnz  @f
  643.         jmp  _13
  644.     @@:
  645.         cmp  ah, 0x14
  646.         jnz  @f
  647.         jmp  _14
  648.     @@:
  649.         cmp  ah, 0x15
  650.         jnz  @f
  651.         jmp  _15
  652.     @@:
  653.         cmp  ah, 0x16
  654.         jnz  @f
  655.         jmp  _16
  656.     @@:
  657.         cmp  ah, 0x17
  658.         jnz  @f
  659.         jmp  _17
  660.     @@:
  661.         cmp  ah, 0x18
  662.         jnz  @f
  663.         jmp  _18
  664.     @@:
  665.         cmp  ah, 0x19
  666.         jnz  @f
  667.         jmp  _19
  668.     @@:
  669.         cmp  ah, 0x1a
  670.         jnz  @f
  671.         jmp  _1a
  672.     @@:
  673.         cmp  ah, 0x1b
  674.         jnz  @f
  675.         jmp  _1b
  676.     @@:
  677.         cmp  ah, 0x1c
  678.         jnz  @f
  679.         jmp  _1c
  680.     @@:
  681.  
  682.         cmp  ah, 0x21       ; button 1
  683.         jnz  @f
  684.         jmp  _21
  685.     @@:
  686.         cmp  ah, 0x22
  687.         jnz  @f
  688.         jmp  _22
  689.     @@:
  690.         cmp  ah, 0x23       ; button 3
  691.         jnz  @f
  692.         jmp  _23
  693.     @@:
  694.         cmp  ah, 0x24
  695.         jnz  @f
  696.         jmp  _24
  697.     @@:
  698.         cmp  ah, 0x25       ; button 5
  699.         jnz  @f
  700.         jmp  _25
  701.     @@:
  702.         cmp  ah, 0x26
  703.         jnz  @f
  704.         jmp  _26
  705.     @@:
  706.         cmp  ah, 0x27       ; button 7
  707.         jnz  @f
  708.         jmp  _27
  709.     @@:
  710.         cmp  ah, 0x28
  711.         jnz  @f
  712.         jmp  _28
  713.     @@:
  714.         cmp  ah, 0x29       ; button 9
  715.         jnz  @f
  716.         jmp  _29
  717.     @@:
  718.         cmp  ah, 0x2a
  719.         jnz  @f
  720.         jmp  _2a
  721.     @@:
  722.         cmp  ah, 0x2b       ; button 11
  723.         jnz  @f
  724.         jmp  _2b
  725.     @@:
  726.         cmp  ah, 0x2c
  727.         jnz  @f
  728.         jmp  _2c
  729.     @@:
  730.         cmp  ah, 0x31
  731.         jnz  @f
  732.         jmp  _31
  733.  
  734.     @@:
  735.         cmp  ah, 0x32
  736.         jnz  @f
  737.         jmp  _32
  738.     @@:
  739.         cmp  ah, 0x33
  740.         jnz  @f
  741.         jmp  _33
  742.     @@:
  743.         cmp  ah, 0x34
  744.         jnz  @f
  745.         jmp  _34
  746.     @@:
  747.         cmp  ah, 0x35
  748.         jnz  @f
  749.         jmp  _35
  750.     @@:
  751.         cmp  ah, 0x36
  752.         jnz  @f
  753.         jmp  _36
  754.     @@:
  755.         cmp  ah, 0x37
  756.         jnz  @f
  757.         jmp  _37
  758.     @@:
  759.         cmp  ah, 0x38
  760.         jnz  @f
  761.         jmp  _38
  762.     @@:
  763.         cmp  ah, 0x39
  764.         jnz  @f
  765.         jmp  _39
  766.     @@:
  767.         cmp  ah, 0x3a
  768.         jnz  @f
  769.         jmp  _3a
  770.     @@:
  771.         cmp  ah, 0x3b
  772.         jnz  @f
  773.         jmp  _3b
  774.     @@:
  775.         cmp  ah, 0x3c
  776.         jnz  @f
  777.         jmp  _3c
  778.     @@:
  779.         cmp  ah, 0x41
  780.         jnz  @f
  781.         jmp  _41
  782.     @@:
  783.  
  784.     cmp   ah, 1         ; ¥á«¨ … ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1,
  785.     jne   still         ;  ¢¥à­ãâìáï
  786.  
  787.   .exit:
  788.     mcall -1            ; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
  789.  
  790.  
  791. ;---------------------------------------------------------------------
  792. ;---  Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€  ----------------------------------
  793. ;---------------------------------------------------------------------
  794.  
  795. WHITE_W=48   ; While key width
  796. BLACK_W=30   ; Black key width
  797. BLACK_X=34   ; Black key X offset
  798.  
  799. draw_window:
  800.  
  801.     mcall 12, 1       ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ® ­ ç «¥ ®âà¨á®¢ª¨
  802.  
  803.     mcall 48, 3, sc,sizeof.system_colors
  804.  
  805.  
  806.     mov   edx, [sc.work]         ; 梥â ä®­ 
  807.     or    edx, 0x33000000        ; ¨ ⨯ ®ª­  3
  808.     mcall 0, <20,WHITE_W*15+9>, <200,250>, , ,caption
  809.        
  810.     mcall 8,  <WHITE_W*0,WHITE_W>, <0,100>, 0x21, 0xff7a74
  811.     mcall 8,  <WHITE_W*1,WHITE_W>, <0,100>, 0x23, 0x907040
  812.     mcall 8,  <WHITE_W*2,WHITE_W>, <0,100>, 0x25, 0xa08050
  813.     mcall 8,  <WHITE_W*3,WHITE_W>, <0,100>, 0x26, 0xb09060
  814.     mcall 8,  <WHITE_W*4,WHITE_W>, <00,100>, 0x28, 0xc0a070
  815.     mcall 8,  <WHITE_W*5,WHITE_W>, <00,100>, 0x2a, 0xd0b080
  816.     mcall 8,  <WHITE_W*6,WHITE_W>, <0,100>, 0x2c, 0xe0c090
  817.     mcall 8,  <WHITE_W*7,WHITE_W>, <0,100>, 0x31, 0xffa97c
  818.     mcall 8,  <WHITE_W*8,WHITE_W>, <0,100>, 0x33, 0xaf8d8d
  819.     mcall 8,  <WHITE_W*9,WHITE_W>, <0,100>, 0x35, 0xbf9d9d
  820.     mcall 8,  <WHITE_W*10,WHITE_W>, <0,100>, 0x36, 0xcfadad
  821.     mcall 8,  <WHITE_W*11,WHITE_W>, <00,100>, 0x38, 0xdfbdbd
  822.     mcall 8,  <WHITE_W*12,WHITE_W>, <00,100>, 0x3a, 0xefcdcd
  823.     mcall 8,  <WHITE_W*13,WHITE_W>, <0,100>, 0x3c, 0xffdddd
  824.     mcall 8,  <WHITE_W*14,WHITE_W>, <0,100>, 0x41, 0xffe558
  825.  
  826.     mcall 8,  <WHITE_W*0+BLACK_X,BLACK_W>, <0,50>, 0x22, 0x221100
  827.     mcall 8,  <WHITE_W*1+BLACK_X,BLACK_W>, <0,50>, 0x24, 0x221100
  828.     mcall 8,  <WHITE_W*3+BLACK_X,BLACK_W>, <0,50>, 0x27, 0x221100
  829.     mcall 8,  <WHITE_W*4+BLACK_X,BLACK_W>, <0,50>, 0x29, 0x221100
  830.     mcall 8,  <WHITE_W*5+BLACK_X,BLACK_W>, <0,50>, 0x2b, 0x221100
  831.     mcall 8,  <WHITE_W*7+BLACK_X,BLACK_W>, <0,50>, 0x32, 0x221100
  832.     mcall 8,  <WHITE_W*8+BLACK_X,BLACK_W>, <0,50>, 0x34, 0x221100
  833.     mcall 8,  <WHITE_W*10+BLACK_X,BLACK_W>, <0,50>, 0x37, 0x221100
  834.     mcall 8,  <WHITE_W*11+BLACK_X,BLACK_W>, <0,50>, 0x39, 0x221100
  835.     mcall 8,  <WHITE_W*12+BLACK_X,BLACK_W>, <0,50>, 0x3b, 0x221100
  836.  
  837.     mcall 8,  <WHITE_W*0,WHITE_W>, <100,100>, 0xa1, 0x702050
  838.     mcall 8,  <WHITE_W*1,WHITE_W>, <100,100>, 0x03, 0x683638
  839.     mcall 8,  <WHITE_W*2,WHITE_W>, <100,100>, 0x05, 0x784648
  840.     mcall 8,  <WHITE_W*3,WHITE_W>, <100,100>, 0x06, 0x885658
  841.     mcall 8,  <WHITE_W*4,WHITE_W>, <100,100>, 0x08, 0x986668
  842.     mcall 8,  <WHITE_W*5,WHITE_W>, <100,100>, 0x0a, 0xa87678
  843.     mcall 8,  <WHITE_W*6,WHITE_W>, <100,100>, 0x0c, 0xb88688
  844.     mcall 8,  <WHITE_W*7,WHITE_W>, <100,100>, 0x11, 0x880040
  845.     mcall 8,  <WHITE_W*8,WHITE_W>, <100,100>, 0x13, 0x90622b
  846.     mcall 8,  <WHITE_W*9,WHITE_W>, <100,100>, 0x15, 0xa0723b
  847.     mcall 8,  <WHITE_W*10,WHITE_W>, <100,100>, 0x16, 0xb0824b
  848.     mcall 8,  <WHITE_W*11,WHITE_W>, <100,100>, 0x18, 0xc0925b
  849.     mcall 8,  <WHITE_W*12,WHITE_W>, <100,100>, 0x1a, 0xd0a26b
  850.     mcall 8,  <WHITE_W*13,WHITE_W>, <100,100>, 0x1c, 0xe0b27b
  851.     mcall 8,  <WHITE_W*14,WHITE_W>, <100,100>, 0x21, 0xff7a74
  852.  
  853.     mcall 8,  <WHITE_W*0+BLACK_X,BLACK_W>, <100,50>, 0x02, 0x221100
  854.     mcall 8,  <WHITE_W*1+BLACK_X,BLACK_W>, <100,50>, 0x04, 0x221100
  855.     mcall 8,  <WHITE_W*3+BLACK_X,BLACK_W>, <100,50>, 0x07, 0x221100
  856.     mcall 8,  <WHITE_W*4+BLACK_X,BLACK_W>, <100,50>, 0x09, 0x221100
  857.     mcall 8,  <WHITE_W*5+BLACK_X,BLACK_W>, <100,50>, 0x0b, 0x221100
  858.     mcall 8,  <WHITE_W*7+BLACK_X,BLACK_W>, <100,50>, 0x12, 0x221100
  859.     mcall 8,  <WHITE_W*8+BLACK_X,BLACK_W>, <100,50>, 0x14, 0x221100
  860.     mcall 8,  <WHITE_W*10+BLACK_X,BLACK_W>, <100,50>, 0x17, 0x221100
  861.     mcall 8,  <WHITE_W*11+BLACK_X,BLACK_W>, <100,50>, 0x19, 0x221100
  862.     mcall 8,  <WHITE_W*12+BLACK_X,BLACK_W>, <100,50>, 0x1b, 0x221100
  863.  
  864.  
  865.     ; ¢ë¢®¤ ⥪á⮢®© áâப¨
  866.     mov   ecx, [sc.work_text]    ; 梥â ä®­ 
  867.     or    ecx, 0x90000000        ; ¨ ⨯ áâப¨
  868.     mcall 4, <50, 205>, , message
  869.     mcall 4, <10, 235>, , message1
  870.     mcall 4, <10, 260>, , message2
  871.     mcall 4, <10, 285>, , message3
  872.     mcall 4, <10, 310>, , message4
  873.     mcall 4, <16, 185>, , t_notes
  874.  
  875.     mcall 12, 2                  ; äã­ªæ¨ï 12.2, § ª®­ç¨«¨ à¨á®¢ âì
  876.  
  877.     ret
  878.  
  879.  
  880. ;---------------------------------------------------------------------
  881. ;---  „€›… Žƒ€ŒŒ›  ----------------------------------------------
  882. ;---------------------------------------------------------------------
  883.  
  884.  
  885. ; ‚â®à®© ¡ ©â ¢ M (Music) ¨§¬¥­ï¥âáï ­ ¦ â¨¥¬ ª« ¢¨è¨
  886.  
  887. M:
  888.   db  0x90, 0x30, 0
  889.  
  890.  
  891. sc system_colors
  892.  
  893. if lang eq ru
  894.   message  db '‘¯à ¢ª : éñ«ª­¨â¥ 2 à §  ­  § £®«®¢ª¥.',0
  895.   message1 db ' ¦¬¨â¥ «î¡ãî ª« ¢¨èã ¢  ­£«¨©áª®© à áª« ¤ª¥ - ',0
  896.   message2 db '¤®«¦¥­ §¢ãç âì ¢áâ஥­­ë© ¤¨­ ¬¨ª ª®¬¯ìîâ¥à  (­¥ ª®«®­ª¨!)',0
  897.   message3 db '®â  "„®" - ª« ¢¨è¨ V,Tab,U,Enter',0
  898.   message4 db '¯à¨ ¢ª«î祭¨¨ Caps Lock - ª« ¢¨è¨ V,Q,I.',0
  899.   t_notes  db '„Ž    …    Œˆ    ”€   ‘Ž‹œ   ‹Ÿ    ‘ˆ    „Ž',0
  900.   caption  db '„¥â᪮¥ ¯¨ ­¨­®',0
  901. else
  902.   message  db 'To see help click twice on the window header',0
  903.   message1 db 'Press any key in English keyboard layout - ',0
  904.   message2 db 'so you will hear the sound from the PC-speaker (Beeper)',0
  905.   message3 db 'Note "C" is the key V,Tab,U,Enter',0
  906.   message4 db 'and when Caps Lock is on then the keys V,Q,I.',0
  907.   t_notes  db 'C     D     E     F     G     A     B     C ',0
  908.   caption  db 'Baby piano',0
  909. end if
  910.  
  911. ;---------------------------------------------------------------------
  912.  
  913. I_END:
  914.   rb 4096
  915. align 16
  916. STACKTOP:
  917. MEM:
  918.