Subversion Repositories Kolibri OS

Rev

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