fl hex { PropForth4.5/4.6 30/07/2011 16:26:47 BigFont } wvariable big_font \ ! " # $ % & ' ( ) * + , - . / 20 c, ff c, 20 c, 20 c, 02 c, 20 c, 03 c, 03 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 02 c, 04 c, 20 c, 20 c, 20 c, 20 c, 02 c, 01 c, 20 c, 01 c, 02 c, 20 c, 20 c, 01 c, 02 c, 20 c, 02 c, 01 c, 05 c, ff c, 05 c, 05 c, ff c, 05 c, 20 c, 03 c, 20 c, 01 c, ff c, 01 c, 20 c, 20 c, 20 c, 02 c, 04 c, 20 c, 20 c, 20 c, 20 c, 01 c, 01 c, 01 c, 20 c, 20 c, 20 c, 03 c, 20 c, 20 c, 20 c, 20 c, 03 c, 03 c, 01 c, 20 c, \ 0 - 9 02 c, 05 c, 03 c, ff c, 02 c, 04 c, 02 c, 03 c, 20 c, 20 c, ff c, 20 c, 05 c, 05 c, 03 c, ff c, 00 c, 00 c, 05 c, 05 c, 03 c, 00 c, 00 c, ff c, 03 c, 20 c, 03 c, 01 c, 01 c, ff c, 03 c, 05 c, 05 c, 00 c, 00 c, ff c, 03 c, 05 c, 05 c, ff c, 00 c, ff c, 05 c, 05 c, 03 c, 20 c, 20 c, ff c, 03 c, 05 c, 03 c, ff c, 00 c, ff c, 03 c, 05 c, 03 c, 00 c, 00 c, ff c, \ : ; < = > ? @ 20 c, 05 c, 20 c, 20 c, 05 c, 20 c, 20 c, 05 c, 20 c, 02 c, 05 c, 20 c, 20 c, 02 c, 05 c, 01 c, 05 c, 02 c, 05 c, 05 c, 05 c, 02 c, 02 c, 02 c, 05 c, 02 c, 20 c, 02 c, 05 c, 01 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, 20 c, \ A - Z 03 c, 05 c, 03 c, ff c, 01 c, ff c, 03 c, 05 c, 03 c, ff c, 00 c, 03 c, 03 c, 05 c, 05 c, ff c, 02 c, 02 c, 03 c, 05 c, 02 c, ff c, 02 c, 04 c, 03 c, 05 c, 05 c, ff c, 00 c, 00 c, 03 c, 05 c, 05 c, ff c, 01 c, 01 c, 03 c, 05 c, 05 c, ff c, 02 c, ff c, 03 c, 20 c, 03 c, ff c, 01 c, ff c, 05 c, 03 c, 05 c, 02 c, ff c, 02 c, 05 c, 05 c, 03 c, 03 c, 02 c, ff c, 03 c, 20 c, 03 c, ff c, 01 c, 03 c, 03 c, 20 c, 20 c, ff c, 02 c, 02 c, 03 c, 02 c, 03 c, ff c, 01 c, ff c, 03 c, 05 c, 03 c, ff c, 20 c, ff c, 03 c, 05 c, 03 c, ff c, 02 c, ff c, 03 c, 05 c, 03 c, ff c, 01 c, 01 c, 03 c, 05 c, 03 c, 01 c, 01 c, ff c, 03 c, 05 c, 03 c, ff c, 01 c, 03 c, 03 c, 05 c, 05 c, 00 c, 00 c, ff c, 05 c, 03 c, 05 c, 20 c, ff c, 20 c, 03 c, 20 c, 03 c, ff c, 02 c, ff c, 03 c, 20 c, 03 c, 04 c, 02 c, 04 c, 03 c, 20 c, 03 c, ff c, 04 c, ff c, 03 c, 20 c, 03 c, 03 c, 01 c, 03 c, 03 c, 20 c, 03 c, 01 c, ff c, 01 c, 05 c, 05 c, 03 c, 03 c, 00 c, 02 c, \ [ \ ] ^ _ ` ff c, 01 c, 20 c, ff c, 02 c, 20 c, 03 c, 20 c, 20 c, 20 c, 01 c, 03 c, 20 c, 01 c, ff c, 20 c, 02 c, ff c, 20 c, 02 c, 20 c, 01 c, 20 c, 01 c, 20 c, 20 c, 20 c, 02 c, 02 c, 02 c \ ascii code 0x5f 20 c, 01 c, 05 c, 20 c, 20 c, 20 c \ a - z 05 c, 05 c, 03 c, 06 c, 00 c, ff c, 03 c, 02 c, 20 c, ff c, 02 c, 04 c, 02 c, 05 c, 05 c, 04 c, 02 c, 02 c, 20 c, 02 c, 03 c, 04 c, 02 c, ff c, 02 c, 05 c, 02 c, 04 c, 01 c, 01 c, 20 c, 02 c, 05 c, 01 c, ff c, 01 c, 02 c, 05 c, 02 c, 02 c, 00 c, 04 c, 03 c, 02 c, 20 c, ff c, 20 c, ff c, 20 c, 05 c, 20 c, 20 c, ff c, 20 c, 20 c, 20 c, 05 c, 03 c, 02 c, 04 c, 03 c, 20 c, 02 c, ff c, 04 c, 02 c, 03 c, 20 c, 20 c, 04 c, 02 c, 02 c, 03 c, 03 c, 02 c, ff c, 01 c, ff c, 03 c, 05 c, 02 c, ff c, 20 c, ff c, 02 c, 05 c, 02 c, 04 c, 02 c, 04 c, 03 c, 05 c, 02 c, ff c, 01 c, 20 c, 02 c, 05 c, 03 c, 20 c, 01 c, ff c, 02 c, 05 c, 05 c, ff c, 20 c, 20 c, 02 c, 05 c, 05 c, 02 c, 00 c, 05 c, 02 c, 03 c, 02 c, 20 c, 04 c, 02 c, 03 c, 20 c, 03 c, 04 c, 02 c, ff c, 03 c, 20 c, 03 c, 04 c, 02 c, 04 c, 03 c, 20 c, 03 c, 04 c, ff c, ff c, 03 c, 20 c, 03 c, 03 c, 01 c, 03 c, 03 c, 20 c, 03 c, 02 c, 00 c, 04 c, 05 c, 05 c, 03 c, 03 c, 00 c, 02 c, wvariable char_segment 1f c, 1f c, 1f c, 00 c, 00 c, 1f c, 1f c, 1f c, 1f c, 1f c, 1f c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 1f c, 1f c, 1f c, 00 c, 00 c, 00 c, 1f c, 1f c, 1f c, 1f c, 1f c, 1f c, 1f c, 1f c, 1f c, 1f c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 1f c, 1f c, 00 c, 00 c, 00 c, wvariable bigfont_x \ position for bigfont's x wvariable bigfont_y \ position for bigfont's y 1 bigfont_x W! 1 bigfont_y W! wvariable bf_line \ line for BigFont wvariable bf_char \ ccharacter for BigFont \ ( -- ) set character from 0x0 to 0x05 : set_char_segment char_segment 2+ 40 6 0 do 8 0 do dup lcd_com \ command for character to CG-RAM 1+ swap C@++ lcd_char \ write data swap loop loop 2drop ; \ ( c -- ) display big_font c:character code : set_big_font 21 - 6 u* big_font 2+ + \ get big_font's address 2 0 do 3 0 do C@++ dup . lcd_char loop \ print 1-line for bigfont bigfont_x W@ 1- 2 lshift 1+ \ next x lcd_pos bigfont_y W@ 1- 1 lshift 2+ \ next y lcd-pos lcd_pos loop cr drop ; \ ( x y -- ) convert position for BogFont to lcd_pos : bf_pos dup bigfont_y W! 1- 1 lshift 1+ swap dup bigfont_x W! 1- 2 lshift 1+ swap lcd_pos ; : demo lcd_init 10 4 lcd_setup \ 16characters 4line \ Defsult setting is 16Charcters & 2Lines line W@ 1 rshift bf_line W! char W@ 2 rshift bf_char W! set_char_segment lcd_clear 21 10 0 do bf_line W@ 0 do bf_char W@ 0 do i 1+ j 1+ bf_pos dup dup . ." : " set_big_font 1+ 200 delms loop loop loop line W@ 1 rshift bf_line W! char W@ 2 rshift bf_char W! 1 bigfont_x W! 1 bigfont_y W! 30 set_big_font ; decimal