And you do use compiler version jal 2.4m (compiled Dec 26 2009), right?

2010/2/22 Joep Suijs <[email protected]>:
> Hi Richard,
>
> What does work and what does not? Can you supply me with the full
> source code of both?
>
> Joep
>
> 2010/2/22  <[email protected]>:
>> Revision: 1698
>> Author: [email protected]
>> Date: Mon Feb 22 13:08:58 2010
>> Log: Nice small graphic display unfortunately I don’t get it work with
>> print.jal some how the pseudo var does not work, it needs the real
>> procedure.
>>
>> Joep do you have any idea why it does not work with print jal and if a
>> create the same type of procedure in the library of nokia3310 it works?
>>
>>
>> Greetz
>>
>> Richard
>>
>> http://code.google.com/p/jallib/source/detail?r=1698
>>
>> Added:
>>  /trunk/include/external/lcd/lcd_nokia3310.jal
>>
>> =======================================
>> --- /dev/null
>> +++ /trunk/include/external/lcd/lcd_nokia3310.jal       Mon Feb 22 13:08:58
>> 2010
>> @@ -0,0 +1,286 @@
>> +--
>> -----------------------------------------------------------------------------
>> +-- Title: library for GLCD with pcd8544 controller used in Nokia 3310
>> +-- Author: Andre Miller Copyright (c) 2008..2010, all rights reserved.
>> +-- Adapted-by: Richard Zengerink
>> +-- Compiler:  >=2.4n
>> +--
>> +-- This file is part of jallib (http://jallib.googlecode.com)
>> +-- Released under the ZLIB license
>> (http://www.opensource.org/licenses/zlib-license.html)
>> +--
>> +-- Sources: http://www.amontec.com/lcd_nokia_3310.shtml
>> +--
>> +-- Description: library for Nokia 3310 display with pcd8544 controller
>> +--
>> +-- Dependencies: delay.jal
>> +--
>> +--
>> +
>> +
>> +include delay
>> +
>> +
>> +const byte FontLookup[] =
>> +     {
>> +   0x00, 0x00, 0x00, 0x00, 0x00,  -- sp
>> +   0x00, 0x00, 0x2f, 0x00, 0x00,  -- !
>> +   0x00, 0x07, 0x00, 0x07, 0x00,  -- "
>> +   0x14, 0x7f, 0x14, 0x7f, 0x14,  -- #
>> +   0x24, 0x2a, 0x7f, 0x2a, 0x12,  -- $
>> +   0xc4, 0xc8, 0x10, 0x26, 0x46,  -- %
>> +   0x36, 0x49, 0x55, 0x22, 0x50,  -- &
>> +   0x00, 0x05, 0x03, 0x00, 0x00,  -- '
>> +   0x00, 0x1c, 0x22, 0x41, 0x00,  -- (
>> +   0x00, 0x41, 0x22, 0x1c, 0x00,  -- )
>> +   0x14, 0x08, 0x3E, 0x08, 0x14,  -- *
>> +   0x08, 0x08, 0x3E, 0x08, 0x08,  -- +
>> +   0x00, 0x00, 0x50, 0x30, 0x00,  -- ,
>> +   0x10, 0x10, 0x10, 0x10, 0x10,  -- -
>> +   0x00, 0x60, 0x60, 0x00, 0x00,  -- .
>> +   0x20, 0x10, 0x08, 0x04, 0x02,  -- /
>> +   0x3E, 0x51, 0x49, 0x45, 0x3E,  -- 0
>> +   0x00, 0x42, 0x7F, 0x40, 0x00,  -- 1
>> +   0x42, 0x61, 0x51, 0x49, 0x46,  -- 2
>> +   0x21, 0x41, 0x45, 0x4B, 0x31,  -- 3
>> +   0x18, 0x14, 0x12, 0x7F, 0x10,  -- 4
>> +   0x27, 0x45, 0x45, 0x45, 0x39,  -- 5
>> +   0x3C, 0x4A, 0x49, 0x49, 0x30,  -- 6
>> +   0x01, 0x71, 0x09, 0x05, 0x03,  -- 7
>> +   0x36, 0x49, 0x49, 0x49, 0x36,  -- 8
>> +   0x06, 0x49, 0x49, 0x29, 0x1E,  -- 9
>> +   0x00, 0x36, 0x36, 0x00, 0x00,  -- :
>> +   0x00, 0x56, 0x36, 0x00, 0x00,  -- ;
>> +   0x08, 0x14, 0x22, 0x41, 0x00,  -- <
>> +   0x14, 0x14, 0x14, 0x14, 0x14,  -- =
>> +   0x00, 0x41, 0x22, 0x14, 0x08,  -- >
>> +   0x02, 0x01, 0x51, 0x09, 0x06,  -- ?
>> +   0x32, 0x49, 0x59, 0x51, 0x3E,  -- @
>> +   0x7E, 0x11, 0x11, 0x11, 0x7E,  -- A
>> +   0x7F, 0x49, 0x49, 0x49, 0x36,  -- B
>> +   0x3E, 0x41, 0x41, 0x41, 0x22,  -- C
>> +   0x7F, 0x41, 0x41, 0x22, 0x1C,  -- D
>> +   0x7F, 0x49, 0x49, 0x49, 0x41,  -- E
>> +   0x7F, 0x09, 0x09, 0x09, 0x01,  -- F
>> +   0x3E, 0x41, 0x49, 0x49, 0x7A,  -- G
>> +   0x7F, 0x08, 0x08, 0x08, 0x7F,  -- H
>> +   0x00, 0x41, 0x7F, 0x41, 0x00,  -- I
>> +   0x20, 0x40, 0x41, 0x3F, 0x01,  -- J
>> +   0x7F, 0x08, 0x14, 0x22, 0x41,  -- K
>> +   0x7F, 0x40, 0x40, 0x40, 0x40,  -- L
>> +   0x7F, 0x02, 0x0C, 0x02, 0x7F,  -- M
>> +   0x7F, 0x04, 0x08, 0x10, 0x7F,  -- N
>> +   0x3E, 0x41, 0x41, 0x41, 0x3E,  -- O
>> +   0x7F, 0x09, 0x09, 0x09, 0x06,  -- P
>> +   0x3E, 0x41, 0x51, 0x21, 0x5E,  -- Q
>> +   0x7F, 0x09, 0x19, 0x29, 0x46,  -- R
>> +   0x46, 0x49, 0x49, 0x49, 0x31,  -- S
>> +   0x01, 0x01, 0x7F, 0x01, 0x01,  -- T
>> +   0x3F, 0x40, 0x40, 0x40, 0x3F,  -- U
>> +   0x1F, 0x20, 0x40, 0x20, 0x1F,  -- V
>> +   0x3F, 0x40, 0x38, 0x40, 0x3F,  -- W
>> +   0x63, 0x14, 0x08, 0x14, 0x63,  -- X
>> +   0x07, 0x08, 0x70, 0x08, 0x07,  -- Y
>> +   0x61, 0x51, 0x49, 0x45, 0x43,  -- Z
>> +   0x00, 0x7F, 0x41, 0x41, 0x00,  -- [
>> +   0x55, 0x2A, 0x55, 0x2A, 0x55,  -- 55
>> +   0x00, 0x41, 0x41, 0x7F, 0x00,  -- ]
>> +   0x04, 0x02, 0x01, 0x02, 0x04,  -- ^
>> +   0x40, 0x40, 0x40, 0x40, 0x40,  -- _
>> +   0x00, 0x01, 0x02, 0x04, 0x00,  -- '
>> +   0x20, 0x54, 0x54, 0x54, 0x78,  -- a
>> +   0x7F, 0x48, 0x44, 0x44, 0x38,  -- b
>> +   0x38, 0x44, 0x44, 0x44, 0x20,  -- c
>> +   0x38, 0x44, 0x44, 0x48, 0x7F,  -- d
>> +   0x38, 0x54, 0x54, 0x54, 0x18,  -- e
>> +   0x08, 0x7E, 0x09, 0x01, 0x02,  -- f
>> +   0x0C, 0x52, 0x52, 0x52, 0x3E,  -- g
>> +   0x7F, 0x08, 0x04, 0x04, 0x78,  -- h
>> +   0x00, 0x44, 0x7D, 0x40, 0x00,  -- i
>> +   0x20, 0x40, 0x44, 0x3D, 0x00,  -- j
>> +   0x7F, 0x10, 0x28, 0x44, 0x00,  -- k
>> +   0x00, 0x41, 0x7F, 0x40, 0x00,  -- l
>> +   0x7C, 0x04, 0x18, 0x04, 0x78,  -- m
>> +   0x7C, 0x08, 0x04, 0x04, 0x78,  -- n
>> +   0x38, 0x44, 0x44, 0x44, 0x38,  -- o
>> +   0x7C, 0x14, 0x14, 0x14, 0x08,  -- p
>> +   0x08, 0x14, 0x14, 0x18, 0x7C,  -- q
>> +   0x7C, 0x08, 0x04, 0x04, 0x08,  -- r
>> +   0x48, 0x54, 0x54, 0x54, 0x20,  -- s
>> +   0x04, 0x3F, 0x44, 0x40, 0x20,  -- t
>> +   0x3C, 0x40, 0x40, 0x20, 0x7C,  -- u
>> +   0x1C, 0x20, 0x40, 0x20, 0x1C,  -- v
>> +   0x3C, 0x40, 0x30, 0x40, 0x3C,  -- w
>> +   0x44, 0x28, 0x10, 0x28, 0x44,  -- x
>> +   0x0C, 0x50, 0x50, 0x50, 0x3C,  -- y
>> +   0x44, 0x64, 0x54, 0x4C, 0x44   -- z
>> +   }
>> +
>> +
>> +
>> +procedure _lcd_write (byte in value) is
>> +-- Clock in 8 bits of data
>> +  for 8 loop
>> +     nok_sclk = low
>> +     if ( (value & 0x80) == 0 )then
>> +        nok_sda = low
>> +     else
>> +        nok_sda = high
>> +     end if
>> +     nok_sclk = high
>> +     value = value << 1
>> +     delay_1us            -- max dataspeed is 4Mhz so delay for safety
>> +  end loop
>> +end procedure
>> +
>> +
>> +-- Write a data byte to the LCD
>> +procedure _lcd_write_data (byte in value) is
>> +   nok_dc = high     -- d/c line high for data
>> +   _lcd_write (value)
>> +end procedure
>> +
>> +
>> +
>> +-- Write a command byte to the LCD
>> +procedure _lcd_write_command (byte in value) is
>> +   nok_dc = low     -- d/c line low for command
>> +   _lcd_write (value)
>> +   nok_dc = high   -- set d/c to data
>> +end procedure
>> +
>> +
>> +
>> +
>> +-- Set the current position for data (x = 0->83, y = 0->5)
>> +procedure lcd_gotoxy (byte in xnokia, byte in ynokia) is
>> +   _lcd_write_command ( 0x40 | ( ynokia & 0x07 ))
>> +   _lcd_write_command ( 0x80 | ( xnokia & 0x7f ))
>> +end procedure
>> +
>> +
>> +
>> +
>> +--Clear the LCD data memory
>> +procedure lcd_clear_screen() is
>> +   nok_sda = low ;; Data bit is low
>> +   nok_dc = high ;; Data mode
>> +   nok_cs = low
>> +   for 6 loop  -- 6 rows
>> +      for 84 loop  -- 84 columns or 'pages'
>> +         for 8 loop --Clock for the 8 bits of the 'page'
>> +            nok_sclk = low
>> +            nok_sclk = high
>> +         end loop
>> +      end loop
>> +   end loop
>> +end procedure
>> +
>> +-- Send LCD Initialization
>> +procedure lcd_Init() is
>> +-- Set initial status of LCD pins
>> +   nok_sclk = low
>> +   nok_sda = low
>> +   nok_dc = low
>> +   nok_cs = low
>> +   nok_res = low
>> +-- Toggle LCD Reset
>> +   delay_1ms (10)
>> +   nok_res = low
>> +   delay_1ms (250)
>> +   nok_res = high
>> +-- nok_cs = high
>> +   _lcd_write_command (0x21) -- Extended commands
>> +   _lcd_write_command (0xc5) -- LCD Vop
>> +   _lcd_write_command (0x06) -- Temp coef
>> +   _lcd_write_command (0x13) -- LCD Bias 1:48
>> +   _lcd_write_command (0x20) -- Standard commands
>> +   _lcd_write_command (0x0c) -- Normal Mode
>> +-- Clear and position at top of LCD
>> +   lcd_clear_screen()
>> +   lcd_gotoxy (0,0);
>> +end procedure
>> +
>> +
>> +
>> +-- Writes a character to the display
>> +procedure print_char_5x7 (byte in letter) is
>> +   var word index = 0
>> +   var byte offset
>> +   var byte x
>> +
>> +   offset = letter - 32 ;; Fix for ascii value
>> +
>> +   for offset loop
>> +      index = index + 5
>> +   end loop
>> +
>> +   for 5 loop
>> +      x = FontLookup[index]
>> +      _lcd_write_data (x)
>> +      index = index + 1
>> +   end loop
>> +
>> +  _lcd_write_data (0) ; Add blank space between characters
>> +end procedure
>> +
>> +
>> +
>> +
>> +-- Writes an inverted character to the display
>> +procedure print_char_5x7_i (byte in letter) is
>> +   var word index = 0
>> +   var byte offset
>> +   var byte x
>> +
>> +   offset = letter - 32 ;; Fix for ascii value
>> +
>> +   for offset loop
>> +      index = index + 5
>> +   end loop
>> +
>> +   for 5 loop
>> +      x = FontLookup[index]
>> +      x = x ^ 0xFF
>> +      _lcd_write_data (x)
>> +      index = index + 1
>> +   end loop
>> +
>> +   _lcd_write_data (0xFF) ; Add blank space between characters
>> +end procedure
>> +
>> +
>> +-- print string to lcd
>> +-- same idea as print_string in print.jal library only this one works
>> +-- and with print.jal unfortunately not
>> +
>> +procedure char_string_to_nokia( byte in str[]) is
>> +   var word len = count(str)
>> +   var byte i
>> +
>> +   for len using i loop
>> +      print_char_5x7 (str[i])
>> +   end loop
>> +
>> +end procedure
>> +
>> +-- prints any bitmap graphics (for instance created with fastLCD
>> +-- http://www.amontec.com/lcd_nokia_3310.shtml) to lcd
>> +-- just create: const byte graphic[] = { graphic max 504 bytes} and call
>> +-- graphic_to_nokia( graphic)
>> +
>> +procedure graphic_to_nokia( byte in graph[]) is
>> +   var word len = count(graph)
>> +   var word i
>> +
>> +   for len using i loop
>> +      _lcd_write_data(graph[i])
>> +   end loop
>> +
>> +end procedure
>> +
>> +--
>> ----------------------------------------------------------------------------
>> +-- lcd'put - write one char to screen (pseudo var, enables streams)
>> +--
>> ----------------------------------------------------------------------------
>> +procedure lcd'put(byte in data) is
>> +;   pragma inline -- disabled due to complier bug with inline +
>> pseudovar/arrays.
>> +   _lcd_write_data(data)
>> +end procedure
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "jallib" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/jallib?hl=en.
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jallib?hl=en.

Reply via email to