--
-- file : hd44780m.jal
-- author : Wouter van Ooijen
-- cosmetics : Surducan Vasile
-- date : 17-NOV-1998; MAY 2000
-- purpose : hd44780,KS0066,6426,-LCD drivers;interface common part
-- used by : hd447804, hd447808
-- note : all delay timings may be reduced to 2.5 x
-- for hd44780 driver,
-- Copyright (C) 1998 Wouter van Ooijen
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Library General Public
-- License as published by the Free Software Foundation; either
-- version 2 of the License, or (at your option) any later version.
--
-- This library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Library General Public License for more details.
--
-- You should have received a copy of the GNU Library General Public
-- License along with this library; if not, write to the
-- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA.
--
procedure HD44780_clear is
HD44780_instruction( 0b_0000_1000 ) -- display off
HD44780_instruction( 0b_0000_0001 ) -- clear display
delay_10uS( 200 )
HD44780_instruction( 0b_0000_0010 ) -- cursor home
delay_10uS( 200 )
HD44780_instruction( 0b_0000_0110 ) -- entry, autoincrement, no shift
HD44780_instruction( 0b_0000_1100 ) -- display on, cursor off, blink off
delay_10uS( 200 )
end procedure
procedure cursor_blink ( byte in x ) is
-- x=1 character blink, cursor blink
-- x=2 cursor display
-- x=3 cursor display, character blink
HD44780_instruction( 0b_0000_1100 + x )
end procedure
procedure cursor_on is -- put the cursor after last written value
HD44780_instruction( 0b_0000_1110 )
end procedure
procedure cursor_off is -- switch off the cursor
HD44780_instruction( 0b_0000_1100 )
end procedure
procedure cursor_left is -- move cursor one location to left
HD44780_instruction( 0b_0001_0000 )
end procedure
procedure cursor_right is -- move cursor one location to right
HD44780_instruction( 0b_0001_0100 )
end procedure
procedure shift_left is -- flow the whole display to the left
HD44780_instruction( 0b_0001_1000 )
end procedure
procedure shift_right is -- flow the whole display to the right
HD44780_instruction( 0b_0001_1100 )
end procedure
-- HD44780 driver, 2 lines, 80,C0 begining address
procedure HD44780_line1 is
HD44780_instruction( 0b_1000_0000 )
end procedure
procedure HD44780_position1 ( byte in x ) is
HD44780_instruction( 0b_1000_0000 + x )
end procedure
procedure HD44780_line2 is
HD44780_instruction( 0b_1100_0000 )
end procedure
procedure HD44780_position2 ( byte in x ) is
HD44780_instruction( 0b_1100_0000 + x )
end procedure
-- 6426 driver, 4 lines, 80,A0,C0,E0 begining address
procedure _6426_line1 is
HD44780_instruction( 0b_1000_0000 )
end procedure
procedure _6426_position1 ( byte in x ) is
HD44780_instruction( 0b_1000_0000 + x )
end procedure
procedure _6426_line2 is
HD44780_instruction( 0b_1010_0000 )
end procedure
procedure _6426_position2 ( byte in x ) is
HD44780_instruction( 0b_1010_0000 + x )
end procedure
procedure _6426_line3 is
HD44780_instruction( 0b_1100_0000 )
end procedure
procedure _6426_position3 ( byte in x ) is
HD44780_instruction( 0b_1100_0000 + x )
end procedure
procedure _6426_line4 is
HD44780_instruction( 0b_1110_0000 )
end procedure
procedure _6426_position4 ( byte in x ) is
HD44780_instruction( 0b_1110_0000 + x )
end procedure
procedure HD44780_define(
byte in x,
byte in b0,
byte in b1,
byte in b2,
byte in b3,
byte in b4,
byte in b5,
byte in b6,
byte in b7
) is
HD44780_instruction( 0x40 | ( x << 3 ) )
HD44780_write( b0 )
HD44780_write( b1 )
HD44780_write( b2 )
HD44780_write( b3 )
HD44780_write( b4 )
HD44780_write( b5 )
HD44780_write( b6 )
HD44780_write( b7 )
end procedure
               (
geocities.com/vsurducan/electro)                   (
geocities.com/vsurducan)