Subversion Repositories Kolibri OS

Rev

Rev 4867 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. DECIMAL
  2.  S" /sys/menuet.f" INCLUDED
  3.  
  4. : not_emit
  5.         emit_proc DUP @ NOT SWAP ! ;
  6.  
  7. new_reg wnd_size
  8.  
  9. CREATE Music $3090 , \ $90 C, $30 C, 0 C,
  10.  
  11. : my_wnd
  12.   12 ax 1 bx sysv DROP $805080D0 DUP $02AABBCC 200 50 << 200 DUP << 0
  13.         sys6 2 bx sysv 2DROP
  14.   $10DDEEFF $" ˆŒ… Žƒ€ŒŒ›" COUNT 8 DUP sys_print
  15.   0 $"  ¦¬¨â¥ «î¡ãî ª« ¢¨èã" COUNT 8 30 sys_print
  16.   $6688DD 1 5 12 << 200 19 - 12 << 8 sys5 DROP ;
  17.  
  18. : my_wnd_resize
  19.         200 dx 50 si 67 ax -1 DUP bx cx sysv DROP ;
  20.  
  21. : my_key
  22.         2 sys1 8 RSHIFT DUP 96 = IF not_emit DROP ELSE Music DUP si 1+ C!
  23.  55 DUP ax bx sysv DROP THEN ;
  24.  
  25. : my_btn
  26.         17 sys1 8 RSHIFT ." Pressed button #" DUP . CR 1 = IF BYE THEN ;
  27.  
  28. CREATE handlers ' my_wnd , ' my_key , ' my_btn ,
  29.  
  30. VARIABLE hnd
  31.  
  32. : msg_loop_console ( subs -- )
  33.         CR DUP hnd ! @EXECUTE  my_wnd_resize
  34.         0 emit_proc !
  35.         BEGIN
  36.         10 sys1 ?DUP
  37.         IF
  38.           1-
  39.     CELLS hnd @ + @EXECUTE
  40.     emit_proc @
  41.     IF
  42.         WINDOW KEY 96 =
  43.         IF
  44.                 not_emit hnd @ @EXECUTE  my_wnd_resize
  45.         ELSE
  46.           EXIT
  47.         THEN
  48.     THEN
  49.   THEN
  50.   AGAIN ;
  51.  
  52. : new_me ( new main loop)
  53.   handlers msg_loop_console ;
  54.