Subversion Repositories Kolibri OS

Rev

Rev 389 | Rev 431 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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