Subversion Repositories Kolibri OS

Rev

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

  1.  
  2. ;
  3. ;   Compile with flat assembler
  4. ;   Программка позволяющая проигрывать плейлист
  5. ;   Разработал:   ДедОк  :)
  6.  
  7. use32
  8.  
  9.     org    0x0
  10.  
  11.             db     'MENUET01'       ; 8 byte id
  12.             dd     0x01             ; header version
  13.             dd     START            ; start of code
  14.             dd     I_END            ; size of image
  15.             dd     0x25000           ; memory for app
  16.             dd     0x20000           ; esp
  17.             dd     playlist,  0x0
  18.  
  19. include '..\..\macros.inc'
  20.  
  21. START:                     ; start of execution
  22. or   [trig_sys],40h
  23. call scandr
  24. jmp  mmm.seach
  25. still:
  26.     not   [trig_sys]
  27.     or   [trig_sys],400h
  28.     not   [trig_sys]
  29.     or   [trig_sys],200h
  30.     call enproc
  31.     call delproc
  32.     mov  eax,23                  ; wait here for event
  33.     mov  ebx,20
  34.     mcall
  35.     cmp  eax,1                  ; redraw request ?
  36.     je   red
  37.     cmp  eax,3                  ; button in buffer ?
  38.     je  button
  39.     test [trig_sys],200h
  40.     jz   next_song
  41.     jmp  still
  42. next_song:
  43.     add  [poz_butt],1
  44.     movzx eax,[poz_song]
  45.     add  eax,1
  46.     mov  [poz_song],al
  47.     mov  dx,255
  48.     mul  dx
  49.     mov  [song_poz], eax
  50.     movzx eax,[poz_song]
  51.     sub  eax,1
  52.     cmp  [song_count],eax
  53.     ja   .dgo
  54.     mov  [poz_song],1
  55.     mov  [song_poz],255
  56.     mov  [poz_butt],6
  57. .dgo:
  58.     call  load_song
  59.     call procskan
  60.     call start
  61.     or   [trig_sys],200h
  62.     call draw_window
  63.     jmp  still
  64. red:
  65.     call draw_window
  66.     jmp  still
  67. button:                       ; button
  68.     mov   eax,17
  69.     mcall
  70.     cmp ah,1
  71.     je  close
  72.     cmp ah,2
  73.     je  mmm
  74.     cmp ah,3
  75.     je  mma
  76.     cmp ah,4
  77.     je  mmd
  78.     cmp ah,5
  79.     je  mmf
  80.     cmp ah,38
  81.     jb  mma
  82.     ret
  83. close:
  84.     mov  eax,-1
  85.     mcall
  86. mma:
  87.     mov [poz_butt],ah
  88.     mov [poz_song],ah
  89.     sub [poz_song],5
  90.     movzx eax,[poz_song]
  91.     add  eax,[sme]
  92.     mov  [poz_song],al
  93.     mov  dx,255
  94.     mul  dx
  95.     mov  [song_poz], eax
  96.     call  load_song
  97.     call procskan
  98.     call start
  99.     or   [trig_sys],200h
  100.     call draw_window
  101.     jmp still
  102. mmw:
  103.     mov  ebx,file_info2
  104.     mov  ecx,[razm_str]
  105.     add  dword [ebx+4],ecx
  106.     or   [trig_sys],40h
  107.     jmp  mmm.seach
  108.     ret
  109. mmm:
  110. .seach:
  111.     call getstring
  112.     call get_drive
  113.     call put_db
  114.     call draw_window
  115.     test [trig_sys],04h
  116.     jz   mmw
  117.     jmp  still
  118. mmd:
  119.     cmp  [poz_db3],510
  120.     jb   .emd
  121.     sub  [poz_db3],255
  122.     add  [poz_butt],1
  123.     sub  [sme],1
  124. .emd:
  125.     call draw_window
  126.     jmp  still
  127. mmf:
  128.     add  [poz_db3],255
  129.     sub  [poz_butt],1
  130.     add  [sme],1
  131.     call draw_window
  132.     jmp  still
  133. procskan:
  134.     mov  [num_proc],255
  135. qqqqq:
  136.     mov  eax,9
  137.     mov  ebx,pib
  138.     mov  ecx, [num_proc]
  139.     mcall
  140.     cld
  141.     lea si,[pib.process_name]
  142.     lea di,[minus]
  143.     mov cx,7
  144.     rep cmps byte [si],[di]
  145.     jcxz mat
  146.     sub  [num_proc],1
  147.     cmp  [num_proc],1
  148.     jne  qqqqq
  149.     ret
  150. mat:
  151.     mov eax,18
  152.     mov ebx,2
  153.     mov ecx,[num_proc]
  154.     mcall
  155.     jmp  procskan
  156. scandr:
  157.     mov  eax,18
  158.     mov  ebx,11
  159.     mov  ecx,1
  160.     mov  edx,scan_rez
  161.     mcall
  162.     ret
  163. mountpl:
  164.     mov  cx,255
  165.     cld
  166.     lea  di,[fl]
  167.     mov  al,00h
  168.     repne stos byte [di]
  169.     cld
  170.     mov  cx,6
  171.     lea  si,[play_list]
  172.     lea  di,[fl]
  173.     rep movs byte [di],[si]
  174.     mov  cx,0
  175.     ret
  176. get_drive:
  177.     mov  al,byte[scan_rez+1]
  178.     mov  [my_draw],al
  179.     mov  [ns],48
  180.     cmp  [my_draw],0
  181.     jne  .c0
  182.     or   [trig_sys],01h
  183. .c0:
  184.     cmp  [my_draw],0x80
  185.     jb   .h0
  186.     sub  [my_draw],0x80
  187.     mov  [n_razd],1
  188.     mov  [nd],49
  189.     mov  al,[cd_0]
  190.     mov  [td],al
  191.     call  folscan
  192. .h0:
  193.     cmp  [trig_scan],1
  194.     je   ex1
  195.     cmp  [my_draw],0x40
  196.     jb   .c1
  197.     sub  [my_draw],0x40
  198.     mov  al,byte[scan_rez+2]
  199.     mov  [n_razd],al
  200.     add  al,48
  201.     mov  [nd],al
  202.     mov  al,[hd_0]
  203.     mov  [td],al
  204.     call  folscan
  205. .c1:
  206.     cmp  [trig_scan],1
  207.     je   ex1
  208.     cmp  [my_draw],0x20
  209.     jb   .h1
  210.     sub  [my_draw],0x20
  211.     mov  [n_razd],1
  212.     mov  [nd],49
  213.     mov  al,[cd_0]
  214.     mov  [ns],19
  215.     call  folscan
  216. .h1:
  217.     cmp  [trig_scan],1
  218.     je   ex1
  219.     cmp  [my_draw],0x10
  220.     jb   .c2
  221.     sub  [my_draw],0x10
  222.     mov  al,byte[scan_rez+3]
  223.     mov  [n_razd],al
  224.     add  al,48
  225.     mov  [nd],al
  226.     mov  al,[hd_0]
  227.     mov  [td],al
  228.     mov  [ns],49
  229.     call  folscan
  230. .c2:
  231.     cmp  [trig_scan],1
  232.     je   ex1
  233.     cmp  [my_draw],0x08
  234.     jb   .h2
  235.     sub  [my_draw],0x08
  236.     mov  [n_razd],1
  237.     mov  [nd],49
  238.     mov  al,[cd_0]
  239.     mov  [td],al
  240.     mov  [ns],50
  241.     call  folscan
  242. .h2:
  243.     cmp  [trig_scan],1
  244.     je   ex1
  245.     cmp  [my_draw],0x04
  246.     jb   .c3
  247.     sub  [my_draw],0x04
  248.     mov  al,byte[scan_rez+4]
  249.     mov  [n_razd],al
  250.     add  al,48
  251.     mov  [nd],al
  252.     mov  al,[hd_0]
  253.     mov  [td],al
  254.     mov  [ns],50
  255.     call folscan
  256. .c3:
  257.     cmp  [trig_scan],1
  258.      je  ex1
  259.     cmp  [my_draw],0x02
  260.     jb   .h3
  261.     sub  [my_draw],0x02
  262.     mov  [n_razd],1
  263.     mov  [nd],49
  264.     mov  al,[cd_0]
  265.     mov  [td],al
  266.     mov  [ns],51
  267.     call folscan
  268. .h3:
  269.     cmp  [trig_scan],1
  270.     je   ex1
  271.     cmp  [my_draw],0x01
  272.     jb   ex1
  273.     sub  [my_draw],0x01
  274.     mov  al,byte[scan_rez+5]
  275.     mov  [n_razd],al
  276.     add  al,48
  277.     mov  [nd],al
  278.     mov  al,[hd_0]
  279.     mov  [td],al
  280.     mov  [ns],51
  281.     call folscan
  282. ex1:
  283.     cmp  [fold],05h
  284.     jne  ext2
  285.     or   [trig_sys],04h
  286. ext2:
  287.     cmp  [fold],0Ah
  288.     jne  ext3
  289.     or   [trig_sys],08h
  290.     jmp  eext
  291. ext3:
  292.     mov  [trig_scan],0
  293.     not  [trig_sys]
  294.     or   [trig_sys],0Eh
  295.     not  [trig_sys]
  296. eext:
  297.     ret
  298. folscan:
  299.     cmp  [trig_scan],1
  300.     je   .out2
  301.     mov  eax,70
  302.     mov  ebx,file_info
  303.     mcall
  304.     mov  [fold],eax
  305.     cmp  [fold],0
  306.     jne  .out
  307.     mov  al,1
  308.     mov  [trig_scan],al
  309.     jmp  .out2
  310. .out:
  311.      mov  al,1
  312.     sub  [n_razd],al
  313.     mov  al,1
  314.     sub  [nd],al
  315.     cmp  [n_razd],0
  316.     jne  folscan
  317. .out2:
  318.     ret
  319. get_play:
  320.     mov  cx,255
  321.     lea  si,[floc]
  322.     lea  di,[playlist]
  323.     rep movs byte [di],[si]
  324.     mov  cx,0
  325. ret
  326. getstring:
  327.     mov  eax,70
  328.     mov  ebx,file_info2
  329.     mov  dword [ebx+12], 255
  330.     mov  dword [ebx+16],string1
  331.     mov  dword [ebx+21],playlist
  332.     mcall
  333.     cmp eax,6
  334.     jne .pro
  335.     or   [trig_sys],04h
  336.     call draw_window
  337.     jmp  still
  338. .pro:
  339.  
  340.     cmp  ebx,0xFFFFFFFF
  341.     je  .exit
  342.     call rus_m
  343.     cld
  344.     lea  di,[string1]
  345.     mov  cx,255
  346.     mov  al,0ah
  347.     repne  scas byte  [es:di]
  348.     je   .calc
  349.     mov [razm_str],0
  350.     mov  ebx,file_info2
  351.     add  dword [ebx+4], 255
  352.     or   [trig_sys],40h
  353.     jmp mmm.seach
  354. .calc:
  355.      mov  [razm_str],255
  356.      sub  [razm_str],ecx
  357. .kon:
  358.     mov  [razm_path],0
  359.     cld
  360.     lea  di,[string1]
  361.     mov  ecx,0
  362. .ppr:
  363.     cmp byte [es:di],70h
  364.     je  .s1
  365.     cmp byte [es:di],50h
  366.     je  .s1
  367.     add  ecx,1
  368.     add  di,1
  369.     cmp  ecx,[razm_str]
  370.     jb  .ppr
  371.     jmp .next
  372. .s1:
  373.     add  di,1
  374.     cmp  byte [es:di],33h
  375.     je   .s2
  376.     sub  di,1
  377.     jmp .next
  378.     ret
  379. .s2:
  380.  
  381.     or   [trig_sys],80h
  382.     mov  [razm_path],ecx
  383.     add  [razm_path],2
  384.  
  385. ;    mov  [ss2],0
  386.     cld
  387.     lea  di,[string1]
  388.     mov  cx,0
  389.     mov  [zzz],cx
  390. .ppre:
  391.     cmp byte [es:di],3Ah
  392.     je  .se1
  393.     add  cx,1
  394.     add  di,1
  395.     cmp  ecx,[razm_path]
  396.     jne  .ppre
  397.     jmp  .mount
  398. .se1:
  399.     add  di,1
  400.     cmp  byte [es:di],5Ch
  401.     je   .se2
  402.     sub  di,1
  403.     jmp  .mount
  404. .se2:
  405.     cmp  ecx,250
  406.     jb   .se3
  407.     mov  ecx,0
  408. .se3:
  409.     add  cx,2
  410. ;    mov  [ss2],cx
  411.     mov  [zzz],cx
  412. .mount:
  413.     movzx  ecx,[zzz]
  414.     cmp  ecx, [razm_path]
  415.     jb  .mount1
  416.     or   [trig_sys],04h
  417.     jmp  still
  418. .mount1:
  419.     mov  ecx,255
  420.     cld
  421.     lea  di,[fl]
  422.     mov  al,00h
  423.     repne stos byte [di]
  424.     cld
  425.     mov  ecx,[razm_path]
  426.     sub  cx,[zzz]
  427.     lea  si,[string1]
  428.     add  si,[zzz]
  429.     lea  di,[fl]
  430.     rep movs byte [di],[si]
  431.     mov  ecx,0
  432. .sl_m:
  433.     mov  ecx,0
  434.     lea  di,[fl]
  435. .cikl_mx:
  436.     mov  al,byte[di]
  437.     mov  [char_con],al
  438.     cmp  al,5Ch
  439.     je   .con_sl
  440.     jmp  .ext6
  441. .con_sl:
  442.     mov al,2Fh
  443. .ext6:
  444.     stos byte [di]
  445.     add  ecx,1
  446.     cmp  ecx,[razm_path]
  447.     jb  .cikl_mx
  448.  
  449. .exit:
  450.     ret
  451. .next:
  452.     not  [trig_sys]
  453.     or   [trig_sys],80h
  454.     not  [trig_sys]
  455.     mov  ebx,file_info2
  456.     mov  ecx,[razm_str]
  457.     add  dword [ebx+4],ecx
  458.     or   [trig_sys],40h
  459.     jmp mmm.seach
  460. rus_m:
  461.     test  [trig_sys],40h
  462.     jnz   ddff
  463.     ret
  464. ddff:
  465.     mov  ecx,0
  466.     lea  di,[string1]
  467. cicl_m:
  468.     mov  al,byte[di]
  469.     mov  [char_con],al
  470.     shr  al,4
  471.     cmp  al,0Eh
  472.     je   min_sor
  473.     cmp  al,0Ch
  474.     je   min_sor
  475.     cmp  al,0Dh
  476.     je   min_sor
  477.     cmp  al,0Fh
  478.     je   min_des
  479.     shl  al,4
  480.     mov  al,0
  481.     jmp  ext5
  482. min_sor:
  483.     sub  [char_con],40h
  484.     jmp  ext5
  485. min_des:
  486.      sub  [char_con],10h
  487.     jmp  ext5
  488. ext5:
  489.     mov  al,[char_con]
  490.     stos byte [di]
  491.     add  ecx,1
  492.     cmp  ecx,255
  493.     jb  cicl_m
  494.     not  [trig_sys]
  495.     or   [trig_sys],40h
  496.     not  [trig_sys]
  497.     ret
  498.  
  499. put_db:
  500.     test [trig_sys],80h
  501.     jz  .exit
  502.     add  [song_count],1
  503.     add  [poz_db],255
  504.     mov  ecx,255
  505.     cld
  506.     mov  ebx,[poz_db]
  507.     lea  di,[memlist+ebx]
  508.     mov  al,00h
  509.     repne stos byte [di]
  510.     cld
  511.     mov  ecx,255
  512.     lea  si,[floc]
  513.     mov  ebx,[poz_db]
  514.     lea  di,[memlist+ebx]
  515.     rep movs byte [di],[si]
  516.     mov  ecx,0
  517. .exit:
  518.     ret
  519. load_song:
  520.     cld
  521.     mov  ecx,255
  522.     lea  di,[song_path]
  523.     mov  ebx,[song_poz]
  524.     lea  si,[memlist+ebx]
  525.     rep movs byte [di],[si]
  526.     mov  ecx,0
  527.     ret
  528. start:
  529.     mov  eax,70
  530.     mov  ebx,folder_inf
  531.     mcall
  532.     ret
  533. delproc:
  534.     test [trig_sys],400h
  535.     jnz   .sdf
  536.     ret
  537. .sdf:
  538.        mov  [num_proc],255
  539. .fgf:
  540.     mov  eax,9
  541.     mov  ebx,pib
  542.     mov  ecx, [num_proc]
  543.     mcall
  544.     cld
  545.     lea si,[pib.process_name]
  546.     lea di,[minus]
  547.     mov cx,7
  548.     rep cmps byte [si],[di]
  549.     jcxz .qwer
  550.     sub  [num_proc],1
  551.     cmp  [num_proc],1
  552.     jne  .fgf
  553.      test [trig_sys],200h
  554.     ret
  555. .qwer:
  556.     mov  eax,[pib+process_information.cpu_usage]
  557.     mov  [q_takt],eax
  558.     cmp  [q_takt],200000
  559.     jb   .asdf
  560.     ret
  561. .asdf:
  562.     add   [count_err],1
  563.     cmp   [count_err],6
  564.     ja    .djbn
  565.     ret
  566. .djbn:
  567.     mov   [count_err],0
  568.     not   [trig_sys]
  569.     or   [trig_sys],200h
  570.     not   [trig_sys]
  571.     ret
  572. enproc:
  573.     mov  [num_proc],255
  574. .fgf:
  575.     mov  eax,9
  576.     mov  ebx,pib
  577.     mov  ecx, [num_proc]
  578.     mcall
  579.     cld
  580.     lea si,[pib.process_name]
  581.     lea di,[minus]
  582.     mov cx,7
  583.     rep cmps byte [si],[di]
  584.     jcxz .qwer
  585.     sub  [num_proc],1
  586.     cmp  [num_proc],1
  587.     jne  .fgf
  588.     ret
  589. .qwer:
  590.     or   [trig_sys],400h
  591.     ret
  592.  
  593. ;   *********************************************
  594. ;   *******  WINDOW DEFINITIONS AND DRAW ********
  595. ;   *********************************************
  596.  
  597. draw_window:
  598.     mov  eax,48
  599.     mov  ebx,3
  600.     mov  ecx,sc
  601.     mov  edx,sizeof.system_colors
  602.     mcall
  603.     mov  eax,12                    ; function 12:tell os about windowdraw
  604.     mov  ebx,1                     ; 1, start of draw
  605.     mcall
  606.                                    ; DRAW WINDOW
  607.     xor  eax,eax            ; function 0 : define and draw window
  608.     mov  ebx,100*65536+550         ; [x start] *65536 + [x size]
  609.     mov  ecx,100*65536+420          ; [y start] *65536 + [y size]
  610.     mov  edx,[sc.work]             ; color of work area RRGGBB,8->color gl
  611.     or   edx,0x33000000
  612.     mov  edi,title
  613.     mcall
  614.     mov  eax,4
  615.     mov  ebx,5*65536+5
  616.     mov  ecx,0xC0000000
  617.     mov  edx,label1
  618.     mov  edi,[sc.work]
  619.     mcall
  620.     mov  eax,4
  621.     mov  ebx,300*65536+5
  622.     mov  ecx,0xC0000000
  623.     mov  edx,label5
  624.     mov  edi,[sc.work]
  625.     mcall
  626.     mov  eax,4
  627.     mov  ebx,300*65536+15
  628.     mov  ecx,0xC0000000
  629.     mov  edx,label6
  630.     mov  edi,[sc.work]
  631.     mcall
  632.     mov  eax,4
  633.     mov  ebx,25*65536+35
  634.     mov  ecx,0xC00000dd
  635.     mov  edx,song_path
  636.     mov  edi,[sc.work]
  637.     mcall
  638.     mov  eax,4
  639.     mov  ebx,100*65536+5
  640.     mov  ecx,0xC0000000
  641.     mov  edx,playlist
  642.     mov  edi,[sc.work]
  643.     mcall
  644.     test [trig_sys],4h
  645.     jnz   .zam1
  646.     mov  eax,4
  647.     mov  ebx,5*65536+15
  648.     mov  ecx,0xC0000000
  649.     mov  edx,label3
  650.     mov  edi,[sc.work]
  651.     mcall
  652.     jmp  .zam2
  653. .zam1:
  654.     mov  eax,4
  655.     mov  ebx,5*65536+15
  656.     mov  ecx,0xC0000000
  657.     mov  edx,label2
  658.     mov  edi,[sc.work]
  659.     mcall
  660.     mov  eax,4
  661.     mov  ebx,5*65536+25
  662.     mov  ecx,0xC0000000
  663.     mov  edx,label4
  664.     mov  edi,[sc.work]
  665.     mcall
  666. .zam2:
  667.  
  668. ;    mov  eax,47
  669. ;    mov  esi,0x50000000
  670. ;    mov  ecx, [trig_sys]
  671. ;    mov  edi,[sc.work]
  672. ;    mov  ebx,0x00080100
  673. ;    mov  edx,385*65536+25
  674. ;    mcall
  675.     mov  eax,47
  676.     mov  esi,0x50000000
  677.     mov  ecx, [song_count]
  678.     mov  edi,[sc.work]
  679.     mov  ebx,0x00030000
  680.     mov  edx,500*65536+5
  681.     mcall
  682.     mov  eax,47
  683.     mov  esi,0x50000000
  684.     movzx  ecx, [poz_song]
  685.     mov  edi,[sc.work]
  686.     mov  ebx,0x00030000
  687.     mov  edx,500*65536+15
  688.     mcall
  689.     mov  [bbut],32
  690.     mov  [poz_but],48*65536+10
  691.     mov  edx,6
  692. butt1:
  693.     mov  ebx,0*65536+20
  694.     mov  ecx,[poz_but]
  695.     mov  esi,[color1]
  696.     movzx  eax,[poz_butt]
  697.     cmp  edx,eax
  698.     jne  .uuu
  699.     mov  esi,[color2]
  700. .uuu:
  701.     mov  eax,8
  702.     mcall
  703.     add  edx,1
  704.     add  [poz_but],10*65536
  705.     sub  [bbut],1
  706.     cmp  [bbut],0
  707.     jne   butt1
  708.     mov  eax,8
  709.     mov  ebx,525*65536+15
  710.     mov  ecx,45*65536+15
  711.     mov  esi,0x00aaaadd
  712.     mov  edx,4
  713.     mcall
  714.     mov  eax,8
  715.     mov  ebx,525*65536+15
  716.     mov  ecx,365*65536+15
  717.     mov  esi,0x00aaaadd
  718.     mov  edx,5
  719.     mcall
  720.     mov  [ai],32
  721.     mov  [list_poz],25*65536+50
  722.     mov  ebx,[poz_db3]
  723.     mov  [poz_db2],ebx
  724. list:
  725.     mov  eax,4
  726.     mov  ecx,0xC0000000
  727.     mov  ebx,[poz_db2]
  728.     lea  edx,[memlist+ebx]
  729.     mov  ebx, [list_poz]
  730.     mov  edi,[sc.work]
  731.     mcall
  732.     add  [list_poz],10
  733.     add  [poz_db2],255
  734.     sub  [ai],1
  735.     cmp  [ai],0
  736.     ja  list
  737.     mov  eax,12                    ; function 12:tell os about windowdraw
  738.     mov  ebx,2                     ; 2, end of draw
  739.     mcall
  740.     ret
  741.  
  742.  
  743.  
  744. ; DATA AREA
  745.  
  746.  
  747. title:         db   'Проигрываем плейлист v 0.19 :)',0
  748. play_list:     db   '1.kpl',0
  749. cd_0:          db   'c',0
  750. hd_0:          db   'h',0
  751. label1:        db   'Файл плейлиста:',0
  752. label2:        db   'сканирование закончено... :)            ',0
  753. label3:        db   'Подождите, пожалуйста, идёт сканирование',0
  754. label4:        db   'Воспроизводимый файл:',0
  755. label5:        db   'Всего файлов в плейлисте найдено:',0
  756. label6:        db   'Номер воспроизводимого файла:',0
  757. minus:         db   'ac97snd',0
  758. player:        db   '/rd/1/ac97snd' ,0
  759. my_draw        db   0
  760. n_razd         db   0
  761. trig_scan      db   0
  762. char_con       db   0
  763. poz_butt       db   0
  764. poz_song       db   0
  765. count_err      dd   0
  766. num_proc       dd   0
  767. q_takt         dd   0
  768. razm_str       dd   0
  769. fold           dd   0
  770. razm_path      dd   0
  771. trig_sys       dd   0
  772. poz_db         dd   0
  773. poz_db2        dd   0
  774. poz_db3        dd   255
  775. song_poz       dd   0
  776. list_poz       dd   5*65536+50
  777. song_count     dd   0
  778. ai             dd   0
  779. st_r           dd   0
  780. bbut           dd   0
  781. poz_but        dd   0
  782. sme            dd   0
  783. color1         dd   0x006666dd
  784. color2         dd   0x00dddddd
  785. ss2            dd   0
  786. zzz            dw   22
  787. scan_rez:
  788.                db   0
  789.                db   0
  790.                db   0
  791.                db   0
  792.                db   0
  793.                db   0
  794.                db   0
  795.                db   0
  796.                db   0
  797.                db   0
  798. floc:
  799. pc:            db   '/'
  800. td:            db   'h'
  801. dr:            db   'd'
  802. ns             db   48
  803. vc:            db   '/'
  804. nd             db   48
  805. ks:            db   '/'
  806. fl:
  807.                rb   255
  808. playlist       rb   255
  809. song_path      rb   255
  810. folder_inf:
  811.                dd   7
  812.                dd   0
  813.                dd   song_path
  814.                dd   0
  815.                dd   0
  816.                db   0
  817.                dd   player
  818. file_info:
  819.                dd   0
  820.                dd   0
  821.                dd   0
  822.                dd   0
  823.                dd   0
  824.                db   0
  825.                dd   floc
  826. file_info2:
  827.                dd   0
  828.                dd   0
  829.                dd   0
  830.                dd   0
  831.                dd   0
  832.                db   0
  833.                dd   0
  834. string1        rb   255
  835.  
  836. I_END:
  837.  
  838.  
  839.  
  840. temp dd ?
  841. sc system_colors
  842. pib process_information
  843. memlist        rb   65536
  844.  
  845.