'-------------------------------------------------------------------------------- 'name : ColorGLCD_Sharp.bas 'purpose : Display control example 'micro controller : Mega128 (Kyoritsu-Digit, USB Boot-Loader 128: ABL128) ' 'Hardware : Color Graphic LCD (Sharp LQ043T3DX02) ' : 480x272 dots. RGB ' : The LCD is controlled by CPLD (MAX-II). ' : AVR communicates with the CPLD. ' ' char. ROM (defined in the Flush prog. memory) is 7x9 dot / char. & 1 dot V space, ' which means 68 columns x 27 lines in 480 x 272 pixel area. ' '-------------------------------------------------------------------------------- Rem Used ports '-------------------------------------------------------------------------------- ' RESERVED PORTS (unable to use by user) ' ' PE0,1 : reserved by USB communication (UART0 RXD0, TXD0) ' PG4 : reserved by ABL128 boot-loader ' ' used ports in the system control. ' ' ' GLCD control (communicate with CPLD board) ' ' PC0-7 : LCD data BUS - (out) ' PA3 : LCD WR busy (input) ' : when Power-up set, Hard clear, and data set, this bit is set during OP end. ' PA4 : LCD addr. high /Set ' PA5 : LCD addr. mid /Set ' PA6 : LCD addr. low /Set ' PA7 : LCD data /Set ' ' PG1 : LCD RAM /CLEAR. (assert low makes GLCD clear. Wait WR_busy reset.) ' ' PG2 : Power_up signal for GLCD. ' : After the system is powered up, ' : this line holds low during T > 50ms, ' : and then set to high. ' ' '-------------------------------------------------------------------------------- $regfile = "m128def.dat" $crystal = 16000000 $hwstack = 64 $swstack = 128 ' used in multiple GOSUB nest. $framesize = 140 Rem disable JTAG (must be done at the first execution of program.for ABL128) Mcucsr.jtd = 1 ' To disable JTAG, two consecutive commands (operations) Mcucsr.jtd = 1 ' (write to the JTAG control bit in MCUCSR register) must be done. ' Color byte definition (User can define other colors.) Const Black = &H00 Const White = &HFF Const Red = &B11100000 Const Green = &B00011100 Const Blue = &B00000011 Const Gray = &B00100101 Const Brown = &B01100100 Const Sky = &B00001110 Const Violet = &B10000011 Const Light_green = &B00000100 Rem I/O port pin number definitions ' GLCD control (Communicate with CPLD) Config Portc = Output ' LCD data BUS Lcdbus Alias Portc Config Porta.7 = Output ' D_LatchN Config Porta.6 = Output ' A_LowN Config Porta.5 = Output ' A_MidN Config Porta.4 = Output ' A_HighN Dlatchn Alias Porta.7 Alown Alias Porta.6 Amidn Alias Porta.5 Ahighn Alias Porta.4 Config Porta.3 = Input ' WR_Busy (H=busy) Wrbusy Alias Pina.3 Config Portg.1 = Output Config Portg.2 = Input Ram_clrn Alias Portg.1 ' GLCD clear command line (negative logic) Power_up Alias Ping.2 ' Just after the power-up, this signal holds low during greater than 50ms. ' This is because GLCD power-startup sequense. Rem Declare subroutines with local variables Declare Sub Lcdchar(byval Bs1 As Byte) ' usage = Lcdchar ASCII Declare Sub Lcd_lchar(byval Bs1 As Byte) ' usage = Lcd_lchar ASCII Declare Sub Lcdline(byval Xs1 As Single , Byval Ys1 As Single , Byval Xs2 As Single , Ys2 As Single) ' usage = Lcdline X1, Y1, X2, Y2 ' Gcolor = color byte Declare Sub Lcdpset(byval Pxs3 As Integer , Byval Pys3 As Integer , Byval Pds3 As Byte) ' usage = Lcdpset X, Y, data Rem type definition of variables ' for WORK Dim I As Integer , J As Integer , Flag As Integer Dim D As Integer Dim K As Integer , N As Integer , N1 As Integer , N2 As Integer Dim K1 As Integer , K2 As Integer Dim I2 As Integer , J2 As Integer , I3 As Integer , J3 As Integer Dim Ww As Word , Ww2 As Word Dim B As Byte , B2 As Byte , Lpat As Byte Dim X As Single , Y As Single , Z As Single , W As Single Dim V As Single , U As Single , Z2 As Single ' Variables used for GLCD display Dim Addr1 As Word , Addr2 As Word Dim Ns As Integer , Saddr As Word , Is0 As Integer Dim Pas1 As Long Dim Higha As Byte At Pas1 + 2 Overlay ' Var. pas1 high byte Dim Mida As Byte At Pas1 + 1 Overlay ' Var. pas1 mid byte Dim Lowa As Byte At Pas1 Overlay ' Var. pas1 low byte Dim Bs0 As Byte Dim Col As Byte , Row As Byte ' char. column (0 to 67), Row (0 to 27) Dim Icol As Integer , Jrow As Integer ' for draw LINE and CURVE Dim Xr0 As Integer , Yr0 As Integer ' (X, Y) = (0, 0) position [pixel] Dim X1 As Single , Y1 As Single Dim X2 As Single , Y2 As Single ' line draw from (X1, Y1) to (X2, Y2) Dim X3 As Single , Y3 As Single Dim Dx As Single , Dy As Single ' work Dim Gcolor As Byte ' pixel color Dim Bvcolor(4) As Byte , Btcolor(4) As Byte ' curve color Dim Gxindex As Integer ' graph draw X index ' for STRING display Dim S As String * 80 Dim S1 As String * 80 , S2 As String * 80 , S3 As String * 80 Dim Ccolor As Byte ' character color Dim Bcolor As Byte ' character background color Rem program body Rem Sense power-up Bitwait Power_up , Set Waitms 1 ' additional wait for LCD start ' CPLD I/F initialize Set Ram_clrn Set Dlatchn Set Alown Set Amidn Set Ahighn Rem GLCD control Addr1 = Loadlabel(asciic) ' Character pattern top address in Flush program memory. ' clear LCD Gosub Lcdcls ' Charcter strings display Col = 1 Row = 1 ' which means Locate 1 , 1 S = "Large character" Gosub Lcd_lprint Col = 1 Row = 3 ' which means Locate 3 , 1 S = "Small character" Gosub Lcdprint Col = 10 Row = 10 Bcolor = Black ' back color = black Ccolor = Green ' char. color S = "Color strings" Gosub Lcdprint2 Bcolor = Red Ccolor = White Row = 12 ' Col is auto increment by the above calling S = "Back-color str" Gosub Lcdprint2 ' Line draw : draw line (X1, Y1) to (X2, Y2) [pixel] X1 = 0 Y1 = 0 X2 = 50 Y2 = 50 Gcolor = Blue Lcdline X1 , Y1 , X2 , Y2 Do Loop ' end termination by infinite loop Rem GLCD suroutines and functions ' Clear screen Lcdcls: Lcdbus = 0 ' set black color Reset Dlatchn ' set data register Set Dlatchn ' Latch it Bitwait Wrbusy , Reset ' wait the data latched Reset Ram_clrn ' request GCLD-memory clear Bitwait Wrbusy , Set ' wait RAM_clear command was accepted Set Ram_clrn ' release the Clear line Bitwait Wrbusy , Reset ' wait All RAM clear Return ' Write a pixel dot ' usage = Lcdpset X, Y, data ' data (8-bit) is composed of R, G, B data. ' = R7, = R6, = R5~0 ' = G7, = G6, = G5~0 ' = B7~6, = B5~0. Sub Lcdpset(byval Pxs3 As Integer , Pys3 As Integer , Pds3 As Byte) Pas1 = Pys3 Pas1 = Pas1 * 1024 Pas1 = Pas1 + Pxs3 ' RAM Address ' set pixel Address to CPLD Lcdbus = Higha Reset Ahighn Set Ahighn Lcdbus = Mida Reset Amidn Set Amidn Lcdbus = Lowa Reset Alown Set Alown ' WR pixel data Lcdbus = Pds3 Reset Dlatchn Set Dlatchn Bitwait Wrbusy , Reset End Sub ' draw line (X1, Y1) to (X2, Y2) [pixel] ' Gcolor: Pixel color ' usage = Lcdline X1, Y1, X2, Y2 Sub Lcdline(byval Xs1 As Single , Ys1 As Single , Xs2 As Single , Ys2 As Single) Local Dxs As Single , Dxs2 As Single Local Dys As Single , Dys2 As Single Local Ns3 As Integer , Ks3 As Integer Local Is3 As Integer , Js3 As Integer Dxs = Xs2 - Xs1 Dys = Ys2 - Ys1 Dxs2 = Abs(dxs) Dys2 = Abs(dys) If Dys2 > Dxs2 Then Dys = Dys / Dys2 Dxs = Dxs / Dys2 Ns3 = Dys2 Else Dys = Dys / Dxs2 Dxs = Dxs / Dxs2 Ns3 = Dxs2 End If For Ks3 = 1 To Ns3 Is3 = Xs1 Js3 = Ys1 Lcdpset Is3 , Js3 , Gcolor Xs1 = Xs1 + Dxs Ys1 = Ys1 + Dys Next Ks3 End Sub ' string print to GLCD from S (string variable) ' usage = Gosub Lcdprint ' S must be set before call ' If call to Lcdprint2, color character will be displaied. ' In this case, Bcolor & Ccolor must be set before the call. Lcdprint: Bcolor = Black Ccolor = White Lcdprint2: Saddr = Varptr(s) ' get pointer of S Ns = Len(s) For Is0 = 1 To Ns Bs0 = Inp(saddr) ' get a byte using the pointer ' get a memory byte Lcdchar Bs0 Incr Col Incr Saddr Next Is0 Return ' one character print to GLCD ' usage = Lcdchar ASCII-byte ' Ccolor = character color ' Bcolor = background color Sub Lcdchar(byval Bs1 As Byte) Local Ks As Integer , Addrs As Integer , Js As Integer Local Is1 As Integer , Js1 As Integer , Ics As Integer Local Bs12 As Byte Ks = Bs1 * 16 Addrs = Addr1 + Ks Ks = Col * 7 Js = Row * 10 For Is1 = 1 To 9 Ics = Ks Bs1 = Cpeek(addrs) For Js1 = 1 To 7 Bs12 = Bs1 And 1 If Bs12 <> 0 Then Lcdpset Ics , Js , Ccolor Else Lcdpset Ics , Js , Bcolor End If Shift Bs1 , Right Incr Ics Next Js1 Incr Addrs Incr Js Next Is1 End Sub ' Large string print to GLCD from string varible S ' usage = Gosub Lcd_lprint ' S must be set before call ' Calling from Lcd_lprint2 enables color charactor. Lcd_lprint: Bcolor = Black Ccolor = White Lcd_lprint2: Saddr = Varptr(s) Ns = Len(s) For Is0 = 1 To Ns Bs0 = Inp(saddr) ' get a memory byte Lcd_lchar Bs0 Col = Col + 2 Incr Saddr Next Is0 Return ' Large char. print to GLCD ' usage = Lcdchar ASCII ' Ccolor = charactor color ' Bcolor = background color Sub Lcd_lchar(byval Bs1 As Byte) Local Ks As Integer , Addrs As Integer , Js As Integer Local Is1 As Integer , Js1 As Integer , Ics As Integer Local Bs12 As Byte Ks = Bs1 * 16 Addrs = Addr1 + Ks Ks = Col * 7 Js = Row * 10 For Is1 = 1 To 9 Ics = Ks Bs1 = Cpeek(addrs) For Js1 = 1 To 14 Bs12 = Bs1 And 1 If Bs12 <> 0 Then Lcdpset Ics , Js , Ccolor Incr Ics Lcdpset Ics , Js , Ccolor Else Lcdpset Ics , Js , Bcolor Incr Ics Lcdpset Ics , Js , Bcolor End If Shift Bs1 , Right Incr Ics Next Js1 Ics = Ks Incr Js Bs1 = Cpeek(addrs) For Js1 = 1 To 14 Bs12 = Bs1 And 1 If Bs12 <> 0 Then Lcdpset Ics , Js , Ccolor Incr Ics Lcdpset Ics , Js , Ccolor Else Lcdpset Ics , Js , Bcolor Incr Ics Lcdpset Ics , Js , Bcolor End If Shift Bs1 , Right Incr Ics Next Js1 Incr Addrs Incr Js Next Is1 End Sub ' draw cursor at (Col, Row) Lcdcursor: Icol = Col * 7 Jrow = Row * 10 Jrow = Jrow + 9 For Is0 = 1 To 7 Lcdpset Icol , Jrow , &HFF Incr Icol Next Is0 Return ' erase cursor at (col, Row) Eracursor: Icol = Col * 7 Jrow = Row * 10 Jrow = Jrow + 9 For Is0 = 1 To 7 Lcdpset Icol , Jrow , &H00 Incr Icol Next Is0 Return ' erase all cursor at Row Era_rcursor: Icol = 0 Jrow = Row * 10 Jrow = Jrow + 9 For Is0 = 1 To 480 Lcdpset Icol , Jrow , &H00 Incr Icol Next Is0 Return ' clear area ' from (i2, j2) to (i3, j3) Clrarea: For J = J2 To J3 For I = I2 To I3 Lcdpset I , J , Black Next I Next J Return End ' ASCII font: 7x9 dots ' code = &H00 to &H7F ' output from (LSB) (to hirozontal direction) ' codes below &H20 = Greek and special characters. Asciic: ' char code &H0 (alpha) Data &H0 , &H0 , &H22 , &H15 , &H9 , &H15 , &H22 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H1 (beta) Data &H0 , &HE , &H12 , &HE , &H12 , &H1E , &H2 , &H1 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H2 (gamma) Data &H0 , &H23 , &H12 , &HA , &H6 , &H3 , &H3 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H3 (delta) Data &H0 , &H6 , &H9 , &H2 , &H4 , &H9 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H4 (epsiron) Data &H0 , &HC , &H2 , &H1 , &HF , &H1 , &H2 , &HC Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H5 (zeta) Data &H1C , &H18 , &H4 , &H2 , &HE , &H10 , &HC , &H2 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H6 (eta) Data &H1A , &H27 , &H22 , &H22 , &H22 , &H20 , &H10 , &H10 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H7 (theta) Data &H4 , &HA , &H11 , &H1F , &H11 , &HA , &H4 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H8 (ipsiron) Data &H0 , &H0 , &H3 , &H2 , &H12 , &HA , &H7 , &H1 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H9 (kappa) Data &H0 , &H0 , &H1 , &HD , &H3 , &H5 , &H19 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &HA (lambda) Data &H0 , &H0 , &H3 , &H4 , &HC , &H12 , &H61 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &HB (mu) Data &H0 , &H9 , &H9 , &H9 , &H17 , &H1 , &H1 , &H1 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &HC (nu) Data &H0 , &H0 , &H23 , &H12 , &HA , &H6 , &H2 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &HD (xi) Data &H8 , &H1C , &H2 , &HE , &H1 , &HF , &H10 , &HC Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &HE (omicron) Data &H0 , &H0 , &HC , &H12 , &H21 , &H12 , &HC , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &HF (pi) Data &H0 , &H0 , &H0 , &H3E , &H15 , &H14 , &H34 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H10 (rho) Data &HC , &H12 , &H21 , &H13 , &HD , &H1 , &H1 , &H1 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H11 (sigma) Data &H0 , &H0 , &H3C , &H12 , &H21 , &H21 , &H12 , &HC Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H12 (tau) Data &H0 , &H0 , &H3E , &H9 , &H8 , &H8 , &H8 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H13 (upsiron) Data &H0 , &H0 , &H0 , &H23 , &H22 , &H12 , &HC , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H14 (phi) Data &H4 , &HE , &H15 , &H15 , &HE , &H4 , &H4 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H15 (ki) Data &H0 , &H0 , &H23 , &H14 , &H8 , &H14 , &H22 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H16 (psi) Data &H4 , &H15 , &H15 , &HE , &H4 , &H4 , &H4 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H17 (omega) Data &H0 , &H0 , &H0 , &H11 , &H15 , &H15 , &HE , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H18 (Omega) Data &H0 , &HC , &H12 , &H21 , &H12 , &H12 , &H33 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H19 (Root sign) Data &H3C , &H4 , &H4 , &H4 , &H4 , &H5 , &H6 , &H4 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H1A (right arrow) Data &H0 , &H8 , &H10 , &H3F , &H10 , &H8 , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H1B (left arrow) Data &H0 , &H4 , &H2 , &H3F , &H2 , &H4 , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H1C (up arrow) Data &H4 , &HE , &H15 , &H4 , &H4 , &H4 , &H4 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H1D (division mark) Data &H0 , &H8 , &H0 , &H3E , &H0 , &H8 , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H1E (Sigma) Data &H3F , &H2 , &H4 , &H8 , &H4 , &H2 , &H3F , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H1F (approx. equal: double tilde) Data &H0 , &H6 , &H49 , &H30 , &H6 , &H49 , &H30 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H20 (space). From here, code corresponds to the ASCII Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H21 ( ! ) Data &H0 , &H4 , &H4 , &H4 , &H4 , &H4 , &H0 , &H4 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H22 Data &H0 , &HA , &HA , &HA , &H0 , &H0 , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H23 Data &H0 , &HA , &HA , &H1F , &HA , &H1F , &HA , &HA Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H24 Data &H0 , &H4 , &H1E , &H5 , &HE , &H14 , &HF , &H4 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H25 Data &H0 , &H3 , &H13 , &H8 , &H4 , &H2 , &H19 , &H18 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H26 Data &H0 , &H2 , &H5 , &H5 , &H2 , &H15 , &H9 , &H16 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H27 Data &H0 , &H6 , &H6 , &H2 , &H1 , &H0 , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H28 Data &H0 , &H8 , &H4 , &H2 , &H2 , &H2 , &H4 , &H8 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H29 Data &H0 , &H2 , &H4 , &H8 , &H8 , &H8 , &H4 , &H2 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H2A Data &H0 , &H4 , &H15 , &HE , &H1F , &HE , &H15 , &H4 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H2B Data &H0 , &H0 , &H4 , &H4 , &H1F , &H4 , &H4 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H2C Data &H0 , &H0 , &H0 , &H0 , &H0 , &H6 , &H6 , &H2 Data &H1 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H2D Data &H0 , &H0 , &H0 , &H0 , &H1F , &H0 , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H2E Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H6 , &H6 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H2F Data &H0 , &H0 , &H10 , &H8 , &H4 , &H2 , &H1 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H30 Data &H0 , &HE , &H11 , &H19 , &H15 , &H13 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H31 Data &H0 , &H4 , &H6 , &H4 , &H4 , &H4 , &H4 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H32 Data &H0 , &HE , &H11 , &H10 , &HE , &H1 , &H1 , &H1F Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H33 Data &H0 , &HE , &H11 , &H10 , &HC , &H10 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H34 Data &H0 , &H8 , &HC , &HA , &H9 , &H1F , &H8 , &H8 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H35 Data &H0 , &H1F , &H1 , &HF , &H10 , &H10 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H36 Data &H0 , &HC , &H2 , &H1 , &HF , &H11 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H37 Data &H0 , &H1F , &H10 , &H8 , &H4 , &H2 , &H1 , &H1 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H38 Data &H0 , &HE , &H11 , &H11 , &HE , &H11 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H39 Data &H0 , &HE , &H11 , &H11 , &H1E , &H10 , &H8 , &H6 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H3A Data &H0 , &H0 , &H6 , &H6 , &H0 , &H6 , &H6 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H3B Data &H0 , &H6 , &H6 , &H0 , &H6 , &H6 , &H2 , &H1 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H3C Data &H0 , &H8 , &H4 , &H2 , &H1 , &H2 , &H4 , &H8 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H3D Data &H0 , &H0 , &H0 , &H1F , &H0 , &H1F , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H3E Data &H0 , &H2 , &H4 , &H8 , &H10 , &H8 , &H4 , &H2 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H3F Data &H0 , &HE , &H11 , &H10 , &H8 , &H4 , &H0 , &H4 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H40 Data &H0 , &HE , &H11 , &H10 , &H16 , &H15 , &H15 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H41 Data &H0 , &H4 , &HA , &H11 , &H11 , &H1F , &H11 , &H11 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H42 Data &H0 , &HF , &H12 , &H12 , &HE , &H12 , &H12 , &HF Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H43 Data &H0 , &HE , &H11 , &H1 , &H1 , &H1 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H44 Data &H0 , &H1F , &H22 , &H22 , &H22 , &H22 , &H22 , &H1F Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H45 Data &H0 , &H1F , &H1 , &H1 , &H7 , &H1 , &H1 , &H1F Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H46 Data &H0 , &H1F , &H1 , &H1 , &H7 , &H1 , &H1 , &H1 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H47 Data &H0 , &H1E , &H1 , &H1 , &H19 , &H11 , &H11 , &H1E Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H48 Data &H0 , &H11 , &H11 , &H11 , &H1F , &H11 , &H11 , &H11 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H49 Data &H0 , &HE , &H4 , &H4 , &H4 , &H4 , &H4 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H4A Data &H0 , &H10 , &H10 , &H10 , &H10 , &H10 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H4B Data &H0 , &H11 , &H9 , &H5 , &H3 , &H5 , &H9 , &H11 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H4C Data &H0 , &H1 , &H1 , &H1 , &H1 , &H1 , &H1 , &H1F Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H4D Data &H0 , &H11 , &H1B , &H15 , &H15 , &H11 , &H11 , &H11 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H4E Data &H0 , &H21 , &H21 , &H23 , &H25 , &H29 , &H31 , &H21 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H4F Data &H0 , &HE , &H11 , &H11 , &H11 , &H11 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H50 Data &H0 , &HF , &H11 , &H11 , &HF , &H1 , &H1 , &H1 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H51 Data &H0 , &HE , &H11 , &H11 , &H11 , &H15 , &H9 , &H16 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H52 Data &H0 , &HF , &H11 , &H11 , &HF , &H5 , &H9 , &H11 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H53 Data &H0 , &HE , &H11 , &H1 , &HE , &H10 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H54 Data &H0 , &H1F , &H4 , &H4 , &H4 , &H4 , &H4 , &H4 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H55 Data &H0 , &H11 , &H11 , &H11 , &H11 , &H11 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H56 Data &H0 , &H11 , &H11 , &H11 , &HA , &HA , &H4 , &H4 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H57 Data &H0 , &H11 , &H11 , &H11 , &H11 , &H15 , &H1B , &H11 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H58 Data &H0 , &H11 , &H11 , &HA , &H4 , &HA , &H11 , &H11 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H59 Data &H0 , &H11 , &H11 , &HA , &H4 , &H4 , &H4 , &H4 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H5A Data &H0 , &H1F , &H10 , &H8 , &H4 , &H2 , &H1 , &H1F Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H5B Data &H0 , &HE , &H2 , &H2 , &H2 , &H2 , &H2 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H5C Data &H0 , &H0 , &H1 , &H2 , &H4 , &H8 , &H10 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H5D Data &H0 , &HE , &H8 , &H8 , &H8 , &H8 , &H8 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H5E Data &H0 , &H4 , &HA , &H11 , &H0 , &H0 , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H5F Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H1F Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H60 Data &H0 , &HC , &HC , &H4 , &H8 , &H0 , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H61 Data &H0 , &H0 , &H0 , &HE , &H10 , &H1E , &H11 , &H1E Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H62 Data &H0 , &H1 , &H1 , &HD , &H13 , &H11 , &H13 , &HD Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H63 Data &H0 , &H0 , &H0 , &HE , &H11 , &H1 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H64 Data &H0 , &H10 , &H10 , &H16 , &H19 , &H11 , &H19 , &H16 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H65 Data &H0 , &H0 , &H0 , &HE , &H11 , &H1F , &H1 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H66 Data &H0 , &H0 , &H8 , &H14 , &H4 , &HE , &H4 , &H4 Data &H4 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H67 Data &H0 , &H0 , &H16 , &H19 , &H19 , &H16 , &H10 , &H11 Data &HE , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H68 Data &H0 , &H1 , &H1 , &HD , &H13 , &H11 , &H11 , &H11 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H69 Data &H0 , &H4 , &H0 , &H6 , &H4 , &H4 , &H4 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H6A Data &H0 , &H0 , &H8 , &H0 , &H8 , &H8 , &H8 , &H9 Data &H6 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H6B Data &H0 , &H2 , &H2 , &H12 , &HA , &H6 , &HA , &H12 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H6C Data &H0 , &HC , &H8 , &H8 , &H8 , &H8 , &H8 , &H1C Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H6D Data &H0 , &H0 , &H1 , &HB , &H15 , &H15 , &H15 , &H15 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H6E Data &H0 , &H0 , &H0 , &HD , &H13 , &H11 , &H11 , &H11 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H6F Data &H0 , &H0 , &H0 , &HE , &H11 , &H11 , &H11 , &HE Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H70 Data &H0 , &H0 , &HD , &H13 , &H11 , &H13 , &HD , &H1 Data &H1 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H71 Data &H0 , &H0 , &H16 , &H19 , &H11 , &H19 , &H16 , &H10 Data &H10 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H72 Data &H0 , &H0 , &H0 , &HD , &H13 , &H1 , &H1 , &H1 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H73 Data &H0 , &H0 , &H0 , &H1E , &H1 , &HE , &H10 , &HF Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H74 Data &H0 , &H4 , &H4 , &H1F , &H4 , &H4 , &H14 , &H8 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H75 Data &H0 , &H0 , &H0 , &H11 , &H11 , &H11 , &H19 , &H16 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H76 Data &H0 , &H0 , &H0 , &H11 , &H11 , &H11 , &HA , &H4 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H77 Data &H0 , &H0 , &H0 , &H11 , &H11 , &H15 , &H15 , &HA Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H78 Data &H0 , &H0 , &H0 , &H11 , &HA , &H4 , &HA , &H11 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H79 Data &H0 , &H0 , &H11 , &H11 , &H11 , &H1E , &H10 , &H11 Data &HE , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H7A Data &H0 , &H0 , &H0 , &H1F , &H8 , &H4 , &H2 , &H1F Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H7B Data &H0 , &H18 , &H4 , &H4 , &H2 , &H4 , &H4 , &H18 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H7C Data &H0 , &H4 , &H4 , &H4 , &H0 , &H4 , &H4 , &H4 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H7D Data &H0 , &H3 , &H4 , &H4 , &H8 , &H4 , &H4 , &H3 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H7E Data &H0 , &H0 , &H2 , &H15 , &H8 , &H0 , &H0 , &H0 Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' char code &H7F Data &H0 , &H3F , &H3F , &H3F , &H3F , &H3F , &H3F , &H3F Data &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 , &H0 ' End of char. ROM table