Subversion Repositories Kolibri OS

Rev

Rev 7834 | Rev 8346 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;---------------------------------------------------------------------
  2. aQuestion       db '?',0
  3. caption_str     db 'KPack - Kolibri Packer',0
  4. buttons1names   db ' InFile:'
  5.                 db 'OutFile:'
  6.                 db '   Path:'
  7. aCompress       db ' Compress',0
  8. aDecompress     db 'Decompress',0
  9. definoutname    db 0
  10. defpath         db '/rd/1',0
  11. kernel_name db 'kernel.mnt',0
  12. ;curedit                dd 0
  13.  
  14. info_str        db 'KPack - Kolibri Packer, version 0.22',10
  15.                 db 'Uses LZMA v4.32 compression library',10,10
  16. info_len        = $ - info_str
  17. usage_str       db 'Written by diamond in 2006-2009 specially for KolibriOS',10
  18.                 db 'Disassembled code, using Box_Lib, Proc_Lib and OpenDialog',10
  19.                 db 'by Mario79, 2010',10
  20.                 db 'LZMA is copyright (c) 1999-2005 by Igor Pavlov',10
  21.                 db 10
  22.                 db 'Command-line usage:',10
  23.                 db '   path_to_infile with zero',10
  24.                 db '   use <-ker> key to pack kernel',10
  25.                 db 10
  26.                 db 'Window usage:',10
  27.                 db '   Select file with PATH-button or set all data in the',10
  28.                 db '   text fields manually, then press an appropriate button',10
  29. usage_len       = $ - usage_str
  30. already_str     db 'Already packed kernel.mnt file',10
  31. already_len     = $ - already_str
  32. notkernel_str   db 'This is not kernel.mnt file',10
  33. notkernel_len   = $ - notkernel_str
  34. errload_str     db 'Cannot load input file',10
  35. errload_len     = $ - errload_str
  36. outfileerr_str  db 'Cannot save output file',10
  37. outfileerr_len  = $ - outfileerr_str
  38. nomem_str       db 'No memory',10
  39. nomem_len       = $ - nomem_str
  40. too_big_str     db 'failed, output is greater than input.',10
  41. too_big_len     = $ - too_big_str
  42. compressing_str db 'Compressing ... '
  43. compressing_len = $ - compressing_str
  44. lzma_memsmall_str db    'Warning: not enough memory for default LZMA settings,',10
  45.                 db '         will use less dictionary size',10
  46. lzma_memsmall_len = $ - lzma_memsmall_str
  47. notpacked_str   db 'Input file is not packed with KPack!',10
  48. notpacked_len   = $ - notpacked_str
  49. unpacked_ok     db 'Unpacked successful',10
  50. unpacked_len    = $ - unpacked_ok
  51.  
  52. done_str        db 'OK! Compression ratio: '
  53. ratio           dw      '00'
  54.                 db '%',10
  55. done_len        = $ - done_str
  56. ;---------------------------------------------------------------------
  57. align 4
  58. LiteralNextStates:
  59. db 0,0,0,0,1,2,3,4,5,6,4,5
  60. MatchNextStates:
  61. db 7,7,7,7,7,7,7,10,10,10,10,10
  62. RepNextStates:
  63. db 8,8,8,8,8,8,8,11,11,11,11,11
  64. ShortRepNextStates:
  65. db 9,9,9,9,9,9,9,11,11,11,11,11
  66. ;---------------------------------------------------------------------
  67. align 4
  68. ProcLib_import:
  69. OpenDialog_Init         dd aOpenDialog_Init
  70. OpenDialog_Start        dd aOpenDialog_Start
  71. ;OpenDialog__Version    dd aOpenDialog_Version
  72.         dd      0
  73.         dd      0
  74. aOpenDialog_Init        db 'OpenDialog_init',0
  75. aOpenDialog_Start       db 'OpenDialog_start',0
  76. ;aOpenDialog_Version    db 'Version_OpenDialog',0
  77. ;---------------------------------------------------------------------
  78. align   4
  79. Box_lib_import:
  80. edit_box_draw           dd aEdit_box_draw
  81. edit_box_key            dd aEdit_box_key
  82. edit_box_mouse          dd aEdit_box_mouse
  83.  
  84. init_checkbox           dd aInit_checkbox
  85. check_box_draw          dd aCheck_box_draw
  86. check_box_mouse         dd aCheck_box_mouse
  87.  
  88.         dd 0
  89.         dd 0
  90.  
  91. aEdit_box_draw          db 'edit_box',0
  92. aEdit_box_key           db 'edit_box_key',0
  93. aEdit_box_mouse         db 'edit_box_mouse',0
  94.  
  95. aInit_checkbox          db 'init_checkbox2',0
  96. aCheck_box_draw         db 'check_box_draw2',0
  97. aCheck_box_mouse        db 'check_box_mouse2',0
  98.  
  99. ;---------------------------------------------------------------------
  100. head_f_i:
  101. head_f_l        db 'System error',0
  102.  
  103. err_message_found_lib1  db 'box_lib.obj - Not found!',0
  104. err_message_found_lib2  db 'proc_lib.obj - Not found!',0
  105.  
  106. err_message_import1     db 'box_lib.obj - Wrong import!',0
  107. err_message_import2     db 'proc_lib.obj - Wrong import!',0
  108.  
  109. system_dir_Boxlib       db '/sys/lib/box_lib.obj',0
  110. system_dir_ProcLib      db '/sys/lib/proc_lib.obj',0
  111. ;---------------------------------------------------------------------
  112. align 4
  113. l_libs_start:
  114.  
  115. library01  l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
  116. err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
  117.  
  118. library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
  119. err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
  120.  
  121. load_lib_end:
  122. ;---------------------------------------------------------------------
  123. align 4
  124. OpenDialog_data:
  125. .type                   dd 0
  126. .procinfo               dd procinfo     ;+4
  127. .com_area_name          dd communication_area_name      ;+8
  128. .com_area               dd 0    ;+12
  129. .opendir_pach           dd temp_dir_pach        ;+16
  130. .dir_default_pach       dd communication_area_default_pach      ;+20
  131. .start_path             dd open_dialog_path     ;+24
  132. .draw_window            dd draw_window  ;+28
  133. .status                 dd 0    ;+32
  134. .openfile_pach          dd fname_buf    ;+36
  135. .filename_area          dd filename_area        ;+40
  136. .filter_area            dd Filter
  137. .x:
  138. .x_size                 dw 420 ;+48 ; Window X size
  139. .x_start                dw 10 ;+50 ; Window X position
  140. .y:
  141. .y_size                 dw 320 ;+52 ; Window y size
  142. .y_start                dw 10 ;+54 ; Window Y position
  143.  
  144. communication_area_name:
  145.         db 'FFFFFFFF_open_dialog',0
  146. open_dialog_path:
  147. if __nightbuild eq yes
  148.     db '/sys/MANAGERS/opendial',0
  149. else
  150.     db '/sys/File Managers/opendial',0
  151. end if
  152. communication_area_default_pach:
  153.         db '/rd/1',0
  154.  
  155. path4   db '/rd/1/temp',0
  156.  
  157. Filter:
  158. dd      Filter.end - Filter.1
  159. .1:
  160. ;db     'BIN',0
  161. ;db     'DAT',0
  162. .end:
  163. db      0
  164.  
  165. WIN_W = 490
  166. WIN_H = 350
  167. LINE_H = 25
  168. RIGHT_BTN_W = 103
  169. EDIT_X = 76
  170. LOG_Y = LINE_H*3+5
  171. LOG_H = WIN_H-LOG_Y-9
  172.  
  173. start_temp_file_name:   db 'temp.bin',0
  174.  
  175. ;---------------------------------------------------------------------
  176. align 4
  177. edit1 edit_box WIN_W-EDIT_X-RIGHT_BTN_W-12, EDIT_X, 3,          0xffffff,\
  178.         0xA4C4E4, 0x80ff, 0, 0x10000000, 256, inname,  mouse_dd, 0, 11,11
  179. edit2 edit_box WIN_W-EDIT_X-RIGHT_BTN_W-12, EDIT_X, LINE_H+3,   0xffffff,\
  180.         0xA4C4E4, 0x80ff, 0, 0x10000000, 256, outname, mouse_dd, 0, 7,7
  181. edit3 edit_box WIN_W-EDIT_X-RIGHT_BTN_W-12, EDIT_X, LINE_H*2+3, 0xffffff,\
  182.         0xA4C4E4, 0x80ff, 0, 0x10000000, 256, path,    mouse_dd, 0, 6,6
  183. editboxes_end:
  184.  
  185. mouse_dd dd 0
  186. ;---------------------------------------------------------------------
  187.  
  188. check1 check_box2 ((WIN_W - RIGHT_BTN_W - 5) shl 16)+15, ((LINE_H*2+6) shl 16)+15, 6, 0xffffff,\
  189.         0x80ff, 0x10000000, check_text,ch_flag_top
  190. check1_end:
  191.  
  192. check_text db 'Kernel',0
  193. ;*********************************************************************
  194. ; Kerpack data
  195. ;*********************************************************************
  196. align 4
  197. fn70_read:
  198.                 dd      0
  199.                 dd      0
  200.                 dd      0
  201. insize3         dd      200*1024
  202. infile3         dd      infile
  203.                 db      0
  204.                 dd      fullname
  205.  
  206. align 4
  207. fn70_write:
  208.                 dd      2
  209.                 dd      0
  210.                 dd      0
  211. outsize3        dd      ?
  212. outfile3        dd      outfile
  213.                 db      0
  214.                 dd      fullname
  215. ;*********************************************************************