;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Fixed width font, 5 wide, 7 high ;; Will give text resolution of 14 x 6 ;; - Andre Miller function _font_5x7_table ( byte in H, byte in L ) return byte is assembler local table_start hpage table_start bank H addwf H, w movwf PCLATH bank L movfw PCL addlw 5 addwf L, w skpnc incf PCLATH, f movwf PCL table_start: retlw 0x00 ;; space, 32, 0, 0 retlw 0x00 retlw 0x00 retlw 0x00 retlw 0x00 retlw 0x00 ;; !, 33, 1, 1 retlw 0x00 retlw 0x2f retlw 0x00 retlw 0x00 retlw 0x00 ;; ", 34, 2, 2 retlw 0x07 retlw 0x00 retlw 0x07 retlw 0x00 retlw 0x14 ;; #, 35, 3, 3 retlw 0x7f retlw 0x14 retlw 0x7f retlw 0x14 retlw 0x24 ;; $, 36, 4, 4 retlw 0x2a retlw 0x7f retlw 0x2a retlw 0x12 retlw 0xc4 ;; %, 37, 5, 5 retlw 0xc8 retlw 0x10 retlw 0x26 retlw 0x46 retlw 0x36 ;; &, 38, 6, 6 retlw 0x49 retlw 0x55 retlw 0x22 retlw 0x50 retlw 0x00 ;; ', 39, 7, 7 retlw 0x05 retlw 0x03 retlw 0x00 retlw 0x00 retlw 0x00 ;; (, 40, 8, 8 retlw 0x1c retlw 0x22 retlw 0x41 retlw 0x00 retlw 0x00 ;; ), 41, 9, 9 retlw 0x41 retlw 0x22 retlw 0x1c retlw 0x00 retlw 0x14 ;; *, 42, 10, 10 retlw 0x08 retlw 0x3E retlw 0x08 retlw 0x14 retlw 0x08 ;; +, 43, 11, 11 retlw 0x08 retlw 0x3E retlw 0x08 retlw 0x08 retlw 0x00 ;; ,, 44, 12, 12 retlw 0x00 retlw 0x50 retlw 0x30 retlw 0x00 retlw 0x10 ;; -, 45, 13, 13 retlw 0x10 retlw 0x10 retlw 0x10 retlw 0x10 retlw 0x00 ;; ., 46, 14, 14 retlw 0x60 retlw 0x60 retlw 0x00 retlw 0x00 retlw 0x20 ;; /, 47, 15, 15 retlw 0x10 retlw 0x08 retlw 0x04 retlw 0x02 retlw 0x3E ;; 0, 48, 16, 16 retlw 0x51 retlw 0x49 retlw 0x45 retlw 0x3E retlw 0x00 ;; 1, 49, 17, 17 retlw 0x42 retlw 0x7F retlw 0x40 retlw 0x00 retlw 0x42 ;; 2, 50, 18, 18 retlw 0x61 retlw 0x51 retlw 0x49 retlw 0x46 retlw 0x21 ;; 3, 51, 19, 19 retlw 0x41 retlw 0x45 retlw 0x4B retlw 0x31 retlw 0x18 ;; 4, 52, 20, 20 retlw 0x14 retlw 0x12 retlw 0x7F retlw 0x10 retlw 0x27 ;; 5, 53, 21, 21 retlw 0x45 retlw 0x45 retlw 0x45 retlw 0x39 retlw 0x3C ;; 6, 54, 22, 22 retlw 0x4A retlw 0x49 retlw 0x49 retlw 0x30 retlw 0x01 ;; 7, 55, 23, 23 retlw 0x71 retlw 0x09 retlw 0x05 retlw 0x03 retlw 0x36 ;; 8, 56, 24, 0 retlw 0x49 retlw 0x49 retlw 0x49 retlw 0x36 retlw 0x06 ;; 9, 57, 25, 1 retlw 0x49 retlw 0x49 retlw 0x29 retlw 0x1E retlw 0x00 ;; :, 58, 26, 2 retlw 0x36 retlw 0x36 retlw 0x00 retlw 0x00 retlw 0x00 ;; ;, 59, 27, 3 retlw 0x56 retlw 0x36 retlw 0x00 retlw 0x00 retlw 0x08 ;; <, 60, 28, 4 retlw 0x14 retlw 0x22 retlw 0x41 retlw 0x00 retlw 0x14 ;; =, 61, 29, 5 retlw 0x14 retlw 0x14 retlw 0x14 retlw 0x14 retlw 0x00 ;; >, 62, 30, 6 retlw 0x41 retlw 0x22 retlw 0x14 retlw 0x08 retlw 0x02 ;; ?, 63, 31, 7 retlw 0x01 retlw 0x51 retlw 0x09 retlw 0x06 retlw 0x32 ;; @, 64, 32, 8 retlw 0x49 retlw 0x59 retlw 0x51 retlw 0x3E retlw 0x7E ;; A, 65, 33, 9 retlw 0x11 retlw 0x11 retlw 0x11 retlw 0x7E retlw 0x7F ;; B, 66, 34, 10 retlw 0x49 retlw 0x49 retlw 0x49 retlw 0x36 retlw 0x3E ;; C, 67, 35, 11 retlw 0x41 retlw 0x41 retlw 0x41 retlw 0x22 retlw 0x7F ;; D, 68, 36, 12 retlw 0x41 retlw 0x41 retlw 0x22 retlw 0x1C retlw 0x7F ;; E, 69, 37, 13 retlw 0x49 retlw 0x49 retlw 0x49 retlw 0x41 retlw 0x7F ;; F, 70, 38, 14 retlw 0x09 retlw 0x09 retlw 0x09 retlw 0x01 retlw 0x3E ;; G, 71, 39, 15 retlw 0x41 retlw 0x49 retlw 0x49 retlw 0x7A retlw 0x7F ;; H, 72, 40, 16 retlw 0x08 retlw 0x08 retlw 0x08 retlw 0x7F retlw 0x00 ;; I, 73, 41, 17 retlw 0x41 retlw 0x7F retlw 0x41 retlw 0x00 retlw 0x20 ;; J, 74, 42, 18 retlw 0x40 retlw 0x41 retlw 0x3F retlw 0x01 retlw 0x7F ;; K, 75, 43, 19 retlw 0x08 retlw 0x14 retlw 0x22 retlw 0x41 retlw 0x7F ;; L, 76, 44, 20 retlw 0x40 retlw 0x40 retlw 0x40 retlw 0x40 retlw 0x7F ;; M, 77, 45, 21 retlw 0x02 retlw 0x0C retlw 0x02 retlw 0x7F retlw 0x7F ;; N, 78, 46, 22 retlw 0x04 retlw 0x08 retlw 0x10 retlw 0x7F retlw 0x3E ;; O, 79, 47, 23 retlw 0x41 retlw 0x41 retlw 0x41 retlw 0x3E retlw 0x7F ;; P, 80, 48, 0 retlw 0x09 retlw 0x09 retlw 0x09 retlw 0x06 retlw 0x3E ;; Q, 81, 49, 1 retlw 0x41 retlw 0x51 retlw 0x21 retlw 0x5E retlw 0x7F ;; R, 82, 50, 2 retlw 0x09 retlw 0x19 retlw 0x29 retlw 0x46 retlw 0x46 ;; S, 83, 51, 3 retlw 0x49 retlw 0x49 retlw 0x49 retlw 0x31 retlw 0x01 ;; T, 84, 52, 4 retlw 0x01 retlw 0x7F retlw 0x01 retlw 0x01 retlw 0x3F ;; U, 85, 53, 5 retlw 0x40 retlw 0x40 retlw 0x40 retlw 0x3F retlw 0x1F ;; V, 86, 54, 6 retlw 0x20 retlw 0x40 retlw 0x20 retlw 0x1F retlw 0x3F ;; W, 87, 55, 7 retlw 0x40 retlw 0x38 retlw 0x40 retlw 0x3F retlw 0x63 ;; X, 88, 56, 8 retlw 0x14 retlw 0x08 retlw 0x14 retlw 0x63 retlw 0x07 ;; Y, 89, 57, 9 retlw 0x08 retlw 0x70 retlw 0x08 retlw 0x07 retlw 0x61 ;; Z, 90, 58, 10 retlw 0x51 retlw 0x49 retlw 0x45 retlw 0x43 retlw 0x00 ;; [, 91, 59, 11 retlw 0x7F retlw 0x41 retlw 0x41 retlw 0x00 retlw 0x55 ;; 5, 92, 60, 12 retlw 0x2A retlw 0x55 retlw 0x2A retlw 0x55 retlw 0x00 ;; ], 93, 61, 13 retlw 0x41 retlw 0x41 retlw 0x7F retlw 0x00 retlw 0x04 ;; ^, 94, 62, 14 retlw 0x02 retlw 0x01 retlw 0x02 retlw 0x04 retlw 0x40 ;; _, 95, 63, 15 retlw 0x40 retlw 0x40 retlw 0x40 retlw 0x40 retlw 0x00 ;; ', 96, 64, 16 retlw 0x01 retlw 0x02 retlw 0x04 retlw 0x00 retlw 0x20 ;; a, 97, 65, 17 retlw 0x54 retlw 0x54 retlw 0x54 retlw 0x78 retlw 0x7F ;; b, 98, 66, 18 retlw 0x48 retlw 0x44 retlw 0x44 retlw 0x38 retlw 0x38 ;; c, 99, 67, 19 retlw 0x44 retlw 0x44 retlw 0x44 retlw 0x20 retlw 0x38 ;; d, 100, 68, 20 retlw 0x44 retlw 0x44 retlw 0x48 retlw 0x7F retlw 0x38 ;; e, 101, 69, 21 retlw 0x54 retlw 0x54 retlw 0x54 retlw 0x18 retlw 0x08 ;; f, 102, 70, 22 retlw 0x7E retlw 0x09 retlw 0x01 retlw 0x02 retlw 0x0C ;; g, 103, 71, 23 retlw 0x52 retlw 0x52 retlw 0x52 retlw 0x3E retlw 0x7F ;; h, 104, 72, 0 retlw 0x08 retlw 0x04 retlw 0x04 retlw 0x78 retlw 0x00 ;; i, 105, 73, 1 retlw 0x44 retlw 0x7D retlw 0x40 retlw 0x00 retlw 0x20 ;; j, 106, 74, 2 retlw 0x40 retlw 0x44 retlw 0x3D retlw 0x00 retlw 0x7F ;; k, 107, 75, 3 retlw 0x10 retlw 0x28 retlw 0x44 retlw 0x00 retlw 0x00 ;; l, 108, 76, 4 retlw 0x41 retlw 0x7F retlw 0x40 retlw 0x00 retlw 0x7C ;; m, 109, 77, 5 retlw 0x04 retlw 0x18 retlw 0x04 retlw 0x78 retlw 0x7C ;; n, 110, 78, 6 retlw 0x08 retlw 0x04 retlw 0x04 retlw 0x78 retlw 0x38 ;; o, 111, 79, 7 retlw 0x44 retlw 0x44 retlw 0x44 retlw 0x38 retlw 0x7C ;; p, 112, 80, 8 retlw 0x14 retlw 0x14 retlw 0x14 retlw 0x08 retlw 0x08 ;; q, 113, 81, 9 retlw 0x14 retlw 0x14 retlw 0x18 retlw 0x7C retlw 0x7C ;; r, 114, 82, 10 retlw 0x08 retlw 0x04 retlw 0x04 retlw 0x08 retlw 0x48 ;; s, 115, 83, 11 retlw 0x54 retlw 0x54 retlw 0x54 retlw 0x20 retlw 0x04 ;; t, 116, 84, 12 retlw 0x3F retlw 0x44 retlw 0x40 retlw 0x20 retlw 0x3C ;; u, 117, 85, 13 retlw 0x40 retlw 0x40 retlw 0x20 retlw 0x7C retlw 0x1C ;; v, 118, 86, 14 retlw 0x20 retlw 0x40 retlw 0x20 retlw 0x1C retlw 0x3C ;; w, 119, 87, 15 retlw 0x40 retlw 0x30 retlw 0x40 retlw 0x3C retlw 0x44 ;; x, 120, 88, 16 retlw 0x28 retlw 0x10 retlw 0x28 retlw 0x44 retlw 0x0C ;; y, 121, 89, 17 retlw 0x50 retlw 0x50 retlw 0x50 retlw 0x3C retlw 0x44 ;; z, 122, 90, 18 retlw 0x64 retlw 0x54 retlw 0x4C retlw 0x44 end assembler end function ;; Writes a character to the display procedure print_char_5x7 (byte in letter) is var byte indxl = 0 var byte indxh = 0 var byte offset var byte x offset = letter - 32 ;; Fix for ascii value for offset loop _16b_add (0, 5, indxh, indxl) end loop for 5 loop x = _font_5x7_table (indxh, indxl) NLCD_Write (x, true) _16b_add (0, 1, indxh, indxl) end loop NLCD_Write (0, true) ; Add blank space between characters end procedure ;; Writes an inverted character to the display procedure print_char_5x7_i (byte in letter) is var byte indxl = 0 var byte indxh = 0 var byte offset var byte x offset = letter - 32 ;; Fix for ascii value for offset loop _16b_add (0, 5, indxh, indxl) end loop for 5 loop x = _font_5x7_table (indxh, indxl) x = x ^ 0xFF NLCD_Write (x, true) _16b_add (0, 1, indxh, indxl) end loop NLCD_Write (0xFF, true) ; Add blank space between characters end procedure