Board.KolibriOS.org

Official KolibriOS board
It is currently Fri Dec 06, 2019 11:29 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 99 posts ]  Go to page Previous 1 2 3 4 57 Next
Author Message
PostPosted: Fri May 27, 2011 1:23 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1357
dunkaist
Первичный загрузчик должен помещаться в одном 512-байтовом секторе, причем 64 байта там уже заняты дремучими структурами BIOS.
Там не только для парсера места нет,- там и самому загрузчику очень тесно.

Вторичный загрузчик вполне бы мог справиться с парсингом простого конфигурационного файла.
Всё лучше, чем рисовать псевдографические менюшки (с прокруткой!) и давать обратный отсчет секунд на синем экране...


Top
   
PostPosted: Fri May 27, 2011 2:01 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
Ну в общем, кто сделает это, получит около двухсот баксов, если заказчик захочет использовать Колибри. Знаю, что немного, но больше, чем ничего :wink:
Плюс, в любом случае, эта функциональность поможет всем остальным пользователям Колибри.


Top
   
PostPosted: Fri May 27, 2011 2:19 pm 
Offline
Mentor
User avatar

Joined: Mon Oct 19, 2009 10:58 am
Posts: 440
art_zh,
в общих чертах с процессом загрузки я знаком и, естественно, имел в виду вторичный загрузчик.

art_zh wrote:
Всё лучше, чем рисовать псевдографические менюшки (с прокруткой!) и давать обратный отсчет секунд на синем экране...
Мне кажется, этот код в любом случае следует оставить, ведь конфиг может быть не найден или пуст.


Top
   
PostPosted: Fri May 27, 2011 2:22 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
dunkaist wrote:
art_zh wrote:
Всё лучше, чем рисовать псевдографические менюшки (с прокруткой!) и давать обратный отсчет секунд на синем экране...
Мне кажется, этот код в любом случае следует оставить, ведь конфиг может быть не найден или пуст.
Я тоже думаю, что сегодняшний функционал нужно оставить - так и тестировать легче, и новый пользователь будет знать, какие у него вообще опции есть. А когда пользователь решил, что и где ставить, то уже создаст файл конфига.


Top
   
PostPosted: Fri May 27, 2011 2:32 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1357
yogev_ezra,
:lol: Креста на тебе нет !!!

Впрочем, "$200+потом" все равно лучше чем "забесплатно+никогда", а мне все равно этот код надо будет выкладывать.

dunkaist wrote:
Мне кажется, этот код в любом случае следует оставить, ведь конфиг может быть не найден или пуст.
Тогда по дефолту.
Система жестко определена по железу; единственное что может реально меняться у конечного юзера - видеорежим.
И вообще: в ТЗ сказано "без синего экрана", чего ты мне головняков прибавляешь?

P.S. yogev_ezra
И как он (юзер) сможет этот конфиг себе записать, если флешку Колибри не видит?
- только снаружи (в винде)


Top
   
PostPosted: Fri May 27, 2011 3:00 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
art_zh wrote:
yogev_ezra, :lol: Креста на тебе нет !!!
Ну да, какой крест, я же иудей :lol: У меня максимум может быть маген-давид :wink:
art_zh wrote:
Впрочем, "$200+потом" все равно лучше чем "забесплатно+никогда", а мне все равно этот код надо будет выкладывать.
Это сколько согласен заплатить сам клиент. Я вообще нисколько не согласен :mrgreen:
Я уже вложил в Колибри $150*6 (шесть eBox-ов разработчикам) + $2,500 за выставку, итого $3,400 - а обратно пока не увидел ни шекеля, только один заказчик, да и тот - потенциальный. Пока что единственные, кто получил выгоду с моего вложения, это пользователи eBox-3300MX / Edubook (для них появились драйвера). Я не ною и не жалуюсь, я просто подытожил баланс, и пока что я и так в ж@пе :wink: Мог бы заплатить больше - давно бы заплатил бы :oops:
art_zh wrote:
dunkaist wrote:
Мне кажется, этот код в любом случае следует оставить, ведь конфиг может быть не найден или пуст.
Тогда по дефолту.
Система жестко определена по железу; единственное что может реально меняться у конечного юзера - видеорежим.
И вообще: в ТЗ сказано "без синего экрана", чего ты мне головняков прибавляешь?
Теперь я сам запутался. ТЗ звучит так: если нет конфиг файла, то работать должно абсолютно так же, как и сегодня - т.е. без изменений вообще - синий экран, 5 секунд, настройка четырёх параметров a,b,c,d. Если конфиг файл есть, то 4 параметра a,b,c,d читаются из него, и тогда синий экран вообще не появляется, а система сразу грузится с этими параметрами. Если конфиг битый или параметры там такие, которые не могут быть, то считается, как будто конфиг файла нет. Всё вышеописанное реально сделать?
art_zh wrote:
Слегка поковырялся в бутовом коде. Там можно кое-что ужать, если заменить громоздкие вычисления константами. Удалось освободить 135 байт - должно хватить для загрузки еще одного файла на фиксированный адрес.
А с этого места можно поподробнее? :wink: Что ты там собираешься выкинуть :?: Когда я от программиста слышу слово "константа", меня подбрасывает в воздух :shock:
art_zh wrote:
P.S. yogev_ezra
как он (юзер) сможет этот конфиг себе записать, если флешку по условию задачи не видно?
только снаружи (в винде)
Конечно, в винде. Откроет с помощью WinImage, и запишет. Это как раз несложно.


Top
   
PostPosted: Fri May 27, 2011 3:51 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
Есть же загрузчик kernel/trunk/sec_loader, он как раз создавался с расчётом на динамическую конфигурацию при загрузке и умеет читать файлы. Я не вчитывалась в код, но вроде на его базе легко реализовать то, о чём тут говорится.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Fri May 27, 2011 4:26 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1357
Quote:
Всё вышеописанное реально сделать?
Не всё - у меня конференция через неделю, хочу успеть (для демонстрации) довести до ума загрузчик Колибри-А, чтобы грузил параметры с файла kernel.ini. Кроме этого осталось еще 500 разных дел, так что вернуть синее меню в ближайшее время точно не успею.
Quote:
А с этого места можно поподробнее? Что ты там собираешься выкинуть Когда я от программиста слышу слово "константа", меня подбрасывает в воздух
У дискеты две головки. Это константа. В нынешнем загрузчике с ней возятся как с переменной BPB_NumHeads:
Code:
conv_abs_to_THS:
   push   bx
   mov   bx,word [BPB_SecPerTrk+boot_program]
   xor   dx,dx
   div   bx
   inc   dx
   mov   cl, dl            ; cl = sector number
   mov   bx,word [BPB_NumHeads+boot_program]
   xor   dx,dx
   div   bx
   ; !!!!!!! ax = track number, dx = head number
   mov   ch,al            ; ch=track number
   xchg   dh,dl            ; dh=head number
   mov   dl,0            ; dl=0 (drive 0 (a:))
   pop   bx
   retn

А вот что можно сделать, если знать что BPB_NumHeads = 2
Code:
conv_abs_to_THS:
  mov   cx,word [BPB_SecPerTrk+boot_program]    ; << 18 or 36 >>
  xor   dx,dx
  div   cx
  inc   dx
  mov   cl, dl            ; cl = sector number
  xor     dx, dx
  shr     ax, 1
  rol     dx, 1                 ; dh = head number
  mov     ch, al            ; ch = track number
  retn

там еще много таких констант.

CleverMouse
Может кому-то и легко, а я в это чудо так до сих пор и не въехал...


Top
   
PostPosted: Fri May 27, 2011 5:06 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
Хорошо, я посмотрю на выходных.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Fri May 27, 2011 5:38 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
art_zh wrote:
У дискеты две головки. Это константа. В нынешнем загрузчике с ней возятся как с переменной BPB_NumHeads:
Большое спасибо за разъяснения. А чем руководствовался тот человек, который не использовал число "два", а вычислял его? Бывают дискеты, у которых не 2 головки?

Wikipedia wrote:
A "1.44 MB" floppy disk has 80 tracks (numbered 0 to 79), 2 heads (numbered 0 to 1) and 18 sectors per track (numbered 1 to 18).
Therefore, its capacity in sectors is computed as follows: Total Number of Sectors = (80 * 18) * 2 = 2880
2880*512 bytes/sector = 1474560 bytes (1.44 MB)
Цитата отсюда: http://en.wikipedia.org/wiki/Cylinder-head-sector


Top
   
PostPosted: Fri May 27, 2011 6:09 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
yogev_ezra, когда-то очень давно дискеты и дисководы бывали разные, и ещё более давно существовали односторонние - single-sided - дискеты, на которых, соответственно, была всего одна головка. ВременнЫе подробности, например, можно почерпнуть из http://en.wikipedia.org/wiki/List_of_fl ... sk_formats .

_________________
Сделаем мир лучше!


Top
   
PostPosted: Fri May 27, 2011 6:14 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
CleverMouse wrote:
yogev_ezra, когда-то очень давно дискеты и дисководы бывали разные, и ещё более давно существовали односторонние - single-sided - дискеты, на которых, соответственно, была всего одна головка. ВременнЫе подробности, например, можно почерпнуть из http://en.wikipedia.org/wiki/List_of_fl ... sk_formats .

Это-то я знаю. Offtopic: Когда-то даже дискет ещё не было, я начал знакомство с компьютером с ZX Spectrum в 1991 году, и грузился с магнитофонной кассеты. Тогда я даже программировал на ассемблере (для Spectrum), но с тех пор отупел :oops: Меня больше интересует, почему Колибри-загрузчик это вычисляет, если единственный поддерживаемый им размер дискеты это 1.44МБ


Last edited by yogev_ezra on Fri May 27, 2011 6:17 pm, edited 1 time in total.

Top
   
PostPosted: Fri May 27, 2011 6:15 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
Неверно, что "единственный поддерживаемый" загрузчиком "размер это 1.44МБ".

_________________
Сделаем мир лучше!


Top
   
PostPosted: Fri May 27, 2011 6:19 pm 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
CleverMouse wrote:
Неверно, что "единственный поддерживаемый" загрузчиком "размер это 1.44МБ".

Тогда почему мы предлагаем для скачивания только 1.44МБ, и никаких других? Я уже тебя спрашивал, 2.88МБ нельзя сделать из-за рамдиска, но какой прок от загрузки дискет любого размера, если только один из них поддерживается рамдиском?


Top
   
PostPosted: Fri May 27, 2011 6:22 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
Потому что "загрузчик" ≠ "ядро".

_________________
Сделаем мир лучше!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 99 posts ]  Go to page Previous 1 2 3 4 57 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited