;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                              ;;
;; Copyright (C) KolibriOS team 2004-2011. All rights reserved. ;;
;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa      ;;
;; Distributed under terms of the GNU General Public License    ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

$Revision$


iglobal
  ;function pointers.
  fdc_irq_func    dd fdc_null
endg

uglobal
  dmasize         db 0x0
  dmamode         db 0x0
endg

fdc_init:                               ;start with clean tracks.
        mov     edi, OS_BASE+0xD201
        mov     al, 0
        mov     ecx, 160
        rep stosb
        ret

fdc_irq:
        call    [fdc_irq_func]
fdc_null:
        ret

save_image:
        call    reserve_flp
        call    restorefatchain
        pusha
        call    check_label
        cmp     [FDC_Status], 0
        jne     unnecessary_save_image
        mov     [FDD_Track], 0; Цилиндр
        mov     [FDD_Head], 0; Сторона
        mov     [FDD_Sector], 1; Сектор
        mov     esi, RAMDISK
        call    SeekTrack
save_image_1:
        push    esi
        call    take_data_from_application_1
        pop     esi
        add     esi, 512
        call    WriteSectWithRetr
;    call   WriteSector
        cmp     [FDC_Status], 0
        jne     unnecessary_save_image
        inc     [FDD_Sector]
        cmp     [FDD_Sector], 19
        jne     save_image_1
        mov     [FDD_Sector], 1
        inc     [FDD_Head]
        cmp     [FDD_Head], 2
        jne     save_image_1
        mov     [FDD_Head], 0
        inc     [FDD_Track]
        call    SeekTrack
        cmp     [FDD_Track], 80
        jne     save_image_1
unnecessary_save_image:
        mov     [fdc_irq_func], fdc_null
        popa
        mov     [flp_status], 0
        ret