anny 05 дек 2005, 00:58
Так это, то что ты кинул то это не то чтобы 'читать амижные дискеты на pc', это наоборот, читать псышные на амиге. Грубо говоря у них дешевенький обман. Сначала они пишут "читать амижные дискеты на PC", а потом в тексте подменяются понятие амижной дискеты, и теперь становится msdos дискетка 'амижной', а msh якобы мега файлсистем.
Да, кстати. Из полезного там написано, что есть вот 3 варианта:
2 хардварных (как раз этот Catwease о чем я говорил и AFR - через паралел) и один Disk2FDI.
Если ты disk2fdi и имел ввиду - то мало того, что там херота с "с combined with a second floppy drive." Но, я пока особо не будет расписывать, просто спрошу - а ffs он умеет читать ?:) Имхо просто сектора слаживает в кучу.
Вот opk чтото с дисководами мызит щас, пусть раскажет, реал ли ffs на пц реализовать или оно там завязано на какомнить говне которое пц дискоды не умеют ..
ps. Кстати вот именно "эмулировать работу контроллера на PC" я и пытался :) Но кончилось тем что я мотор поразгонял позамедлял и забил болт .. хотя сорцы остались кое-какие если надо :)
ps2. Вот сорцы нашел смотрю .. написано в одном (для себя пометки делал) :"форматировать на 11 секторов можно, а вот записать хрен, постоянно "сектор не найден". Поэтому вместо 13h буду колбасить через in/out". Хз что это значит. Имхо пытался на амижную дискетку писать.
Второй сорец, пытался форматирование делать, вот что наделалось:
[code]
start:
; Сначала устанавливаем обычный тип дискеты (720), чтобы получить
; таблицу параметров и смещение на нее. После этого в наглую меняем
; в таблице четвертый и пятый байты (размер сектора и колво секторов
; на дорожке).
mov ah,00h ; reset fdd
mov dl,00h
int 13h
; ставим стандартные 720 для получения таблицы:
mov ah,18h ; установить тип носителя
mov ch,79d ; 80 цилиндров
mov cl,9d ; секторов на дорожку
mov dl,00h ; A:
int 13h
mov byte ptr es:[di]+3,2d ; размер сектора 512 байта
mov byte ptr es:[di]+4,10d ; секторов на дорожке - 11
mov ah,05h ; форматировать дорожку
mov ch,00 ; номер дорожки
mov dh,00 ; номер головки
mov dl,00h ; A:
mov es:bx,offset buffer
int 13h
ret
buffer db 00h ; номер дорожки
db 00h ; номер головки
db 00h ; номер сектора ; 0
db 02h ; размер сектора 1024 байта
db 00,00,01,02 ; 1
db 00,00,02,02 ; 2
db 00,00,03,02 ; 3
db 00,00,04,02 ; 4
db 00,00,05,02 ; 5
db 00,00,06,02 ; 6
db 00,00,07,02 ; 7
db 00,00,08,02 ; 8
db 00,00,09,02 ; 9
db 00,00,10,02 ; 10
buffer2 dw 256h dup (?)
end start
[/code]
Может это поможет чем ..