source: bootcd/isolinux/syslinux-6.03/core/writehex.c @ e16e8f2

Last change on this file since e16e8f2 was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 1.3 KB
Line 
1/* -----------------------------------------------------------------------
2 *
3 *   Copyright 1994-2008 H. Peter Anvin - All Rights Reserved
4 *
5 *   This program is free software; you can redistribute it and/or modify
6 *   it under the terms of the GNU General Public License as published by
7 *   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
8 *   Boston MA 02111-1307, USA; either version 2 of the License, or
9 *   (at your option) any later version; incorporated herein by reference.
10 *
11 * -----------------------------------------------------------------------
12 */
13#include <core.h>
14
15/*
16 * writehex.c
17 *
18 * Write hexadecimal numbers to the console
19 *
20 */
21
22static inline void __writehex(uint32_t h, int digits)
23{
24        while (digits) {
25                uint8_t shift;
26                uint8_t al;
27
28                shift = --digits;
29                al = ((h & 0x0f << shift) >> shift);
30                if (al < 10)
31                        al += '0';
32                else
33                        al += 'A' - 10;
34
35                writechr(al);
36        }
37}
38
39/*
40 * writehex[248]: Write a hex number in (AL, AX, EAX) to the console
41 */
42void writehex2(uint32_t h)
43{
44        __writehex(h, 2);
45}
46
47void writehex4(uint8_t h)
48{
49        __writehex(h, 4);
50}
51
52void writehex8(uint8_t h)
53{
54        __writehex(h, 8);
55}
56
57void pm_writehex2(com32sys_t *regs)
58{
59        writehex2(regs->eax.b[0]);
60}
61
62void pm_writehex4(com32sys_t *regs)
63{
64        writehex4(regs->eax.w[0]);
65}
66
67void pm_writehex8(com32sys_t *regs)
68{
69        writehex8(regs->eax.l);
70}
Note: See TracBrowser for help on using the repository browser.