On 06/21/2011 15:01, John Baldwin wrote:
Index: zfsldr.S
===================================================================
--- zfsldr.S    (revision 223339)
+++ zfsldr.S    (working copy)
@@ -234,9 +234,12 @@ nread.1:   xor %ecx,%ecx                   # Get
                callw read                      # Read from disk
                lea 0x10(%bp),%sp               # Clear stack
                jnc return                      # If success, return
-               mov $msg_read,%si               # Otherwise, set the error
-                                               #  message and fall through to
-                                               #  the error routine
+               mov %ah,%al                     # Format
+               mov $read_err,%di               #  error
+               call hex8                       #  code
+               mov $msg_read,%si               # Set the error message and
+                                               #  fall through to the error
+                                               #  routine
  /*
   * Print out the error message pointed to by %ds:(%si) followed
   * by a prompt, wait for a keypress, and then reboot the machine.
@@ -296,12 +299,28 @@ read.1:           mov $msg_chs,%si
                jmp error
  msg_chs:      .asciz "CHS not supported"

+/*
+ * Convert AL to hex, saving the result to [EDI].
+ */
+hex8:          push %ax                        # Save
+               shrb $0x4,%al                   # Do upper
+               call hex8.1                     #  4
+               pop %ax                         # Restore
+hex8.1:        andb $0xf,%al                   # Get lower 4
+               cmpb $0xa,%al                   # Convert
+               sbbb $0x69,%al                  #  to hex
+               das                             #  digit
+               orb $0x20,%al                   # To lower case
+               stosb                           # Save char
+               ret                             # (Recursive)
+
  /* Messages */

-msg_read:      .asciz "Read"
-msg_part:      .asciz "Boot"
+msg_read:      .ascii "Read error: "
+read_err:      .asciz "XX"
+msg_part:      .asciz "Boot error"

-prompt:        .asciz " error\r\n"
+prompt:        .asciz "\r\n"

                .org PRT_OFF,0x90

I get

Read error: 01

Henri

_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to