fl { PropForth3.4 LCD:YHY024006A[controler:ILI9325] } wvariable font 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, \ (space) 30 c, 78 c, 78 c, 30 c, 30 c, 00 c, 30 c, 00 c, 6C c, 6C c, 28 c, 00 c, 00 c, 00 c, 00 c, 00 c, 6C c, 6C c, FE c, 6C c, FE c, 6C c, 6C c, 00 c, 18 c, 7E c, C0 c, 7C c, 06 c, FC c, 18 c, 00 c, 00 c, C6 c, CC c, 18 c, 30 c, 66 c, C6 c, 00 c, 38 c, 6C c, 38 c, 76 c, DC c, CC c, 76 c, 00 c, 30 c, 30 c, 60 c, 00 c, 00 c, 00 c, 00 c, 00 c, 18 c, 30 c, 60 c, 60 c, 60 c, 30 c, 18 c, 00 c, 60 c, 30 c, 18 c, 18 c, 18 c, 30 c, 60 c, 00 c, 00 c, 66 c, 3C c, FF c, 3C c, 66 c, 00 c, 00 c, 00 c, 30 c, 30 c, FC c, 30 c, 30 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 30 c, 30 c, 60 c, 00 c, 00 c, 00 c, FC c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 30 c, 30 c, 00 c, 06 c, 0C c, 18 c, 30 c, 60 c, C0 c, 80 c, 00 c, 7C c, C6 c, C6 c, D6 c, C6 c, C6 c, 7C c, 00 c, \ 0 30 c, 70 c, 30 c, 30 c, 30 c, 30 c, FC c, 00 c, 78 c, CC c, 0C c, 38 c, 60 c, CC c, FC c, 00 c, 78 c, CC c, 0C c, 38 c, 0C c, CC c, 78 c, 00 c, 1C c, 3C c, 6C c, CC c, FE c, 0C c, 1E c, 00 c, FC c, C0 c, F8 c, 0C c, 0C c, CC c, 78 c, 00 c, 38 c, 60 c, C0 c, F8 c, CC c, CC c, 78 c, 00 c, FC c, CC c, 0C c, 18 c, 30 c, 30 c, 30 c, 00 c, 78 c, CC c, CC c, 78 c, CC c, CC c, 78 c, 00 c, 78 c, CC c, CC c, 7C c, 0C c, 18 c, 70 c, 00 c, 00 c, 30 c, 30 c, 00 c, 00 c, 30 c, 30 c, 00 c, 00 c, 30 c, 30 c, 00 c, 00 c, 30 c, 30 c, 60 c, 18 c, 30 c, 60 c, C0 c, 60 c, 30 c, 18 c, 00 c, 00 c, 00 c, FC c, 00 c, 00 c, FC c, 00 c, 00 c, 60 c, 30 c, 18 c, 0C c, 18 c, 30 c, 60 c, 00 c, 78 c, CC c, 0C c, 18 c, 30 c, 00 c, 30 c, 00 c, 30 c, 78 c, CC c, CC c, FC c, CC c, CC c, 00 c, \ A FC c, 66 c, 66 c, 7C c, 66 c, 66 c, FC c, 00 c, 3C c, 66 c, C0 c, C0 c, C0 c, 66 c, 3C c, 00 c, F8 c, 6C c, 66 c, 66 c, 66 c, 6C c, F8 c, 00 c, FE c, 62 c, 68 c, 78 c, 68 c, 62 c, FE c, 00 c, FE c, 62 c, 68 c, 78 c, 68 c, 60 c, F0 c, 00 c, 3C c, 66 c, C0 c, C0 c, CE c, 66 c, 3E c, 00 c, CC c, CC c, CC c, FC c, CC c, CC c, CC c, 00 c, 78 c, 30 c, 30 c, 30 c, 30 c, 30 c, 78 c, 00 c, 1E c, 0C c, 0C c, 0C c, CC c, CC c, 78 c, 00 c, E6 c, 66 c, 6C c, 78 c, 6C c, 66 c, E6 c, 00 c, F0 c, 60 c, 60 c, 60 c, 62 c, 66 c, FE c, 00 c, C6 c, EE c, FE c, FE c, D6 c, C6 c, C6 c, 00 c, C6 c, E6 c, F6 c, DE c, CE c, C6 c, C6 c, 00 c, 38 c, 6C c, C6 c, C6 c, C6 c, 6C c, 38 c, 00 c, FC c, 66 c, 66 c, 7C c, 60 c, 60 c, F0 c, 00 c, \ P 78 c, CC c, CC c, CC c, DC c, 78 c, 1C c, 00 c, FC c, 66 c, 66 c, 7C c, 6C c, 66 c, E6 c, 00 c, 78 c, CC c, C0 c, 78 c, 0C c, CC c, 78 c, 00 c, FC c, B4 c, 30 c, 30 c, 30 c, 30 c, 78 c, 00 c, CC c, CC c, CC c, CC c, CC c, CC c, FC c, 00 c, CC c, CC c, CC c, CC c, CC c, 78 c, 30 c, 00 c, C6 c, C6 c, C6 c, D6 c, FE c, EE c, C6 c, 00 c, C6 c, 6C c, 38 c, 38 c, 6C c, C6 c, C6 c, 00 c, CC c, CC c, CC c, 78 c, 30 c, 30 c, 78 c, 00 c, FE c, C6 c, 8C c, 18 c, 32 c, 66 c, FE c, 00 c, 78 c, 60 c, 60 c, 60 c, 60 c, 60 c, 78 c, 00 c, C0 c, 60 c, 30 c, 18 c, 0C c, 06 c, 02 c, 00 c, 78 c, 18 c, 18 c, 18 c, 18 c, 18 c, 78 c, 00 c, 10 c, 38 c, 6C c, C6 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, FF c, 30 c, 18 c, 0C c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, 78 c, 0C c, 7C c, CC c, 76 c, 00 c, \ a E0 c, 60 c, 60 c, 7C c, 66 c, 66 c, DC c, 00 c, 00 c, 00 c, 78 c, CC c, C0 c, CC c, 78 c, 00 c, 1C c, 0C c, 0C c, 7C c, CC c, CC c, 76 c, 00 c, 00 c, 00 c, 78 c, CC c, FC c, C0 c, 78 c, 00 c, 38 c, 6C c, 60 c, F0 c, 60 c, 60 c, F0 c, 00 c, 00 c, 00 c, 76 c, CC c, CC c, 7C c, 0C c, F8 c, E0 c, 60 c, 6C c, 76 c, 66 c, 66 c, E6 c, 00 c, 30 c, 00 c, 70 c, 30 c, 30 c, 30 c, 78 c, 00 c, 0C c, 00 c, 0C c, 0C c, 0C c, CC c, CC c, 78 c, E0 c, 60 c, 66 c, 6C c, 78 c, 6C c, E6 c, 00 c, 70 c, 30 c, 30 c, 30 c, 30 c, 30 c, 78 c, 00 c, 00 c, 00 c, CC c, FE c, D6 c, D6 c, C6 c, 00 c, 00 c, 00 c, F8 c, CC c, CC c, CC c, CC c, 00 c, 00 c, 00 c, 78 c, CC c, CC c, CC c, 78 c, 00 c, 00 c, 00 c, DC c, 66 c, 66 c, 7C c, 60 c, F0 c, 00 c, 00 c, 76 c, CC c, CC c, 7C c, 0C c, 1E c, 00 c, 00 c, DC c, 76 c, 66 c, 60 c, F0 c, 00 c, 00 c, 00 c, 7C c, C0 c, 78 c, 0C c, F8 c, 00 c, 10 c, 30 c, 7C c, 30 c, 30 c, 34 c, 18 c, 00 c, 00 c, 00 c, CC c, CC c, CC c, CC c, 76 c, 00 c, 00 c, 00 c, CC c, CC c, CC c, 78 c, 30 c, 00 c, 00 c, 00 c, C6 c, D6 c, D6 c, FE c, 6C c, 00 c, 00 c, 00 c, C6 c, 6C c, 38 c, 6C c, C6 c, 00 c, 00 c, 00 c, CC c, CC c, CC c, 7C c, 0C c, F8 c, 00 c, 00 c, FC c, 98 c, 30 c, 64 c, FC c, 00 c, 1C c, 30 c, 30 c, E0 c, 30 c, 30 c, 1C c, 00 c, 30 c, 30 c, 30 c, 30 c, 30 c, 30 c, 30 c, 00 c, E0 c, 30 c, 30 c, 1C c, 30 c, 30 c, E0 c, 00 c, 76 c, DC c, 00 c, 00 c, 00 c, 00 c, 00 c, 00 c, FF c, FF c, FF c, FF c, FF c, FF c, FF c, FF c, \ Block 10 wconstant _cs \ P16 11 wconstant _rs \ P17 12 wconstant _wr \ P18 13 wconstant _rd \ P19 14 wconstant _reset \ P20 1 _cs lshift constant _csm 1 _rs lshift constant _rsm 1 _wr lshift constant _wrm 1 _rd lshift constant _rdm 1 _reset lshift constant _resetm : _cs_l _csm _maskoutlo ; : _cs_h _csm _maskouthi ; : _rs_l _rsm _maskoutlo ; : _rs_h _rsm _maskouthi ; : _wr_l _wrm _maskoutlo ; : _wr_h _wrm _maskouthi ; : _rd_l _rdm _maskoutlo ; : _rd_h _rdm _maskouthi ; : _reset_l _resetm _maskoutlo ; : _reset_h _resetm _maskouthi ; : lcd_out _cs_l _rs_l ffff0000 outa COG@ and or outa COG! _wr_l _wr_h _rs_h \ write register index ffff0000 outa COG@ and or outa COG! _wr_l _wr_h _cs_h \ write register data ; : lcd_out_gram _cs_l _rs_l ffff0000 outa COG@ and or outa COG! _wr_l _wr_h _rs_h \ write register index (write) ffff0000 outa COG@ and or outa COG! _wr_l _wr_h \ write 1st data ffff0000 outa COG@ and or outa COG! _wr_l _wr_h _cs_h \ write 2nd data ; : YHY024006A_init 0 15 0 do dup pinout 1+ loop drop \ P0 - P20 output set 14 delms \ wait 20msec _cs_h _rs_h _rd_h _wr_h _reset_h \ cs=rs=wr=rd=reset=H 5 delms \ wait 5msec _reset_l 10 delms _reset_h 14 delms 0 1 lcd_out \ SS and SM 700 2 lcd_out \ 1line inversion \ c020 3 lcd_out \ GRAM eritr derection / set RGB(BGR=0) c038 3 lcd_out 0 4 lcd_out \ resize 207 8 lcd_out \ back porch and front porch 0 9 lcd_out \ 0 a lcd_out 0 c lcd_out 0 d lcd_out 0 f lcd_out 0 10 lcd_out 7 11 lcd_out 0 12 lcd_out 0 13 lcd_out c8 delms 1490 10 lcd_out 227 11 lcd_out 32 delms 1c 12 lcd_out 32 delms a00 13 lcd_out f 29 lcd_out d 2b lcd_out 32 delms 0 20 lcd_out 0 21 lcd_out 0 30 lcd_out 203 31 lcd_out 1 32 lcd_out 205 35 lcd_out 20c 366 lcd_out 07 37 lcd_out 405 38 lcd_out 707 39 lcd_out 502 3c lcd_out 1008 3d lcd_out 0 50 lcd_out ef 51 lcd_out 0 52 lcd_out 13f 53 lcd_out a700 60 lcd_out 1 61 lcd_out 0 6a lcd_out 0 80 lcd_out 0 81 lcd_out 0 82 lcd_out 0 83 lcd_out 0 84 lcd_out 0 85 lcd_out 10 90 lcd_out 600 92 lcd_out 133 7 lcd_out ; : color_data \ B(6bit)G(6bit)R(6bit) --> 2nd data(16bit) 1st data(2bit) swap 6 lshift or over f and c lshift or swap 4 rshift 22 lcd_out_gram ; : demo YHY024006A_init f0 0 do 140 0 do \ 64 delms 0 3f 0 color_data \ botom:B center:G top:R loop loop ; { demo-test display character 8x8-font x from left to right[320pixel] vertical < 41 y from top to bottom[240pixel] horizont < 31 } wvariable char_addr wvariable x \ 0 < x < 40(decial) wvariable y \ 0 < y < 30(decial) wvariable char_end wvariable dot_mask variable tmp_x wvariable tmp_y : Disp_char 8 0 do dup C@ \ dup . 80 dot_mask W! 8 0 do dup dot_mask W@ and 0= if 0 0 0 color_data else 3f 3f 3f color_data then dot_mask dup W@ 1 rshift swap W! loop drop tmp_y W@ 1+ dup tmp_y W! 20 lcd_out tmp_x L@ 8 rshift 21 lcd_out 1+ loop drop ; : x+1 x W@ 1+ x W! ; : y+1 y W@ 1+ y W! ; : clear_x 0 x W! ; { send start-addr(horizon&vertical) of 1-line of 1-charcter(8x8dot) to LED-register It takes 18.1sec to display 40x30_char } : Demo_display demo font 2 + char_addr W! font 2fa + char_end W! 2 0 do 0 dup x W! y W! begin begin x W@ 800 * dup tmp_x L! 8 rshift 21 lcd_out y W@ 8 * dup tmp_y W! 20 lcd_out char_addr W@ dup Disp_char \ display 1-char 8 + dup char_addr W! char_end W@ = if font 2 + char_addr W! then x+1 x W@ 28 = until clear_x y+1 y W@ 1e = until loop ; : Disp_char1 8 0 do dup C@ 80 dot_mask W! 8 0 do dup dot_mask W@ and 0= if 0 0 0 color_data else 3f 3f 3f color_data then dot_mask dup W@ 1 rshift swap W! loop drop 1+ loop drop ; { send area of 1-charcter(8x8dot) and start addr(horizon&vertical) to LED-register It takes 16.6sec to display 40x30_char } \ fl : Demo_display1 demo font 2 + char_addr W! font 2fa + char_end W! \ 2 0 do 0 dup x W! y W! cnt COG@ begin begin x W@ 800 * dup dup tmp_x L! 8 rshift 52 lcd_out 700 + 8 rshift 53 lcd_out y W@ 8 * dup dup tmp_y W! 50 lcd_out 7 + 51 lcd_out tmp_x L@ 8 rshift 21 lcd_out tmp_y W@ 20 lcd_out char_addr W@ dup Disp_char1 \ display 1-char 8 + dup char_addr W! char_end W@ = if font 2 + char_addr W! then x+1 x W@ 28 = until clear_x y+1 y W@ 1e = until cnt COG@ swap - . \ loop ;