summaryrefslogtreecommitdiff
path: root/src/kernel/core/monitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/core/monitor.c')
-rw-r--r--src/kernel/core/monitor.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/kernel/core/monitor.c b/src/kernel/core/monitor.c
index 8c4744a..6660fe0 100644
--- a/src/kernel/core/monitor.c
+++ b/src/kernel/core/monitor.c
@@ -88,3 +88,24 @@ void monitor_writeHex(uint32_t v) {
v = v << 4;
}
}
+
+void monitor_writeDec(uint32_t v) {
+ if (v == 0) {
+ monitor_put('0');
+ return;
+ }
+
+ char numbers[] = "0123456789";
+ while (v > 0) {
+ int order = 1, no = 1;
+ while (v / order > 0) order *= 10;
+ order /= 10;
+ monitor_put(numbers[v / order]);
+ v = v - (v / order * order);
+ while (v / no > 0) no *= 10;
+ while (no < order) {
+ monitor_put('0');
+ no *= 10;
+ }
+ }
+}