Page 3 of 4

Re: savelij помоги плиз

PostPosted: 25 May 2011, 08:22
by DimkaM
то breeze, deathsoft :спасибо.
Прокатило, на гиговой флешке получилось CHS0=1919/15/63 LBA0=1966080
Фаталл всё увидел.

Re: savelij помоги плиз

PostPosted: 25 May 2011, 13:43
by DimkaM
в общем nemo с fatfs работает. С мастер/слейвами правда пришлось поковырятся.
Теперь буду функции до конца проверять, заодно постараюсь объём кода сократить, пока на килобайт ужал за счёт ассемблера.

Re: savelij помоги плиз

PostPosted: 25 May 2011, 13:53
by breeze
deathsoft wrote:Не будьте sayman'ами,…


а причём тут это, я написал про эксперименты, и про то, что:

a) да, действительно, если не прописывать хард, а выбрать через ALT+F1, то CHS остаётся 0/0/0 а LBA определяется автоматически. НО! при этом FAT видит только WDC
b) если поправить CHS приблизительно равный LBA ручками, FATAL так же начинает видеть FAT!
c) под эмулятором не возможно сделать запись на образ харда!!! в логах валятся ошибки "*** unknown ata cmd 30 ***"

Re: savelij помоги плиз

PostPosted: 25 May 2011, 15:19
by DimkaM
breeze wrote:под эмулятором не возможно сделать запись на образ харда!

можно, у меня всё пишет и стирает:
Code: Select all
HD0RO=0         ; read only flag

Re: savelij помоги плиз

PostPosted: 25 May 2011, 19:02
by baxter
В TEST&SERVICE мыша работает, а в EVO RESET SERVICE нехочет! Что делать??

Re: savelij помоги плиз

PostPosted: 25 May 2011, 19:16
by DimkaM
Блин, тему надо было переименовать.

Re: savelij помоги плиз

PostPosted: 25 May 2011, 19:23
by baxter
А если по существу?

Re: savelij помоги плиз

PostPosted: 25 May 2011, 21:03
by deathsoft
DimkaM wrote:Действительно, что то я ступил, четыре бита всего. Зато цилиндров до фига можно.

Геометрия должна соответствовать той - которая была у винта при форматировании, елси это флешка то CHS для нее вообще не имеет смысла, там работа идет только через LBA, на пц псевдо CHS (для int 13h внутри автоматом переводится в лба), если на пц флешка форматировалась с >16 головок, то на спектруме с CHS драйвером она вообще читаться не будет (вернее будет, но читаться будут совсем не те сектора которые нужно), но в фатале и вдц драйверы лба онли, поэтому значения CHS вообще не важны, их надо ставить 0/0/0. Значения CHS важны только для криворуких драйверов isdos и подобных систем, где было расчитано на винты 40-80Мб, которые LBA вообще не поддерживали.

В ПЦ биосах было ограничение на номер цилиндра было отведено всего 10 бит, зато на номер головки был целый байт, из за этого для винтов у которых было больше 1024 цилиндра - делали трансляцию CHS->CHS
Параметры CHS которые указаны в MBR в BPB и в таблице разделов - это параметры для int 13h (виртуальные CHS). Если уж так хочется ситать через CHS, то эти виртуальные CHS надо перевести в LBA, а затем в реальные CHS винта (для винтов <8Гб), для винтов >8Гб чтение через CHS невозможно в принципе (там ограничение на 16383 цилинда 16 головок и 63 сектора).

Re: savelij помоги плиз

PostPosted: 25 May 2011, 21:12
by breeze
baxter wrote:А если по существу?


напиши автору в соответствующей теме. Здесь же идёт разговор о работе с FAT/FAT32.

DimkaM wrote:можно, у меня всё пишет и стирает


хорошо проверю.

Re: savelij помоги плиз

PostPosted: 25 May 2011, 21:12
by breeze
DimkaM wrote:Блин, тему надо было переименовать.


напиши LVD в ПМ