'********************************************************************* 
'Sub LCD_Init() 
'********************************************************************* 
' From SED-133x datasheet 


Sub LCD_Init() 
                LCD_RESET = 0 
                Delayms(5) 
                LCD_RESET = 1 
                Delayms(5) 
                 
                Call LCD_CMD(0x40) ' SystemSet 
                Call LCD_Putc(0x30) 
                Call LCD_Putc(0x87) 
                Call LCD_Putc(0x07) 
                Call LCD_Putc(0x27) 
                Call LCD_Putc(0x2F) 
                Call LCD_Putc(0xC7) 
                Call LCD_Putc(0x28) 
                Call LCD_Putc(0x00) 
                                 
                Call LCD_CMD(0x44) ' Scroll 
                Call LCD_Putc(0x00) ' 
                Call LCD_Putc(0x00) ' 
                Call LCD_Putc(0xC7) ' 
                Call LCD_Putc(0x00) ' 
                Call LCD_Putc(0x05) ' 
                Call LCD_Putc(0xC7) ' 
                 
                Call LCD_CMD(0x4C) ' CSR_DIR 


                Call LCD_CMD(0x5A) 'horzscroll 
                Call LCD_Putc(0x00) 
                 
                Call LCD_PutCSR(0x0000) ' CSRH 


                Call LCD_CMD(0x59) ' DISP_CTRL 
                Call LCD_Putc(0x14) 
                 
                Call clearLCD() 


                Call LCD_CMD(0x5B) ' CSR FORM 
                Call LCD_Putc(0x00) 


                Call LCD_CMD(0x4C) ' CSR DIR 


End Sub 


'********************************************************************* 
'* clearLCD() : Clears the LCD display memory * 
'********************************************************************* 
Sub clearLCD() 


Call CLR_TXT() 
Call CLR_GRPH() 


End Sub 
'********************************************************************* 


Sub CLR_TXT() 


Dim i As uInteger 


  Call LCD_CMD(CSRRight) 
  Call LCD_PutCSR(0x0000) 
  Call LCD_CMD(MWRITE) 


  For i=0 To 0x500 
    Call LCD_Putc(0x00) ' write " " To character memory 
  Next i 


End Sub 
'********************************************************************* 


Sub CLR_GRPH() 


Dim i As uInteger 


        Call LCD_PutCSR(0x0500) 
        Call LCD_CMD(MWRITE) 


  For i=0 To 8000 
    Call Str(i,s1) 
    Call Putc(s1) 
    Call LCD_Putc(0x00) ' erase graphics memory 
  Next i 


  return 
  
End Sub 


'********************************************************************* 
' LCD_CMD() : Sends Command To LCD controller 
'********************************************************************* 
Sub LCD_CMD(TMP_DATA As uByte) 


  LCD_A0=1 ' 
  LCD_WR=0 ' 
  LCD_RD=1 ' 
  LCD_DATA=TMP_DATA ' 
  LCD_WR=1 ' 
  LCD_A0=0 ' 


End Sub ' End LCD_CMD 


'********************************************************************* 
'* LCD_Putc() : Sends parameters Or Data To LCD controller * 
'********************************************************************* 
Sub LCD_Putc(TMP_DATA As uInteger) 


  LCD_A0=0 ' 
  LCD_WR=0 ' 
  LCD_RD=1 ' 
  LCD_DATA=TMP_DATA ' 
  LCD_WR=1 ' 
  LCD_A0=1 ' 


End Sub ' End LCD_Putc 


'********************************************************************* 
'* LCD_Getc() : Sends parameters Or Data To LCD controller * 
'********************************************************************* 
Function LCD_Getc(TMP_DATA As uInteger) 


  LCD_A0=0 ' 
  LCD_WR=0 ' 
  LCD_RD=0 ' 
  TMP_DATA=LCD_DATA ' 
  LCD_WR=1 ' 
  LCD_A0=1 ' 


End Function TMP_DATA ' End LCD_Getc 


'******************************************************************************** 
' LCD_puts(s) Write a string to the LCD 
'******************************************************************************** 


Sub LCD_Puts(Str_1 As String) 


  Dim L As uByte 
  Dim i As uByte 


  L=len(Str_1)-1 


  For i = 0 To L ' characters in a string are from 0 to len()-1 
    Call LCD_Putc(str_1(i)) 
  Next i 


End Sub