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