Ruth Pavoor / Mbed 2 deprecated project1

Dependencies:   mbed mbed-rtos PinDetect

Committer:
rpavoor3
Date:
Mon Apr 27 23:18:38 2020 +0000
Revision:
0:0ca943ce4014
4180 Your Fitness Buddy

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rpavoor3 0:0ca943ce4014 1 //
rpavoor3 0:0ca943ce4014 2 // uLCD_4DGL is a class to drive 4D Systems TFT touch screens
rpavoor3 0:0ca943ce4014 3 //
rpavoor3 0:0ca943ce4014 4 // Copyright (C) <2010> Stephane ROCHON <stephane.rochon at free.fr>
rpavoor3 0:0ca943ce4014 5 // Modifed for Goldelox processor <2013> Jim Hamblen
rpavoor3 0:0ca943ce4014 6 //
rpavoor3 0:0ca943ce4014 7 // uLCD_4DGL is free software: you can redistribute it and/or modify
rpavoor3 0:0ca943ce4014 8 // it under the terms of the GNU General Public License as published by
rpavoor3 0:0ca943ce4014 9 // the Free Software Foundation, either version 3 of the License, or
rpavoor3 0:0ca943ce4014 10 // (at your option) any later version.
rpavoor3 0:0ca943ce4014 11 //
rpavoor3 0:0ca943ce4014 12 // uLCD_4DGL is distributed in the hope that it will be useful,
rpavoor3 0:0ca943ce4014 13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
rpavoor3 0:0ca943ce4014 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
rpavoor3 0:0ca943ce4014 15 // GNU General Public License for more details.
rpavoor3 0:0ca943ce4014 16 //
rpavoor3 0:0ca943ce4014 17 // You should have received a copy of the GNU General Public License
rpavoor3 0:0ca943ce4014 18 // along with uLCD_4DGL. If not, see <http://www.gnu.org/licenses/>.
rpavoor3 0:0ca943ce4014 19
rpavoor3 0:0ca943ce4014 20 #include "mbed.h"
rpavoor3 0:0ca943ce4014 21 #include "uLCD_4DGL.h"
rpavoor3 0:0ca943ce4014 22
rpavoor3 0:0ca943ce4014 23 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 24 void uLCD_4DGL :: set_font_size(char width, char height) // set font size
rpavoor3 0:0ca943ce4014 25 {
rpavoor3 0:0ca943ce4014 26 if (current_orientation == IS_PORTRAIT) {
rpavoor3 0:0ca943ce4014 27 current_fx = width;
rpavoor3 0:0ca943ce4014 28 current_fy = height;
rpavoor3 0:0ca943ce4014 29 } else {
rpavoor3 0:0ca943ce4014 30 current_fy = height;
rpavoor3 0:0ca943ce4014 31 current_fx = width;
rpavoor3 0:0ca943ce4014 32 }
rpavoor3 0:0ca943ce4014 33 max_col = current_w / (current_fx*current_wf);
rpavoor3 0:0ca943ce4014 34 max_row = current_h / (current_fy*current_hf);
rpavoor3 0:0ca943ce4014 35 }
rpavoor3 0:0ca943ce4014 36
rpavoor3 0:0ca943ce4014 37 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 38 void uLCD_4DGL :: set_font(char mode) // set font - system or SD media
rpavoor3 0:0ca943ce4014 39 {
rpavoor3 0:0ca943ce4014 40 char command[3]= "";
rpavoor3 0:0ca943ce4014 41
rpavoor3 0:0ca943ce4014 42 command[0] = SETFONT;
rpavoor3 0:0ca943ce4014 43 command[1] = 0;
rpavoor3 0:0ca943ce4014 44 command[2] = mode;
rpavoor3 0:0ca943ce4014 45
rpavoor3 0:0ca943ce4014 46 current_font = mode;
rpavoor3 0:0ca943ce4014 47
rpavoor3 0:0ca943ce4014 48 if (current_orientation == IS_PORTRAIT) {
rpavoor3 0:0ca943ce4014 49 current_w = SIZE_X;
rpavoor3 0:0ca943ce4014 50 current_h = SIZE_Y;
rpavoor3 0:0ca943ce4014 51 } else {
rpavoor3 0:0ca943ce4014 52 current_w = SIZE_Y;
rpavoor3 0:0ca943ce4014 53 current_h = SIZE_X;
rpavoor3 0:0ca943ce4014 54 }
rpavoor3 0:0ca943ce4014 55
rpavoor3 0:0ca943ce4014 56 switch (mode) {
rpavoor3 0:0ca943ce4014 57 case FONT_5X7 :
rpavoor3 0:0ca943ce4014 58
rpavoor3 0:0ca943ce4014 59 current_fx = 6;
rpavoor3 0:0ca943ce4014 60 current_fy = 8;
rpavoor3 0:0ca943ce4014 61 break;
rpavoor3 0:0ca943ce4014 62 case FONT_7X8 :
rpavoor3 0:0ca943ce4014 63 current_fx = 7;
rpavoor3 0:0ca943ce4014 64 current_fy = 8;
rpavoor3 0:0ca943ce4014 65 break;
rpavoor3 0:0ca943ce4014 66 case FONT_8X8 :
rpavoor3 0:0ca943ce4014 67 current_fx = 8;
rpavoor3 0:0ca943ce4014 68 current_fy = 8;
rpavoor3 0:0ca943ce4014 69 break;
rpavoor3 0:0ca943ce4014 70 case FONT_8X12 :
rpavoor3 0:0ca943ce4014 71 current_fx = 8;
rpavoor3 0:0ca943ce4014 72 current_fy = 12;
rpavoor3 0:0ca943ce4014 73 break;
rpavoor3 0:0ca943ce4014 74 case FONT_12X16 :
rpavoor3 0:0ca943ce4014 75 current_fx = 12;
rpavoor3 0:0ca943ce4014 76 current_fy = 16;
rpavoor3 0:0ca943ce4014 77 break;
rpavoor3 0:0ca943ce4014 78 default:
rpavoor3 0:0ca943ce4014 79 current_fx = 8;
rpavoor3 0:0ca943ce4014 80 current_fy = 8;
rpavoor3 0:0ca943ce4014 81 }
rpavoor3 0:0ca943ce4014 82
rpavoor3 0:0ca943ce4014 83 max_col = current_w / (current_fx*current_wf);
rpavoor3 0:0ca943ce4014 84 max_row = current_h / (current_fy*current_hf);
rpavoor3 0:0ca943ce4014 85
rpavoor3 0:0ca943ce4014 86 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 87 }
rpavoor3 0:0ca943ce4014 88
rpavoor3 0:0ca943ce4014 89
rpavoor3 0:0ca943ce4014 90
rpavoor3 0:0ca943ce4014 91 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 92 void uLCD_4DGL :: text_mode(char mode) // set text mode
rpavoor3 0:0ca943ce4014 93 {
rpavoor3 0:0ca943ce4014 94 char command[3]= "";
rpavoor3 0:0ca943ce4014 95
rpavoor3 0:0ca943ce4014 96 command[0] = TEXTMODE;
rpavoor3 0:0ca943ce4014 97 command[1] = 0;
rpavoor3 0:0ca943ce4014 98 command[2] = mode;
rpavoor3 0:0ca943ce4014 99
rpavoor3 0:0ca943ce4014 100 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 101 }
rpavoor3 0:0ca943ce4014 102
rpavoor3 0:0ca943ce4014 103 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 104 void uLCD_4DGL :: text_bold(char mode) // set text mode
rpavoor3 0:0ca943ce4014 105 {
rpavoor3 0:0ca943ce4014 106 char command[3]= "";
rpavoor3 0:0ca943ce4014 107
rpavoor3 0:0ca943ce4014 108 command[0] = TEXTBOLD;
rpavoor3 0:0ca943ce4014 109 command[1] = 0;
rpavoor3 0:0ca943ce4014 110 command[2] = mode;
rpavoor3 0:0ca943ce4014 111
rpavoor3 0:0ca943ce4014 112 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 113 }
rpavoor3 0:0ca943ce4014 114
rpavoor3 0:0ca943ce4014 115 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 116 void uLCD_4DGL :: text_italic(char mode) // set text mode
rpavoor3 0:0ca943ce4014 117 {
rpavoor3 0:0ca943ce4014 118 char command[3]= "";
rpavoor3 0:0ca943ce4014 119
rpavoor3 0:0ca943ce4014 120 command[0] = TEXTITALIC;
rpavoor3 0:0ca943ce4014 121 command[1] = 0;
rpavoor3 0:0ca943ce4014 122 command[2] = mode;
rpavoor3 0:0ca943ce4014 123
rpavoor3 0:0ca943ce4014 124 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 125 }
rpavoor3 0:0ca943ce4014 126
rpavoor3 0:0ca943ce4014 127 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 128 void uLCD_4DGL :: text_inverse(char mode) // set text mode
rpavoor3 0:0ca943ce4014 129 {
rpavoor3 0:0ca943ce4014 130 char command[3]= "";
rpavoor3 0:0ca943ce4014 131
rpavoor3 0:0ca943ce4014 132 command[0] = TEXTINVERSE;
rpavoor3 0:0ca943ce4014 133 command[1] = 0;
rpavoor3 0:0ca943ce4014 134 command[2] = mode;
rpavoor3 0:0ca943ce4014 135
rpavoor3 0:0ca943ce4014 136 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 137 }
rpavoor3 0:0ca943ce4014 138
rpavoor3 0:0ca943ce4014 139 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 140 void uLCD_4DGL :: text_underline(char mode) // set text mode
rpavoor3 0:0ca943ce4014 141 {
rpavoor3 0:0ca943ce4014 142 char command[3]= "";
rpavoor3 0:0ca943ce4014 143
rpavoor3 0:0ca943ce4014 144 command[0] = TEXTUNDERLINE;
rpavoor3 0:0ca943ce4014 145 command[1] = 0;
rpavoor3 0:0ca943ce4014 146 command[2] = mode;
rpavoor3 0:0ca943ce4014 147
rpavoor3 0:0ca943ce4014 148 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 149 }
rpavoor3 0:0ca943ce4014 150
rpavoor3 0:0ca943ce4014 151 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 152 void uLCD_4DGL :: text_width(char width) // set text width
rpavoor3 0:0ca943ce4014 153 {
rpavoor3 0:0ca943ce4014 154 char command[3]= "";
rpavoor3 0:0ca943ce4014 155
rpavoor3 0:0ca943ce4014 156 command[0] = TEXTWIDTH;
rpavoor3 0:0ca943ce4014 157 command[1] = 0;
rpavoor3 0:0ca943ce4014 158 command[2] = width;
rpavoor3 0:0ca943ce4014 159 current_wf = width;
rpavoor3 0:0ca943ce4014 160 max_col = current_w / (current_fx*current_wf);
rpavoor3 0:0ca943ce4014 161 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 162 }
rpavoor3 0:0ca943ce4014 163
rpavoor3 0:0ca943ce4014 164 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 165 void uLCD_4DGL :: text_height(char height) // set text height
rpavoor3 0:0ca943ce4014 166 {
rpavoor3 0:0ca943ce4014 167 char command[3]= "";
rpavoor3 0:0ca943ce4014 168
rpavoor3 0:0ca943ce4014 169 command[0] = TEXTHEIGHT;
rpavoor3 0:0ca943ce4014 170 command[1] = 0;
rpavoor3 0:0ca943ce4014 171 command[2] = height;
rpavoor3 0:0ca943ce4014 172 current_hf = height;
rpavoor3 0:0ca943ce4014 173 max_row = current_h / (current_fy*current_hf);
rpavoor3 0:0ca943ce4014 174 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 175 }
rpavoor3 0:0ca943ce4014 176
rpavoor3 0:0ca943ce4014 177
rpavoor3 0:0ca943ce4014 178 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 179 void uLCD_4DGL :: text_char(char c, char col, char row, int color) // draw a text char
rpavoor3 0:0ca943ce4014 180 {
rpavoor3 0:0ca943ce4014 181 char command[6]= "";
rpavoor3 0:0ca943ce4014 182 command[0] = 0xE4; //move cursor
rpavoor3 0:0ca943ce4014 183 command[1] = 0;
rpavoor3 0:0ca943ce4014 184 command[2] = row;
rpavoor3 0:0ca943ce4014 185 command[3] = 0;
rpavoor3 0:0ca943ce4014 186 command[4] = col;
rpavoor3 0:0ca943ce4014 187 writeCOMMAND(command, 5);
rpavoor3 0:0ca943ce4014 188
rpavoor3 0:0ca943ce4014 189 command[0] = 0x7F; //set color
rpavoor3 0:0ca943ce4014 190
rpavoor3 0:0ca943ce4014 191 int red5 = (color >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 192 int green6 = (color >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 193 int blue5 = (color >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 194
rpavoor3 0:0ca943ce4014 195 command[1] = ((red5 << 3) + (green6 >> 3)) & 0xFF; // first part of 16 bits color
rpavoor3 0:0ca943ce4014 196 command[2] = ((green6 << 5) + (blue5 >> 0)) & 0xFF; // second part of 16 bits color
rpavoor3 0:0ca943ce4014 197 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 198
rpavoor3 0:0ca943ce4014 199 command[0] = TEXTCHAR; //print char
rpavoor3 0:0ca943ce4014 200 command[1] = 0;
rpavoor3 0:0ca943ce4014 201 command[2] = c;
rpavoor3 0:0ca943ce4014 202 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 203
rpavoor3 0:0ca943ce4014 204 }
rpavoor3 0:0ca943ce4014 205
rpavoor3 0:0ca943ce4014 206
rpavoor3 0:0ca943ce4014 207 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 208 void uLCD_4DGL :: text_string(char *s, char col, char row, char font, int color) // draw a text string
rpavoor3 0:0ca943ce4014 209 {
rpavoor3 0:0ca943ce4014 210
rpavoor3 0:0ca943ce4014 211 char command[1000]= "";
rpavoor3 0:0ca943ce4014 212 int size = strlen(s);
rpavoor3 0:0ca943ce4014 213 int i = 0;
rpavoor3 0:0ca943ce4014 214
rpavoor3 0:0ca943ce4014 215 set_font(font);
rpavoor3 0:0ca943ce4014 216
rpavoor3 0:0ca943ce4014 217 command[0] = 0xE4; //move cursor
rpavoor3 0:0ca943ce4014 218 command[1] = 0;
rpavoor3 0:0ca943ce4014 219 command[2] = row;
rpavoor3 0:0ca943ce4014 220 command[3] = 0;
rpavoor3 0:0ca943ce4014 221 command[4] = col;
rpavoor3 0:0ca943ce4014 222 writeCOMMAND(command, 5);
rpavoor3 0:0ca943ce4014 223
rpavoor3 0:0ca943ce4014 224 command[0] = 0x7F; //set color
rpavoor3 0:0ca943ce4014 225 int red5 = (color >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 226 int green6 = (color >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 227 int blue5 = (color >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 228
rpavoor3 0:0ca943ce4014 229 command[1] = ((red5 << 3) + (green6 >> 3)) & 0xFF; // first part of 16 bits color
rpavoor3 0:0ca943ce4014 230 command[2] = ((green6 << 5) + (blue5 >> 0)) & 0xFF; // second part of 16 bits color
rpavoor3 0:0ca943ce4014 231 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 232
rpavoor3 0:0ca943ce4014 233 command[0] = TEXTSTRING;
rpavoor3 0:0ca943ce4014 234 for (i=0; i<size; i++) command[1+i] = s[i];
rpavoor3 0:0ca943ce4014 235 command[1+size] = 0;
rpavoor3 0:0ca943ce4014 236 writeCOMMANDnull(command, 2 + size);
rpavoor3 0:0ca943ce4014 237 }
rpavoor3 0:0ca943ce4014 238
rpavoor3 0:0ca943ce4014 239
rpavoor3 0:0ca943ce4014 240
rpavoor3 0:0ca943ce4014 241 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 242 void uLCD_4DGL :: locate(char col, char row) // place text curssor at col, row
rpavoor3 0:0ca943ce4014 243 {
rpavoor3 0:0ca943ce4014 244 char command[5] = "";
rpavoor3 0:0ca943ce4014 245 current_col = col;
rpavoor3 0:0ca943ce4014 246 current_row = row;
rpavoor3 0:0ca943ce4014 247 command[0] = MOVECURSOR; //move cursor
rpavoor3 0:0ca943ce4014 248 command[1] = 0;
rpavoor3 0:0ca943ce4014 249 command[2] = current_row;
rpavoor3 0:0ca943ce4014 250 command[3] = 0;
rpavoor3 0:0ca943ce4014 251 command[4] = current_col;
rpavoor3 0:0ca943ce4014 252 writeCOMMAND(command, 5);
rpavoor3 0:0ca943ce4014 253 }
rpavoor3 0:0ca943ce4014 254
rpavoor3 0:0ca943ce4014 255 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 256 void uLCD_4DGL :: color(int color) // set text color
rpavoor3 0:0ca943ce4014 257 {
rpavoor3 0:0ca943ce4014 258 char command[5] = "";
rpavoor3 0:0ca943ce4014 259 current_color = color;
rpavoor3 0:0ca943ce4014 260 command[0] = 0x7F; //set color
rpavoor3 0:0ca943ce4014 261
rpavoor3 0:0ca943ce4014 262 int red5 = (color >> (16 + 3)) & 0x1F; // get red on 5 bits
rpavoor3 0:0ca943ce4014 263 int green6 = (color >> (8 + 2)) & 0x3F; // get green on 6 bits
rpavoor3 0:0ca943ce4014 264 int blue5 = (color >> (0 + 3)) & 0x1F; // get blue on 5 bits
rpavoor3 0:0ca943ce4014 265
rpavoor3 0:0ca943ce4014 266 command[1] = ((red5 << 3) + (green6 >> 3)) & 0xFF; // first part of 16 bits color
rpavoor3 0:0ca943ce4014 267 command[2] = ((green6 << 5) + (blue5 >> 0)) & 0xFF; // second part of 16 bits color
rpavoor3 0:0ca943ce4014 268 writeCOMMAND(command, 3);
rpavoor3 0:0ca943ce4014 269 }
rpavoor3 0:0ca943ce4014 270
rpavoor3 0:0ca943ce4014 271 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 272 void uLCD_4DGL :: putc(char c) // place char at current cursor position
rpavoor3 0:0ca943ce4014 273 //used by virtual printf function _putc
rpavoor3 0:0ca943ce4014 274 {
rpavoor3 0:0ca943ce4014 275 char command[6] ="";
rpavoor3 0:0ca943ce4014 276 if(c<0x20) {
rpavoor3 0:0ca943ce4014 277 if(c=='\n') {
rpavoor3 0:0ca943ce4014 278 current_col = 0;
rpavoor3 0:0ca943ce4014 279 current_row++;
rpavoor3 0:0ca943ce4014 280 command[0] = MOVECURSOR; //move cursor to start of next line
rpavoor3 0:0ca943ce4014 281 command[1] = 0;
rpavoor3 0:0ca943ce4014 282 command[2] = current_row;
rpavoor3 0:0ca943ce4014 283 command[3] = 0;
rpavoor3 0:0ca943ce4014 284 command[4] = current_col;
rpavoor3 0:0ca943ce4014 285 writeCOMMAND(command, 5);
rpavoor3 0:0ca943ce4014 286 }
rpavoor3 0:0ca943ce4014 287 if(c=='\r') {
rpavoor3 0:0ca943ce4014 288 current_col = 0;
rpavoor3 0:0ca943ce4014 289 command[0] = MOVECURSOR; //move cursor to start of line
rpavoor3 0:0ca943ce4014 290 command[1] = 0;
rpavoor3 0:0ca943ce4014 291 command[2] = current_row;
rpavoor3 0:0ca943ce4014 292 command[3] = 0;
rpavoor3 0:0ca943ce4014 293 command[4] = current_col;
rpavoor3 0:0ca943ce4014 294 writeCOMMAND(command, 5);
rpavoor3 0:0ca943ce4014 295 }
rpavoor3 0:0ca943ce4014 296 if(c=='\f') {
rpavoor3 0:0ca943ce4014 297 uLCD_4DGL::cls(); //clear screen on form feed
rpavoor3 0:0ca943ce4014 298 }
rpavoor3 0:0ca943ce4014 299 } else {
rpavoor3 0:0ca943ce4014 300 command[0] = PUTCHAR;
rpavoor3 0:0ca943ce4014 301 command[1] = 0x00;
rpavoor3 0:0ca943ce4014 302 command[2] = c;
rpavoor3 0:0ca943ce4014 303 writeCOMMAND(command,3);
rpavoor3 0:0ca943ce4014 304 current_col++;
rpavoor3 0:0ca943ce4014 305 }
rpavoor3 0:0ca943ce4014 306 if (current_col == max_col) {
rpavoor3 0:0ca943ce4014 307 current_col = 0;
rpavoor3 0:0ca943ce4014 308 current_row++;
rpavoor3 0:0ca943ce4014 309 command[0] = MOVECURSOR; //move cursor to next line
rpavoor3 0:0ca943ce4014 310 command[1] = 0;
rpavoor3 0:0ca943ce4014 311 command[2] = current_row;
rpavoor3 0:0ca943ce4014 312 command[3] = 0;
rpavoor3 0:0ca943ce4014 313 command[4] = current_col;
rpavoor3 0:0ca943ce4014 314 writeCOMMAND(command, 5);
rpavoor3 0:0ca943ce4014 315 }
rpavoor3 0:0ca943ce4014 316 if (current_row == max_row) {
rpavoor3 0:0ca943ce4014 317 current_row = 0;
rpavoor3 0:0ca943ce4014 318 command[0] = MOVECURSOR; //move cursor back to start
rpavoor3 0:0ca943ce4014 319 command[1] = 0;
rpavoor3 0:0ca943ce4014 320 command[2] = current_row;
rpavoor3 0:0ca943ce4014 321 command[3] = 0;
rpavoor3 0:0ca943ce4014 322 command[4] = current_col;
rpavoor3 0:0ca943ce4014 323 writeCOMMAND(command, 5);
rpavoor3 0:0ca943ce4014 324 }
rpavoor3 0:0ca943ce4014 325 }
rpavoor3 0:0ca943ce4014 326
rpavoor3 0:0ca943ce4014 327
rpavoor3 0:0ca943ce4014 328 //****************************************************************************************************
rpavoor3 0:0ca943ce4014 329 void uLCD_4DGL :: puts(char *s) // place string at current cursor position
rpavoor3 0:0ca943ce4014 330 {
rpavoor3 0:0ca943ce4014 331
rpavoor3 0:0ca943ce4014 332 text_string(s, current_col, current_row, current_font, current_color);
rpavoor3 0:0ca943ce4014 333
rpavoor3 0:0ca943ce4014 334 current_col += strlen(s);
rpavoor3 0:0ca943ce4014 335
rpavoor3 0:0ca943ce4014 336 if (current_col >= max_col) {
rpavoor3 0:0ca943ce4014 337 current_row += current_col / max_col;
rpavoor3 0:0ca943ce4014 338 current_col %= max_col;
rpavoor3 0:0ca943ce4014 339 }
rpavoor3 0:0ca943ce4014 340 if (current_row >= max_row) {
rpavoor3 0:0ca943ce4014 341 current_row %= max_row;
rpavoor3 0:0ca943ce4014 342 }
rpavoor3 0:0ca943ce4014 343 }