Подменяю MBR своим кодом.
Код проверяет наличие некоторого оборудования и в зависимости от его наличия
(не)разрешает дальнейшую работу.
все регистры (кроме CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
восстанавливаю, передаю управление оригинальному МБР, загрузив его по
оригинальному адресу (0:7c00). Оригинальный МБР запускает бутсектор, бутсектор
пускает ntloader.
ntloader показывает меню, но при выборе вин2к (как и любого другого пункта)
имеем мертвый вис.
Что я мог запортить кроме регистров процессора? Какого фига оно виснет так
поздно?
.                                                С уважением, Hикита.
... "Hравственность по версии ВОЗ"
 Область параметров BIOS? Таблицу прерываний? Кстати, а почему
не сохраняете SS:ESP?
 06 Jul 06 , 20:58  Ilya Anfimov писал к Nickita A Startcev:
 >> Подменяю MBR своим кодом.
 >> Код проверяет наличие некоторого оборудования и в зависимости от его
 >> наличия (не)разрешает дальнейшую работу. все регистры (кроме
 >> CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
 >> восстанавливаю, передаю управление оригинальному МБР, загрузив его
 >> по оригинальному адресу (0:7c00). Оригинальный МБР запускает
 >> бутсектор, бутсектор пускает ntloader. ntloader показывает меню, но
 >> при выборе вин2к (как и любого другого пункта) имеем мертвый вис.
 >>
 >> Что я мог запортить кроме регистров процессора? Какого фига оно
 >> виснет так поздно?
IA> Область параметров BIOS?
не трогаю.
IA> Таблицу прерываний?
Hе трогаю.
IA> Кстати, а почему не сохраняете SS:ESP?
Hа них закладываться низзя.
.                                                С уважением, Hикита.
... Я пью до дна за тех, кто в танке!
Уверен?
>
>  IA> Таблицу прерываний?
>
> Hе трогаю.
Уверен?
>
>  IA> Кстати, а почему не сохраняете SS:ESP?
>
> Hа них закладываться низзя.
Это не повод, чтобы их не сохранить.
 07 Jul 06 , 14:06  Ilya Anfimov писал к Nickita A Startcev:
 >> >> Подменяю MBR своим кодом.
 >> >> Код проверяет наличие некоторого оборудования и в зависимости от
 >> >> его наличия (не)разрешает дальнейшую работу. все регистры (кроме
 >> >> CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
 >> >> восстанавливаю, передаю управление оригинальному МБР, загрузив
 >> >> его по оригинальному адресу (0:7c00). Оригинальный МБР запускает
 >> >> бутсектор, бутсектор пускает ntloader. ntloader показывает меню,
 >> >> но при выборе вин2к (как и любого другого пункта) имеем мертвый
 >> >> вис.
 >> >>
 >> >> Что я мог запортить кроме регистров процессора? Какого фига оно
 >> >> виснет так поздно?
 >>
 >>  IA>  Область параметров BIOS?
 >>
 >> не трогаю.
IA> Уверен?
Вполне.
 >>  IA> Таблицу прерываний?
 >> Hе трогаю.
IA> Уверен?
Вполне.
 >>
 >>  IA> Кстати, а почему не сохраняете SS:ESP?
 >>
 >> Hа них закладываться низзя.
IA> Это не повод, чтобы их не сохранить.
Hу, дык, а почему оно на одних машинах пашет, а на некоторых нет?
.                                                С уважением, Hикита.
... А вдруг бог есть? Чем черт не шутит...
 NS> Что я мог запортить кроме регистров процессора? Какого фига оно виснет так
 NS> поздно?
Бредовый вопрос - а partition table на месте?
Best regards.
        Igor
Давеча 06 Jul 06, писал Nickita A Startcev для All:
 NS> Подменяю MBR своим кодом.
 NS> Код проверяет наличие некоторого оборудования и в зависимости от его
 NS> наличия (не)разрешает дальнейшую работу. все регистры (кроме
 NS> CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
 NS> восстанавливаю, передаю управление оригинальному МБР, загрузив его по
 NS> оригинальному адресу (0:7c00). Оригинальный МБР запускает бутсектор,
 NS> бутсектор пускает ntloader. ntloader показывает меню, но при выборе
 NS> вин2к (как и любого другого пункта) имеем мертвый вис.
 NS> Что я мог запортить кроме регистров процессора? Какого фига оно виснет
 NS> так поздно?
    Эээ, достаточно ли места в стеке выделяется для работы твоего кода?  Не то
я выделил в загрузчике 512 байт, оказалось маловато.
 07 Jul 06 , 19:54  Igor Krassikov писал к Nickita A Startcev:
 NS>> Что я мог запортить кроме регистров процессора? Какого фига оно
NS>> виснет так поздно?
IK> Бредовый вопрос - а partition table на месте?
Да. и на диске и в памяти по нужному адресу оно есть.
Кстати, LILO и GRUB работают нормально, w2k под вмварью тоже нормально, а вот
w2k+ntloader на реальной машине вешаются.
.                                                С уважением, Hикита.
... А в этом доме тот же самый Али-Баба живет, или другой?
 07 Jul 06 , 09:03  Vladimir Zaitsev писал к Nickita A Startcev:
 NS>> Подменяю MBR своим кодом.
 NS>> Код проверяет наличие некоторого оборудования и в зависимости от
NS>> его наличия (не)разрешает дальнейшую работу. все регистры (кроме
 NS>> CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
 NS>> восстанавливаю, передаю управление оригинальному МБР, загрузив
 NS>> его по оригинальному адресу (0:7c00). Оригинальный МБР запускает
 NS>> бутсектор, бутсектор пускает ntloader. ntloader показывает меню,
 NS>> но при выборе вин2к (как и любого другого пункта) имеем мертвый
 NS>> вис. Что я мог запортить кроме регистров процессора? Какого фига
 NS>> оно виснет так поздно?
 VZ>     Эээ, достаточно ли места в стеке выделяется для работы твоего
 VZ> кода?  Hе то я выделил в загрузчике 512 байт, оказалось маловато.
Стек идет от 0:7c00 и вниз. Вроде как достаточно.
.                                                С уважением, Hикита.
... Hомеpа нодов в нодлисте pасположены похабно.
 10 Jul 06 10:30 --> 11 Jul 06 20:44
 Nickita A Startcev (2:469/105.96) --> Vladimir Zaitsev
NS>>> Подменяю MBR своим кодом.
NS>>> Код проверяет наличие некоторого оборудования и в зависимости от
NS>>> его наличия (не)разрешает дальнейшую работу. все регистры (кроме
NS>>> CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
NS>>> восстанавливаю, передаю управление оригинальному МБР, загрузив
NS>>> его по оригинальному адресу (0:7c00). Оригинальный МБР запускает
NS>>> бутсектор, бутсектор пускает ntloader. ntloader показывает меню,
NS>>> но при выборе вин2к (как и любого другого пункта) имеем мертвый
NS>>> вис. Что я мог запортить кроме регистров процессора? Какого фига
NS>>> оно виснет так поздно?
VZ>>     Эээ, достаточно ли места в стеке выделяется для работы твоего
VZ>> кода?  Hе то я выделил в загрузчике 512 байт, оказалось маловато.
*NAS*> Стек идет от 0:7c00 и вниз. Вроде как достаточно.
И стэк и мбр всё по адресу 7c00?.. ;-}
LPS: Не стоит принимать близко к сердцу мой бред...
    Руку отпускаю, пока. ob.
    [*Соседи спят спокойно*]
    [_/Necromant's Voice team/_] [*451°F*] [/_Death after Life team_/]
... Мёртвые слушают меня ...
06 Jul 06 19:31, you wrote to All:
 NS> Подменяю MBR своим кодом.
 NS> Код проверяет наличие некоторого оборудования и в зависимости от его
 NS> наличия (не)разрешает дальнейшую работу. все регистры (кроме
Hе фига не nice, но обрати внимание на ряд плясок с бубном, которые
производятся по ходу дела.
= Cut =
mbr:    db  200h dup (00h)
org     7c00h
start:  pushf
        push    ax
        push    es
        push    ds
savreg  cli
        sub     ax,ax
        push    ax
        pop     es
        push    ax
        pop     ds
        mov     bx,ss
        mov     rsp-1000h,sp
        mov     rss-1000h,bx
        mov     ss,ax
        mov     sp,7C00h
        sti
        cld
        mov     si,07c00h
        mov     di,08c00h
        mov     cx,100h
rep     movsw
        jmp     virtst
offsadr
org offsadr+1000h
virtst  ...
getstat ...
        or      al,al
        jnz     pntprep
        jmp     ptnkeep
...
ptnkeep mov     al,flaga    ; boot from a: ?
        or      al,al
        jnz     boota
boot    mov     si,8dbfh    ; load entry offset
        mov     dh,[si]     ; load head number
        inc     si
        mov     dl,80h
        mov     cx,[si]     ; load track/sector number
load    mov     bx,7c00h    ; set bx like starting point
        mov     ax,0201h    ; read 1 sector
        clc
        int     13h         ; call bios service
        jc      error
        cli
        mov     ax,rss
        mov     ss,ax
        mov     sp,rsp
        pop     ds
        pop     es
        pop     ax
        popf
        sti
        jmp     start
text0:  db  0ah,0dh,'enter number of active partition:'
text1:  db  00h,0ah,0dh
text2:  db  0ah,0dh,'disk read error',0ah,0dh
        db  000h
flaga:  db  000h
rax:    dw  0
rsp:    dw  0
rss:    dw  0
pentry: db      000h,000h,000h,000h,055h,0aah
        end
= End cut =
Вишен и прочих кактусов.
 11 Jul 06 , 20:44  ob писал к Nickita A Startcev:
*NAS*>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.
o> И стэк и мбр всё по адресу 7c00?.. ;-}
А вы таки не в курсе, что стек растет вниз, а мбр вверх?
.                                                С уважением, Hикита.
... Гландыши...
*NAS*>>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.
o>> И стэк и мбр всё по адресу 7c00?.. ;-}
NS> А вы таки не в курсе, что стек растет вниз, а мбр вверх?
А сегменты -- так вообще вбок!
bye
 12 Jul 06 10:43 --> 14 Jul 06 08:53
 Nickita A Startcev (2:469/105.96) --> ob
*NAS*>>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.
o>>    И стэк и мбр всё по адресу 7c00?.. ;-}
*NAS*> А вы таки не в курсе, что стек растет вниз, а мбр вверх?
Да-а, я не в курсе, что мбр куда-то растёт... ;-}
 12 Jul 06 , 21:43  Dennis Chikin писал к Nickita A Startcev:
 NS>> Подменяю MBR своим кодом.
 NS>> Код проверяет наличие некоторого оборудования и в зависимости от
NS>> его наличия (не)разрешает дальнейшую работу. все регистры (кроме
 DC> Hе фига не nice, но обрати внимание на ряд плясок с бубном, которые
 DC> производятся по ходу дела.
DC> = Cut =
DC> mbr: db 200h dup (00h)
гм. Вот эти 512 байт на какое место в памяти попадают?
DC> org 7c00h
 DC> start:  pushf
 DC>         push    ax
 DC>         push    es
 DC>         push    ds
А в каком состоянии стек в этот момент? Есть ли _гарантии_, что он не в
какой-нибудь ПЗУ?
[skip]
У меня тоже работает, кстати, почти разобрался.
Глюки где-то в InitUSB.
.                                                С уважением, Hикита.
... 'Hе бойтесь совершенства, вам его не достичь' (с) Дали.
 12 Jul 06 , 10:54  Dmitry Grebeniuk писал к Nickita A Startcev:
*NAS*>>>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.
o>>> И стэк и мбр всё по адресу 7c00?.. ;-}
NS>> А вы таки не в курсе, что стек растет вниз, а мбр вверх?
DG> А сегменты -- так вообще вбок!
А у 80386+ в защищенном режиме, на самом деле, одной задаче можно использовать
как минимум 8190 сегментов по 4гб каждый!
.                                            С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... Обкурившийся сфинкс, забывший правильный ответ на собственную загадку
NAS> *NAS*>>>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.
o>>>> И стэк и мбр всё по адресу 7c00?.. ;-}
NS>>> А вы таки не в курсе, что стек растет вниз, а мбр вверх?
DG>> А сегменты -- так вообще вбок!
 NAS> А у 80386+ в защищенном режиме, на самом деле, одной задаче
 NAS> можно использовать как минимум 8190 сегментов по 4гб каждый!
А в Киеве, ты не поверишь, таки дядька!
-- 
Miguel                                           migue...@yandex.ru
LJ migmit                                     http://miguel-0.narod.ru
 20 Jul 06 , 07:06  Miguel Mitrofanov писал к Nickita A. Startcev:
NAS> *NAS*>>>>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.
o>>>>> И стэк и мбр всё по адресу 7c00?.. ;-}
NS>>>> А вы таки не в курсе, что стек растет вниз, а мбр вверх?
DG>>> А сегменты -- так вообще вбок!
 NAS>> А у 80386+ в защищенном режиме, на самом деле, одной задаче
 NAS>> можно использовать как минимум 8190 сегментов по 4гб каждый!
MM> А в Киеве, ты не поверишь, таки дядька!
А дядька сколькибитный? :)
.                                                С уважением, Hикита.
... Победа сил добpа над силами pазума...
Одинбитный. За него двухнебитных давали, но я не взял.
-- 
С уважением.
Сергей Сторчака
 21 Jul 06 , 21:52  Serhiy Storchaka писал к Nickita A Startcev:
>>  MM> А в Киеве, ты не поверишь, таки дядька!
>>
>> А дядька сколькибитный? :)
SS> Одинбитный. За него двухнебитных давали, но я не взял.
и правильно. Сейчас курс примерно 1:5.
.                                            С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... Пересадить собаку с сена на цепь