>Here is the code to fixed the problem with net booting dos with PXE to EB to
>DOS. The line numbers lists are from the original code.
Thanks. I was hoping for a diff -u, but thankfully there isn't too much
to patch. Here's the result, could you tell me if this is right?
Comments, Vasil?
--- ../../etherboot-5.0.8/src/loader.S 2002-01-29 17:44:09.000000000 +1100
+++ ./loader.S 2002-12-14 22:51:54.000000000 +1100
@@ -209,6 +209,7 @@
pnpentry:
movw $0,%ax
#else /* PXELOADER */
+#define PXENV_STOP_UNDI 0x15
#define PXENV_UNDI_SHUTDOWN 0x05
#define PXENV_UNLOAD_STACK 0x70
jmp startpxe
@@ -242,6 +243,8 @@
#endif
.ascii "\r\n"
hellomsgend:
+pxe_stop_undi_pkt:
+ .word 0
pxe_undi_shutdown_pkt:
.word 0
pxe_unload_stack_pkt:
@@ -321,6 +324,11 @@
lcall *%cs:(PXEEntry-_start)
add $6, %sp
pushw %cs
+ pushw $pxe_stop_undi_pkt
+ pushw $PXENV_STOP_UNDI
+ lcall *%cs:(PXEEntry-_start)
+ add $6,%sp
+ pushw %cs
pushw $pxe_unload_stack_pkt
pushw $PXENV_UNLOAD_STACK
lcall *%cs:(PXEEntry-_start)
@@ -367,15 +375,15 @@
mov %bl, %al
shr $4, %al
clc
- daa
- cmp $9, %al
- sbb $0xcf, %al
+ cmp $10, %al /* These three lines written by Norbert Juffa <nor...@am...> */
+ sbb $0x69, %al
+ das
mov %al, pxeKmsg-_start+3
mov %bl, %al
and $0x0f, %al
- daa /* no carry here */
- cmp $9, %al
- sbb $0xcf, %al
+ cmp $10,%al
+ sbb $0x69, %al
+ das
mov %al, pxeKmsg-_start+4
movw $0x0a0d, pxemsg-_start /* "\r\n" */
/* \end{hacked assembly} */
>Is anyone else already working on an Etherboot UNDI driver? I am interested
>in working on one, but probably won't be able to start for a while.
Don't let that hold you back. Far more people say they are going to do
something than act.
Thanks again.
|