Subversion Repositories Kolibri OS

Rev

Rev 4273 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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