Subversion Repositories Kolibri OS

Rev

Rev 4287 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
431 serge 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
5565 serge 3
;; Copyright (C) KolibriOS team 2004-2015. All rights reserved. ;;
431 serge 4
;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa      ;;
5
;; Distributed under terms of the GNU General Public License    ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7
 
593 mikedld 8
$Revision: 5565 $
431 serge 9
 
593 mikedld 10
 
1 ha 11
uglobal
3555 Serge 12
  dmasize         db 0x0
13
  dmamode         db 0x0
1 ha 14
endg
15
 
3555 Serge 16
fdc_init:                               ;start with clean tracks.
2434 Serge 17
        mov     edi, OS_BASE+0xD201
18
        mov     al, 0
19
        mov     ecx, 160
3555 Serge 20
        rep stosb
2434 Serge 21
        ret
1 ha 22
 
19 mario79 23
save_image:
4287 Serge 24
        cmp     [ramdisk_actual_size], FLOPPY_CAPACITY
25
        jnz     .fail
3555 Serge 26
        pusha
4287 Serge 27
        mov     ecx, floppy_mutex
28
        call    mutex_lock
29
        mov     [flp_number], bl
30
        call    floppy_read_bootsector
2434 Serge 31
        cmp     [FDC_Status], 0
4287 Serge 32
        jne     .unnecessary_save_image
3555 Serge 33
        mov     [FDD_Track], 0; Цилиндр
34
        mov     [FDD_Head], 0; Сторона
35
        mov     [FDD_Sector], 1; Сектор
2434 Serge 36
        mov     esi, RAMDISK
3555 Serge 37
        call    SeekTrack
4287 Serge 38
.save_image_1:
3555 Serge 39
        call    take_data_from_application_1
40
        call    WriteSectWithRetr
19 mario79 41
;    call   WriteSector
2434 Serge 42
        cmp     [FDC_Status], 0
4287 Serge 43
        jne     .unnecessary_save_image
3555 Serge 44
        inc     [FDD_Sector]
2434 Serge 45
        cmp     [FDD_Sector], 19
4287 Serge 46
        jne     .save_image_1
2434 Serge 47
        mov     [FDD_Sector], 1
3555 Serge 48
        inc     [FDD_Head]
2434 Serge 49
        cmp     [FDD_Head], 2
4287 Serge 50
        jne     .save_image_1
2434 Serge 51
        mov     [FDD_Head], 0
3555 Serge 52
        inc     [FDD_Track]
53
        call    SeekTrack
2434 Serge 54
        cmp     [FDD_Track], 80
4287 Serge 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
61
        popf
3555 Serge 62
        popa
4287 Serge 63
        jnz     .fail
64
        xor     eax, eax
3555 Serge 65
        ret
4287 Serge 66
.fail:
67
        movi    eax, 1
68
        ret