cli jmp short 0x7c24 00007C03 01B4014C add [si+0x4c01],si 00007C07 49 dec cx 00007C08 4C dec sp 00007C09 4F dec di 00007C0A 16 push ss 00007C0B 08BD8A13 or [di+0x138a],bh 00007C0F 4C dec sp 00007C10 0000 add [bx+si],al 00007C12 0000 add [bx+si],al 00007C14 A30645 mov [0x4506],ax 00007C17 4A dec dx 00007C18 2CFB sub al,0xfb 00007C1A 41 inc cx 00007C1B 95 xchg ax,bp 00007C1C A10080 mov ax,[0x8000] 00007C1F 60 pushaw 00007C20 A1576A mov ax,[0x6a57] 00007C23 14 db 0x14 mov ax,0x7c0 mov ss,ax mov sp,0x800 ;init stack to 7c00+800=8400 sti ;reenable interrupts push dx push bx push es push si cld ;it would be a pretty badly-behaved BIOS or bootloader to require this mov ds,ax ;DS relative to this block xor bp,bp pushaw mov ax,0x1200 mov bl,0x36 int 0x10 ;ah=12 bl=36 al=0 enable screen refresh popaw mov al,0xd call word outchar mov al,0xa call word outchar mov al,0x4c call word outchar pushaw 00007C4F 1E push ds 00007C50 07 pop es 00007C51 80FAFE cmp dl,0xfe 00007C54 7502 jnz 0x7c58 00007C56 88F2 mov dl,dh 00007C58 BB0002 mov bx,0x200 00007C5B 8A761E mov dh,[bp+0x1e] 00007C5E 89D0 mov ax,dx 00007C60 80E480 and ah,0x80 00007C63 30E0 xor al,ah 00007C65 780A js 0x7c71 00007C67 3C10 cmp al,0x10 00007C69 7306 jnc 0x7c71 00007C6B F6461C40 test byte [bp+0x1c],0x40 00007C6F 752E jnz 0x7c9f 00007C71 88F2 mov dl,dh 00007C73 668B7618 mov esi,[bp+0x18] 00007C77 6609F6 or esi,esi 00007C7A 7423 jz 0x7c9f 00007C7C 52 push dx 00007C7D B408 mov ah,0x8 00007C7F B280 mov dl,0x80 00007C81 53 push bx 00007C82 CD13 int 0x13 00007C84 5B pop bx 00007C85 7257 jc 0x7cde 00007C87 0FB6CA movzx cx,dl 00007C8A BA7F00 mov dx,0x7f 00007C8D 42 inc dx 00007C8E 6631C0 xor eax,eax 00007C91 40 inc ax 00007C92 E86000 call word 0x7cf5 00007C95 663BB7B801 cmp esi,[bx+0x1b8] 00007C9A 7403 jz 0x7c9f 00007C9C E2EF loop 0x7c8d 00007C9E 5A pop dx 00007C9F 53 push bx 00007CA0 8A761F mov dh,[bp+0x1f] 00007CA3 BE2000 mov si,0x20 00007CA6 E8DF00 call word 0x7d88 00007CA9 B499 mov ah,0x99 00007CAB 66817FFC4C494C4F cmp dword [bx-0x4],0x4f4c494c 00007CB3 7529 jnz 0x7cde 00007CB5 5E pop si 00007CB6 688008 push word 0x880 00007CB9 07 pop es 00007CBA 31DB xor bx,bx 00007CBC E8C900 call word 0x7d88 00007CBF 75FB jnz 0x7cbc 00007CC1 BE0600 mov si,0x6 00007CC4 89F7 mov di,si 00007CC6 B90A00 mov cx,0xa 00007CC9 B49A mov ah,0x9a 00007CCB F3A6 repe cmpsb 00007CCD 750F jnz 0x7cde 00007CCF B002 mov al,0x2 00007CD1 AE scasb 00007CD2 750A jnz 0x7cde 00007CD4 06 push es 00007CD5 55 push bp 00007CD6 B049 mov al,0x49 00007CD8 E8CF00 call word outchar 00007CDB CB retf 00007CDC B440 mov ah,0x40 00007CDE B020 mov al,0x20 00007CE0 E8C700 call word outchar 00007CE3 E8B400 call word 0x7d9a 00007CE6 FE4E00 dec byte [bp+0x0] 00007CE9 7407 jz 0x7cf2 00007CEB BCE807 mov sp,0x7e8 00007CEE 61 popaw 00007CEF E95CFF jmp word 0x7c4e 00007CF2 F4 hlt 00007CF3 EBFD jmp short 0x7cf2 00007CF5 60 pushaw 00007CF6 55 push bp 00007CF7 55 push bp 00007CF8 6650 push eax 00007CFA 06 push es 00007CFB 53 push bx 00007CFC 6A01 push byte +0x1 00007CFE 6A10 push byte +0x10 00007D00 89E6 mov si,sp 00007D02 53 push bx 00007D03 F6C660 test dh,0x60 00007D06 7470 jz 0x7d78 00007D08 F6C620 test dh,0x20 00007D0B 7414 jz 0x7d21 00007D0D BBAA55 mov bx,0x55aa 00007D10 B441 mov ah,0x41 00007D12 CD13 int 0x13 00007D14 720B jc 0x7d21 00007D16 81FB55AA cmp bx,0xaa55 00007D1A 7505 jnz 0x7d21 00007D1C F6C101 test cl,0x1 00007D1F 7541 jnz 0x7d62 00007D21 52 push dx 00007D22 06 push es 00007D23 B408 mov ah,0x8 00007D25 CD13 int 0x13 00007D27 07 pop es 00007D28 72B4 jc 0x7cde 00007D2A 51 push cx 00007D2B C0E906 shr cl,0x6 00007D2E 86E9 xchg ch,cl 00007D30 89CF mov di,cx 00007D32 59 pop cx 00007D33 C1EA08 shr dx,0x8 00007D36 92 xchg ax,dx 00007D37 40 inc ax 00007D38 49 dec cx 00007D39 83E13F and cx,byte +0x3f 00007D3C 41 inc cx 00007D3D F7E1 mul cx 00007D3F 93 xchg ax,bx 00007D40 8B4408 mov ax,[si+0x8] 00007D43 8B540A mov dx,[si+0xa] 00007D46 39DA cmp dx,bx 00007D48 7392 jnc 0x7cdc 00007D4A F7F3 div bx 00007D4C 39F8 cmp ax,di 00007D4E 778C ja 0x7cdc 00007D50 C0E406 shl ah,0x6 00007D53 86E0 xchg ah,al 00007D55 92 xchg ax,dx 00007D56 F6F1 div cl 00007D58 08E2 or dl,ah 00007D5A 89D1 mov cx,dx 00007D5C 41 inc cx 00007D5D 5A pop dx 00007D5E 88C6 mov dh,al 00007D60 EB1C jmp short 0x7d7e 00007D62 B442 mov ah,0x42 00007D64 5B pop bx 00007D65 BD0500 mov bp,0x5 00007D68 60 pushaw 00007D69 CD13 int 0x13 00007D6B 7316 jnc 0x7d83 00007D6D 4D dec bp 00007D6E 74B8 jz 0x7d28 00007D70 31C0 xor ax,ax 00007D72 CD13 int 0x13 00007D74 61 popaw 00007D75 4D dec bp 00007D76 EBF0 jmp short 0x7d68 00007D78 6650 push eax 00007D7A 59 pop cx 00007D7B 58 pop ax 00007D7C 88E6 mov dh,ah 00007D7E B80102 mov ax,0x201 00007D81 EBE1 jmp short 0x7d64 00007D83 8D6410 lea sp,[si+0x10] 00007D86 61 popaw 00007D87 C3 ret 00007D88 66AD lodsd 00007D8A 6609C0 or eax,eax 00007D8D 740A jz 0x7d99 00007D8F 66034610 add eax,[bp+0x10] 00007D93 E85FFF call word 0x7cf5 00007D96 80C702 add bh,0x2 00007D99 C3 ret 00007D9A C1C004 rol ax,0x4 00007D9D E80300 call word 0x7da3 00007DA0 C1C004 rol ax,0x4 00007DA3 240F and al,0xf 00007DA5 27 daa 00007DA6 04F0 add al,0xf0 00007DA8 1440 adc al,0x40 outchar: pushaw mov bx,0x7 mov ah,0xe int 0x10 ;ah=0e al=char bl=color (7=silver) tty write character popaw ret 00007DB4 0000 add [bx+si],al 00007DB6 0000 add [bx+si],al 00007DB8 0000 add [bx+si],al 00007DBA 0000 add [bx+si],al 00007DBC 0000 add [bx+si],al 00007DBE 0000 add [bx+si],al 00007DC0 0000 add [bx+si],al 00007DC2 0000 add [bx+si],al 00007DC4 0000 add [bx+si],al 00007DC6 0000 add [bx+si],al 00007DC8 0000 add [bx+si],al 00007DCA 0000 add [bx+si],al 00007DCC 0000 add [bx+si],al 00007DCE 0000 add [bx+si],al 00007DD0 0000 add [bx+si],al 00007DD2 0000 add [bx+si],al 00007DD4 0000 add [bx+si],al 00007DD6 0000 add [bx+si],al 00007DD8 0000 add [bx+si],al 00007DDA 0000 add [bx+si],al 00007DDC 0000 add [bx+si],al 00007DDE 0000 add [bx+si],al 00007DE0 0000 add [bx+si],al 00007DE2 0000 add [bx+si],al 00007DE4 0000 add [bx+si],al 00007DE6 0000 add [bx+si],al 00007DE8 0000 add [bx+si],al 00007DEA 0000 add [bx+si],al 00007DEC 0000 add [bx+si],al 00007DEE 0000 add [bx+si],al 00007DF0 0000 add [bx+si],al 00007DF2 0000 add [bx+si],al 00007DF4 0000 add [bx+si],al 00007DF6 0000 add [bx+si],al 00007DF8 0000 add [bx+si],al 00007DFA 0000 add [bx+si],al 00007DFC 0000 add [bx+si],al 00007DFE 55 push bp 00007DFF AA stosb