Created
September 5, 2017 19:33
-
-
Save heuripedes/e7d472cb1f706b5bdd65eaae39422d4b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
GUIFontData = [ # TODO: GUIFontData1 | |
# bitmap 5x5 font; char - offset for ASCII2Font | |
0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, # empty space 0x0 | |
0b01110000, 0b10011000, 0b10101000, 0b11001000, 0b01110000, # 0 0x01 | |
0b00100000, 0b01100000, 0b00100000, 0b00100000, 0b01110000, # 1 0x02 | |
0b01110000, 0b10001000, 0b00110000, 0b01000000, 0b11111000, # 2 0x03 | |
0b01110000, 0b10001000, 0b00110000, 0b10001000, 0b01110000, # 3 0x04 | |
0b01010000, 0b10010000, 0b11111000, 0b00010000, 0b00010000, # 4 0x05 | |
0b11111000, 0b10000000, 0b11110000, 0b00001000, 0b11110000, # 5 0x06 | |
0b01110000, 0b10000000, 0b11110000, 0b10001000, 0b01110000, # 6 0x07 | |
0b11111000, 0b00001000, 0b00010000, 0b00010000, 0b00010000, # 7 0x08 | |
0b01110000, 0b10001000, 0b01110000, 0b10001000, 0b01110000, # 8 0x09 | |
0b01110000, 0b10001000, 0b01111000, 0b00001000, 0b01110000, # 9 0x0A | |
0b01110000, 0b10001000, 0b11111000, 0b10001000, 0b10001000, # A 0x0B | |
0b11110000, 0b10001000, 0b11110000, 0b10001000, 0b11110000, # B 0x0C | |
0b01110000, 0b10001000, 0b10000000, 0b10001000, 0b01110000, # C 0x0D | |
0b11110000, 0b10001000, 0b10001000, 0b10001000, 0b11110000, # D 0x0E | |
0b11111000, 0b10000000, 0b11110000, 0b10000000, 0b11111000, # E 0x0F | |
0b11111000, 0b10000000, 0b11110000, 0b10000000, 0b10000000, # F 0x10 | |
0b01111000, 0b10000000, 0b10011000, 0b10001000, 0b01110000, # G 0x11 | |
0b10001000, 0b10001000, 0b11111000, 0b10001000, 0b10001000, # H 0x12 | |
0b11111000, 0b00100000, 0b00100000, 0b00100000, 0b11111000, # I 0x13 | |
0b01111000, 0b00010000, 0b00010000, 0b10010000, 0b01100000, # J 0x14 | |
0b10010000, 0b10100000, 0b11100000, 0b10010000, 0b10001000, # K 0x15 | |
0b10000000, 0b10000000, 0b10000000, 0b10000000, 0b11111000, # L 0x16 | |
0b11011000, 0b10101000, 0b10101000, 0b10101000, 0b10001000, # M 0x17 | |
0b11001000, 0b10101000, 0b10101000, 0b10101000, 0b10011000, # N 0x18 | |
0b01110000, 0b10001000, 0b10001000, 0b10001000, 0b01110000, # O 0x19 | |
0b11110000, 0b10001000, 0b11110000, 0b10000000, 0b10000000, # P 0x1A | |
0b01110000, 0b10001000, 0b10101000, 0b10010000, 0b01101000, # Q 0x1B | |
0b11110000, 0b10001000, 0b11110000, 0b10010000, 0b10001000, # R 0x1C | |
0b01111000, 0b10000000, 0b01110000, 0b00001000, 0b11110000, # S 0x1D | |
0b11111000, 0b00100000, 0b00100000, 0b00100000, 0b00100000, # T 0x1E | |
0b10001000, 0b10001000, 0b10001000, 0b10001000, 0b01110000, # U 0x1F | |
0b10001000, 0b10001000, 0b01010000, 0b01010000, 0b00100000, # V 0x20 | |
0b10001000, 0b10101000, 0b10101000, 0b10101000, 0b01010000, # W 0x21 | |
0b10001000, 0b01010000, 0b00100000, 0b01010000, 0b10001000, # X 0x22 | |
0b10001000, 0b01010000, 0b00100000, 0b00100000, 0b00100000, # Y 0x23 | |
0b11111000, 0b00010000, 0b00100000, 0b01000000, 0b11111000, # Z 0x24 | |
0b00000000, 0b00000000, 0b11111000, 0b00000000, 0b00000000, # - 0x25 | |
0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b11111000, # _ 0x26 | |
0b01101000, 0b10010000, 0b00000000, 0b00000000, 0b00000000, # ~ 0x27 | |
0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00100000, # . 0x28 | |
0b00001000, 0b00010000, 0b00100000, 0b01000000, 0b10000000, # / 0x29 | |
0b00010000, 0b00100000, 0b01000000, 0b00100000, 0b00010000, # < 0x2A | |
0b01000000, 0b00100000, 0b00010000, 0b00100000, 0b01000000, # > 0x2B | |
0b01110000, 0b01000000, 0b01000000, 0b01000000, 0b01110000, # [ 0x2C | |
0b01110000, 0b00010000, 0b00010000, 0b00010000, 0b01110000, # ] 0x2D | |
0b00000000, 0b00100000, 0b00000000, 0b00100000, 0b00000000, # : 0x2E | |
0b01100000, 0b10011000, 0b01110000, 0b10011000, 0b01101000, # & 0x2F | |
0b00100000, 0b00100000, 0b10101000, 0b01110000, 0b00100000, # arrow down 0x30 | |
0b01010000, 0b11111000, 0b01010000, 0b11111000, 0b01010000, # # 0x31 | |
0b00000000, 0b11111000, 0b00000000, 0b11111000, 0b00000000, # = 0x32 | |
0b01001000, 0b10010000, 0b00000000, 0b00000000, 0b00000000, # " 0x33 | |
0b10000000, 0b01000000, 0b00100000, 0b00010000, 0b00001000, # \ 0x34 | |
0b10101000, 0b01110000, 0b11111000, 0b01110000, 0b10101000, # * 0x35 | |
0b01110000, 0b10001000, 0b00110000, 0b00000000, 0b00100000, # ? 0x36 | |
0b10001000, 0b00010000, 0b00100000, 0b01000000, 0b10001000, # % 0x37 | |
0b00100000, 0b00100000, 0b11111000, 0b00100000, 0b00100000, # + 0x38 | |
0b00000000, 0b00000000, 0b00000000, 0b00100000, 0b01000000, # , 0x39 | |
0b00110000, 0b01000000, 0b01000000, 0b01000000, 0b00110000, # ( 0x3A | |
0b01100000, 0b00010000, 0b00010000, 0b00010000, 0b01100000, # ) 0x3B | |
0b01110000, 0b10011000, 0b10111000, 0b10000000, 0b01110000, # @ 0x3C | |
0b00100000, 0b01000000, 0b00000000, 0b00000000, 0b00000000, # ' 0x3D | |
0b00100000, 0b00100000, 0b00100000, 0b00000000, 0b00100000, # ! 0x3E | |
0b01111000, 0b10100000, 0b01110000, 0b00101000, 0b11110000, # $ 0x3F | |
0b00000000, 0b00100000, 0b00000000, 0b00100000, 0b01000000, # ; 0x40 | |
0b01000000, 0b00100000, 0b00000000, 0b00000000, 0b00000000, # ` 0x41 | |
0b00100000, 0b01010000, 0b00000000, 0b00000000, 0b00000000, # ^ 0x42 | |
0b00110000, 0b01000000, 0b11000000, 0b01000000, 0b00110000, # { 0x43 | |
0b01100000, 0b00010000, 0b00011000, 0b00010000, 0b01100000, # } 0x44 | |
0b00100000, 0b00100000, 0b01110000, 0b01110000, 0b11111000, # up 0x45 | |
0b11111000, 0b01110000, 0b01110000, 0b00100000, 0b00100000, # down 0x46 | |
0b00001000, 0b00111000, 0b11111000, 0b00111000, 0b00001000, # left 0x47 | |
0b10000000, 0b11100000, 0b11111000, 0b11100000, 0b10000000, # right 0x48 | |
0b00100000, 0b01100000, 0b11111000, 0b01100000, 0b00100000, # arrow left 0x49 | |
0b00111000, 0b00100000, 0b00110000, 0b00001000, 0b10110000, # .5 0x4A | |
0b11111100, 0b10000100, 0b11111100, 0b00000000, 0b00000000, # maximize (Win) 0x4B | |
0b00000000, 0b11111100, 0b00000000, 0b00000000, 0b00000000, # minimize (Win) 0x4C | |
0b11111000, 0b10001000, 0b10001000, 0b10001000, 0b11111000, # maximize (SDL) 0x4D | |
0b00000000, 0b00000000, 0b00100000, 0b01010000, 0b00100000, # shw fullstop 0x4E | |
0b01110000, 0b01000000, 0b01000000, 0b01000000, 0b00000000, # shw left bracket 0x4F | |
0b00000000, 0b00010000, 0b00010000, 0b00010000, 0b01110000, # shw right bracket 0x50 | |
0b00000000, 0b00000000, 0b00000000, 0b01000000, 0b00100000, # shw comma 0x51 | |
0b00000000, 0b00100000, 0b01110000, 0b00100000, 0b00000000, # shw mid-dot 0x52 | |
0b11111000, 0b00001000, 0b11110000, 0b00100000, 0b11000000, # shw wo 0x53 | |
0b00000000, 0b11111000, 0b01010000, 0b01100000, 0b01000000, # shw mini a 0x54 | |
0b00000000, 0b00010000, 0b00100000, 0b11100000, 0b00100000, # shw mini i 0x55 | |
0b00000000, 0b00100000, 0b11111000, 0b10001000, 0b00110000, # shw mini u 0x56 | |
0b00000000, 0b00000000, 0b11111000, 0b00100000, 0b11111000, # shw mini e 0x57 | |
0b00000000, 0b00010000, 0b11111000, 0b00110000, 0b11010000, # shw mini o 0x58 | |
0b00000000, 0b01000000, 0b11111000, 0b01010000, 0b01000000, # shw mini ya 0x59 | |
0b00000000, 0b00000000, 0b11110000, 0b00010000, 0b11111000, # shw mini yu 0x5A | |
0b00000000, 0b11111000, 0b00001000, 0b01111000, 0b11111000, # shw mini yo 0x5B | |
0b00000000, 0b10101000, 0b10101000, 0b00010000, 0b01100000, # shw mini tsu 0x5C | |
0b00000000, 0b10000000, 0b01111000, 0b00000000, 0b00000000, # shw prolong 0x5D | |
0b11111000, 0b00101000, 0b00110000, 0b00100000, 0b11000000, # shw a 0x5E | |
0b00001000, 0b00110000, 0b11100000, 0b00100000, 0b00100000, # shw i 0x5F | |
0b00100000, 0b11111000, 0b10001000, 0b00010000, 0b01100000, # shw u 0x60 | |
0b11111000, 0b00100000, 0b00100000, 0b00100000, 0b11111000, # shw e 0x61 | |
0b00010000, 0b11111000, 0b00110000, 0b01010000, 0b10010000, # shw o 0x62 | |
0b01000000, 0b11111000, 0b01001000, 0b01001000, 0b10011000, # shw ka 0x63 | |
0b00100000, 0b11111000, 0b00100000, 0b11111000, 0b00100000, # shw ki 0x64 | |
0b01000000, 0b01111000, 0b10001000, 0b00010000, 0b01100000, # shw ku 0x65 | |
0b01000000, 0b01111000, 0b10010000, 0b00010000, 0b01100000, # shw ke 0x66 ^^ | |
0b11111000, 0b00001000, 0b00001000, 0b00001000, 0b11111000, # shw ko 0x67 | |
0b01010000, 0b11111000, 0b01010000, 0b00010000, 0b01100000, # shw sa 0x68 | |
0b01000000, 0b10101000, 0b01001000, 0b00010000, 0b11100000, # shw shi 0x69 | |
0b11111000, 0b00001000, 0b00010000, 0b00110000, 0b11001000, # shw su 0x6A | |
0b01000000, 0b11111000, 0b01010000, 0b01000000, 0b00111000, # shw se 0x6B | |
0b10001000, 0b01001000, 0b00001000, 0b00010000, 0b01100000, # shw so 0x6C | |
0b01000000, 0b01111000, 0b11001000, 0b00110000, 0b01100000, # shw ta 0x6D | |
0b11111000, 0b00100000, 0b11111000, 0b00100000, 0b01000000, # shw chi 0x6E | |
0b10101000, 0b10101000, 0b00001000, 0b00010000, 0b01100000, # shw tsu 0x6F | |
0b11111000, 0b00000000, 0b11111000, 0b00100000, 0b11000000, # shw te 0x70 | |
0b01000000, 0b01000000, 0b01100000, 0b01010000, 0b01000000, # shw to 0x71 | |
0b00100000, 0b11111000, 0b00100000, 0b00100000, 0b01000000, # shw na 0x72 | |
0b11110000, 0b00000000, 0b00000000, 0b00000000, 0b11111000, # shw ni 0x73 | |
0b11111000, 0b00001000, 0b00101000, 0b00010000, 0b01101000, # shw nu 0x74 | |
0b00100000, 0b11111000, 0b00001000, 0b01110000, 0b10101000, # shw ne 0x75 | |
0b00001000, 0b00001000, 0b00001000, 0b00010000, 0b01100000, # shw no 0x76 | |
0b01010000, 0b01010000, 0b01010000, 0b10001000, 0b10001000, # shw ha 0x77 | |
0b10000000, 0b10011000, 0b11100000, 0b10000000, 0b01111000, # shw hi 0x78 | |
0b11111000, 0b00001000, 0b00001000, 0b00010000, 0b01100000, # shw hu 0x79 | |
0b01000000, 0b10100000, 0b10010000, 0b00001000, 0b00000000, # shw he 0x7A | |
0b00100000, 0b11111000, 0b01110000, 0b10101000, 0b00100000, # shw ho 0x7B | |
0b11111000, 0b00001000, 0b10010000, 0b01100000, 0b00100000, # shw ma 0x7C | |
0b11111000, 0b00000000, 0b11111000, 0b00000000, 0b11111000, # shw mi 0x7D | |
0b00100000, 0b01000000, 0b01000000, 0b10010000, 0b11111000, # shw mu 0x7E | |
0b00001000, 0b01001000, 0b00110000, 0b00110000, 0b11001000, # shw me 0x7F | |
0b11111000, 0b00100000, 0b11111000, 0b00100000, 0b00111000, # shw mo 0x80 | |
0b01000000, 0b11111100, 0b01001000, 0b00100000, 0b00100000, # shw ya 0x81 | |
0b11110000, 0b00010000, 0b00010000, 0b00010000, 0b11111000, # shw yu 0x82 | |
0b11111000, 0b00001000, 0b11111000, 0b00001000, 0b11111000, # shw yo 0x83 | |
0b11111000, 0b00000000, 0b11111000, 0b00010000, 0b01100000, # shw ra 0x84 | |
0b10001000, 0b10001000, 0b10001000, 0b00010000, 0b01100000, # shw ri 0x85 | |
0b01100000, 0b01100000, 0b01101000, 0b01101000, 0b10110000, # shw ru 0x86 | |
0b10000000, 0b10000000, 0b10001000, 0b10001000, 0b11110000, # shw re 0x87 | |
0b11111000, 0b10001000, 0b10001000, 0b10001000, 0b11111000, # shw ro 0x88 | |
0b11111000, 0b10001000, 0b00001000, 0b00010000, 0b01100000, # shw wa 0x89 | |
0b10000000, 0b01001000, 0b00001000, 0b00010000, 0b11100000, # shw n 0x8A | |
0b10100000, 0b10100000, 0b00000000, 0b00000000, 0b00000000, # shw voiced 0x8B | |
0b01000000, 0b10100000, 0b01000000, 0b00000000, 0b00000000, # shw halfvoiced 0x8C | |
] | |
ASCII2Font = [ | |
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, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x3E, 0x33, 0x31, 0x3F, 0x37, 0x2F, 0x3D, 0x3A, 0x3B, 0x35, 0x38, 0x39, 0x25, 0x28, 0x29, | |
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x2E, 0x40, 0x2A, 0x32, 0x2B, 0x36, | |
0x3C, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, | |
0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x2C, 0x34, 0x2D, 0x42, 0x26, | |
0x41, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, | |
0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x43, 0x00, 0x44, 0x27, 0x00, | |
0x0D, 0x1F, 0x0F, 0x0B, 0x0B, 0x0B, 0x0B, 0x0D, 0x0F, 0x0F, 0x0F, 0x13, 0x13, 0x13, 0x0B, 0x0B, | |
0x0F, 0x0B, 0x0B, 0x19, 0x19, 0x19, 0x1F, 0x1F, 0x23, 0x19, 0x1F, 0x0D, 0x10, 0x23, 0x1A, 0x10, | |
0x0B, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, | |
0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, | |
0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, | |
0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x4C, 0x4B, 0x4A, 0x45, 0x46, 0x47, 0x48, 0x49, | |
] | |
import sys | |
def outchar(c, colorid): | |
# print(c, ord(c), ord(c) * 5) | |
offset = ASCII2Font[ord(c) & 0xff] * 5 # each char is 5 byte wide | |
i = 0 | |
for fy in range(0, 5): | |
byte = GUIFontData[offset + i] | |
for fx in range(0, 5): # use 6 here to add some spacing | |
if byte & 0x80: | |
# sys.stdout.write("\x1b[{}m ".format(colorid - fx - fy + 37)) | |
sys.stdout.write("\x1b[38;5;{}m\u2588".format(colorid - fx - fy)) | |
else: | |
sys.stdout.write('\x1b[0m ') | |
byte <<= 1 | |
sys.stdout.write("\x1b[5D") | |
sys.stdout.write("\x1b[1B") | |
# sys.stdout.write("\n") | |
i += 1 | |
text = "HELLO WORLD" | |
x = 0 | |
y = 0 | |
print("\x1b[2J") | |
import time | |
for i in range(100, 255): | |
sys.stdout.write("\x1b[1;1f") | |
for c in text: | |
# outchar(c, 255) | |
outchar(c, i) | |
x += 1 | |
sys.stdout.write("\x1b[5A") | |
sys.stdout.write("\x1b[6C") | |
sys.stdout.flush() | |
time.sleep(0.16) | |
print('') | |
sys.stdout.write("\x1b[5B") | |
sys.stdout.write("\x1b[0m") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment