Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. iglobal
  2.   ;function pointers.
  3.   fdc_irq_func    dd fdc_null
  4. endg
  5.  
  6. uglobal
  7.   dmasize         db 0x0
  8.   dmamode         db 0x0
  9. endg
  10.  
  11. fdc_init:                               ;start with clean tracks.
  12.         mov edi,0xD201
  13.         mov al,0
  14.         mov ecx,160
  15.         rep stosb
  16. ret
  17.  
  18. fdc_filesave:                   ;ebx: cluster to be saved.
  19.         pusha                   ;returns immediately. does not trigger a write.
  20.         mov eax,ebx
  21.         add eax,31
  22.         mov bl,18
  23.         div bl
  24.         mov ah,0
  25.         add eax,0xD201
  26.         mov [eax],byte 1                ;This track is now dirty.
  27.         popa
  28. ret
  29.  
  30. fdc_irq:
  31.         call [fdc_irq_func]
  32. fdc_null:
  33. ret
  34.  
  35. save_image:
  36.     call   reserve_flp
  37.     call   restorefatchain
  38.     pusha
  39.     call   check_label
  40.     cmp    [FDC_Status],0
  41.     jne    unnecessary_save_image
  42.     mov    [FDD_Track],0      ; Öèëèíäð
  43.     mov    [FDD_Head],0      ; Ñòîðîíà
  44.     mov    [FDD_Sector],1      ; Ñåêòîð    
  45.     mov    esi,0x100000
  46.     call   SeekTrack
  47. save_image_1:
  48.     push   esi
  49.     call   take_data_from_application_1
  50.     pop    esi
  51.     add    esi,512
  52.     call   WriteSectWithRetr
  53. ;    call   WriteSector
  54.     cmp    [FDC_Status],0
  55.     jne    unnecessary_save_image
  56.     inc    [FDD_Sector]
  57.     cmp    [FDD_Sector],19
  58.     jne    save_image_1
  59.     mov    [FDD_Sector],1
  60.     inc    [FDD_Head]  
  61.     cmp    [FDD_Head],2
  62.     jne    save_image_1
  63.     mov    [FDD_Head],0
  64.     inc    [FDD_Track]
  65.     call   SeekTrack
  66.     cmp    [FDD_Track],80
  67.     jne    save_image_1
  68. unnecessary_save_image:
  69.     mov    [fdc_irq_func],fdc_null
  70.     popa
  71.     mov    [flp_status],0
  72.     ret
  73.  
  74.