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 |