Printing a hex dump of the tftp_open cmd
This commit is contained in:
parent
093969301e
commit
cdfef627fa
1 changed files with 81 additions and 14 deletions
95
lboot.S
95
lboot.S
|
|
@ -59,6 +59,8 @@ _start: cli
|
||||||
|
|
||||||
call init_com1
|
call init_com1
|
||||||
|
|
||||||
|
mov $msg_start, %si
|
||||||
|
call print
|
||||||
mov $msg_start, %si
|
mov $msg_start, %si
|
||||||
call print
|
call print
|
||||||
|
|
||||||
|
|
@ -352,6 +354,13 @@ tftp_open: push %ecx
|
||||||
push server_ip+2
|
push server_ip+2
|
||||||
push server_ip
|
push server_ip
|
||||||
push $0
|
push $0
|
||||||
|
|
||||||
|
mov %ss, %esi
|
||||||
|
shl $4, %esi
|
||||||
|
add %esp, %esi
|
||||||
|
mov $128, %ecx
|
||||||
|
call dump
|
||||||
|
|
||||||
pxe_call PXE_TFTP_OPEN
|
pxe_call PXE_TFTP_OPEN
|
||||||
|
|
||||||
leave
|
leave
|
||||||
|
|
@ -400,33 +409,91 @@ out_of_mem: mov $msg_memerr, %si
|
||||||
|
|
||||||
// print: print NUL-terminated string pointed to by SI
|
// print: print NUL-terminated string pointed to by SI
|
||||||
print: push %eax
|
print: push %eax
|
||||||
|
push %si
|
||||||
|
push %bp
|
||||||
|
mov %sp, %bp
|
||||||
|
1: lodsb
|
||||||
|
or %al, %al
|
||||||
|
jz 2f
|
||||||
|
call printch
|
||||||
|
jmp 1b
|
||||||
|
2: leave
|
||||||
|
pop %si
|
||||||
|
pop %eax
|
||||||
|
ret
|
||||||
|
|
||||||
|
printch: push %eax
|
||||||
push %ebx
|
push %ebx
|
||||||
push %edx
|
push %edx
|
||||||
|
push %ebp
|
||||||
|
|
||||||
|
mov %ax, %bx
|
||||||
|
|
||||||
|
1: mov $COM1+5, %dx
|
||||||
|
inb %dx, %al
|
||||||
|
test $0x20, %al
|
||||||
|
jz 1b
|
||||||
|
|
||||||
|
mov %bx, %ax
|
||||||
|
|
||||||
|
mov $COM1, %dx
|
||||||
|
outb %al, %dx
|
||||||
|
|
||||||
|
xor %bx, %bx
|
||||||
|
mov $0x0E, %ah
|
||||||
|
int $0x10
|
||||||
|
|
||||||
|
pop %ebp
|
||||||
|
pop %edx
|
||||||
|
pop %ebx
|
||||||
|
pop %eax
|
||||||
|
ret
|
||||||
|
|
||||||
|
dump: push %eax
|
||||||
|
push %ebx
|
||||||
|
push %ecx
|
||||||
|
push %edx
|
||||||
push %esi
|
push %esi
|
||||||
push %bp
|
push %bp
|
||||||
mov %sp, %bp
|
mov %sp, %bp
|
||||||
|
|
||||||
xor %bx, %bx
|
xor %dx, %dx
|
||||||
|
|
||||||
_prnext: mov $COM1+5, %dx
|
1: cmp %cx, %dx
|
||||||
inb %dx, %al
|
jae 2f
|
||||||
test $0x20, %al
|
inc %dx
|
||||||
jz _prnext
|
|
||||||
|
|
||||||
lodsb
|
addr32 lodsb
|
||||||
or %al, %al
|
push %ax
|
||||||
jz _prdone
|
mov %al, %bl
|
||||||
|
shr $4, %bx
|
||||||
|
and $0x0F, %bx
|
||||||
|
mov hex_digits(%bx), %al
|
||||||
|
call printch
|
||||||
|
pop %bx
|
||||||
|
and $0x0F, %bx
|
||||||
|
mov hex_digits(%bx), %al
|
||||||
|
call printch
|
||||||
|
|
||||||
mov $COM1, %dx
|
mov $' ', %al
|
||||||
outb %al, %dx
|
call printch
|
||||||
|
test $0xF, %dx
|
||||||
|
jnz 1b
|
||||||
|
mov $'\r', %al
|
||||||
|
call printch
|
||||||
|
mov $'\n', %al
|
||||||
|
call printch
|
||||||
|
jmp 1b
|
||||||
|
|
||||||
mov $0x0E, %ah
|
2: mov $'\r', %al
|
||||||
int $0x10
|
call printch
|
||||||
jmp _prnext
|
mov $'\n', %al
|
||||||
|
call printch
|
||||||
|
|
||||||
_prdone: leave
|
leave
|
||||||
pop %esi
|
pop %esi
|
||||||
pop %edx
|
pop %edx
|
||||||
|
pop %ecx
|
||||||
pop %ebx
|
pop %ebx
|
||||||
pop %eax
|
pop %eax
|
||||||
ret
|
ret
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue