delorie.com/archives/browse.cgi   search  
Mail Archives: opendos/1997/02/04/23:22:51

Message-Id: <199702050405.AA13093@mail.crl.com>
From: "Weiqi Gao" <weiqigao AT crl DOT com>
To: <opendos AT mail DOT tacoma DOT net>
Subject: Re: [opendos] dual booting OD and MSDOG :)
Date: Tue, 4 Feb 1997 22:06:35 -0600
Mime-Version: 1.0
Sender: owner-opendos AT mail DOT tacoma DOT net

Jim Lefavour <jamesl AT mail DOT albany DOT net> wrote:

>I have just set up OD to boot from my first "primary" partition, and 
>MSDOG on the 2nd.  Both have their own copy of windows, but they 
>share DJGPP, and GAMES, etc...
>
>Any ideas on why MSDOG can boot from the 2nd partition, and OD can't? 
>I had to do some serious shuffling to get OD on it's own "test" 
>partition.

Here's the OpenDOS MBR, according to grub "How It Works" series and NASM. 
Hope you can glean some useful information from it.

--
Weiqi Gao
weiqigao AT crl DOT com

==========
00007C00  EB56              jmp short 0x7c58
00007C02  90                nop
00007C03  4E                dec si
00007C04  57                push di
00007C05  44                inc sp
00007C06  4F                dec di
00007C07  53                push bx
00007C08  37                aaa
00007C09  2E3000            xor [cs:bx+si],al
00007C0C  0210              add dl,[bx+si]
00007C0E  0100              add [bx+si],ax
00007C10  0200              add al,[bx+si]
00007C12  0200              add al,[bx+si]
00007C14  00F8              add al,bh
00007C16  FC                cld
00007C17  003F              add [bx],bh
00007C19  0010              add [bx+si],dl
00007C1B  003F              add [bx],bh
00007C1D  0000              add [bx+si],al
00007C1F  00D1              add cl,dl
00007C21  BB0F00            mov bx,0xf
00007C24  800029            add byte [bx+si],0x29
00007C27  37                aaa
00007C28  0F                db 0x0F
00007C29  DE1D              ficomp word [di]
00007C2B  4D                dec bp
00007C2C  41                inc cx
00007C2D  58                pop ax
00007C2E  54                push sp
00007C2F  4F                dec di
00007C30  52                push dx
00007C31  5F                pop di
00007C32  3120              xor [bx+si],sp
00007C34  2020              and [bx+si],ah
00007C36  46                inc si
00007C37  41                inc cx
00007C38  54                push sp
00007C39  31362020          xor [0x2020],si
00007C3D  2000              and [bx+si],al
00007C3F  0000              add [bx+si],al
00007C41  007000            add [bx+si+0x0],dh
00007C44  FF                db 0xFF
00007C45  FF4942            dec word [bx+di+0x42]
00007C48  4D                dec bp
00007C49  42                inc dx
00007C4A  49                dec cx
00007C4B  4F                dec di
00007C4C  2020              and [bx+si],ah
00007C4E  43                inc bx
00007C4F  4F                dec di
00007C50  4D                dec bp
00007C51  005000            add [bx+si+0x0],dl
00007C54  0008              add [bx+si],cl
00007C56  0018              add [bx+si],bl
00007C58  FC                cld
00007C59  33C0              xor ax,ax
00007C5B  8EC0              mov es,ax
00007C5D  FA                cli
00007C5E  8ED0              mov ss,ax
00007C60  BC007C            mov sp,0x7c00
00007C63  FB                sti
00007C64  33D2              xor dx,dx
00007C66  CD13              int 0x13
00007C68  BD7800            mov bp,0x78
00007C6B  8BFC              mov di,sp
00007C6D  C57600            lds si,[bp+0x0]
00007C70  897E00            mov [bp+0x0],di
00007C73  8C4602            mov [bp+0x2],es
00007C76  B90B00            mov cx,0xb
00007C79  F3A4              rep movsb
00007C7B  91                xchg ax,cx
00007C7C  8ED8              mov ds,ax
00007C7E  8BEC              mov bp,sp
00007C80  C6460424          mov byte [bp+0x4],0x24
00007C84  8A460D            mov al,[bp+0xd]
00007C87  89463E            mov [bp+0x3e],ax
00007C8A  8A4610            mov al,[bp+0x10]
00007C8D  F76616            mul word [bp+0x16]
00007C90  03460E            add ax,[bp+0xe]
00007C93  83D200            adc dx,byte +0x0
00007C96  8B4E0B            mov cx,[bp+0xb]
00007C99  81F90002          cmp cx,0x200
00007C9D  7411              je 0x7cb0
00007C9F  7254              jb 0x7cf5
00007CA1  D1E9              shr cx,1
00007CA3  03C0              add ax,ax
00007CA5  83D200            adc dx,byte +0x0
00007CA8  D1663E            shl word [bp+0x3e],1
00007CAB  D16616            shl word [bp+0x16],1
00007CAE  EBE9              jmp short 0x7c99
00007CB0  837E160C          cmp word [bp+0x16],byte +0xc
00007CB4  7705              ja 0x7cbb
00007CB6  C74644FF0F        mov word [bp+0x44],0xfff
00007CBB  03461C            add ax,[bp+0x1c]
00007CBE  13561E            adc dx,[bp+0x1e]
00007CC1  50                push ax
00007CC2  52                push dx
00007CC3  8B5E11            mov bx,[bp+0x11]
00007CC6  53                push bx
00007CC7  83C30F            add bx,byte +0xf
00007CCA  B104              mov cl,0x4
00007CCC  D3EB              shr bx,cl
00007CCE  885E2B            mov [bp+0x2b],bl
00007CD1  8E4654            mov es,[bp+0x54]
00007CD4  06                push es
00007CD5  E8AB00            call 0x7d83
00007CD8  07                pop es
00007CD9  89462C            mov [bp+0x2c],ax
00007CDC  89562E            mov [bp+0x2e],dx
00007CDF  59                pop cx
00007CE0  2BFF              sub di,di
00007CE2  51                push cx
00007CE3  57                push di
00007CE4  8D7646            lea si,[bp+0x46]
00007CE7  B90B00            mov cx,0xb
00007CEA  F3A6              repe cmpsb
00007CEC  5F                pop di
00007CED  59                pop cx
00007CEE  7413              je 0x7d03
00007CF0  83C720            add di,byte +0x20
00007CF3  E2ED              loop 0x7ce2
00007CF5  BED57D            mov si,0x7dd5
00007CF8  E8D400            call 0x7dcf
00007CFB  98                cbw
00007CFC  CD16              int 0x16
00007CFE  EA0000FFFF        jmp 0xffff:0x0
00007D03  268B4D1A          mov cx,[es:di+0x1a]
00007D07  268B451C          mov ax,[es:di+0x1c]
00007D0B  05FF01            add ax,0x1ff
00007D0E  D1E8              shr ax,1
00007D10  886625            mov [bp+0x25],ah
00007D13  5A                pop dx
00007D14  58                pop ax
00007D15  51                push cx
00007D16  8B4E16            mov cx,[bp+0x16]
00007D19  2BC1              sub ax,cx
00007D1B  83DA00            sbb dx,byte +0x0
00007D1E  8E4654            mov es,[bp+0x54]
00007D21  51                push cx
00007D22  C6462B01          mov byte [bp+0x2b],0x1
00007D26  E85A00            call 0x7d83
00007D29  59                pop cx
00007D2A  E2F5              loop 0x7d21
00007D2C  5B                pop bx
00007D2D  8E4642            mov es,[bp+0x42]
00007D30  8B463E            mov ax,[bp+0x3e]
00007D33  88462B            mov [bp+0x2b],al
00007D36  284625            sub [bp+0x25],al
00007D39  9C                pushf
00007D3A  7306              jae 0x7d42
00007D3C  8A5625            mov dl,[bp+0x25]
00007D3F  00562B            add [bp+0x2b],dl
00007D42  53                push bx
00007D43  4B                dec bx
00007D44  4B                dec bx
00007D45  F7E3              mul bx
00007D47  03462C            add ax,[bp+0x2c]
00007D4A  13562E            adc dx,[bp+0x2e]
00007D4D  E83300            call 0x7d83
00007D50  5B                pop bx
00007D51  06                push es
00007D52  8BC3              mov ax,bx
00007D54  D1E3              shl bx,1
00007D56  C47E54            les di,[bp+0x54]
00007D59  7202              jb 0x7d5d
00007D5B  8EC7              mov es,di
00007D5D  817E44FF0F        cmp word [bp+0x44],0xfff
00007D62  7512              jne 0x7d76
00007D64  03D8              add bx,ax
00007D66  D1EB              shr bx,1
00007D68  268B1F            mov bx,[es:bx]
00007D6B  7304              jae 0x7d71
00007D6D  B104              mov cl,0x4
00007D6F  D3EB              shr bx,cl
00007D71  80E70F            and bh,0xf
00007D74  EB03              jmp short 0x7d79
00007D76  268B1F            mov bx,[es:bx]
00007D79  07                pop es
00007D7A  9D                popf
00007D7B  77B3              ja 0x7d30
00007D7D  8A5624            mov dl,[bp+0x24]
00007D80  FF6E40            jmp far [bp+0x40]
00007D83  33DB              xor bx,bx
00007D85  50                push ax
00007D86  52                push dx
00007D87  E81500            call 0x7d9f
00007D8A  8CC0              mov ax,es
00007D8C  052000            add ax,0x20
00007D8F  8EC0              mov es,ax
00007D91  5A                pop dx
00007D92  58                pop ax
00007D93  050100            add ax,0x1
00007D96  83D200            adc dx,byte +0x0
00007D99  FE4E2B            dec byte [bp+0x2b]
00007D9C  75E5              jne 0x7d83
00007D9E  C3                ret
00007D9F  F77618            div word [bp+0x18]
00007DA2  42                inc dx
00007DA3  8ACA              mov cl,dl
00007DA5  33D2              xor dx,dx
00007DA7  F7761A            div word [bp+0x1a]
00007DAA  8AF2              mov dh,dl
00007DAC  D0CC              ror ah,1
00007DAE  D0CC              ror ah,1
00007DB0  80E4C0            and ah,0xc0
00007DB3  0ACC              or cl,ah
00007DB5  8AE8              mov ch,al
00007DB7  8A5624            mov dl,[bp+0x24]
00007DBA  B80102            mov ax,0x201
00007DBD  CD13              int 0x13
00007DBF  73DD              jae 0x7d9e
00007DC1  FE4E26            dec byte [bp+0x26]
00007DC4  75F4              jne 0x7dba
00007DC6  E92CFF            jmp 0x7cf5
00007DC9  B40E              mov ah,0xe
00007DCB  2BDB              sub bx,bx
00007DCD  CD10              int 0x10
00007DCF  AC                lodsb
00007DD0  84C0              test al,al
00007DD2  75F5              jne 0x7dc9
00007DD4  C3                ret
00007DD5  0D0A43            or ax,0x430a
00007DD8  61                popa
00007DD9  6E                outsb
00007DDA  6E                outsb
00007DDB  6F                outsw
00007DDC  7420              je 0x7dfe
00007DDE  6C                insb
00007DDF  6F                outsw
00007DE0  61                popa
00007DE1  6420444F          and [fs:si+0x4f],al
00007DE5  53                push bx
00007DE6  207072            and [bx+si+0x72],dh
00007DE9  657373            gs jae 0x7e5f
00007DEC  206B65            and [bp+di+0x65],ch
00007DEF  7920              jns 0x7e11
00007DF1  746F              je 0x7e62
00007DF3  207265            and [bp+si+0x65],dh
00007DF6  7472              je 0x7e6a
00007DF8  790D              jns 0x7e07
00007DFA  0A00              or al,[bx+si]
00007DFC  0000              add [bx+si],al
00007DFE  55                push bp
00007DFF  AA                stosb

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019