Subversion Repositories Kolibri OS

Rev

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

  1. ;-------------------------------------------------------------------------
  2. ;
  3. ;    ” ©« ª®­ä¨£ãà æ¨¨
  4. ;
  5. ;
  6. ;     SPraid
  7. ;
  8. ;-------------------------------------------------------------------------
  9.  
  10. conf_file_loaded: db 0                  ; ä« £ § £à㧪¨ ª®­ä¨£ 
  11.  
  12. ; § £à㧪  ¨­¨ ä ©«  ¢ ¡¨¡«¨®â¥ªã  
  13. proc load_conf_file
  14.   pushad
  15.   invoke ini.load,.fname
  16.   mov [conf_file_loaded],byte 1
  17.   popad
  18.   ret
  19.   .fname db '%sys%/sys.conf',0
  20. endp
  21.  
  22.  
  23. proc set_kernel_conf
  24. locals
  25.   par db 30 dup(?)
  26. endl
  27.   pushad
  28.   ;[gui]
  29.   ;mouse_speed
  30.   mov eax,ebp
  31.   add eax,par-ebp
  32.   push eax
  33.   invoke ini.get_str, ugui, ugui_mouse_speed, eax, ugui_mouse_speed_def        
  34.   pop eax
  35.   stdcall strtoint,eax
  36.   push eax
  37.   pop edx
  38.   call _mouse_speed
  39.  
  40.   popad
  41.   ret
  42.  
  43.   ;mouse_delay
  44.   mov eax,ebp
  45.   add eax,par-ebp
  46.   push eax
  47.   invoke ini.get_str, ugui, ugui_mouse_delay, eax, ugui_mouse_delay_def
  48.   pop eax
  49.   stdcall strtoint,eax
  50.   push eax
  51.   pop edx
  52.   call _mouse_delay
  53.  
  54.   ;[dev]
  55.   ;sb16
  56.   mov eax,ebp
  57.   add eax,par-ebp
  58.   push eax
  59.   invoke ini.get_str, udev, udev_sb16, eax, udev_sb16_def
  60.   pop eax
  61.   stdcall strtoint,eax
  62.   push eax
  63.   pop ecx
  64.   call _sb16
  65.  
  66.   ;sound_dma
  67.   mov eax,ebp
  68.   add eax,par-ebp
  69.   push eax
  70.   invoke ini.get_str, udev, udev_sound_dma, eax, udev_sound_dma_def
  71.   pop eax
  72.   stdcall strtoint,eax
  73.   push eax
  74.   pop ecx
  75.   call _sound_dma  
  76.  
  77.  
  78.   ;midibase
  79.   mov eax,ebp
  80.   add eax,par-ebp
  81.   push eax
  82.   invoke ini.get_str, udev, udev_midibase, eax, udev_midibase_def
  83.   pop eax
  84.   stdcall strtoint,eax
  85.   push eax
  86.   pop ecx
  87.   call _midibase
  88.  
  89.   popad
  90.   ret
  91. endp
  92.  
  93. ugui db 'gui',0
  94. ugui_mouse_speed db 'mouse_speed',0
  95. ugui_mouse_speed_def db '2',0
  96. ugui_mouse_delay db 'mouse_delay',0
  97. ugui_mouse_delay_def db '0x00A',0
  98.  
  99. udev db 'dev',0
  100. udev_sb16 db 'sb16',0
  101. udev_sb16_def db '0x220',0
  102. udev_sound_dma db 'sound_dma',0
  103. udev_sound_dma_def db '1',0
  104. udev_midibase db 'midibase',0
  105. udev_midibase_def db '0x320',0
  106.  
  107. ; ª®­¢¥à祭¨¥ áâப¨ ¢ DWord ¢ eax (¯® ¢â®à®¬ã ᨬ¢®«ã ®¯à¥¤¥«ï¥â á¨á⥬ã áç¨á«¥­¨ï)
  108.      
  109. proc strtoint stdcall,strs
  110.   pushad
  111.  
  112.   mov eax,[strs]
  113.   inc eax
  114.   mov bl,[eax]
  115.   cmp bl,'x'
  116.   je .hex
  117.   cmp bl,'X'
  118.   je .hex
  119.   jmp .dec
  120. .hex:
  121.   inc eax
  122.   stdcall strtoint_hex,eax
  123.   jmp .exit
  124. .dec:
  125.   dec eax
  126.   stdcall strtoint_dec,eax
  127. .exit:
  128.   mov [esp+28],eax
  129.   popad
  130.   ret  
  131. endp
  132.  
  133. ; ª®­¢¥à祭¨¥ áâப¨ ¢ DWord ¢ eax ¤«ï ¤¥áïâ¨ç­®£®
  134. proc strtoint_dec stdcall,strs
  135.   pushad
  136.   xor edx,edx
  137.   ; ¯®¨áª ª®­æ 
  138.   mov esi,[strs]
  139. @@:
  140.   lodsb
  141.   or al,al
  142.   jnz @b
  143.   mov ebx,esi
  144.   mov esi,[strs]
  145.   dec ebx
  146.   sub ebx,esi
  147.   mov ecx,1
  148.  
  149. @@:
  150.   dec ebx
  151.   or ebx,ebx
  152.   jz @f
  153.   imul ecx,ecx,10  ; ¯®à冷ª
  154.   jmp @b
  155. @@:
  156.  
  157.  xchg ebx,ecx
  158.  
  159.  
  160.   xor ecx,ecx
  161.  
  162.  
  163. @@:  
  164.   xor eax,eax
  165.   lodsb
  166.   cmp al,0
  167.   je .eend
  168.  
  169.   sub al,30h
  170.   imul ebx
  171.   add ecx,eax
  172.   push ecx
  173.   xchg eax,ebx
  174.   mov ecx,10
  175.   div ecx
  176.   xchg eax,ebx
  177.   pop ecx
  178.   jmp @b
  179.  
  180. .eend:
  181.   mov [esp+28],ecx
  182.   popad
  183.   ret
  184. endp
  185.  
  186. ; ª®­¢¥à祭¨¥ áâப¨ ¢ DWord ¢ eax ¤«ï è¥á­ ¤æ â¨à¨ç­®£®
  187. proc strtoint_hex stdcall,strs
  188.   pushad
  189.   xor edx,edx
  190.  
  191.   mov esi,[strs]
  192.   mov ebx,1
  193.   add esi,1
  194.  
  195. @@:
  196.   lodsb
  197.   or al,al
  198.   jz @f
  199.   shl ebx,4
  200.   jmp @b
  201. @@:
  202.   xor ecx,ecx
  203.   mov esi,[strs]
  204.  
  205. @@:  
  206.   xor eax,eax
  207.   lodsb
  208.   cmp al,0
  209.   je .eend
  210.  
  211.   cmp al,'a'
  212.   jae .bm
  213.   cmp al,'A'
  214.   jae .bb
  215.   jmp .cc
  216. .bm:    ; 57h
  217.   sub al,57h
  218.   jmp .do
  219.  
  220. .bb:    ; 37h
  221.   sub al,37h
  222.   jmp .do
  223.  
  224. .cc:    ; 30h
  225.   sub al,30h
  226.  
  227. .do:  
  228.   imul ebx
  229.   add ecx,eax
  230.   shr ebx,4
  231.  
  232.   jmp @b
  233.  
  234. .eend:
  235.   mov [esp+28],ecx
  236.   popad
  237.   ret
  238. endp    
  239.  
  240.  
  241. ; ãáâ ­®¢ª¨ ¨§ setup
  242.  
  243. _mouse_speed:
  244.     mov  eax,18
  245.     mov  ebx,19
  246.     mov  ecx,1
  247.     int 0x40
  248.  ret
  249.  
  250. _mouse_delay:
  251.     mov  eax,18
  252.     mov  ebx,19
  253.     mov  ecx,3
  254.     int 0x40
  255.  ret
  256.  
  257. _sb16:
  258.     mov  eax,21
  259.     mov  ebx,4
  260.     int 0x40
  261.  ret
  262.    
  263. _sound_dma:
  264.     mov  eax,21
  265.     mov  ebx,10
  266.     int 0x40
  267.  ret
  268.  
  269.  
  270. _midibase:
  271.     mov  eax,21
  272.     mov  ebx,1
  273.     int 0x40
  274.  ret