Subversion Repositories Kolibri OS

Rev

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

  1. ;=============================================================================
  2. ; Kolibri Graphics Benchmark 0.7
  3. ;--------------------------------------
  4. ; MGB - Menuet Graphics Benchmark 0.3
  5. ; Compile with FASM
  6. ;
  7. ;=============================================================================
  8. ; version:      0.7
  9. ; last update:  05/04/2013
  10. ; written by:   Marat Zakiyanov aka Mario79, aka Mario
  11. ; changes:      benchmark GS selector - read screen area
  12. ;---------------------------------------------------------------------
  13. ; version:      0.6
  14. ; last update:  14/03/2013
  15. ; written by:   Marat Zakiyanov aka Mario79, aka Mario
  16. ; changes:      benchmark f36 - read screen area
  17. ;---------------------------------------------------------------------
  18. ; version:      0.5
  19. ; last update:  05/03/2013
  20. ; written by:   Marat Zakiyanov aka Mario79, aka Mario
  21. ; changes:      benchmark f73-blitter
  22. ;---------------------------------------------------------------------
  23. ; version:      0.4
  24. ; last update:  18/09//2010
  25. ; written by:   Marat Zakiyanov aka Mario79, aka Mario
  26. ; changes:      select path with OpenDialog,
  27. ;               use of Box_Lib and Proc_Lib,
  28. ;               support start with path for *.mgb file
  29. ;               optimization code and size of use memory
  30. ;---------------------------------------------------------------------
  31. ; Original author and copyrights holder:
  32. ;     Mikhail Lisovin a.k.a. Mihasik
  33. ;     lisovin@26.ru
  34. ;
  35. ; Disassembled with IDA 5.0.0.879:
  36. ;     http://www.datarescue.com/
  37. ; With use of 'ida.int' and 'kloader.ldw':
  38. ;     Eugene Grechnikov a.k.a. diamond
  39. ;     diamondz@land.ru
  40. ;     http://diamondz.land.ru/
  41. ;
  42. ; Modified for version 0.3:
  43. ;     Mike Semenako a.k.a mike.dld
  44. ;     mike.dld@gmail.com
  45. ;     http://www.mikedld.com/
  46. ;
  47. ;=============================================================================
  48.  
  49. org 0x0
  50. use32
  51.  
  52.         db 'MENUET01'
  53.         dd 1
  54.         dd start
  55.         dd IM_END
  56.         dd I_END        ;0x200000
  57.         dd stacktop     ;0x07FFF0
  58.         dd fname_buf
  59.         dd cur_dir_path
  60.  
  61. include '../../../config.inc'           ;for nightbuild
  62. include '..\..\..\macros.inc'
  63. include '..\..\..\proc32.inc'
  64. ;include '..\..\..\debug.inc'
  65. include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
  66. include '../../../develop/libraries/box_lib/load_lib.mac'
  67. include 'lang.inc'      ;language support
  68.         @use_library
  69. ;---------------------------------------------------------------------
  70. start:
  71.         mcall   68,11
  72.  
  73. load_libraries l_libs_start,end_l_libs
  74.  
  75.         cmp     eax,-1
  76.         jz      close
  77. ;---------------------------------------------------------------------
  78.         mov     edi,filename_area
  79.         mov     esi,start_temp_file_name
  80.         call    copy_str_1
  81.  
  82.         mov     edi,comment_string_1
  83.         mov     esi,aComment1
  84.         call    copy_str_1
  85.  
  86.         mov     edi,comment_string_2
  87.         mov     esi,aComment2
  88.         call    copy_str_1
  89.  
  90.         mov     edi,fname_buf
  91.         cmp     [edi],byte 0
  92.         jne     @f
  93.         mov     esi,path4
  94.         call    copy_str_1
  95.         jmp     .OpenDialog
  96. @@:
  97.         call    locLoadFile
  98.         xor     dword [wFlags],1
  99. .OpenDialog:
  100. ;OpenDialog     initialisation
  101.         push    dword OpenDialog_data
  102.         call    [OpenDialog_Init]
  103. ;---------------------------------------------------------------------
  104.         mcall   40,0x27
  105. red:
  106.         call    draw_window
  107. still:
  108.         mcall   10
  109.         cmp     eax,1
  110.         jz      red
  111.         cmp     eax,2
  112.         jz      key
  113.         cmp     eax,3
  114.         jz      button
  115.         jmp     still
  116. ;---------------------------------------------------------------------
  117. copy_str_1:
  118.         xor     eax,eax
  119.         cld
  120. @@:
  121.         lodsb
  122.         stosb
  123.         test    eax,eax
  124.         jnz     @b
  125.         ret
  126. ;---------------------------------------------------------------------
  127. key:
  128.         mcall   2
  129.         cmp     ah,'t'
  130.         jz      ActionTest
  131.         cmp     ah,'c'
  132.         jz      ActionComment
  133.         cmp     ah,'p'
  134.         jz      ActionPattern
  135.         cmp     ah,'o'
  136.         jz      ActionOpen
  137.         cmp     ah,'s'
  138.         jz      ActionSave
  139.         jmp     still
  140. ;---------------------------------------------------------------------
  141. button:
  142.         mcall   17
  143.         cmp     ah,1
  144.         jnz     NotClose
  145. close:
  146.         mcall   -1
  147. NotClose:
  148.         cmp     ah,2
  149.         jnz     locNotTest
  150. ActionTest:
  151.         test    dword [wFlags],1
  152.         jnz     still
  153.         mcall   51,1,TestWndProc,thread_stack1
  154.         jmp     still
  155. ;---------------------------------------------------------------------
  156. locNotTest:
  157.         cmp     ah,3
  158.         jnz     NotComment
  159. ActionComment:
  160.         test    dword [wFlags],1
  161.         jnz     still
  162.         mcall   51,1,thread_comment,thread_stack2
  163.         jmp     still
  164. ;---------------------------------------------------------------------
  165. NotComment:
  166.         cmp     ah,4
  167.         jnz     NotPattern
  168. ActionPattern:
  169.         test    dword [wFlags],1
  170.         jnz     still
  171.         mov     esi,results_table
  172.         cld
  173. @@:
  174.         lodsd
  175.         mov     [esi],eax
  176.         add     esi,TEST_REC_SIZE-4
  177.         cmp     dword [esi+TEST_REC_SIZE-4],0
  178.         jne     @b
  179.         mov     esi,comment_string_1
  180.         mov     edi,comment_string_2
  181.         call    copy_str_1
  182.         call    DrawBars
  183.         jmp     still
  184. ;---------------------------------------------------------------------
  185. NotPattern:
  186.         cmp     ah,5
  187.         jnz     NotOpen
  188. ActionOpen:
  189.         test    dword [wFlags],1
  190.         jnz     still
  191.         mov     [OpenDialog_data.type],0 ; open
  192.         call    OpenDialog_Start_1
  193.         jne     still
  194.         call    locLoadFile
  195.         call    DrawBars
  196. .1:
  197.         xor     dword [wFlags],1
  198.         jmp     still
  199. ;---------------------------------------------------------------------
  200. OpenDialog_Start_1:
  201.         push    dword OpenDialog_data
  202.         call    [OpenDialog_Start]
  203.         cmp     [OpenDialog_data.status],1
  204.         ret
  205. ;---------------------------------------------------------------------
  206. NotOpen:
  207.         cmp     ah,6
  208.         jnz     still
  209. ActionSave:
  210.         test    dword [wFlags],1
  211.         jnz     still
  212.         mov     [OpenDialog_data.type],1 ; save
  213.         call    OpenDialog_Start_1
  214.         jne     still
  215.         call    locSaveFile
  216.         jmp     ActionOpen.1
  217. ;---------------------------------------------------------------------
  218. TestWndProc:
  219.         mcall   68,12,90*123*3
  220.         mov     [area_for_f36],eax
  221.         or      dword [wFlags],1
  222.         mov     esi,results_table+8
  223. align 4
  224. .next_test:
  225.         xor     edi,edi
  226.         mcall    26,9
  227.         inc     eax
  228.         mov     ecx,eax
  229.         add     eax,100
  230.         mov     [dwTestEndTime],eax
  231. align 4
  232. @@:
  233.         mcall    26
  234.         cmp     eax,ecx
  235.         jb      @r
  236. align 4
  237. @@:
  238.         push    esi
  239.         call    dword [esi]
  240.         pop     esi
  241.         inc     edi
  242.         mcall   26,9
  243.         cmp     eax,[dwTestEndTime]
  244.         jb      @b
  245.         mov     [esi-8],edi
  246.  
  247.         add     esi,TEST_REC_SIZE
  248.         cmp     dword [esi],0
  249.         jnz     .next_test
  250.         xor     dword [wFlags],1
  251.         mcall   68,13,[area_for_f36]
  252.         mcall   -1
  253. ;---------------------------------------------------------------------
  254. draw_window:
  255.         mcall   12,1
  256.         mcall   48,4
  257.         mov     ebx,100*65536+72*5+14
  258.         mov     ecx,80*65536+TESTS_NUM*LINE_HEIGHT+15+20+35
  259.         add     cx,ax
  260.         xor     eax,eax
  261.         xor     esi,esi
  262.         mcall   ,,,34000000h,,aCaption
  263.  
  264.         mov     eax,8
  265.         mov     ebx,050036h+12
  266.         mov     ecx,5*65536+20
  267.         mov     edx,2
  268.         mov     esi,0x00007F7F
  269. @@:
  270.         mcall
  271.         add     ebx,72*65536
  272.         inc     edx
  273.         cmp     edx,7
  274.         jb      @r
  275.  
  276.         mov     ecx,31
  277.         mov     edx,0x00007F7F
  278.         mov     esi,(72*5)/2
  279.         call    drawSeparator
  280.  
  281.         mcall   4,<27,12>,0x80DDEEFF,aButtonsText
  282.         call    DrawBars
  283.  
  284.         mov     ecx,TESTS_NUM*LINE_HEIGHT+15+21
  285.         mov     edx,0x00007F7F
  286.         mov     esi,(72*5)/2
  287.         call    drawSeparator
  288.         mcall   12,2
  289.         ret
  290. ;---------------------------------------------------------------------
  291. drawSeparator:
  292.         mov     eax,1
  293.         mov     ebx,3
  294. @@:
  295.         mcall
  296.         add     ebx,2
  297.         dec     esi
  298.         jnz     @b
  299.         ret
  300. ;---------------------------------------------------------------------
  301. align 4
  302. testDrawWindow:
  303.         xor     eax,eax
  304.         mcall   ,640145h,4F0190h,3000000h
  305.         ret
  306. ;---------------------------------------------------------------------
  307. align 4
  308. testDrawBar:
  309.         mcall   13,0A0064h,1E00FAh,6A73D0h
  310.         ret
  311. ;---------------------------------------------------------------------
  312. align 4
  313. testDrawPicture:
  314. ;       xor     ebx,ebx
  315.         mcall   7,[area_for_f36],<90,123>,<15,33>
  316.         ret
  317. ;---------------------------------------------------------------------
  318. align 4
  319. testDrawPicture_f73:
  320.         xor     ebx,ebx
  321.         mcall   73,,params_f73
  322.         ret
  323. ;---------------------------------------------------------------------
  324. align 4
  325. testGetScreen_f36:
  326.         xor     ebx,ebx
  327.         mcall   36,[area_for_f36],<90,123>,<15,33>
  328.         ret
  329. ;---------------------------------------------------------------------
  330. align 4
  331. testGetScreen_GS:
  332.         push    edi
  333.         mov     [start_x],15
  334.         mov     [start_y],33
  335.         mov     [size_x],90
  336.         mov     [size_y],123
  337.         mov     edi,[area_for_f36]
  338.  
  339.         mcall   61,2
  340.         cmp     eax,24
  341.         je      get_area_with_GS_24
  342. ;-----------------------------------------------------------------------------
  343. align 4
  344. get_area_with_GS_32:
  345.         mcall   61,1
  346.         shr     eax,16
  347.         shl     eax,2
  348.         mov     [offset_x],eax
  349.  
  350.         mov     esi,[start_y]
  351.         imul    esi,eax
  352.  
  353.         mov     eax,[start_x]
  354.         shl     eax,2
  355.         add     esi,eax
  356.  
  357.         mov     eax,[size_x]
  358.         shl     eax,2
  359.         sub     [offset_x],eax
  360.  
  361.         mov     edx,[size_y]
  362.         mov     ebx,[offset_x]
  363.         sub     esi,ebx
  364.         mov     ebp,[size_x]
  365. ;--------------------------------------
  366. align 4
  367. .start_y:
  368.         add     esi,ebx
  369.         mov     ecx,ebp
  370. ;--------------------------------------
  371. align 4
  372. .start_x:
  373.         mov     eax,[gs:esi]
  374.         mov     [edi],eax
  375.         add     esi,4
  376.         add     edi,3
  377.  
  378.         dec     ecx
  379.         jnz     .start_x
  380.  
  381.         dec     edx
  382.         jnz     .start_y
  383.  
  384.         pop     edi
  385.         ret
  386. ;-----------------------------------------------------------------------------
  387. align 4
  388. get_area_with_GS_24:
  389.         mcall   61,1
  390.         shr     eax,16
  391.         lea     eax,[eax*3]
  392.         mov     [offset_x],eax
  393.  
  394.         mov     esi,[start_y]
  395.         imul    esi,eax
  396.  
  397.         mov     eax,[start_x]
  398.         lea     eax,[eax*3]
  399.         add     esi,eax
  400.  
  401.         mov     eax,[size_x]
  402.         lea     eax,[eax*3]
  403.         sub     [offset_x],eax
  404.  
  405.         mov     edx,[size_y]
  406.         mov     ebx,[offset_x]
  407.         sub     esi,ebx
  408.         mov     ebp,[size_x]
  409. ;--------------------------------------
  410. align 4
  411. .start_y:
  412.         add     esi,ebx
  413.         mov     ecx,ebp
  414. ;--------------------------------------
  415. align 4
  416. .start_x:
  417.         mov     eax,[gs:esi]
  418.         mov     [edi],eax
  419.         add     esi,3
  420.         add     edi,3
  421.  
  422.         dec     ecx
  423.         jnz     .start_x
  424.  
  425.         dec     edx
  426.         jnz     .start_y
  427.  
  428.         pop     edi
  429.         ret
  430. ;-----------------------------------------------------------------------------
  431. align 4
  432. testDrawVertLine:
  433.         mcall   38,<300,300>,<30,380>,1090207Fh
  434.         ret
  435. ;---------------------------------------------------------------------
  436. align 4
  437. testDrawHorzLine:
  438.         mcall   38,<30,300>,<380,380>,1090207Fh
  439.         ret
  440. ;---------------------------------------------------------------------
  441. align 4
  442. testDrawFreeLine:
  443.         mcall   38,<30,300>,<380,30>,1090207Fh
  444.         ret
  445. ;---------------------------------------------------------------------
  446. align 4
  447. testDrawText1:
  448.         mcall   4,0C012Ch,0AA66h,aTestText,34
  449.         ret
  450. ;---------------------------------------------------------------------
  451. align 4
  452. testDrawText2:
  453.         mcall   4,1B013Bh,10E7B850h,aTestText,34
  454.         ret
  455. ;---------------------------------------------------------------------
  456. align 4
  457. testDrawNumber:
  458.         mcall   47,80000h,12345678,2A014Ah,0E0B27Bh
  459.         ret
  460. ;---------------------------------------------------------------------
  461. align 4
  462. testDrawPixel:
  463.         mcall   1,100,100,0FFFFFFh
  464.         ret
  465. ;---------------------------------------------------------------------
  466. DrawBars:
  467.         mov     edi,results_table
  468.         mov     ebx,30+7
  469. .next_result:
  470.         cmp     dword[edi+TEST_REC_SIZE-4],0
  471.         je      .exit
  472.  
  473.         push    ebx
  474.         movzx   ecx,bx
  475.         add     ecx,-2
  476.         shl     ecx,16
  477.         mov     cx,LINE_HEIGHT
  478.         mov     ebx,0*65536+72*5+5
  479.         xor     edx,edx
  480.         mcall   13
  481.         pop     ebx
  482.  
  483.         and     ebx,0x0000FFFF
  484.         or      ebx,5*65536
  485.         mov     edx,[edi+TEST_REC_SIZE-4]
  486.         mcall   4,,0x8000CCCC
  487.  
  488.         push    '=' 0x00FFFF00 0x00FFFF7F 0x00FFFF7F
  489.         mov     eax,[edi+0]
  490.         cmp     eax,[edi+4]
  491.         je      @f
  492.         jb      .lp1
  493.         mov     dword[esp+0],0x007FFF7F
  494.         mov     dword[esp+4],0x00FF7F7F
  495.         mov     dword[esp+8],0x0000FF00
  496.         mov     byte[esp+12],'>'
  497. .lp1:
  498.         ja      @f
  499.         mov     dword[esp+0],0x00FF7F7F
  500.         mov     dword[esp+4],0x007FFF7F
  501.         mov     dword[esp+8],0x00FF0000
  502.         mov     byte[esp+12],'<'
  503. @@:
  504.         pop     ecx
  505.         call    int2str
  506.         add     ebx,(72*5-6*8*2-6-10-5)*65536 ; 196
  507.         mcall   4,,,textarea,8
  508.  
  509.         pop     ecx
  510.         mov     eax,[edi+4]
  511.         call    int2str
  512.         add     ebx,(6*8+6+10)*65536
  513.         mcall   4
  514.  
  515.         pop     ecx
  516.         add     ebx,(-6-5)*65536
  517.         mov     edx,esp
  518.         mov     esi,1
  519.         mcall
  520.         add     esp,4
  521.  
  522.         add     edi,TEST_REC_SIZE
  523.         add     bx,LINE_HEIGHT
  524.         jmp     .next_result
  525. .exit:
  526.         mov     ebx, 0*65536+72*5+5
  527.         mov     ecx, (TESTS_NUM*LINE_HEIGHT+15+25)*65536+26
  528.         xor     edx, edx
  529.         mcall   13
  530.  
  531.         mov     ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27)
  532.         mcall   4,,0x8000CCCC,aLeft
  533.  
  534.         add     ebx, (6*10)*65536
  535.         mcall   ,,0x80FFFF00,comment_string_1
  536.  
  537.         mov     ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27+12)
  538.         mcall   ,,0x8000CCCC,aRight
  539.  
  540.         add     ebx, (6*10)*65536
  541.         mcall   ,,0x80FFFF00,comment_string_2
  542.         ret
  543. ;---------------------------------------------------------------------
  544. int2str:
  545.         push    eax ecx edx edi
  546.         mov     edi,textarea+7
  547.         mov     dword[textarea+0],'    '
  548.         mov     dword[textarea+4],'    '
  549.         mov     ecx,10
  550. @@:
  551.         xor     edx,edx
  552.         div     ecx
  553.         add     dl,'0'
  554.         mov     [edi],dl
  555.         dec     edi
  556.         or      eax,eax
  557.         jnz     @b
  558.         pop     edi edx ecx eax
  559.         ret
  560. ;---------------------------------------------------------------------
  561. thread_comment:
  562.         or      dword [wFlags],1
  563.         mcall   40,0x27
  564.         mov     esi,comment_string_1
  565.         cld
  566. @@:
  567.         lodsb
  568.         test    al,al
  569.         jne     @r
  570.         sub     esi,comment_string_1
  571.         mov     eax,esi
  572.         dec     eax
  573.         mov     edi, edit1
  574.         mov     [edi+48], eax   ;ed_size
  575.         mov     [edi+52], eax   ;ed_pos
  576. ;---------------------------------------------------------------------
  577. .red:
  578.         call .draw_window
  579. .still:
  580.         mcall   10      ; wait here for event
  581.         cmp     eax,1   ; redraw request ?
  582.         je      .red
  583.         cmp     eax,2   ; key in buffer ?
  584.         je      .key
  585.         cmp     eax,3   ; button in buffer ?
  586.         je      .button
  587.  
  588.         push    dword name_editboxes
  589.         call    [edit_box_mouse]
  590.         jmp     .still
  591. ;---------------------------------------------------------------------
  592. .key:           ; key
  593.         mcall   2
  594.         cmp     ah,13
  595.         je      .close  ;.close_with_open_file
  596.         cmp     ah,27
  597.         je      .close
  598.  
  599.         push    dword name_editboxes
  600.         call    [edit_box_key]
  601.         jmp     .still
  602. ;---------------------------------------------------------------------
  603. .button:                ; button
  604.         mcall   17
  605.         cmp     ah,1    ; button id=1 ?
  606.         jne     .still
  607. .close:
  608.         xor     dword [wFlags],1
  609.         mcall   -1
  610. ;---------------------------------------------------------------------
  611. .draw_window:
  612.         mcall   12,1
  613.         xor     eax,eax
  614.         xor     esi,esi
  615.         mcall   ,<100,300>,<100,80>,0x34780078,,aComment
  616.         push    dword name_editboxes
  617.         call    [edit_box_draw]
  618.         mcall   12,2
  619.         ret
  620. ;---------------------------------------------------------------------
  621. locLoadFile:
  622.         mov     [stFileInfoBlock], 0
  623.         or      dword [wFlags],1
  624.         mcall   70,stFileInfoBlock
  625.         mov     esi,mgb_data
  626.         mov     edi,results_table+4
  627.         cld
  628. @@:
  629.         cmp     dword[edi+TEST_REC_SIZE-8],0
  630.         je      @f
  631.         movsd
  632.         add     edi,TEST_REC_SIZE-4
  633.         jmp     @b
  634. @@:
  635.         mov     edi,comment_string_2
  636.         mov     ecx,44
  637.         rep     movsb
  638.         ret
  639. ;---------------------------------------------------------------------
  640. locSaveFile:
  641.         mov     [stFileInfoBlock], 2
  642.         or      dword [wFlags],1
  643.         mov     esi,results_table+4
  644.         mov     edi,mgb_data
  645.         cld
  646. @@:
  647.         cmp     dword[esi+TEST_REC_SIZE-8],0
  648.         je      @f
  649.         movsd
  650.         add     esi,TEST_REC_SIZE-4
  651.         jmp     @b
  652. @@:
  653.         mov     esi,comment_string_2
  654.         mov     ecx,44
  655.         rep     movsb
  656.         mcall   70,stFileInfoBlock
  657.         ret
  658. ;---------------------------------------------------------------------
  659. align 4
  660. stFileInfoBlock dd 0,0,0
  661. dwDataSize      dd TESTS_NUM*4+44       ;1
  662.                 dd mgb_data
  663.                 db 0
  664.                 dd fname_buf
  665. ;---------------------------------------------------------------------
  666. wFlags          dd 0
  667. ;---------------------------------------------------------------------
  668. align 4
  669. results_table dd \
  670.         ?,?,testDrawWindow,aDrawingWindow,\
  671.         ?,?,testDrawBar,aDrawingBar,\
  672.         ?,?,testGetScreen_f36,aGetScreenF36,\
  673.         ?,?,testGetScreen_GS,aGetScreen_GS,\
  674.         ?,?,testDrawPicture,aDrawingPicture,\
  675.         ?,?,testDrawPicture_f73,aDrawingPictF73,\
  676.         ?,?,testDrawVertLine,aDrawingVLine,\
  677.         ?,?,testDrawHorzLine,aDrawingHLine,\
  678.         ?,?,testDrawFreeLine,aDrawingFLine,\
  679.         ?,?,testDrawText1,aDrawingText1,\
  680.         ?,?,testDrawText2,aDrawingText2,\
  681.         ?,?,testDrawNumber,aDrawingNumber,\
  682.         ?,?,testDrawPixel,aDrawingPixel,\
  683.         0,0,0,0
  684. ;---------------------------------------------------------------------
  685. LINE_HEIGHT   = 13
  686. TEST_REC_SIZE = 16
  687. TESTS_NUM     = ($ - results_table) / TEST_REC_SIZE - 1
  688. ;---------------------------------------------------------------------
  689. if lang eq it
  690.         aDrawingWindow  db 'Window Of Type #3, 325x400 px',0
  691.         aDrawingBar     db 'Filled Rectangle, 100x250 px',0
  692.         aDrawingPicture db 'Picture, 90x123, px',0
  693.         aDrawingPictF73 db 'Picture for Blitter, 90x123, px',0
  694.         aGetScreenF36   db 'Get a piece of screen f.36, 90x123, px',0
  695.         aGetScreen_GS   db 'Get a piece of screen GS, 90x123, px',0
  696.         aDrawingVLine   db 'Linea verticale, 350 px',0
  697.         aDrawingHLine   db 'Linea orizzontale, 270 px',0
  698.         aDrawingFLine   db 'Free-angled Line, 350 px',0
  699.         aDrawingText1   db 'Fixed-width Text, 34 chars',0
  700.         aDrawingText2   db 'Proportional Text, 34 chars',0
  701.         aDrawingNumber  db 'Decimal Number, 8 digits',0
  702.         aDrawingPixel   db 'Singolo pixel',0
  703.  
  704.         aTestText       db 'This is a 34-charachters test text'
  705.         aButtonsText    db 'Test      Commenti    Pattern+     Apri        Salva',0
  706.         aCaption        db 'Kolibri Graphical Benchmark 0.7',0
  707.  
  708.         aLeft   db 'Sinistra:',0
  709.         aRight  db 'Destra  :',0
  710.  
  711.         aComment1       db 'Attuale ',0
  712.         aComment2       db 'no pattern',0
  713.         aComment        db 'Commento',0
  714. else
  715.         aDrawingWindow  db 'Window Of Type #3, 325x400 px',0
  716.         aDrawingBar     db 'Filled Rectangle, 100x250 px',0
  717.         aDrawingPicture db 'Picture, 90x123, px',0
  718.         aDrawingPictF73 db 'Picture for Blitter, 90x123, px',0
  719.         aGetScreenF36   db 'Get a piece of screen f.36, 90x123, px',0
  720.         aGetScreen_GS   db 'Get a piece of screen GS, 90x123, px',0
  721.         aDrawingVLine   db 'Vertical Line, 350 px',0
  722.         aDrawingHLine   db 'Horizontal Line, 270 px',0
  723.         aDrawingFLine   db 'Free-angled Line, 350 px',0
  724.         aDrawingText1   db 'Fixed-width Text, 34 chars',0
  725.         aDrawingText2   db 'Proportional Text, 34 chars',0
  726.         aDrawingNumber  db 'Decimal Number, 8 digits',0
  727.         aDrawingPixel   db 'Single Pixel',0
  728.  
  729.         aTestText       db 'This is a 34-charachters test text'
  730.         aButtonsText    db 'Test      Comment+    Pattern+      Open        Save',0
  731.         aCaption        db 'Kolibri Graphical Benchmark 0.7',0
  732.  
  733.         aLeft   db 'Left    :',0
  734.         aRight  db 'Right   :',0
  735.  
  736.         aComment1       db 'current',0
  737.         aComment2       db 'no pattern',0
  738.         aComment        db 'Comment',0
  739. end if
  740. ;---------------------------------------------------------------------
  741. system_dir_Boxlib       db '/sys/lib/box_lib.obj',0
  742. system_dir_ProcLib      db '/sys/lib/proc_lib.obj',0
  743. ;---------------------------------------------------------------------
  744. head_f_i:
  745. if lang eq it
  746.         head_f_l        db 'Errore Sistema',0
  747. else
  748.         head_f_l        db 'System error',0
  749. end if
  750.  
  751. err_message_found_lib1  db 'box_lib.obj - Not found!',0
  752. err_message_found_lib2  db 'proc_lib.obj - Not found!',0
  753.  
  754. err_message_import1     db 'box_lib.obj - Wrong import!',0
  755. err_message_import2     db 'proc_lib.obj - Wrong import!',0
  756. ;---------------------------------------------------------------------
  757. align 4
  758. l_libs_start:
  759.  
  760. library01  l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
  761. err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
  762.  
  763. library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
  764. err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
  765.  
  766. end_l_libs:
  767. ;---------------------------------------------------------------------
  768. align 4
  769. OpenDialog_data:
  770. .type                   dd 1    ; Save
  771. .procinfo               dd procinfo     ;+4
  772. .com_area_name          dd communication_area_name      ;+8
  773. .com_area               dd 0    ;+12
  774. .opendir_pach           dd temp_dir_pach        ;+16
  775. .dir_default_pach       dd communication_area_default_pach      ;+20
  776. .start_path             dd open_dialog_path     ;+24
  777. .draw_window            dd draw_window  ;+28
  778. .status                 dd 0    ;+32
  779. .openfile_pach          dd fname_buf    ;+36
  780. .filename_area          dd filename_area        ;+40
  781. .filter_area            dd Filter
  782. .x:
  783. .x_size                 dw 420 ;+48 ; Window X size
  784. .x_start                dw 10 ;+50 ; Window X position
  785. .y:
  786. .y_size                 dw 320 ;+52 ; Window y size
  787. .y_start                dw 10 ;+54 ; Window Y position
  788.  
  789. communication_area_name:
  790.         db 'FFFFFFFF_open_dialog',0
  791. open_dialog_path:
  792. if __nightbuild eq yes
  793.         db '/sys/MANAGERS/opendial',0
  794. else
  795.         db '/sys/File Managers/opendial',0
  796. end if
  797. communication_area_default_pach:
  798.         db '/rd0/1/',0
  799.  
  800. Filter:
  801. dd      Filter.end - Filter
  802. .1:
  803. db      'MGB',0
  804. .end:
  805. db      0
  806.  
  807. start_temp_file_name:   db 'pattern.mgb',0
  808.  
  809. path4   db '/rd/1/pattern.mgb',0
  810. ;---------------------------------------------------------------------
  811. align 4
  812. params_f73:
  813. ; destination
  814. .offset_X_dest  dd 0    ; +0
  815. .offset_Y_dest  dd 0    ; +4
  816. .width_dest     dd 90   ; +8
  817. .height_dest    dd 123  ; +12
  818. ; source
  819. .offset_X_src   dd 0    ; +16
  820. .offset_Y_src   dd 0    ; +20
  821. .width_src      dd 90   ; +24
  822. .height_src     dd 123  ; +28
  823. ; other
  824. .pointer        dd 0    ; 90*4  ; +32
  825. .row_size       dd 90*4 ; +36
  826. ;---------------------------------------------------------------------
  827. align 4
  828. ProcLib_import:
  829. OpenDialog_Init         dd aOpenDialog_Init
  830. OpenDialog_Start        dd aOpenDialog_Start
  831. ;OpenDialog__Version    dd aOpenDialog_Version
  832.         dd 0
  833.         dd 0
  834. aOpenDialog_Init        db 'OpenDialog_init',0
  835. aOpenDialog_Start       db 'OpenDialog_start',0
  836. ;aOpenDialog_Version    db 'Version_OpenDialog',0
  837. ;---------------------------------------------------------------------
  838. align 4
  839. Box_lib_import:
  840. ;init_lib               dd a_init
  841. ;version_lib            dd a_version
  842.  
  843.  
  844. edit_box_draw           dd aEdit_box_draw
  845. edit_box_key            dd aEdit_box_key
  846. edit_box_mouse          dd aEdit_box_mouse
  847. ;version_ed             dd aVersion_ed
  848.  
  849. ;check_box_draw         dd aCheck_box_draw
  850. ;check_box_mouse        dd aCheck_box_mouse
  851. ;version_ch             dd aVersion_ch
  852.  
  853. ;option_box_draw        dd aOption_box_draw
  854. ;option_box_mouse       dd aOption_box_mouse
  855. ;version_op             dd aVersion_op
  856.  
  857. ;scrollbar_ver_draw     dd aScrollbar_ver_draw
  858. ;scrollbar_ver_mouse    dd aScrollbar_ver_mouse
  859. ;scrollbar_hor_draw     dd aScrollbar_hor_draw
  860. ;scrollbar_hor_mouse    dd aScrollbar_hor_mouse
  861. ;version_scrollbar      dd aVersion_scrollbar
  862.  
  863. ;dinamic_button_draw    dd aDbutton_draw
  864. ;dinamic_button_mouse   dd aDbutton_mouse
  865. ;version_dbutton        dd aVersion_dbutton
  866.  
  867. ;menu_bar_draw          dd aMenu_bar_draw
  868. ;menu_bar_mouse         dd aMenu_bar_mouse
  869. ;menu_bar_activate      dd aMenu_bar_activate
  870. ;version_menu_bar       dd aVersion_menu_bar
  871.  
  872. ;FileBrowser_draw       dd aFileBrowser_draw
  873. ;FileBrowser_mouse      dd aFileBrowser_mouse
  874. ;FileBrowser_key        dd aFileBrowser_key
  875. ;Version_FileBrowser    dd aVersion_FileBrowser
  876.  
  877. ;PathShow_prepare       dd sz_PathShow_prepare
  878. ;PathShow_draw          dd sz_PathShow_draw
  879. ;Version_path_show      dd szVersion_path_show
  880.                         dd 0
  881.                         dd 0
  882.  
  883. ;a_init                 db 'lib_init',0
  884. ;a_version              db 'version',0
  885.  
  886. aEdit_box_draw          db 'edit_box',0
  887. aEdit_box_key           db 'edit_box_key',0
  888. aEdit_box_mouse         db 'edit_box_mouse',0
  889. ;aVersion_ed            db 'version_ed',0
  890.  
  891. ;aCheck_box_draw        db 'check_box_draw',0
  892. ;aCheck_box_mouse       db 'check_box_mouse',0
  893. ;aVersion_ch            db 'version_ch',0
  894.  
  895. ;aOption_box_draw       db 'option_box_draw',0
  896. ;aOption_box_mouse      db 'option_box_mouse',0
  897. ;aVersion_op            db 'version_op',0
  898.  
  899. ;aScrollbar_ver_draw    db 'scrollbar_v_draw',0
  900. ;aScrollbar_ver_mouse   db 'scrollbar_v_mouse',0
  901. ;aScrollbar_hor_draw    db 'scrollbar_h_draw',0
  902. ;aScrollbar_hor_mouse   db 'scrollbar_h_mouse',0
  903. ;aVersion_scrollbar     db 'version_scrollbar',0
  904.  
  905. ;aDbutton_draw          db 'dbutton_draw',0
  906. ;aDbutton_mouse         db 'dbutton_mouse',0
  907. ;aVersion_dbutton       db 'version_dbutton',0
  908.  
  909. ;aMenu_bar_draw         db 'menu_bar_draw',0
  910. ;aMenu_bar_mouse                db 'menu_bar_mouse',0
  911. ;aMenu_bar_activate     db 'menu_bar_activate',0
  912. ;aVersion_menu_bar      db 'version_menu_bar',0
  913.  
  914. ;aFileBrowser_draw      db 'FileBrowser_draw',0
  915. ;aFileBrowser_mouse     db 'FileBrowser_mouse',0
  916. ;aFileBrowser_key       db 'FileBrowser_key',0
  917. ;aVersion_FileBrowser   db 'version_FileBrowser',0
  918.  
  919. ;sz_PathShow_prepare    db 'PathShow_prepare',0
  920. ;sz_PathShow_draw       db 'PathShow_draw',0
  921. ;szVersion_path_show    db 'version_PathShow',0
  922. ;---------------------------------------------------------------------
  923. ; for EDITBOX
  924. align 4
  925. name_editboxes:
  926. edit1 edit_box 200,10,30,0xffffff,0xbbddff,0,0,0,255,comment_string_1,mouse_dd,ed_focus+ed_always_focus,0
  927. name_editboxes_end:
  928. ;---------------------------------------------------------------------
  929.  
  930. IM_END:
  931. align 4
  932. mouse_dd        rd 1
  933. area_for_f36    rd 1
  934. dwTestEndTime   rd 1
  935. dwMainPID       rd 1
  936. ;-----------------------------------------------------------------------------
  937. start_x         rd 1
  938. start_y         rd 1
  939. size_x          rd 1
  940. size_y          rd 1
  941. offset_x        rd 1
  942. ;---------------------------------------------------------------------
  943. textarea:
  944.         rb 8
  945. ;---------------------------------------------------------------------
  946. comment_string_1:
  947.         rb 44
  948. ;---------------------------------------------------------------------
  949. comment_string_2:
  950.         rb 44
  951. ;---------------------------------------------------------------------
  952. mgb_data:
  953.         rb 100
  954. ;---------------------------------------------------------------------
  955. procinfo:
  956.         rb 1024
  957. ;---------------------------------------------------------------------
  958. cur_dir_path:
  959.         rb 4096
  960. ;---------------------------------------------------------------------
  961. library_path:
  962.         rb 4096
  963. ;---------------------------------------------------------------------
  964. temp_dir_pach:
  965.         rb 4096
  966. ;---------------------------------------------------------------------
  967. fname_buf:
  968.         rb 4096
  969. ;---------------------------------------------------------------------
  970. filename_area:
  971.         rb 256
  972. ;---------------------------------------------------------------------
  973.         rb 4096
  974. thread_stack2:
  975. ;---------------------------------------------------------------------
  976.         rb 4096
  977. thread_stack1:
  978. ;---------------------------------------------------------------------
  979.         rb 4096
  980.         rb 0x2884       ; for F73 image size 123*90*4
  981. stacktop:
  982. I_END:
  983.