Subversion Repositories Kolibri OS

Rev

Rev 31 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. draw_window:
  2.  
  3.  
  4.     mov  eax,12                                                                   ; function 12:tell os about windowdraw
  5.     mov  ebx,1                                                                    ; 1, start of draw
  6.     int  0x40
  7.  
  8.                                                                                   ; DRAW WINDOW
  9.     mov  eax,0                                                                    ; function 0 : define and draw window
  10.     mov  ebx,320*65536+(LEN_X-BORDER_LEFT-BORDER_RIGHT)*ADOBE_SIZE+X_LOCATION*2+98
  11.     mov  ecx,25*65536+ (LEN_Y-BORDER_TOP-BORDER_BOTTOM)*ADOBE_SIZE+Y_LOCATION+4
  12.     mov  edx,0x03000000                                                           ; color of work area RRGGBB
  13.     mov  esi,0x006688ee                                                           ; color of grab bar  RRGGBB,8->col
  14.     mov  edi,0x007799ff                                                           ; color of frames    RRGGBB
  15.     int  0x40
  16.  
  17.                                                                                   ; WINDOW LABEL
  18.     mov  eax,4                                                                    ; function 4 : write text to window
  19.     mov  ebx,8*65536+5                                                            ; [x start] *65536 + [y start]
  20.     mov  ecx,0x00ffffff                                                           ; color of text RRGGBB
  21.     mov  edx,labelt                                                               ; pointer to text beginning
  22.     mov  esi,scoretext-labelt                                                     ; text length
  23.     int  0x40
  24.  
  25.     cmp  byte[status],'0'
  26.     jne  status1
  27.     call draw_logo
  28.     call draw_menu
  29.  
  30.    status1:
  31.     cmp  byte[status],'1'
  32.     jne  status2
  33.  
  34.     call draw_game
  35.  
  36.    status2:
  37.     cmp  byte[status],'2'
  38.     jne  status3
  39.  
  40.     call draw_game
  41.  
  42.     mov  eax,4                                                                    ; function 4 : write text to window
  43.     mov  ebx,80*65536+170                                                        ; [x start] *65536 + [y start]
  44.     mov  ecx,0x10ff0000                                                           ; color of text RRGGBB
  45.     mov  edx,paused                                                               ; pointer to text beginning
  46.     mov  esi,txt_end-paused                                                       ; text length
  47.     int  0x40
  48.  
  49.    status3:
  50.     cmp  byte[status],'3'
  51.     jne  status4
  52.  
  53.     call draw_logo
  54.     mov  edx,history
  55.     call show_text
  56.  
  57.    status4:
  58.     cmp  byte[status],'4'
  59.     jne  status5
  60.  
  61.     call draw_logo
  62.     mov  edx,instructions
  63.     call show_text
  64.  
  65.    status5:
  66.  
  67.     mov  eax,12                                                                   ; function 12:tell os about windowdraw
  68.     mov  ebx,2                                                                    ; 2, end of draw
  69.     int  0x40
  70.  
  71. ret
  72.  
  73. draw_game:
  74.  
  75.     call draw_table
  76.     movzx edx,byte [current_block_color]
  77.     call draw_block
  78.  
  79.     call write_score
  80.  
  81.     mov  eax,38
  82.     mov  ebx,((LEN_X-BORDER_LEFT-BORDER_RIGHT)*ADOBE_SIZE+X_LOCATION*2-4) shl 16 + ((LEN_X-BORDER_LEFT-BORDER_RIGHT)*ADOBE_SIZE+X_LOCATION*2-4)
  83.     mov  ecx,20 shl 16 + ((LEN_Y-BORDER_TOP-BORDER_BOTTOM)*ADOBE_SIZE+Y_LOCATION+2-4)
  84.     mov  edx,0x00ffffff
  85.     int  0x40
  86.  
  87. ret
  88.  
  89. draw_logo:
  90.  
  91.     mov ebx,2
  92.     mov ecx,2
  93.     mov edx,[color_table+1*4]
  94.     mov edi,tetris_t
  95.     call draw_title_block
  96.     mov ebx,5
  97.     mov ecx,3
  98.     mov edx,[color_table+2*4]
  99.     mov edi,tetris_e
  100.     call draw_title_block
  101.     mov ebx,8
  102.     mov ecx,2
  103.     mov edx,[color_table+3*4]
  104.     mov edi,tetris_t
  105.     call draw_title_block
  106.     mov ebx,11
  107.     mov ecx,3
  108.     mov edx,[color_table+4*4]
  109.     mov edi,tetris_r
  110.     call draw_title_block
  111.     mov ebx,13
  112.     mov ecx,2
  113.     mov edx,[color_table+5*4]
  114.     mov edi,tetris_i
  115.     call draw_title_block
  116.     mov ebx,15
  117.     mov ecx,3
  118.     mov edx,[color_table+6*4]
  119.     mov edi,tetris_s
  120.     call draw_title_block
  121.     mov ebx,20
  122.     mov ecx,2
  123.     mov edx,[color_table+7*4]
  124.     mov edi,tetris_II
  125.     call draw_title_block
  126.  
  127. ret
  128.  
  129. show_text:
  130.     mov  ebx,6*65536+120           ; draw info text with function 4
  131.     mov  ecx,0xff0000
  132.     mov  esi,34
  133.   newline:
  134.     mov  eax,4
  135.     int  0x40
  136.     add  ebx,10
  137.     add  edx,34
  138.     cmp  [edx],byte 'x'
  139.     jne  newline
  140. ret
  141.  
  142.  
  143.