выбор вариантов загрузки

Kernel boot-loaders discussion
  • Ну в общем, кто сделает это, получит около двухсот баксов, если заказчик захочет использовать Колибри. Знаю, что немного, но больше, чем ничего :wink:
    Плюс, в любом случае, эта функциональность поможет всем остальным пользователям Колибри.
  • art_zh,
    в общих чертах с процессом загрузки я знаком и, естественно, имел в виду вторичный загрузчик.
    art_zh wrote:Всё лучше, чем рисовать псевдографические менюшки (с прокруткой!) и давать обратный отсчет секунд на синем экране...
    Мне кажется, этот код в любом случае следует оставить, ведь конфиг может быть не найден или пуст.
  • dunkaist wrote:
    art_zh wrote:Всё лучше, чем рисовать псевдографические менюшки (с прокруткой!) и давать обратный отсчет секунд на синем экране...
    Мне кажется, этот код в любом случае следует оставить, ведь конфиг может быть не найден или пуст.
    Я тоже думаю, что сегодняшний функционал нужно оставить - так и тестировать легче, и новый пользователь будет знать, какие у него вообще опции есть. А когда пользователь решил, что и где ставить, то уже создаст файл конфига.
  • yogev_ezra,
    :lol: Креста на тебе нет !!!

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

    P.S. yogev_ezra
    И как он (юзер) сможет этот конфиг себе записать, если флешку Колибри не видит?
    - только снаружи (в винде)
  • 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, и запишет. Это как раз несложно.
  • Есть же загрузчик kernel/trunk/sec_loader, он как раз создавался с расчётом на динамическую конфигурацию при загрузке и умеет читать файлы. Я не вчитывалась в код, но вроде на его базе легко реализовать то, о чём тут говорится.
    Сделаем мир лучше!
  • Всё вышеописанное реально сделать?
    Не всё - у меня конференция через неделю, хочу успеть (для демонстрации) довести до ума загрузчик Колибри-А, чтобы грузил параметры с файла kernel.ini. Кроме этого осталось еще 500 разных дел, так что вернуть синее меню в ближайшее время точно не успею.
    А с этого места можно поподробнее? Что ты там собираешься выкинуть Когда я от программиста слышу слово "константа", меня подбрасывает в воздух
    У дискеты две головки. Это константа. В нынешнем загрузчике с ней возятся как с переменной BPB_NumHeads:

    Code: Select all

    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: Select all

    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
    Может кому-то и легко, а я в это чудо так до сих пор и не въехал...
  • Хорошо, я посмотрю на выходных.
    Сделаем мир лучше!
  • 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
  • yogev_ezra, когда-то очень давно дискеты и дисководы бывали разные, и ещё более давно существовали односторонние - single-sided - дискеты, на которых, соответственно, была всего одна головка. ВременнЫе подробности, например, можно почерпнуть из http://en.wikipedia.org/wiki/List_of_fl ... sk_formats .
    Сделаем мир лучше!
  • CleverMouse wrote:yogev_ezra, когда-то очень давно дискеты и дисководы бывали разные, и ещё более давно существовали односторонние - single-sided - дискеты, на которых, соответственно, была всего одна головка. ВременнЫе подробности, например, можно почерпнуть из http://en.wikipedia.org/wiki/List_of_fl ... sk_formats .
    Это-то я знаю. : Когда-то даже дискет ещё не было, я начал знакомство с компьютером с 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.
  • Неверно, что "единственный поддерживаемый" загрузчиком "размер это 1.44МБ".
    Сделаем мир лучше!
  • CleverMouse wrote:Неверно, что "единственный поддерживаемый" загрузчиком "размер это 1.44МБ".
    Тогда почему мы предлагаем для скачивания только 1.44МБ, и никаких других? Я уже тебя спрашивал, 2.88МБ нельзя сделать из-за рамдиска, но какой прок от загрузки дискет любого размера, если только один из них поддерживается рамдиском?
  • Потому что "загрузчик" ≠ "ядро".
    Сделаем мир лучше!
  • Who is online

    Users browsing this forum: No registered users and 0 guests