Explanation:
This demonstration code shows the set of commands supported by GCBASIC.
Demonstration program:
;Chip Settings
#chip 16F877a,16
#include <glcd.h>
'Setup the GLCD
#Define glcd_rw PORTD.3 'RW pin on LCD
#Define glcd_reset PORTD.4 'Reset pin on LCD
#Define glcd_cs1 PORTD.1 'CS1, CS2 can be reversed
#Define glcd_cs2 PORTD.2 'CS1, CS2 can be reversed
#Define glcd_rs PORTD.5 'D/I pin on LCD
#Define glcd_enable PORTD.4 'E pin on LCD
#Define glcd_db0 PORTB.0 'D0
#Define glcd_db1 PORTB.1 'D1
#Define glcd_db2 PORTB.2 'D2
#Define glcd_db3 PORTB.3 'D3
#Define glcd_db4 PORTB.4 'D4
#Define glcd_db5 PORTB.5 'D5
#Define glcd_db6 PORTB.6 'D6
#Define glcd_db7 PORTB.7 'D7 on LCD
'Specify the type of GLCD
#define GLCD_TYPE GLCD_TYPE_KS0108
#define GLCD_WIDTH 128
#define GLCD_HEIGHT 64
#define GLCD_PROTECTOVERRUN
wait 1 s
GLCDCLS
GLCDPrint 0, 1, "GCBASIC " ' <<< printing text at a pixel location on the GLCD
wait 1 s
GLCDCLS
rrun = 0
dim msg1 as string * 16
do forever
GLCDCLS
Box 18,30,28,40
Line 0,0,127,63
Line 0,63,127,0
wait 1 s
FilledBox 18,30,28,40
wait 1 s
GLCDCLS
GLCDDrawString 30,0,"ChipMhz@"
GLCDDrawString 78,0, str(ChipMhz)
Circle(10,10,10,1) 'upper left
Circle(117,10,10,1) 'upper right
Circle(63,31,10,1) 'center
Circle(63,31,20,1) 'center
Circle(10,53,10,1) 'lower left
Circle(117,53,10,1) 'lower right
wait 1 s
GLCDDrawString 30,0,"ChipMhz@"
GLCDDrawString 78,0, str(ChipMhz)
FilledCircle(10,10,10,1) 'upper left
FilledCircle(117,10,10,1) 'upper right
FilledCircle(63,31,10,1) 'center
FilledCircle(63,31,20,1) 'center
FilledCircle(10,53,10,1) 'lower left
FilledCircle(117,53,10,1) 'lower right
wait 1 s
GLCDCLS
GLCDDrawString 30,0,"ChipMhz@"
GLCDDrawString 78,0, str(ChipMhz)
Circle(10,0,10,1) 'upper left
Circle(117,0,10,1) 'upper right
Circle(63,31,10,1) 'center
Circle(63,31,20,1) 'center
Circle(10,63,10,1) 'lower left
Circle(117,63,10,1) 'lower right
wait 1 s
GLCDCLS
GLCDDrawString 0,10,"Hello" 'Print Hello
wait 1 s
GLCDDrawString 0,10, "ASCII #:" 'Print ASCII #:
Box 18,30,28,40 'Draw Box Around ASCII Character
for char = 0x30 to 0x39 'Print 0 through 9
GLCDDrawString 16, 20 , Str(char)+" "
GLCDdrawCHAR 20, 30, char
wait 250 ms
next
line 0,50,127,50 'Draw Line using line command
for xvar = 0 to 80 'Draw line using Pset command
pset xvar,63,on
next
FilledBox 18,30,28,40 'Draw Box Around ASCII Character '
wait 1 s
GLCDCLS
GLCDDrawString 0,10,"End "
wait 1 s
GLCDCLS
workingGLCDDrawChar:
dim gtext as string
gtext = "KS0108"
for xchar = 1 to gtext(0) 'Print 0 through 9
xxpos = (1+(xchar*6)-6)
GLCDDrawChar xxpos , 0 , gtext(xchar)
next
GLCDDrawString 1, 9, "GCBASIC @2021"
GLCDDrawString 1, 18,"GLCD 128*64"
GLCDDrawString 1, 27,"Using GLCD.H from GCB"
GLCDDrawString 1, 37,"Using GLCD.H GCB@2021"
GLCDDrawString 1, 45,"GLCDDrawChar method"
GLCDDrawString 1, 54,"Test Routines"
wait 1 s
GLCDCLS
msg1 = "Run = " +str(rrun)
rrun++
GLCDPrint 0, 3, msg1
wait 1 s
GLCDCLS
loopKey line: GLCDPrint 0, 1, "GCBASIC " — prints the string at pixel position (0, 1) on the GLCD, the first of many drawing commands this demonstration cycles through
(Box, Line, Circle, FilledCircle, GLCDDrawString, GLCDDrawChar, Pset) to showcase the library’s capabilities.
See Also:

