Subversion Repositories Kolibri OS

Rev

Rev 535 | Rev 750 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 535 Rev 543
Line 1... Line 1...
1
$Revision: 535 $
1
$Revision: 543 $
2
;-------------------------------------------------------------------------
2
;-------------------------------------------------------------------------
3
;
3
;
4
;  File path partial substitution (according to configuration)
4
;  File path partial substitution (according to configuration)
5
;
5
;
6
;
6
;
Line 25... Line 25...
25
sysdir_path     rb      64
25
sysdir_path     rb      64
26
tmp_file_name_table dd  ?
26
tmp_file_name_table dd  ?
27
endg
27
endg
Line 28... Line 28...
28
 
28
 
29
; use bx_from_load and init system directory /sys
29
; use bx_from_load and init system directory /sys
-
 
30
proc Parser_params
-
 
31
locals
-
 
32
  buff db 4 dup(?)		; for test cd
30
Parser_params:
33
endl
31
  mov eax,[OS_BASE+0x10000+bx_from_load]
34
  mov eax,[OS_BASE+0x10000+bx_from_load]
32
  mov ecx,sysdir_path
35
  mov ecx,sysdir_path
33
  mov [ecx-64],dword 'sys'
36
  mov [ecx-64],dword 'sys'
34
  cmp al,'r' ; if ram disk
37
  cmp al,'r' ; if ram disk
35
  jnz @f
38
  jnz @f
36
  mov [ecx],dword 'RD/?'
39
  mov [ecx],dword 'RD/?'
37
  mov [ecx+3],byte ah
40
  mov [ecx+3],byte ah
38
  mov [ecx+4],byte 0
41
  mov [ecx+4],byte 0
39
  ret
42
  ret
-
 
43
@@:
-
 
44
  cmp al,'m' ; if ram disk
-
 
45
  jnz @f
-
 
46
  mov [ecx],dword 'CD?/'	; if cd disk {m}
-
 
47
  mov [ecx+4],byte '1'
-
 
48
  mov [ecx+5],dword '/KOL'
-
 
49
  mov [ecx+9],dword 'IBRI'
-
 
50
  mov [ecx+13],byte 0
-
 
51
.next_cd:
-
 
52
  mov [ecx+2],byte ah
-
 
53
  inc ah
-
 
54
  cmp ah,'5'
-
 
55
  je  .not_found_cd
-
 
56
  lea edx,[buff]
-
 
57
  pushad
-
 
58
  stdcall read_file,read_firstapp,edx,0,4
-
 
59
  popad
-
 
60
  cmp [edx],dword 'MENU'
-
 
61
  jne .next_cd
-
 
62
  jmp .ok
-
 
63
  
40
@@:
64
@@:
41
  sub al,49
65
  sub al,49
42
  mov [ecx],dword 'HD?/'	; if hard disk
66
  mov [ecx],dword 'HD?/'	; if hard disk
43
  mov [ecx+2],byte al
67
  mov [ecx+2],byte al
44
  mov [ecx+4],byte ah
68
  mov [ecx+4],byte ah
45
  mov [ecx+5],dword '/KOL'
69
  mov [ecx+5],dword '/KOL'
46
  mov [ecx+9],dword 'IBRI'
70
  mov [ecx+9],dword 'IBRI'
-
 
71
  mov [ecx+13],byte 0
-
 
72
.ok:
47
  mov [ecx+13],byte 0
73
.not_found_cd:
-
 
74
  ret
Line 48... Line 75...
48
  ret
75
endp
49
 
76
 
50
proc load_file_parse_table
77
proc load_file_parse_table
51
  stdcall kernel_alloc,0x1000
78
  stdcall kernel_alloc,0x1000