Subversion Repositories Kolibri OS

Rev

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