; 0.96 inch SSD1306 Driver based 128x64 Monochrome OLED Display ; Author: Santanu Das ; Initial Date of Creation with ATmega32A: 6th November,2020 ; Date of Creation with ATtiny85: 18th February,2021 ; Interface type: Software I2C ; MCU Clock: @1MHz ; Pin configuration ; Old ATmega32A Board ;;.EQU SCLP = 2 ; SCL Pin PORTB.2 ;;.EQU SDAP = 0 ; SDA Pin PORTB.0 ; New ATtiny85 Board .EQU SCLP = 1 ; SCL Pin PORTB.1 .EQU SDAP = 3 ; SDA Pin PORTB.3 ; GPR's usage ;=============================================================== .DEF BCD0 = R2 ; Packed BCD numbers .DEF BCD1 = R3 ; to be stored .DEF BCD2 = R4 ; after conversion .DEF Temp = R16 ; Defining Temporary Data Register .DEF Counter = R17 ; Defining Operator .DEF CharBuff = R18 ; Defining Character Buffer ; 16-bit operator .DEF Opr16L = R24 ; Defining 16-bit Operator .DEF Opr16M = R25 ; SRAM usage ;=============================================================== .EQU ColStart = 0x60 ; Column Start Address .EQU ColEnd = 0x61 ; Column End Address .EQU PageStart = 0x62 ; Page Start Address .EQU PageEnd = 0x63 ; Page End Address .EQU FontStyle = 0x64 ; Font Style Identifier .EQU Filler = 0x65 ; Screen Filling Byte ; Constants .EQU RegPtrL = 2 ; Address of R2 register .EQU RegPtrH = 4 ; Address of R4 register (for BCD conversion) ; Font Specifications ;=============================================================== ; Font Style 1 ; Roboto Mono (Trimmed) 8x16 .EQU FontWidth1 = 8 ; in bits .EQU FontHeight1 = 2 ; in bytes ; Font Style 2 ; DejaVu Sans Mono Bold (Trimmed) 16x24 ; ***Mainly numeric characters, ASCII 32 to 63 only .EQU FontWidth2 = 16 ; in bits .EQU FontHeight2 = 3 ; in bytes ; Default Font Style ; Terminal 6x8 .EQU FontWidthD = 6 ; in bits .EQU FontHeightD = 1 ; in bytes .EQU TableOffset = 32 ; 32 for whole ASCII Table .EQU CR = 0x0D ; Carriage Return .INCLUDE "TN85DEF.INC" ; ATtiny85 .ORG 0x0000 RJMP Initiate ; Power On Reset .ORG 0x000F Initiate: ; Stack pointer Initialization LDI Temp, HIGH(RAMEND) OUT SPH, Temp LDI Temp, LOW(RAMEND) OUT SPL, Temp LDI Temp, 0xEF ;; 0xFF OUT DDRB, Temp ; ADC Initialization LDI Temp, 0x22 ; 0010 0010 OUT ADMUX, Temp ; ADC Reference = Vcc ; ADLAR = 1 (For 8-bit result); ADC Channel = 2, Single Ended Input LDI Temp, 0x83 ; ADC Enabled ; Auto-trigger Disabled ; Interrupt Disabled ; Clock/8 = 125kHz OUT ADCSRA, Temp LDI Temp, 0x00 OUT ADCSRB, Temp ; Free Running Mode ;================================================ RCALL DL_500ms RCALL InitOLED ;================================================ ; Run Mode CLR Temp STS Filler, Temp RCALL FillScreen LDI Temp, 0 STS ColStart, Temp LDI Temp, 0 STS PageStart, Temp LDI Temp, 1 STS FontStyle, Temp LDI ZL, LOW(Intro<<1) LDI ZH, HIGH(Intro<<1) RCALL PutString LDI Temp, 2 STS FontStyle, Temp ReadAngKey: SBI ADCSRA, ADSC WaitADC: SBIC ADCSRA, ADSC RJMP WaitADC IN Opr16L, ADCH ; 8-bit ADC value CLR Opr16M RCALL bin2BCD16 LDI Temp, 0 STS ColStart, Temp LDI Temp, 3 STS PageStart, Temp RCALL PutNum4D RCALL DL_15ms RCALL DL_15ms RCALL DL_15ms RJMP ReadAngKey ;================================================ ;================================================ ; Puts 4 digit number on OLED PutNum4D: MOV CharBuff, BCD1 SWAP CharBuff ANDI CharBuff, 0x0F ORI CharBuff, 0x30 RCALL PutChar MOV CharBuff, BCD1 ANDI CharBuff, 0x0F ORI CharBuff, 0x30 RCALL PutChar MOV CharBuff, BCD0 SWAP CharBuff ANDI CharBuff, 0x0F ORI CharBuff, 0x30 RCALL PutChar MOV CharBuff, BCD0 ANDI CharBuff, 0x0F ORI CharBuff, 0x30 RCALL PutChar RET ;================================================ ; Puts String on OLED and stops when CR found PutString: LPM CharBuff, Z+ CPI CharBuff, CR BREQ PutStringExt PUSH ZL PUSH ZH RCALL PutChar POP ZH POP ZL RJMP PutString PutStringExt: RET ;================================================ ; Puts a character on OLED and increases the character position pointer PutChar: SUBI CharBuff, TableOffset ; Table matching (Lookup table = ASCII table - Table Offset Value) ; Loading the initial address of lookup table LDS Temp, FontStyle ; Loading Font Style CPI Temp, 1 ; If Font Style == 1 BREQ LoadFontTable1 CPI Temp, 2 ; If Font Style == 2 BREQ LoadFontTable2 ; Else Load Lookup table of default font LoadFontTableDefault: LDI ZL, LOW(Terminal6x8<<1) LDI ZH, HIGH(Terminal6x8<<1) RJMP FetchChar LoadFontTable1: LDI ZL, LOW(RobotoMono8x16<<1) LDI ZH, HIGH(RobotoMono8x16<<1) RJMP FetchChar LoadFontTable2: LDI ZL, LOW(DejaVuSansMonoBold16x24<<1) LDI ZH, HIGH(DejaVuSansMonoBold16x24<<1) ; Fetching the target character from lookup table FetchChar: TST CharBuff BREQ CharFound ; If Character found, then do accordingly ; Else move onto next character bitmap data LDS Temp, FontStyle ; Loading Font Style CPI Temp, 1 ; If Font Style == 1 BREQ FetchCharFont1 CPI Temp, 2 ; If Font Style == 2 BREQ FetchCharFont2 FetchCharFontD: ADIW ZL, (FontWidthD*FontHeightD) RJMP CheckNextChar FetchCharFont1: ADIW ZL, (FontWidth1*FontHeight1) RJMP CheckNextChar FetchCharFont2: ADIW ZL, (FontWidth2*FontHeight2) CheckNextChar: DEC CharBuff ; Decrease count RJMP FetchChar ; Continue the fetch cycle CharFound: RCALL CharBox ; Define character box diemension LDS Temp, FontStyle ; Loading Font Style CPI Temp, 1 ; If Font Style == 1 BREQ ScanCountFont1 CPI Temp, 2 ; If Font Style == 2 BREQ ScanCountFont2 ; Raster Scan counter for Default Font Style LDI CharBuff, (FontWidthD*FontHeightD) ; Loading raster scanning counter for Default Font Style RJMP InitCharRendering ; Raster Scan counter for Font Style 1 ScanCountFont1: LDI CharBuff, (FontWidth1*FontHeight1) ; Loading raster scanning counter for Font Style 1 RJMP InitCharRendering ; Raster Scan counter for Font Style 2 ScanCountFont2: LDI CharBuff, (FontWidth2*FontHeight2) ; Loading raster scanning counter for Font Style 2 InitCharRendering: RCALL SendData RenderChar: LPM Temp, Z+ RCALL MasterTransferTWI DEC CharBuff BRNE RenderChar RCALL StopTWI ; Increasing Character position pointer LDS Temp, FontStyle ; Loading Font Style CPI Temp, 1 ; If Font Style == 1 BREQ IncCharPointerFont1 CPI Temp, 2 ; If Font Style == 2 BREQ IncCharPointerFont2 ; Else Default Font IncCharPointerFontD: LDS Temp, ColStart SUBI Temp, (0-FontWidthD) STS ColStart, Temp RJMP PutCharExt IncCharPointerFont1: LDS Temp, ColStart SUBI Temp, (0-FontWidth1) STS ColStart, Temp RJMP PutCharExt IncCharPointerFont2: LDS Temp, ColStart SUBI Temp, (0-FontWidth2) STS ColStart, Temp PutCharExt: RET ;================================================ ; Character Box (Font Width x Font Height) ; Single Character to be drawn inside this box CharBox: ; Checking selected font style LDS Temp, FontStyle ; Loading Font Style CPI Temp, 1 ; If Font Style == 1 BREQ CheckColSpaceFont1 CPI Temp, 2 ; If Font Style == 2 BREQ CheckColSpaceFont2 ; Check Column Space for Default Font Style CheckColSpaceFontD: ; Checking for available space on Column LDS Temp, ColStart CPI Temp, (128-FontWidthD+1) ; Number of Columns - Font Width + 1 for Lower checking BRLO CalcFontD CLR Temp STS ColStart, Temp LDS Temp, PageStart SUBI Temp, (0-FontHeightD) STS PageStart, Temp CalcFontD: LDS Temp, ColStart ; Loading the value of Column Start address SUBI Temp, (1-FontWidthD) ; Calculating the value of Column End address STS ColEnd, Temp ; Storing the value of Column End address LDS Temp, PageStart ; Loading the value of Page Start address SUBI Temp, (1-FontHeightD) ; Calculating the value of Page End address STS PageEnd, Temp ; Storing the value of Page End address RJMP DefineBox ; Check Column Space for Font Style 1 CheckColSpaceFont1: ; Checking for available space on Column LDS Temp, ColStart CPI Temp, (128-FontWidth1+1) ; Number of Columns - Font Width + 1 for Lower checking BRLO CalcFont1 CLR Temp STS ColStart, Temp LDS Temp, PageStart SUBI Temp, (0-FontHeight1) STS PageStart, Temp CalcFont1: LDS Temp, ColStart ; Loading the value of Column Start address SUBI Temp, (1-FontWidth1) ; Calculating the value of Column End address STS ColEnd, Temp ; Storing the value of Column End address LDS Temp, PageStart ; Loading the value of Page Start address SUBI Temp, (1-FontHeight1) ; Calculating the value of Page End address STS PageEnd, Temp ; Storing the value of Page End address RJMP DefineBox ; Check Column Space for Font Style 2 CheckColSpaceFont2: ; Checking for available space on Column LDS Temp, ColStart CPI Temp, (128-FontWidth2+1) ; Number of Columns - Font Width + 1 for Lower checking BRLO CalcFont2 CLR Temp STS ColStart, Temp LDS Temp, PageStart SUBI Temp, (0-FontHeight2) STS PageStart, Temp CalcFont2: LDS Temp, ColStart ; Loading the value of Column Start address SUBI Temp, (1-FontWidth2) ; Calculating the value of Column End address STS ColEnd, Temp ; Storing the value of Column End address LDS Temp, PageStart ; Loading the value of Page Start address SUBI Temp, (1-FontHeight2) ; Calculating the value of Page End address STS PageEnd, Temp ; Storing the value of Page End address DefineBox: RCALL SetColumn RCALL SetPage RET ;================================================ ; Filling whole OLED screen FillScreen: LDI Temp, 0 STS ColStart, Temp LDI Temp, 0 STS PageStart, Temp LDI Temp, 127 STS ColEnd, Temp LDI Temp, 7 STS PageEnd, Temp RCALL SetColumn RCALL SetPage LDI Opr16L, LOW(1024) LDI Opr16M, HIGH(1024) RCALL SendData FillScreenLoop: LDS Temp, Filler RCALL MasterTransferTWI SBIW Opr16L, 1 BRNE FillScreenLoop RCALL StopTWI RET ;================================================ ; Set Column address SetColumn: RCALL SendCommand LDI Temp, 0x21 ; Set Column address RCALL MasterTransferTWI LDS Temp, ColStart ; Start RCALL MasterTransferTWI LDS Temp, ColEnd ; End RCALL MasterTransferTWI RCALL StopTWI RET ;================================================ ; Set Page address SetPage: RCALL SendCommand LDI Temp, 0x22 ; Set Page address RCALL MasterTransferTWI LDS Temp, PageStart ; Start RCALL MasterTransferTWI LDS Temp, PageEnd ; End RCALL MasterTransferTWI RCALL StopTWI RET ;================================================ InitOLED: ; OLED Initialization RCALL SendCommand LDI Temp, 0xAE ; Set display off RCALL MasterTransferTWI LDI Temp, 0xD5 ; Set display clock divide ratio/oscillator frequency RCALL MasterTransferTWI LDI Temp, 0x80 RCALL MasterTransferTWI LDI Temp, 0xA8 ; Set multiplex ratio RCALL MasterTransferTWI LDI Temp, 0x3F RCALL MasterTransferTWI LDI Temp, 0xD3 ; Set display offset RCALL MasterTransferTWI LDI Temp, 0x00 RCALL MasterTransferTWI LDI Temp, 0x40 ; Set display start line RCALL MasterTransferTWI LDI Temp, 0x8D ; Set charge pump RCALL MasterTransferTWI LDI Temp, 0x14 ; Vcc generated by internal DC-DC circuit RCALL MasterTransferTWI LDI Temp, 0xA1 ; Set segment re-map RCALL MasterTransferTWI LDI Temp, 0xC8 ; Set COM output scan direction RCALL MasterTransferTWI LDI Temp, 0xDA ; Set COM pins hardware configuration RCALL MasterTransferTWI LDI Temp, 0x12 RCALL MasterTransferTWI LDI Temp, 0x81 ; Set contrast control RCALL MasterTransferTWI LDI Temp, 0x01 ; 0x7F RCALL MasterTransferTWI LDI Temp, 0xD9 ; Set pre-changed period RCALL MasterTransferTWI LDI Temp, 0xF1 RCALL MasterTransferTWI LDI Temp, 0xDB ; Set VCOMH deselected level RCALL MasterTransferTWI LDI Temp, 0x00 ; *** 0x00 gives a wide range of contrast levels than 0x40 RCALL MasterTransferTWI LDI Temp, 0xA4 ; Set entire display on/off RCALL MasterTransferTWI LDI Temp, 0xA6 ; Normal display RCALL MasterTransferTWI LDI Temp, 0x20 ; Set memory address mode RCALL MasterTransferTWI LDI Temp, 0x00 ; Horizontal RCALL MasterTransferTWI LDI Temp, 0xAF ; Set display on RCALL MasterTransferTWI RCALL StopTWI RET ;================================================ SendData: ; Send Data Stream to OLED RCALL StartTWI ; Start Condition LDI Temp, 0x78 ; Write Operation RCALL MasterTransferTWI LDI Temp, 0x40 ; Data stream RCALL MasterTransferTWI RET ;================================================ SendCommand: ; Send Command Stream to OLED RCALL StartTWI ; Start Condition LDI Temp, 0x78 ; Write Operation RCALL MasterTransferTWI LDI Temp, 0x00 ; Command stream RCALL MasterTransferTWI RET ;=============================================================== ; I2C Commands ; Start with address to Software TWI StartTWI: SBI PORTB, SDAP ; SDA Pin High SBI PORTB, SCLP ; SCL Pin High ;; NOP ;; NOP ; Working without the NOPs CBI PORTB, SDAP ; SDA Pin Low ;; NOP ;; NOP CBI PORTB, SCLP ; SCL Pin Low RET ; USI TWI Master Transfer (Write Only) MasterTransferTWI: LDI Counter, 8 ; Bit count CLC ; Clear Carry ShiftOut: ROL Temp ; Shifting the data out to Carry bit BRCC SDALow ; If Carry bit is 0 then jump to make SDA pin Low SBI PORTB, SDAP ; Else make SDA pin High RJMP SCLHigh ; Jump to make SCL pin High SDALow: CBI PORTB, SDAP ; Make SDA pin Low SCLHigh: ; Data transition phase SBI PORTB, SCLP ; Make SCL pin High ;; NOP ;; NOP CBI PORTB, SCLP ; Make SCL pin Low DEC Counter ; Decrease bit counter BRNE ShiftOut ; If not finished the repeat the shifting process SBI PORTB, SDAP ; SDA Pin High SBI PORTB, SCLP ; SCL Pin High ;; NOP ;; NOP CBI PORTB, SCLP ; SCL Pin Low RET ; Asserts Stop Condition to Software TWI StopTWI: CBI PORTB, SDAP ; SDA Pin Low SBI PORTB, SCLP ; SCL Pin High ;; NOP ;; NOP SBI PORTB, SDAP ; SDA Pin High RET ;=============================================================== ; Math routines ; 16-bit Binary to BCD bin2BCD16: LDI Counter, 16 ; Init Loop counter CLR BCD0 ; Clear Results CLR BCD1 CLR BCD2 CLR XH ; Clear Pointer bBCDx_1: LSL Opr16L ; Shift input value ROL Opr16M ; through all bytes ROL BCD0 ROL BCD1 ROL BCD2 DEC Counter ; Decrement Loop Counter BRNE bBCDx_2 ; If Counter not Zero RET bBCDx_2: LDI XL, RegPtrH+1 ; Y points to Result MSB + 1 bBCDx_3: LD Temp, -X ; Get X with pre-decrement SUBI Temp, -0x03 ; Add 0x03 SBRC Temp, 3 ; If Bit 3 not cleared ST X, Temp ; Store back LD Temp, X ; Get X SUBI Temp, -0x30 ; Add 0x30 SBRC Temp, 7 ; If Bit 7 not cleared ST X, Temp ; Store back CPI XL, RegPtrL ; Done all three? BRNE bBCDx_3 ; Loop again if not RJMP bBCDx_1 ;====================================================================== ; 50uS delay subroutine 52 Machine cycles = 52uS ; 1 MC @1MHz = 1uS Total MC = (Count x 3) + 10 + 3 DL_50us: PUSH Counter ; MC = 2 LDI Counter, 13 ; MC = 1 DL0: DEC Counter ; MC = 1 BRNE DL0 ; MC = 2 / 1 POP Counter ; MC = 2 RET ; MC = 4 ; 100uS delay subroutine (within ISR) 102 Machine cycles = 102uS ; 1 MC @1MHz = 1uS Total MC = (Count x 3) + 12 + 3 DL_100us: PUSH Counter ; MC = 2 LDI Counter, 29 ; MC = 1 RJMP DL0 ; MC = 2 ; Total MC = (Count x 105) + 10 + 3 = 2008 = 2.008mS DL_2ms: PUSH Counter ; MC = 2 LDI Counter, 19 ; MC = 1 DL1: RCALL DL_100us ; MC = 402 DEC Counter ; MC = 1 BRNE DL1 ; MC = 2 / 1 POP Counter ; MC = 2 RET ; MC = 4 ; Total MC = (Count x 105) + 12 + 3 = 15030 = 15.03mS DL_15ms: PUSH Counter ; MC = 2 LDI Counter, 143 ; MC = 1 RJMP DL1 ; MC = 2 ; Total MC = (Count x 15030) + 10 + 3 = 511033 = 511.033mS DL_500ms: PUSH Counter ; MC = 2 LDI Counter, 34 ; MC = 1 DL2: RCALL DL_15ms ; MC = 60360 DEC Counter ; MC = 1 BRNE DL2 ; MC = 2 / 1 POP Counter ; MC = 2 RET ; MC = 4 ;================================================ ; Texts Intro: .DB "Press a key...",CR ;================================================ ; Font Lookup table ; Font 1 RobotoMono8x16: .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char .DB 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0x00 ; Code for char ! .DB 0x00, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char " .DB 0x00, 0x20, 0xE0, 0x38, 0x20, 0xF0, 0x28, 0x00, 0x01, 0x09, 0x07, 0x01, 0x0E, 0x01, 0x01, 0x00 ; Code for char # .DB 0x00, 0x30, 0x78, 0xC8, 0x8E, 0x98, 0x30, 0x00, 0x00, 0x06, 0x0C, 0x08, 0x18, 0x0D, 0x07, 0x00 ; Code for char $ .DB 0x38, 0x48, 0x48, 0xB0, 0x60, 0x10, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x0E, 0x09, 0x09, 0x06 ; Code for char % .DB 0x00, 0x10, 0xF8, 0xC8, 0x68, 0x30, 0x00, 0x00, 0x00, 0x07, 0x08, 0x08, 0x0B, 0x06, 0x0B, 0x08 ; Code for char & .DB 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char ' .DB 0x00, 0x00, 0xC0, 0x70, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1C, 0x20, 0x40, 0x00, 0x00 ; Code for char ( .DB 0x00, 0x00, 0x04, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x30, 0x0F, 0x00, 0x00, 0x00 ; Code for char ) .DB 0x00, 0x30, 0xA0, 0xE0, 0x78, 0xA0, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00 ; Code for char * .DB 0x00, 0x80, 0x80, 0xF0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00 ; Code for char + .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x38, 0x00, 0x00, 0x00, 0x00 ; Code for char .DB 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char - .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00 ; Code for char . .DB 0x00, 0x00, 0x00, 0x00, 0xE0, 0x18, 0x08, 0x00, 0x00, 0x00, 0x1C, 0x07, 0x00, 0x00, 0x00, 0x00 ; Code for char / .DB 0x00, 0xF0, 0x08, 0x88, 0xC8, 0x58, 0xF0, 0x00, 0x00, 0x07, 0x0D, 0x08, 0x08, 0x0C, 0x07, 0x00 ; Code for char 0 .DB 0x00, 0x10, 0x10, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00 ; Code for char 1 .DB 0x00, 0x18, 0x08, 0x08, 0x88, 0x78, 0x00, 0x00, 0x00, 0x0C, 0x0E, 0x0B, 0x08, 0x08, 0x08, 0x00 ; Code for char 2 .DB 0x00, 0x18, 0x88, 0x88, 0xC8, 0x78, 0x00, 0x00, 0x00, 0x04, 0x08, 0x08, 0x08, 0x0F, 0x00, 0x00 ; Code for char 3 .DB 0x00, 0x00, 0xC0, 0x30, 0x18, 0xF8, 0x00, 0x00, 0x02, 0x03, 0x02, 0x02, 0x02, 0x0F, 0x02, 0x00 ; Code for char 4 .DB 0x00, 0x00, 0xF8, 0x48, 0x48, 0xC8, 0x88, 0x00, 0x00, 0x04, 0x0C, 0x08, 0x08, 0x0C, 0x07, 0x00 ; Code for char 5 .DB 0x00, 0xE0, 0xD0, 0x48, 0x48, 0xC0, 0x00, 0x00, 0x00, 0x07, 0x0C, 0x08, 0x08, 0x0C, 0x03, 0x00 ; Code for char 6 .DB 0x00, 0x08, 0x08, 0x08, 0xC8, 0x78, 0x08, 0x00, 0x00, 0x00, 0x08, 0x06, 0x01, 0x00, 0x00, 0x00 ; Code for char 7 .DB 0x00, 0x30, 0xF8, 0x88, 0x88, 0xD8, 0x30, 0x00, 0x00, 0x07, 0x0D, 0x08, 0x08, 0x08, 0x07, 0x00 ; Code for char 8 .DB 0x00, 0xF0, 0x88, 0x08, 0x08, 0x98, 0xE0, 0x00, 0x00, 0x00, 0x09, 0x09, 0x0D, 0x06, 0x01, 0x00 ; Code for char 9 .DB 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00 ; Code for char : .DB 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x38, 0x00, 0x00, 0x00 ; Code for char ; .DB 0x00, 0x80, 0x80, 0x40, 0x40, 0x60, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x06, 0x00, 0x00 ; Code for char < .DB 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00 ; Code for char = .DB 0x00, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x06, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00 ; Code for char > .DB 0x00, 0x10, 0x08, 0x08, 0x88, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x00 ; Code for char ? .DB 0xC0, 0x30, 0xC8, 0x28, 0xA8, 0x68, 0xF0, 0x00, 0x01, 0x06, 0x09, 0x0A, 0x09, 0x0A, 0x03, 0x00 ; Code for char @ .DB 0x00, 0x00, 0xC0, 0x38, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x0E, 0x03, 0x02, 0x02, 0x03, 0x0E, 0x00 ; Code for char A .DB 0x00, 0xF8, 0x88, 0x88, 0x88, 0xC8, 0x30, 0x00, 0x00, 0x0F, 0x08, 0x08, 0x08, 0x0C, 0x07, 0x00 ; Code for char B .DB 0x00, 0xF0, 0x08, 0x08, 0x08, 0x08, 0x30, 0x00, 0x00, 0x07, 0x0C, 0x08, 0x08, 0x0C, 0x06, 0x00 ; Code for char C .DB 0x00, 0xF8, 0x08, 0x08, 0x08, 0x18, 0xF0, 0x00, 0x00, 0x0F, 0x08, 0x08, 0x08, 0x04, 0x03, 0x00 ; Code for char D .DB 0x00, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x08, 0x00, 0x00, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00 ; Code for char E .DB 0x00, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x08, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char F .DB 0x00, 0xF0, 0x08, 0x08, 0x88, 0x88, 0x90, 0x00, 0x00, 0x07, 0x0C, 0x08, 0x08, 0x08, 0x07, 0x00 ; Code for char G .DB 0x00, 0xF8, 0x80, 0x80, 0x80, 0x80, 0xF8, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00 ; Code for char H .DB 0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x0F, 0x08, 0x08, 0x08, 0x00 ; Code for char I .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x00, 0x00, 0x06, 0x08, 0x08, 0x08, 0x0F, 0x03, 0x00 ; Code for char J .DB 0x00, 0xF8, 0x80, 0xC0, 0xA0, 0x18, 0x08, 0x00, 0x00, 0x0F, 0x01, 0x00, 0x03, 0x06, 0x0C, 0x08 ; Code for char K .DB 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00 ; Code for char L .DB 0x00, 0xF8, 0x38, 0xC0, 0xC0, 0x38, 0xF8, 0x00, 0x00, 0x0F, 0x00, 0x01, 0x01, 0x00, 0x0F, 0x00 ; Code for char M .DB 0x00, 0xF8, 0x30, 0xE0, 0x80, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x03, 0x0E, 0x0F, 0x00 ; Code for char N .DB 0x00, 0xF0, 0x08, 0x08, 0x08, 0x18, 0xF0, 0x00, 0x00, 0x07, 0x0C, 0x08, 0x08, 0x0C, 0x07, 0x00 ; Code for char O .DB 0x00, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char P .DB 0x00, 0xF0, 0x08, 0x08, 0x08, 0x18, 0xF0, 0x00, 0x00, 0x07, 0x0C, 0x08, 0x08, 0x1C, 0x37, 0x00 ; Code for char Q .DB 0x00, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x01, 0x07, 0x0C, 0x00 ; Code for char R .DB 0x00, 0x30, 0x48, 0x88, 0x88, 0x88, 0x10, 0x00, 0x00, 0x06, 0x08, 0x08, 0x08, 0x09, 0x07, 0x00 ; Code for char S .DB 0x08, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00 ; Code for char T .DB 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x07, 0x0C, 0x08, 0x08, 0x0C, 0x07, 0x00 ; Code for char U .DB 0x08, 0x38, 0xE0, 0x00, 0x00, 0xE0, 0x18, 0x00, 0x00, 0x00, 0x01, 0x0E, 0x0F, 0x00, 0x00, 0x00 ; Code for char V .DB 0x08, 0xF8, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0x08, 0x00, 0x07, 0x0F, 0x00, 0x00, 0x0F, 0x07, 0x00 ; Code for char W .DB 0x00, 0x08, 0x30, 0xC0, 0xE0, 0x30, 0x08, 0x00, 0x00, 0x0C, 0x06, 0x01, 0x01, 0x06, 0x0C, 0x00 ; Code for char X .DB 0x08, 0x18, 0x70, 0x80, 0xC0, 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00 ; Code for char Y .DB 0x00, 0x08, 0x08, 0x88, 0x68, 0x38, 0x08, 0x00, 0x00, 0x0C, 0x0B, 0x09, 0x08, 0x08, 0x08, 0x00 ; Code for char Z .DB 0x00, 0x00, 0x00, 0xFE, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x00, 0x00, 0x00 ; Code for char [ .DB 0x00, 0x08, 0x18, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1C, 0x00, 0x00 ; Code for char BackSlash .DB 0x00, 0x00, 0x00, 0x02, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3F, 0x00, 0x00, 0x00 ; Code for char ] .DB 0x00, 0x80, 0xE0, 0x18, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char ^ .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00 ; Code for char _ .DB 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char ` .DB 0x00, 0x40, 0x20, 0x20, 0x20, 0xE0, 0x80, 0x00, 0x00, 0x06, 0x09, 0x09, 0x09, 0x0F, 0x0F, 0x00 ; Code for char a .DB 0x00, 0xFC, 0x40, 0x20, 0x20, 0x60, 0xC0, 0x00, 0x00, 0x0F, 0x04, 0x08, 0x08, 0x0C, 0x07, 0x00 ; Code for char b .DB 0x00, 0xC0, 0x60, 0x20, 0x20, 0x60, 0x40, 0x00, 0x00, 0x07, 0x0C, 0x08, 0x08, 0x0C, 0x04, 0x00 ; Code for char c .DB 0x00, 0xC0, 0x60, 0x20, 0x20, 0x40, 0xFC, 0x00, 0x00, 0x07, 0x0C, 0x08, 0x08, 0x04, 0x0F, 0x00 ; Code for char d .DB 0x00, 0xC0, 0x60, 0x20, 0x20, 0x60, 0xC0, 0x00, 0x00, 0x07, 0x0D, 0x09, 0x09, 0x09, 0x05, 0x00 ; Code for char e .DB 0x00, 0x20, 0x20, 0xF8, 0x24, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00 ; Code for char f .DB 0x00, 0xC0, 0x60, 0x20, 0x20, 0x40, 0xE0, 0x00, 0x00, 0x27, 0x2C, 0x48, 0x48, 0x34, 0x1F, 0x00 ; Code for char g .DB 0x00, 0xFC, 0x40, 0x20, 0x20, 0x60, 0xC0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00 ; Code for char h .DB 0x00, 0x20, 0x20, 0x28, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x0F, 0x08, 0x08, 0x00 ; Code for char i .DB 0x00, 0x00, 0x20, 0x20, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x00, 0x00 ; Code for char j .DB 0x00, 0xFC, 0x00, 0x80, 0x40, 0x20, 0x20, 0x00, 0x00, 0x0F, 0x01, 0x01, 0x02, 0x0C, 0x08, 0x00 ; Code for char k .DB 0x00, 0x04, 0x04, 0x04, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x0F, 0x08, 0x08, 0x00 ; Code for char l .DB 0x00, 0xE0, 0x20, 0xE0, 0x40, 0x20, 0xE0, 0x00, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00 ; Code for char m .DB 0x00, 0xE0, 0x40, 0x20, 0x20, 0x60, 0xC0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00 ; Code for char n .DB 0x00, 0xC0, 0x60, 0x20, 0x20, 0x60, 0xC0, 0x00, 0x00, 0x07, 0x08, 0x08, 0x08, 0x0C, 0x07, 0x00 ; Code for char o .DB 0x00, 0xE0, 0x40, 0x20, 0x20, 0x60, 0xC0, 0x00, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x0C, 0x07, 0x00 ; Code for char p .DB 0x00, 0xC0, 0x60, 0x20, 0x20, 0x40, 0xE0, 0x00, 0x00, 0x07, 0x0C, 0x08, 0x08, 0x04, 0x7F, 0x00 ; Code for char q .DB 0x00, 0x00, 0xE0, 0x40, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char r .DB 0x00, 0xC0, 0xE0, 0x20, 0x20, 0x60, 0x40, 0x00, 0x00, 0x04, 0x09, 0x09, 0x09, 0x0B, 0x06, 0x00 ; Code for char s .DB 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x08, 0x08, 0x08, 0x00 ; Code for char t .DB 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x07, 0x0C, 0x08, 0x08, 0x04, 0x0F, 0x00 ; Code for char u .DB 0x00, 0x60, 0x80, 0x00, 0x00, 0xC0, 0x60, 0x00, 0x00, 0x00, 0x03, 0x0C, 0x0E, 0x01, 0x00, 0x00 ; Code for char v .DB 0x20, 0xC0, 0x00, 0xE0, 0xC0, 0x00, 0xE0, 0x20, 0x00, 0x07, 0x0E, 0x01, 0x03, 0x0C, 0x03, 0x00 ; Code for char w .DB 0x00, 0x20, 0x40, 0x80, 0x80, 0x40, 0x20, 0x00, 0x00, 0x08, 0x04, 0x03, 0x03, 0x0C, 0x08, 0x00 ; Code for char x .DB 0x20, 0x60, 0x80, 0x00, 0x00, 0xC0, 0x60, 0x00, 0x00, 0x40, 0x63, 0x3E, 0x0E, 0x01, 0x00, 0x00 ; Code for char y .DB 0x00, 0x20, 0x20, 0x20, 0xA0, 0x60, 0x20, 0x00, 0x00, 0x08, 0x0E, 0x0B, 0x09, 0x08, 0x08, 0x00 ; Code for char z .DB 0x00, 0x00, 0x00, 0x80, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x1E, 0x20, 0x00, 0x00 ; Code for char { .DB 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00 ; Code for char | .DB 0x00, 0x00, 0x04, 0x7C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3C, 0x0F, 0x01, 0x00, 0x00 ; Code for char } .DB 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00 ; Code for char ~ .DB 0xFE, 0x02, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char  ; Font 2 DejaVuSansMonoBold16x24: .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1E, 0x1E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char ! .DB 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char " .DB 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xF0, 0xFE, 0xFE, 0xCE, 0xC0, 0xC0, 0xFC, 0xFE, 0xFE, 0xC2, 0xC0, 0xE0, 0xE1, 0xE1, 0xE1, 0xFF, 0xFF, 0xEF, 0xE1, 0xE1, 0xF9, 0xFF, 0xFF, 0xE3, 0xE1, 0xE1, 0x01, 0x00, 0x00, 0x1E, 0x1F, 0x0F, 0x00, 0x00, 0x18, 0x1F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char # .DB 0x00, 0x00, 0x80, 0xE0, 0xE0, 0xF0, 0x70, 0xFE, 0xFE, 0x70, 0x70, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1F, 0x1F, 0x3C, 0x3C, 0xFF, 0xFF, 0x78, 0xF8, 0xF0, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x1C, 0x1C, 0x1C, 0xFF, 0xFF, 0x1C, 0x1F, 0x0F, 0x0F, 0x03, 0x00, 0x00 ; Code for char $ .DB 0x78, 0xFC, 0xCE, 0x86, 0x86, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x21, 0x31, 0x11, 0x19, 0x08, 0x08, 0x84, 0xC4, 0xE2, 0x62, 0x61, 0xE1, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x1C, 0x18, 0x18, 0x1C, 0x0F, 0x07 ; Code for char % .DB 0x00, 0x00, 0x00, 0x78, 0xFC, 0xFC, 0xFE, 0x8E, 0x0E, 0x0E, 0x0E, 0x0E, 0x1C, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8, 0xFC, 0xFE, 0x0F, 0x0F, 0x1F, 0x3F, 0xFC, 0xF8, 0xF0, 0xC0, 0x80, 0xF8, 0xF8, 0x00, 0x01, 0x07, 0x0F, 0x0F, 0x1F, 0x1E, 0x1C, 0x1C, 0x1C, 0x1F, 0x0F, 0x0F, 0x1F, 0x1F, 0x1D ; Code for char & .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char ' .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xFE, 0x7F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1F, 0x7F, 0xFE, 0xF0, 0x80, 0x00, 0x00, 0x00, 0x00 ; Code for char ( .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0F, 0x7F, 0xFE, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xFE, 0x7F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char ) .DB 0x00, 0x00, 0x10, 0x38, 0x30, 0xF0, 0xE0, 0xFE, 0xFE, 0xE0, 0xF0, 0x30, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x02, 0x07, 0x03, 0x03, 0x01, 0x1F, 0x1F, 0x01, 0x03, 0x03, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char * .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0xFF, 0xFF, 0xFF, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char + .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x7F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char - .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char . .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xFC, 0x7E, 0x0E, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF8, 0x7E, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x70, 0x7E, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char / .DB 0x00, 0x00, 0xC0, 0xF0, 0xFC, 0xFC, 0x3E, 0x0E, 0x0E, 0x0E, 0x3E, 0xFC, 0xFC, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0E, 0x0E, 0x0E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x0F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1F, 0x0F, 0x0F, 0x03, 0x00, 0x00 ; Code for char 0 .DB 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x0E, 0x0E, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x00 ; Code for char 1 .DB 0x00, 0x00, 0x3C, 0x1C, 0x1E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x1E, 0xFC, 0xFC, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0x7C, 0x3E, 0x1F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1E, 0x1F, 0x1F, 0x1F, 0x1D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x00 ; Code for char 2 .DB 0x00, 0x00, 0x00, 0x3C, 0x1C, 0x1E, 0x0E, 0x0E, 0x0E, 0x0E, 0x1E, 0xFE, 0xFC, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x1F, 0xFB, 0xFB, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0x0F, 0x0E, 0x1E, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1E, 0x0F, 0x0F, 0x07, 0x03, 0x00 ; Code for char 3 .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0x7C, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFF, 0xEF, 0xE3, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00 ; Code for char 4 .DB 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x1F, 0xFF, 0xFE, 0xFC, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0x0E, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1E, 0x1F, 0x0F, 0x0F, 0x07, 0x01, 0x00 ; Code for char 5 .DB 0x00, 0x00, 0x80, 0xF0, 0xF8, 0xFC, 0x7C, 0x1E, 0x0E, 0x0E, 0x0E, 0x0E, 0x1E, 0x3C, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x0E, 0x07, 0x07, 0x07, 0x0F, 0xFF, 0xFE, 0xFE, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x0F, 0x1E, 0x1C, 0x1C, 0x1C, 0x1E, 0x1F, 0x0F, 0x07, 0x01, 0x00 ; Code for char 6 .DB 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x8E, 0xFE, 0xFE, 0xFE, 0xFE, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xFE, 0xFF, 0x7F, 0x1F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1E, 0x1F, 0x1F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char 7 .DB 0x00, 0x00, 0xF0, 0xF8, 0xFC, 0xFE, 0x1E, 0x0E, 0x0E, 0x0E, 0x1E, 0xFE, 0xFC, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0xE0, 0xF1, 0xFB, 0xFB, 0x1F, 0x0E, 0x0E, 0x0E, 0x1F, 0xFB, 0xFB, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F, 0x1E, 0x1C, 0x1C, 0x1C, 0x1E, 0x1F, 0x0F, 0x07, 0x03, 0x00 ; Code for char 8 .DB 0x00, 0x00, 0xE0, 0xF8, 0xFC, 0xFE, 0x1E, 0x0E, 0x0E, 0x0E, 0x1E, 0xFC, 0xFC, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x1F, 0x3F, 0x3C, 0x38, 0x38, 0x38, 0x9C, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1E, 0x1C, 0x1C, 0x1C, 0x1C, 0x1E, 0x0F, 0x0F, 0x07, 0x03, 0x00, 0x00 ; Code for char 9 .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char : .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x7F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char ; .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xE0, 0x00, 0x00, 0x3C, 0x3C, 0x7E, 0x7E, 0x7E, 0xE7, 0xE7, 0xE7, 0xC3, 0xC3, 0xC3, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x07, 0x00 ; Code for char < .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 ; Code for char = .DB 0x00, 0xE0, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0xC3, 0xC3, 0xC3, 0xE7, 0xE7, 0xE7, 0x7E, 0x7E, 0x7E, 0x3C, 0x3C, 0x00, 0x00, 0x07, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char > .DB 0x00, 0x00, 0x00, 0x1C, 0x0C, 0x0E, 0x0E, 0x0E, 0x0E, 0x8E, 0xFE, 0xFC, 0xFC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x7F, 0x7F, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1E, 0x1E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char ? ; Default Font Terminal6x8: .DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; Code for char .DB 0x00, 0x00, 0x06, 0x5F, 0x06, 0x00 ; Code for char ! .DB 0x00, 0x07, 0x03, 0x00, 0x07, 0x03 ; Code for char """ .DB 0x00, 0x24, 0x7E, 0x24, 0x7E, 0x24 ; Code for char # .DB 0x00, 0x24, 0x2B, 0x6A, 0x12, 0x00 ; Code for char $ .DB 0x00, 0x63, 0x13, 0x08, 0x64, 0x63 ; Code for char % .DB 0x00, 0x36, 0x49, 0x56, 0x20, 0x50 ; Code for char & .DB 0x00, 0x00, 0x07, 0x03, 0x00, 0x00 ; Code for char ' .DB 0x00, 0x00, 0x3E, 0x41, 0x00, 0x00 ; Code for char ( .DB 0x00, 0x00, 0x41, 0x3E, 0x00, 0x00 ; Code for char ) .DB 0x00, 0x08, 0x3E, 0x1C, 0x3E, 0x08 ; Code for char * .DB 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 ; Code for char + .DB 0x00, 0x00, 0xE0, 0x60, 0x00, 0x00 ; Code for char .DB 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 ; Code for char - .DB 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 ; Code for char . .DB 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 ; Code for char / .DB 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E ; Code for char 0 .DB 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 ; Code for char 1 .DB 0x00, 0x62, 0x51, 0x49, 0x49, 0x46 ; Code for char 2 .DB 0x00, 0x22, 0x49, 0x49, 0x49, 0x36 ; Code for char 3 .DB 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 ; Code for char 4 .DB 0x00, 0x2F, 0x49, 0x49, 0x49, 0x31 ; Code for char 5 .DB 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 ; Code for char 6 .DB 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 ; Code for char 7 .DB 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 ; Code for char 8 .DB 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E ; Code for char 9 .DB 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x00 ; Code for char : .DB 0x00, 0x00, 0xEC, 0x6C, 0x00, 0x00 ; Code for char ; .DB 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 ; Code for char < .DB 0x00, 0x24, 0x24, 0x24, 0x24, 0x24 ; Code for char = .DB 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 ; Code for char > .DB 0x00, 0x02, 0x01, 0x59, 0x09, 0x06 ; Code for char ? .DB 0x00, 0x3E, 0x41, 0x5D, 0x55, 0x1E ; Code for char @ .DB 0x00, 0x7E, 0x11, 0x11, 0x11, 0x7E ; Code for char A .DB 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 ; Code for char B .DB 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 ; Code for char C .DB 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E ; Code for char D .DB 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 ; Code for char E .DB 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 ; Code for char F .DB 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A ; Code for char G .DB 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F ; Code for char H .DB 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 ; Code for char I .DB 0x00, 0x30, 0x40, 0x40, 0x40, 0x3F ; Code for char J .DB 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 ; Code for char K .DB 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 ; Code for char L .DB 0x00, 0x7F, 0x02, 0x04, 0x02, 0x7F ; Code for char M .DB 0x00, 0x7F, 0x02, 0x04, 0x08, 0x7F ; Code for char N .DB 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E ; Code for char O .DB 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 ; Code for char P .DB 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E ; Code for char Q .DB 0x00, 0x7F, 0x09, 0x09, 0x19, 0x66 ; Code for char R .DB 0x00, 0x26, 0x49, 0x49, 0x49, 0x32 ; Code for char S .DB 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 ; Code for char T .DB 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F ; Code for char U .DB 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F ; Code for char V .DB 0x00, 0x3F, 0x40, 0x3C, 0x40, 0x3F ; Code for char W .DB 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 ; Code for char X .DB 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 ; Code for char Y .DB 0x00, 0x71, 0x49, 0x45, 0x43, 0x00 ; Code for char Z .DB 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 ; Code for char [ .DB 0x00, 0x02, 0x04, 0x08, 0x10, 0x20 ; Code for char BackSlash .DB 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 ; Code for char ] .DB 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 ; Code for char ^ .DB 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 ; Code for char _ .DB 0x00, 0x00, 0x03, 0x07, 0x00, 0x00 ; Code for char ` .DB 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 ; Code for char a .DB 0x00, 0x7F, 0x44, 0x44, 0x44, 0x38 ; Code for char b .DB 0x00, 0x38, 0x44, 0x44, 0x44, 0x28 ; Code for char c .DB 0x00, 0x38, 0x44, 0x44, 0x44, 0x7F ; Code for char d .DB 0x00, 0x38, 0x54, 0x54, 0x54, 0x08 ; Code for char e .DB 0x00, 0x08, 0x7E, 0x09, 0x09, 0x00 ; Code for char f .DB 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C ; Code for char g .DB 0x00, 0x7F, 0x04, 0x04, 0x78, 0x00 ; Code for char h .DB 0x00, 0x00, 0x00, 0x7D, 0x40, 0x00 ; Code for char i .DB 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 ; Code for char j .DB 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 ; Code for char k .DB 0x00, 0x00, 0x00, 0x7F, 0x40, 0x00 ; Code for char l .DB 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 ; Code for char m .DB 0x00, 0x7C, 0x04, 0x04, 0x78, 0x00 ; Code for char n .DB 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 ; Code for char o .DB 0x00, 0xFC, 0x44, 0x44, 0x44, 0x38 ; Code for char p .DB 0x00, 0x38, 0x44, 0x44, 0x44, 0xFC ; Code for char q .DB 0x00, 0x44, 0x78, 0x44, 0x04, 0x08 ; Code for char r .DB 0x00, 0x08, 0x54, 0x54, 0x54, 0x20 ; Code for char s .DB 0x00, 0x04, 0x3E, 0x44, 0x24, 0x00 ; Code for char t .DB 0x00, 0x3C, 0x40, 0x20, 0x7C, 0x00 ; Code for char u .DB 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C ; Code for char v .DB 0x00, 0x3C, 0x60, 0x30, 0x60, 0x3C ; Code for char w .DB 0x00, 0x6C, 0x10, 0x10, 0x6C, 0x00 ; Code for char x .DB 0x00, 0x9C, 0xA0, 0x60, 0x3C, 0x00 ; Code for char y .DB 0x00, 0x64, 0x54, 0x54, 0x4C, 0x00 ; Code for char z .DB 0x00, 0x08, 0x3E, 0x41, 0x41, 0x00 ; Code for char { .DB 0x00, 0x00, 0x00, 0x77, 0x00, 0x00 ; Code for char | .DB 0x00, 0x00, 0x41, 0x41, 0x3E, 0x08 ; Code for char } .DB 0x00, 0x02, 0x01, 0x02, 0x01, 0x00 ; Code for char ~ .DB 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C ; Code for char