Subversion Repositories Kolibri OS

Rev

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