Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
1 ha 1
iglobal
19 mario79 2
  ;function pointers.
3
  fdc_irq_func    dd fdc_null
1 ha 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
 
19 mario79 30
fdc_irq:
31
        call [fdc_irq_func]
32
fdc_null:
1 ha 33
ret
34
 
19 mario79 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      ; Сторона
381 serge 44
    mov    [FDD_Sector],1      ; Сектор
45
    mov    esi,RAMDISK
19 mario79 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
381 serge 60
    inc    [FDD_Head]
19 mario79 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
1 ha 73