]> git.ameliathe1st.gay Git - voyage-au-centre-des-fichiers.git/commitdiff
Generalized a bit the functions for printing to the serial port
authorAmelia Coutard <eliottulio.coutard@gmail.com>
Fri, 27 May 2022 00:57:59 +0000 (02:57 +0200)
committerAmelia Coutard <eliottulio.coutard@gmail.com>
Fri, 27 May 2022 00:57:59 +0000 (02:57 +0200)
src/serial.cpp
src/serial.hpp

index 86142ca982db06611775bf3136f18ad554a3011b..2820cdf66241e0e7fbf2c587d0de42ee0366cb74 100644 (file)
@@ -49,24 +49,6 @@ void os::print(std::uint64_t v) {
                os::printc(c < 10 ? c + '0' : c + 'A' - 10);
        }
 }
-void os::print(std::uint32_t v) {
-       for (int i = 28; i >= 0; i -= 4) {
-               const int c = (v >> i) & 0xF;
-               os::printc(c < 10 ? c + '0' : c + 'A' - 10);
-       }
-}
-void os::print(std::uint16_t v) {
-       for (int i = 12; i >= 0; i -= 4) {
-               const int c = (v >> i) & 0xF;
-               os::printc(c < 10 ? c + '0' : c + 'A' - 10);
-       }
-}
-void os::print(std::uint8_t v) {
-       for (int i = 4; i >= 0; i -= 4) {
-               const int c = (v >> i) & 0xF;
-               os::printc(c < 10 ? c + '0' : c + 'A' - 10);
-       }
-}
 void os::print(std::int64_t v) {
        if (v < 0) {
                os::printc('-');
@@ -76,40 +58,16 @@ void os::print(std::int64_t v) {
                os::print(std::uint64_t(v));
        }
 }
-void os::print(std::int32_t v) {
-       if (v < 0) {
-               os::printc('-');
-               os::print(std::uint32_t(-v));
-       } else {
-               os::printc(' ');
-               os::print(std::uint32_t(v));
-       }
-}
-void os::print(std::int16_t v) {
-       if (v < 0) {
-               os::printc('-');
-               os::print(std::uint16_t(-v));
-       } else {
-               os::printc(' ');
-               os::print(std::uint16_t(v));
-       }
-}
-void os::print(std::int8_t v) {
-       if (v < 0) {
-               os::printc('-');
-               os::print(std::uint8_t(-v));
-       } else {
-               os::printc(' ');
-               os::print(std::uint8_t(v));
-       }
-}
-void os::println(const char* str) {
-       os::print(str);
-       os::printc('\n');
-}
+void os::print(std::uint32_t v) { os::print(std::uint64_t(v)); }
+void os::print(std::uint16_t v) { os::print(std::uint64_t(v)); }
+void os::print(std::uint8_t v)  { os::print(std::uint64_t(v)); }
+void os::print(std::int32_t v)  { os::print(std::int64_t(v));  }
+void os::print(std::int16_t v)  { os::print(std::int64_t(v));  }
+void os::print(std::int8_t v)   { os::print(std::int64_t(v));  }
 void os::assert(bool cond, const char* diagnostic) {
        if (!cond) {
                os::print("Error: ");
                os::println(diagnostic);
+               while (true) { os::hlt(); }
        }
 }
index 39bb4b4aa4d41d71a3fc46c4a4d9ff084d2cce9f..d1594564a3039e0d504ec41c305a09578ecb3094 100644 (file)
@@ -23,7 +23,11 @@ void print(std::int64_t v);
 void print(std::int32_t v);
 void print(std::int16_t v);
 void print(std::int8_t v);
-void println(const char* str);
+template <typename T>
+void println(const T& v) {
+       print(v);
+       printc('\n');
+}
 void assert(bool cond, const char* diagnostic);
 
 }