diff --git a/.gitignore b/.gitignore index 6a4aaa9..0686811 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ /target -text_display.bin +font.bin diff --git a/font.csv b/font.csv new file mode 100644 index 0000000..ef33a65 --- /dev/null +++ b/font.csv @@ -0,0 +1,575 @@ +20,SP,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,!,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,"""",FALSE,FALSE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,,TRUE,FALSE,TRUE,,,, +,#,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,$,FALSE,TRUE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,%,TRUE,FALSE,TRUE,,,, +,,FALSE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,&,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,FALSE,TRUE,TRUE,,,, +,,TRUE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,',FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,(,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE +,,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE +,,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE +,,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE +,,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE +,,,,,,,, +,),FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE +,,FALSE,FALSE,TRUE,,FALSE,TRUE,FALSE +,,FALSE,FALSE,TRUE,,FALSE,TRUE,FALSE +,,FALSE,FALSE,TRUE,,FALSE,TRUE,FALSE +,,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE +,,,,,,,, +,*,TRUE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,+,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,comma,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,,,,,,, +,-,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,.,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,/,FALSE,FALSE,TRUE,,,, +,,FALSE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,,,,,,, +,0,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE +,,,,,,,, +,1,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,TRUE,TRUE +,,FALSE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,,,,,,, +,2,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE +,,FALSE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,FALSE,FALSE,TRUE +,,TRUE,FALSE,FALSE,,FALSE,TRUE,FALSE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,,,,,,, +,3,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,FALSE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,,,,,,, +,4,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,,,,,,, +,5,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,,,,,,, +,6,TRUE,TRUE,TRUE,,FALSE,TRUE,TRUE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,,,,,,, +,7,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,TRUE,FALSE +,,FALSE,FALSE,TRUE,,FALSE,TRUE,FALSE +,,FALSE,FALSE,TRUE,,TRUE,FALSE,FALSE +,,,,,,,, +,8,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,,,,,,, +,9,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,,,,,,, +,:,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,;,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,,,,,,, +,<,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,=,FALSE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,>,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,?,TRUE,TRUE,TRUE,,,, +,,FALSE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,@,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,A,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,,,,,,, +,B,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,FALSE,,TRUE,TRUE,FALSE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,,,,,,, +,C,TRUE,TRUE,TRUE,,FALSE,TRUE,TRUE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,TRUE,TRUE,TRUE,,FALSE,TRUE,TRUE +,,,,,,,, +,D,TRUE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,FALSE,,,, +,,,,,,,, +,E,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,,,,,,, +,F,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,,,,,,, +,G,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,H,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,I,TRUE,TRUE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,J,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE +,,,,,,,, +,K,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,L,TRUE,FALSE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,M,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,N,FALSE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,FALSE,,,, +,,,,,,,, +,O,FALSE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,P,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,,,,,,, +,Q,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,FALSE,TRUE,,,, +,,,,,,,, +,R,TRUE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,S,FALSE,TRUE,TRUE,,FALSE,TRUE,TRUE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,FALSE,TRUE,FALSE,,TRUE,TRUE,TRUE +,,FALSE,FALSE,TRUE,,FALSE,FALSE,TRUE +,,TRUE,TRUE,FALSE,,TRUE,TRUE,FALSE +,,,,,,,, +,T,TRUE,TRUE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,U,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,V,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,W,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,X,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,Y,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,FALSE,TRUE,FALSE +,,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE +,,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE +,,,,,,,, +,Z,TRUE,TRUE,TRUE,,,, +,,FALSE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,[,FALSE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE +,,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE +,,FALSE,TRUE,FALSE,,TRUE,FALSE,FALSE +,,FALSE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,,,,,,, +,\,TRUE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,TRUE,,,, +,,,,,,,, +,],TRUE,TRUE,FALSE,,FALSE,TRUE,TRUE +,,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE +,,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE +,,FALSE,TRUE,FALSE,,FALSE,FALSE,TRUE +,,TRUE,TRUE,FALSE,,FALSE,TRUE,TRUE +,,,,,,,, +,^,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,_,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,`,TRUE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,a,TRUE,TRUE,TRUE,,,, +,,FALSE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,b,TRUE,FALSE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,c,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,d,FALSE,FALSE,TRUE,,,, +,,FALSE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,e,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,f,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,g,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,FALSE,TRUE,,,, +,,FALSE,TRUE,TRUE,,,, +,,,,,,,, +,h,TRUE,FALSE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,i,FALSE,FALSE,FALSE,,FALSE,TRUE,FALSE +,,FALSE,TRUE,FALSE,,FALSE,FALSE,FALSE +,,FALSE,FALSE,FALSE,,FALSE,TRUE,FALSE +,,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE +,,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE +,,,,,,,, +,j,FALSE,TRUE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,TRUE,FALSE,,,, +,,,,,,,, +,k,TRUE,FALSE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,l,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,m,FALSE,FALSE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,n,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,TRUE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,o,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,p,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,TRUE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,FALSE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,,,,,,, +,q,FALSE,FALSE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,FALSE,TRUE,,,, +,,,,,,,, +,r,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE +,,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE +,,TRUE,TRUE,FALSE,,TRUE,TRUE,TRUE +,,TRUE,FALSE,TRUE,,TRUE,FALSE,FALSE +,,TRUE,FALSE,FALSE,,TRUE,FALSE,FALSE +,,,,,,,, +,s,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,FALSE,,,, +,,,,,,,, +,t,FALSE,FALSE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,TRUE,,,, +,,,,,,,, +,u,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,,,,,,, +,v,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,w,FALSE,FALSE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,x,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,,,,,,, +,y,FALSE,FALSE,FALSE,,,, +,,TRUE,FALSE,TRUE,,,, +,,TRUE,TRUE,TRUE,,,, +,,FALSE,FALSE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,z,FALSE,FALSE,FALSE,,FALSE,FALSE,FALSE +,,TRUE,TRUE,TRUE,,FALSE,FALSE,FALSE +,,FALSE,FALSE,TRUE,,TRUE,TRUE,TRUE +,,FALSE,TRUE,FALSE,,FALSE,TRUE,FALSE +,,TRUE,TRUE,TRUE,,TRUE,TRUE,TRUE +,,,,,,,, +,{,FALSE,TRUE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,TRUE,,,, +,,,,,,,, +,|,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,,,,,,, +,},TRUE,TRUE,FALSE,,,, +,,FALSE,TRUE,FALSE,,,, +,,FALSE,TRUE,TRUE,,,, +,,FALSE,TRUE,FALSE,,,, +,,TRUE,TRUE,FALSE,,,, +,,,,,,,, +,~,FALSE,FALSE,FALSE,,,, +,,TRUE,TRUE,FALSE,,,, +,,FALSE,TRUE,TRUE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,,,,,,, +,DEL,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, +,,FALSE,FALSE,FALSE,,,, diff --git a/src/main.rs b/src/main.rs index 7b66a3b..9b73897 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,16 +1,55 @@ -use std::{fs::File, io::Write}; +use std::{fs::File, io::{self, BufRead, BufReader, Write}}; -const letter: u16 = 0b111101111101101; - fn main() { - let mut file = match File::create("text_display.bin") { - Ok(file) => file, - Err(err) => { - eprintln!("Cannot create output file: {}", err); - return; - }, - }; - - let _ = file.write_all(&letter.to_le_bytes()); + let result = generate_font_data(); + + if let Err(err) = result { + eprintln!("{}", err); + } +} + +fn generate_font_data() -> io::Result<()> { + + let font_file = File::open("font.csv")?; + let mut output_file = File::create("font.bin")?; + + // First 0x20 characters are not printable + for _ in 0..0x20 { + output_file.write(&[0,0])?; + } + + let reader = BufReader::new(font_file); + + let mut bits: u16 = 0; + + for (i, line) in reader.lines().enumerate() { + if i % 6 == 5 { + // Write the digit to the output binary file + println!("Writing {:x}", bits); + output_file.write(&bits.to_be_bytes())?; + bits = 0; + + println!(); + continue; // Ignore empty character separation lines + } + + let pixels_line: Vec = line?.split(',').skip(2).take(3).map(|v| match v { + "TRUE" => Ok(1), + "FALSE" => Ok(0), + _ => Err(io::Error::new(io::ErrorKind::InvalidData, format!("Invalid value: '{}' on line {}", v, i))) + + }).collect::>()?; + + bits <<= 3; + bits |= pixels_line[0] << 2 | pixels_line[1] << 1 | pixels_line[2]; + + println!("{}{}{}", pixels_line[0], pixels_line[1], pixels_line[2]) + } + + // Write last remaining character + println!("Writing remaining {:x}", bits); + output_file.write(&bits.to_be_bytes())?; + + return Ok(()); }