Subversion Repositories Kolibri OS

Rev

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

  1. format binary as "kex"
  2.  
  3. use32
  4.         org     0x0
  5.         db      'MENUET01'      
  6.         dd      0x01            
  7.         dd      START          
  8.         dd      IM_END          
  9.         dd      MEM  
  10.         dd      MEM
  11.         dd      0
  12.         dd      0
  13.  
  14. include '../../../../macros.inc'
  15. include '../../../../proc32.inc'
  16. include '../../../../KOSfuncs.inc'
  17. include '../../../../dll.inc'
  18. include '../mtar.inc'
  19. ;include '../../../../debug-fdo.inc'
  20.  
  21. ;__DEBUG__               = 1
  22. ;__DEBUG_LEVEL__         = 2  
  23.  
  24. START:
  25.         stdcall dll.Load, @IMPORT ; Имортироуем функции из mtar.obj
  26.         test    eax, eax
  27.         jnz     exit
  28.      
  29.         ccall [mtar_init] ; Инициализируем библиотеку (на самом деле подгружается libc.obj
  30.         ccall [mtar_open], tar, tar_fname, tar_fmode ; Создаём новый файл 'test.tar'
  31.         ccall [mtar_write_file_header], tar, test1_txt , str1_len ; Создаём внутри 'test.tar' пустрой файл 'test1.txt'
  32.        
  33.         ccall [mtar_write_data], tar, str1,  str1_len ; Записываем данныев в этот файл
  34.        
  35.         ccall [mtar_finalize], tar  ; Указываем что больше с tar работать не будем
  36.         ccall [mtar_close], tar ; Закрываем 'test.tar'
  37.        
  38. exit:
  39.         mcall   SF_TERMINATE_PROCESS ; Выходим из программы
  40.        
  41. ; data
  42.  
  43. str1 db 'Hello world!', 0
  44. str1_len = $ - str1
  45.  
  46. str2 db 'Goodbye world!', 0
  47.        
  48. tar_fname db 'test.tar', 0
  49. tar_fmode db 'w', 0
  50.  
  51. test1_txt db 'test1.txt', 0
  52.  
  53. tar rb 32
  54.  
  55. align 4
  56.  
  57. @IMPORT:
  58. library mtar,   'mtar.obj'
  59. import  mtar,   \
  60.         mtar_init, 'mtar_init', \
  61.         mtar_open, 'mtar_open', \
  62.         mtar_write_file_header, 'mtar_write_file_header', \
  63.         mtar_write_data, 'mtar_write_data', \
  64.         mtar_finalize, 'mtar_finalize', \
  65.         mtar_close, 'mtar_close'
  66.  
  67. IM_END:
  68. align   4
  69. rb      4096    ; stack
  70. MEM:  
  71.