Rev 321 | Rev 425 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 321 | Rev 412 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;**************************************************** |
1 | ;**************************************************** |
2 | ; ïîèñê ëîãè÷åñêèõ äèñêîâ íà îáíàðóæåííûõ HDD |
2 | ; ïîèñê ëîãè÷åñêèõ äèñêîâ íà îáíàðóæåííûõ HDD |
3 | ; è çàíåñåíèå äàííûõ â îáëàñòü òàáëèöû |
3 | ; è çàíåñåíèå äàííûõ â îáëàñòü òàáëèöû |
4 | ; àâòîð Mario79 |
4 | ; àâòîð Mario79 |
5 | ;**************************************************** |
5 | ;**************************************************** |
6 | mov [transfer_adress],0x4000a |
6 | mov [transfer_adress],DRIVE_DATA+0xa |
7 | search_partitions_ide0: |
7 | search_partitions_ide0: |
8 | test [0x40001],byte 0x40 |
8 | test [DRIVE_DATA+1],byte 0x40 |
9 | jz search_partitions_ide1 |
9 | jz search_partitions_ide1 |
10 | mov [hdbase],0x1f0 |
10 | mov [hdbase],0x1f0 |
11 | mov [hdid],0x0 |
11 | mov [hdid],0x0 |
12 | mov [hdpos],1 |
12 | mov [hdpos],1 |
13 | mov [fat32part],1 |
13 | mov [fat32part],1 |
14 | search_partitions_ide0_1: |
14 | search_partitions_ide0_1: |
15 | call set_FAT32_variables |
15 | call set_FAT32_variables |
16 | cmp [problem_partition],0 |
16 | cmp [problem_partition],0 |
17 | jne search_partitions_ide1 |
17 | jne search_partitions_ide1 |
18 | inc byte [0x40002] |
18 | inc byte [DRIVE_DATA+2] |
19 | call partition_data_transfer |
19 | call partition_data_transfer |
20 | add [transfer_adress],100 |
20 | add [transfer_adress],100 |
21 | inc [fat32part] |
21 | inc [fat32part] |
22 | jmp search_partitions_ide0_1 |
22 | jmp search_partitions_ide0_1 |
Line 23... | Line 23... | ||
23 | 23 | ||
24 | search_partitions_ide1: |
24 | search_partitions_ide1: |
25 | test [0x40001],byte 0x10 |
25 | test [DRIVE_DATA+1],byte 0x10 |
26 | jz search_partitions_ide2 |
26 | jz search_partitions_ide2 |
27 | mov [hdbase],0x1f0 |
27 | mov [hdbase],0x1f0 |
28 | mov [hdid],0x10 |
28 | mov [hdid],0x10 |
29 | mov [hdpos],2 |
29 | mov [hdpos],2 |
30 | mov [fat32part],1 |
30 | mov [fat32part],1 |
31 | search_partitions_ide1_1: |
31 | search_partitions_ide1_1: |
32 | call set_FAT32_variables |
32 | call set_FAT32_variables |
33 | cmp [problem_partition],0 |
33 | cmp [problem_partition],0 |
34 | jne search_partitions_ide2 |
34 | jne search_partitions_ide2 |
35 | inc byte [0x40003] |
35 | inc byte [DRIVE_DATA+3] |
36 | call partition_data_transfer |
36 | call partition_data_transfer |
37 | add [transfer_adress],100 |
37 | add [transfer_adress],100 |
38 | inc [fat32part] |
38 | inc [fat32part] |
Line 39... | Line 39... | ||
39 | jmp search_partitions_ide1_1 |
39 | jmp search_partitions_ide1_1 |
40 | 40 | ||
41 | search_partitions_ide2: |
41 | search_partitions_ide2: |
42 | test [0x40001],byte 0x4 |
42 | test [DRIVE_DATA+1],byte 0x4 |
43 | jz search_partitions_ide3 |
43 | jz search_partitions_ide3 |
44 | mov [hdbase],0x170 |
44 | mov [hdbase],0x170 |
45 | mov [hdid],0x0 |
45 | mov [hdid],0x0 |
46 | mov [hdpos],3 |
46 | mov [hdpos],3 |
47 | mov [fat32part],1 |
47 | mov [fat32part],1 |
48 | search_partitions_ide2_1: |
48 | search_partitions_ide2_1: |
49 | call set_FAT32_variables |
49 | call set_FAT32_variables |
50 | cmp [problem_partition],0 |
50 | cmp [problem_partition],0 |
51 | jne search_partitions_ide3 |
51 | jne search_partitions_ide3 |
52 | inc byte [0x40004] |
52 | inc byte [DRIVE_DATA+4] |
53 | call partition_data_transfer |
53 | call partition_data_transfer |
54 | add [transfer_adress],100 |
54 | add [transfer_adress],100 |
Line 55... | Line 55... | ||
55 | inc [fat32part] |
55 | inc [fat32part] |
56 | jmp search_partitions_ide2_1 |
56 | jmp search_partitions_ide2_1 |
57 | 57 | ||
58 | search_partitions_ide3: |
58 | search_partitions_ide3: |
59 | test [0x40001],byte 0x1 |
59 | test [DRIVE_DATA+1],byte 0x1 |
60 | jz end_search_partitions_ide |
60 | jz end_search_partitions_ide |
61 | mov [hdbase],0x170 |
61 | mov [hdbase],0x170 |
62 | mov [hdid],0x10 |
62 | mov [hdid],0x10 |
63 | mov [hdpos],4 |
63 | mov [hdpos],4 |
64 | mov [fat32part],1 |
64 | mov [fat32part],1 |
65 | search_partitions_ide3_1: |
65 | search_partitions_ide3_1: |
66 | call set_FAT32_variables |
66 | call set_FAT32_variables |
67 | cmp [problem_partition],0 |
67 | cmp [problem_partition],0 |
68 | jne end_search_partitions_ide |
68 | jne end_search_partitions_ide |
69 | inc byte [0x40005] |
69 | inc byte [DRIVE_DATA+5] |
70 | call partition_data_transfer |
70 | call partition_data_transfer |