dunkaist
Первичный загрузчик должен помещаться в одном 512-байтовом секторе, причем 64 байта там уже заняты дремучими структурами BIOS.
Там не только для парсера места нет,- там и самому загрузчику очень тесно.
Вторичный загрузчик вполне бы мог справиться с парсингом простого конфигурационного файла.
Всё лучше, чем рисовать псевдографические менюшки (с прокруткой!) и давать обратный отсчет секунд на синем экране...
выбор вариантов загрузки
Ну в общем, кто сделает это, получит около двухсот баксов, если заказчик захочет использовать Колибри. Знаю, что немного, но больше, чем ничего
Плюс, в любом случае, эта функциональность поможет всем остальным пользователям Колибри.
Плюс, в любом случае, эта функциональность поможет всем остальным пользователям Колибри.
art_zh,
в общих чертах с процессом загрузки я знаком и, естественно, имел в виду вторичный загрузчик.
в общих чертах с процессом загрузки я знаком и, естественно, имел в виду вторичный загрузчик.
Мне кажется, этот код в любом случае следует оставить, ведь конфиг может быть не найден или пуст.art_zh wrote:Всё лучше, чем рисовать псевдографические менюшки (с прокруткой!) и давать обратный отсчет секунд на синем экране...
Я тоже думаю, что сегодняшний функционал нужно оставить - так и тестировать легче, и новый пользователь будет знать, какие у него вообще опции есть. А когда пользователь решил, что и где ставить, то уже создаст файл конфига.dunkaist wrote:Мне кажется, этот код в любом случае следует оставить, ведь конфиг может быть не найден или пуст.art_zh wrote:Всё лучше, чем рисовать псевдографические менюшки (с прокруткой!) и давать обратный отсчет секунд на синем экране...
yogev_ezra,
Креста на тебе нет !!!
Впрочем, "$200+потом" все равно лучше чем "забесплатно+никогда", а мне все равно этот код надо будет выкладывать.
Система жестко определена по железу; единственное что может реально меняться у конечного юзера - видеорежим.
И вообще: в ТЗ сказано "без синего экрана", чего ты мне головняков прибавляешь?
P.S. yogev_ezra
И как он (юзер) сможет этот конфиг себе записать, если флешку Колибри не видит?
- только снаружи (в винде)
Креста на тебе нет !!!
Впрочем, "$200+потом" все равно лучше чем "забесплатно+никогда", а мне все равно этот код надо будет выкладывать.
Тогда по дефолту.dunkaist wrote:Мне кажется, этот код в любом случае следует оставить, ведь конфиг может быть не найден или пуст.
Система жестко определена по железу; единственное что может реально меняться у конечного юзера - видеорежим.
И вообще: в ТЗ сказано "без синего экрана", чего ты мне головняков прибавляешь?
P.S. yogev_ezra
И как он (юзер) сможет этот конфиг себе записать, если флешку Колибри не видит?
- только снаружи (в винде)
Ну да, какой крест, я же иудей У меня максимум может быть маген-давидart_zh wrote:yogev_ezra, Креста на тебе нет !!!
Это сколько согласен заплатить сам клиент. Я вообще нисколько не согласенart_zh wrote:Впрочем, "$200+потом" все равно лучше чем "забесплатно+никогда", а мне все равно этот код надо будет выкладывать.
Я уже вложил в Колибри $150*6 (шесть eBox-ов разработчикам) + $2,500 за выставку, итого $3,400 - а обратно пока не увидел ни шекеля, только один заказчик, да и тот - потенциальный. Пока что единственные, кто получил выгоду с моего вложения, это пользователи eBox-3300MX / Edubook (для них появились драйвера). Я не ною и не жалуюсь, я просто подытожил баланс, и пока что я и так в ж@пе Мог бы заплатить больше - давно бы заплатил бы
Теперь я сам запутался. ТЗ звучит так: если нет конфиг файла, то работать должно абсолютно так же, как и сегодня - т.е. без изменений вообще - синий экран, 5 секунд, настройка четырёх параметров a,b,c,d. Если конфиг файл есть, то 4 параметра a,b,c,d читаются из него, и тогда синий экран вообще не появляется, а система сразу грузится с этими параметрами. Если конфиг битый или параметры там такие, которые не могут быть, то считается, как будто конфиг файла нет. Всё вышеописанное реально сделать?art_zh wrote:Тогда по дефолту.dunkaist wrote:Мне кажется, этот код в любом случае следует оставить, ведь конфиг может быть не найден или пуст.
Система жестко определена по железу; единственное что может реально меняться у конечного юзера - видеорежим.
И вообще: в ТЗ сказано "без синего экрана", чего ты мне головняков прибавляешь?
А с этого места можно поподробнее? Что ты там собираешься выкинуть Когда я от программиста слышу слово "константа", меня подбрасывает в воздухart_zh wrote:Слегка поковырялся в бутовом коде. Там можно кое-что ужать, если заменить громоздкие вычисления константами. Удалось освободить 135 байт - должно хватить для загрузки еще одного файла на фиксированный адрес.
Конечно, в винде. Откроет с помощью WinImage, и запишет. Это как раз несложно.art_zh wrote:P.S. yogev_ezra
как он (юзер) сможет этот конфиг себе записать, если флешку по условию задачи не видно?
только снаружи (в винде)
Есть же загрузчик 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
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
Может кому-то и легко, а я в это чудо так до сих пор и не въехал...
Хорошо, я посмотрю на выходных.
Сделаем мир лучше!
Большое спасибо за разъяснения. А чем руководствовался тот человек, который не использовал число "два", а вычислял его? Бывают дискеты, у которых не 2 головки?art_zh wrote:У дискеты две головки. Это константа. В нынешнем загрузчике с ней возятся как с переменной BPB_NumHeads:
Цитата отсюда: http://en.wikipedia.org/wiki/Cylinder-head-sectorWikipedia 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)
yogev_ezra, когда-то очень давно дискеты и дисководы бывали разные, и ещё более давно существовали односторонние - single-sided - дискеты, на которых, соответственно, была всего одна головка. ВременнЫе подробности, например, можно почерпнуть из http://en.wikipedia.org/wiki/List_of_fl ... sk_formats .
Сделаем мир лучше!
Это-то я знаю. : Когда-то даже дискет ещё не было, я начал знакомство с компьютером с ZX Spectrum в 1991 году, и грузился с магнитофонной кассеты. Тогда я даже программировал на ассемблере (для Spectrum), но с тех пор отупел Меня больше интересует, почему Колибри-загрузчик это вычисляет, если единственный поддерживаемый им размер дискеты это 1.44МБCleverMouse wrote:yogev_ezra, когда-то очень давно дискеты и дисководы бывали разные, и ещё более давно существовали односторонние - single-sided - дискеты, на которых, соответственно, была всего одна головка. ВременнЫе подробности, например, можно почерпнуть из http://en.wikipedia.org/wiki/List_of_fl ... sk_formats .
Last edited by yogev_ezra on Fri May 27, 2011 6:17 pm, edited 1 time in total.
Неверно, что "единственный поддерживаемый" загрузчиком "размер это 1.44МБ".
Сделаем мир лучше!
Тогда почему мы предлагаем для скачивания только 1.44МБ, и никаких других? Я уже тебя спрашивал, 2.88МБ нельзя сделать из-за рамдиска, но какой прок от загрузки дискет любого размера, если только один из них поддерживается рамдиском?CleverMouse wrote:Неверно, что "единственный поддерживаемый" загрузчиком "размер это 1.44МБ".
Потому что "загрузчик" ≠ "ядро".
Сделаем мир лучше!
Who is online
Users browsing this forum: No registered users and 3 guests