Message-Id: <199702050405.AA13093@mail.crl.com> From: "Weiqi Gao" To: Subject: Re: [opendos] dual booting OD and MSDOG :) Date: Tue, 4 Feb 1997 22:06:35 -0600 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: owner-opendos AT mail DOT tacoma DOT net Precedence: bulk Jim Lefavour 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