Subversion Repositories Kolibri OS

Rev

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

Rev 3771 Rev 4273
Line 3... Line 3...
3
;; Copyright (C) KolibriOS team 2004-2011. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2011. All rights reserved. ;;
4
;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa      ;;
4
;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa      ;;
5
;; Distributed under terms of the GNU General Public License    ;;
5
;; Distributed under terms of the GNU General Public License    ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
$Revision: 3771 $
8
$Revision: 4273 $
9
 
9
 
10
 
10
 
Line 19... Line 19...
19
        mov     ecx, 160
19
        mov     ecx, 160
20
        rep stosb
20
        rep stosb
21
        ret
21
        ret
Line 22... Line 22...
22
 
22
 
23
save_image:
23
save_image:
24
        call    reserve_flp
24
        cmp     [ramdisk_actual_size], FLOPPY_CAPACITY
25
        call    restorefatchain
25
        jnz     .fail
-
 
26
        pusha
26
        pusha
27
        mov     ecx, floppy_mutex
-
 
28
        call    mutex_lock
-
 
29
        mov     [flp_number], bl
27
        call    check_label
30
        call    floppy_read_bootsector
28
        cmp     [FDC_Status], 0
31
        cmp     [FDC_Status], 0
29
        jne     unnecessary_save_image
32
        jne     .unnecessary_save_image
30
        mov     [FDD_Track], 0; Цилиндр
33
        mov     [FDD_Track], 0; Цилиндр
31
        mov     [FDD_Head], 0; Сторона
34
        mov     [FDD_Head], 0; Сторона
32
        mov     [FDD_Sector], 1; Сектор
35
        mov     [FDD_Sector], 1; Сектор
33
        mov     esi, RAMDISK
36
        mov     esi, RAMDISK
34
        call    SeekTrack
37
        call    SeekTrack
35
save_image_1:
-
 
36
        push    esi
38
.save_image_1:
37
        call    take_data_from_application_1
-
 
38
        pop     esi
-
 
39
        add     esi, 512
39
        call    take_data_from_application_1
40
        call    WriteSectWithRetr
40
        call    WriteSectWithRetr
41
;    call   WriteSector
41
;    call   WriteSector
42
        cmp     [FDC_Status], 0
42
        cmp     [FDC_Status], 0
43
        jne     unnecessary_save_image
43
        jne     .unnecessary_save_image
44
        inc     [FDD_Sector]
44
        inc     [FDD_Sector]
45
        cmp     [FDD_Sector], 19
45
        cmp     [FDD_Sector], 19
46
        jne     save_image_1
46
        jne     .save_image_1
47
        mov     [FDD_Sector], 1
47
        mov     [FDD_Sector], 1
48
        inc     [FDD_Head]
48
        inc     [FDD_Head]
49
        cmp     [FDD_Head], 2
49
        cmp     [FDD_Head], 2
50
        jne     save_image_1
50
        jne     .save_image_1
51
        mov     [FDD_Head], 0
51
        mov     [FDD_Head], 0
52
        inc     [FDD_Track]
52
        inc     [FDD_Track]
53
        call    SeekTrack
53
        call    SeekTrack
54
        cmp     [FDD_Track], 80
54
        cmp     [FDD_Track], 80
55
        jne     save_image_1
55
        jne     .save_image_1
-
 
56
.unnecessary_save_image:
-
 
57
        cmp     [FDC_Status], 0
-
 
58
        pushf
-
 
59
        mov     ecx, floppy_mutex
-
 
60
        call    mutex_unlock
56
unnecessary_save_image:
61
        popf
-
 
62
        popa
-
 
63
        jnz     .fail
-
 
64
        xor     eax, eax
-
 
65
        ret
57
        popa
66
.fail:
58
        mov     [flp_status], 0
67
        movi    eax, 1
59
        ret
-