Serial library for Diablo4D. Tested with uLCD220RD

Committer:
martin13
Date:
Tue May 09 14:16:16 2017 +0000
Revision:
0:81cd913c5e43
Child:
1:9a2c573adad6
Library for Diablo4D Serial comminucation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
martin13 0:81cd913c5e43 1 /*
martin13 0:81cd913c5e43 2 Diablo_Serial_4DLib.cpp - Library for 4D Systems Serial Environment.
martin13 0:81cd913c5e43 3 */
martin13 0:81cd913c5e43 4
martin13 0:81cd913c5e43 5 #include "Diablo_Serial_4DLib.h"
martin13 0:81cd913c5e43 6
martin13 0:81cd913c5e43 7 /*
martin13 0:81cd913c5e43 8 volatile unsigned long _millis;
martin13 0:81cd913c5e43 9
martin13 0:81cd913c5e43 10 void init_clock(void) {
martin13 0:81cd913c5e43 11 SysTick_Config(SystemCoreClock / 1000);
martin13 0:81cd913c5e43 12 }
martin13 0:81cd913c5e43 13
martin13 0:81cd913c5e43 14 extern "C" void SysTick_Handler(void) {
martin13 0:81cd913c5e43 15 _millis++;
martin13 0:81cd913c5e43 16 }
martin13 0:81cd913c5e43 17
martin13 0:81cd913c5e43 18 unsigned long get_millis(void) {
martin13 0:81cd913c5e43 19 return _millis;
martin13 0:81cd913c5e43 20 }
martin13 0:81cd913c5e43 21 */
martin13 0:81cd913c5e43 22
martin13 0:81cd913c5e43 23 Diablo_Serial_4DLib::Diablo_Serial_4DLib(Serial *virtualPort, int timeout4D) {
martin13 0:81cd913c5e43 24 _virtualPort = virtualPort;
martin13 0:81cd913c5e43 25 TimeLimit4D = timeout4D;
martin13 0:81cd913c5e43 26 //_timer.reset();
martin13 0:81cd913c5e43 27 //_timer.start();
martin13 0:81cd913c5e43 28 }
martin13 0:81cd913c5e43 29 /*
martin13 0:81cd913c5e43 30 unsigned long Diablo_Serial_4DLib::GetMillis(void){
martin13 0:81cd913c5e43 31 return (unsigned long)_timer.read_ms();
martin13 0:81cd913c5e43 32 }
martin13 0:81cd913c5e43 33 */
martin13 0:81cd913c5e43 34 //*********************************************************************************************//
martin13 0:81cd913c5e43 35 //**********************************Intrinsic 4D Routines**************************************//
martin13 0:81cd913c5e43 36 //*********************************************************************************************//
martin13 0:81cd913c5e43 37
martin13 0:81cd913c5e43 38 void Diablo_Serial_4DLib::WriteGFX(word req){
martin13 0:81cd913c5e43 39 _virtualPort->putc(req >> 8);
martin13 0:81cd913c5e43 40 _virtualPort->putc(req);
martin13 0:81cd913c5e43 41 }
martin13 0:81cd913c5e43 42
martin13 0:81cd913c5e43 43 void Diablo_Serial_4DLib::WriteChars(char * charsout)
martin13 0:81cd913c5e43 44 {
martin13 0:81cd913c5e43 45 char wk ;
martin13 0:81cd913c5e43 46 do
martin13 0:81cd913c5e43 47 {
martin13 0:81cd913c5e43 48 wk = *charsout++ ;
martin13 0:81cd913c5e43 49 _virtualPort->putc(wk) ;
martin13 0:81cd913c5e43 50 } while (wk) ;
martin13 0:81cd913c5e43 51 }
martin13 0:81cd913c5e43 52
martin13 0:81cd913c5e43 53 void Diablo_Serial_4DLib::WriteBytes(char * Source, int Size)
martin13 0:81cd913c5e43 54 {
martin13 0:81cd913c5e43 55 char wk ;
martin13 0:81cd913c5e43 56 int i ;
martin13 0:81cd913c5e43 57 for (i = 0; i < Size; i++)
martin13 0:81cd913c5e43 58 {
martin13 0:81cd913c5e43 59 wk = *Source++ ;
martin13 0:81cd913c5e43 60 _virtualPort->putc(wk) ;
martin13 0:81cd913c5e43 61 }
martin13 0:81cd913c5e43 62 }
martin13 0:81cd913c5e43 63
martin13 0:81cd913c5e43 64 void Diablo_Serial_4DLib::WriteWords(word * Source, int Size)
martin13 0:81cd913c5e43 65 {
martin13 0:81cd913c5e43 66 word wk ;
martin13 0:81cd913c5e43 67 int i ;
martin13 0:81cd913c5e43 68 for (i = 0; i < Size; i++)
martin13 0:81cd913c5e43 69 {
martin13 0:81cd913c5e43 70 wk = *Source++ ;
martin13 0:81cd913c5e43 71 _virtualPort->putc(wk >> 8) ;
martin13 0:81cd913c5e43 72 _virtualPort->putc(wk) ;
martin13 0:81cd913c5e43 73 }
martin13 0:81cd913c5e43 74 }
martin13 0:81cd913c5e43 75
martin13 0:81cd913c5e43 76 void Diablo_Serial_4DLib::getbytes(char * data, int size)
martin13 0:81cd913c5e43 77 {
martin13 0:81cd913c5e43 78 //int read ;
martin13 0:81cd913c5e43 79 Timer timer;
martin13 0:81cd913c5e43 80 int sttime ;
martin13 0:81cd913c5e43 81 int readc ;
martin13 0:81cd913c5e43 82 readc = 0 ;
martin13 0:81cd913c5e43 83 timer.reset();
martin13 0:81cd913c5e43 84 timer.start();
martin13 0:81cd913c5e43 85 sttime = timer.read_ms();
martin13 0:81cd913c5e43 86 while ((readc != size) && (timer.read_ms() - sttime < TimeLimit4D))
martin13 0:81cd913c5e43 87 {
martin13 0:81cd913c5e43 88 if(_virtualPort->readable())
martin13 0:81cd913c5e43 89 {
martin13 0:81cd913c5e43 90 data[readc++] = _virtualPort->getc() ;
martin13 0:81cd913c5e43 91 }
martin13 0:81cd913c5e43 92 }
martin13 0:81cd913c5e43 93 if (readc != size)
martin13 0:81cd913c5e43 94 {
martin13 0:81cd913c5e43 95 Error4D = GFX_Err4D_Timeout ;
martin13 0:81cd913c5e43 96 if (Callback4D != NULL)
martin13 0:81cd913c5e43 97 Callback4D(Error4D, Error4D_Inv) ;
martin13 0:81cd913c5e43 98 }
martin13 0:81cd913c5e43 99 }
martin13 0:81cd913c5e43 100
martin13 0:81cd913c5e43 101 void Diablo_Serial_4DLib::GetAck(void)
martin13 0:81cd913c5e43 102 {
martin13 0:81cd913c5e43 103 Timer timer;
martin13 0:81cd913c5e43 104 int read ;
martin13 0:81cd913c5e43 105 unsigned char readx ;
martin13 0:81cd913c5e43 106 int sttime ;
martin13 0:81cd913c5e43 107 Error4D = GFX_Err4D_OK ;
martin13 0:81cd913c5e43 108 timer.reset();
martin13 0:81cd913c5e43 109 timer.start();
martin13 0:81cd913c5e43 110 sttime = timer.read_ms();
martin13 0:81cd913c5e43 111 read = 0 ;
martin13 0:81cd913c5e43 112 while ((read != 1) && (timer.read_ms() - sttime < TimeLimit4D))
martin13 0:81cd913c5e43 113 {
martin13 0:81cd913c5e43 114 if(_virtualPort->readable() != 0)
martin13 0:81cd913c5e43 115 {
martin13 0:81cd913c5e43 116 readx = (unsigned char)_virtualPort->getc() ;
martin13 0:81cd913c5e43 117 read = 1 ;
martin13 0:81cd913c5e43 118 }
martin13 0:81cd913c5e43 119 }
martin13 0:81cd913c5e43 120 if (read == 0)
martin13 0:81cd913c5e43 121 {
martin13 0:81cd913c5e43 122 Error4D = GFX_Err4D_Timeout ;
martin13 0:81cd913c5e43 123 if (Callback4D != NULL)
martin13 0:81cd913c5e43 124 Callback4D(Error4D, Error4D_Inv) ;
martin13 0:81cd913c5e43 125 }
martin13 0:81cd913c5e43 126 else if (readx != 6)
martin13 0:81cd913c5e43 127 {
martin13 0:81cd913c5e43 128 Error4D = GFX_Err4D_NAK ;
martin13 0:81cd913c5e43 129 Error4D_Inv = readx ;
martin13 0:81cd913c5e43 130 if (Callback4D != NULL)
martin13 0:81cd913c5e43 131 Callback4D(Error4D, Error4D_Inv) ;
martin13 0:81cd913c5e43 132 }
martin13 0:81cd913c5e43 133 }
martin13 0:81cd913c5e43 134
martin13 0:81cd913c5e43 135 word Diablo_Serial_4DLib::GetWord(void)
martin13 0:81cd913c5e43 136 {
martin13 0:81cd913c5e43 137 Timer timer;
martin13 0:81cd913c5e43 138 unsigned char readx[2] ;
martin13 0:81cd913c5e43 139 int readc ;
martin13 0:81cd913c5e43 140 int sttime ;
martin13 0:81cd913c5e43 141
martin13 0:81cd913c5e43 142 if (Error4D != GFX_Err4D_OK)
martin13 0:81cd913c5e43 143 return 0 ;
martin13 0:81cd913c5e43 144 timer.reset();
martin13 0:81cd913c5e43 145 timer.start();
martin13 0:81cd913c5e43 146 sttime = timer.read_ms();
martin13 0:81cd913c5e43 147 readc = 0 ;
martin13 0:81cd913c5e43 148 while ((readc != 2) && (timer.read_ms() - sttime < TimeLimit4D))
martin13 0:81cd913c5e43 149 {
martin13 0:81cd913c5e43 150 if(_virtualPort->readable())
martin13 0:81cd913c5e43 151 {
martin13 0:81cd913c5e43 152 readx[readc++] = (unsigned char)_virtualPort->getc();
martin13 0:81cd913c5e43 153 }
martin13 0:81cd913c5e43 154 }
martin13 0:81cd913c5e43 155
martin13 0:81cd913c5e43 156 if (readc != 2)
martin13 0:81cd913c5e43 157 {
martin13 0:81cd913c5e43 158 Error4D = GFX_Err4D_Timeout ;
martin13 0:81cd913c5e43 159 if (Callback4D != NULL)
martin13 0:81cd913c5e43 160 Callback4D(Error4D, Error4D_Inv) ;
martin13 0:81cd913c5e43 161 return 0 ;
martin13 0:81cd913c5e43 162 }
martin13 0:81cd913c5e43 163 else
martin13 0:81cd913c5e43 164 return readx[0] << 8 | readx[1] ;
martin13 0:81cd913c5e43 165 }
martin13 0:81cd913c5e43 166
martin13 0:81cd913c5e43 167 void Diablo_Serial_4DLib::getString(char * outStr, int strLen)
martin13 0:81cd913c5e43 168 {
martin13 0:81cd913c5e43 169 //unsigned char readx[2] ;
martin13 0:81cd913c5e43 170 Timer timer;
martin13 0:81cd913c5e43 171 int readc ;
martin13 0:81cd913c5e43 172 int sttime ;
martin13 0:81cd913c5e43 173
martin13 0:81cd913c5e43 174 if (Error4D != GFX_Err4D_OK)
martin13 0:81cd913c5e43 175 {
martin13 0:81cd913c5e43 176 outStr[0] = 0 ;
martin13 0:81cd913c5e43 177 return ;
martin13 0:81cd913c5e43 178 }
martin13 0:81cd913c5e43 179 timer.reset();
martin13 0:81cd913c5e43 180 timer.start();
martin13 0:81cd913c5e43 181 sttime = timer.read_ms();
martin13 0:81cd913c5e43 182 readc = 0 ;
martin13 0:81cd913c5e43 183 while ((readc != strLen) && (timer.read_ms() - sttime < TimeLimit4D))
martin13 0:81cd913c5e43 184 {
martin13 0:81cd913c5e43 185 if(_virtualPort->readable())
martin13 0:81cd913c5e43 186 {
martin13 0:81cd913c5e43 187 outStr[readc++] = _virtualPort->getc() ;
martin13 0:81cd913c5e43 188 }
martin13 0:81cd913c5e43 189 }
martin13 0:81cd913c5e43 190
martin13 0:81cd913c5e43 191 if (readc != strLen)
martin13 0:81cd913c5e43 192 {
martin13 0:81cd913c5e43 193 Error4D = GFX_Err4D_Timeout ;
martin13 0:81cd913c5e43 194 if (Callback4D != NULL)
martin13 0:81cd913c5e43 195 Callback4D(Error4D, Error4D_Inv) ;
martin13 0:81cd913c5e43 196 }
martin13 0:81cd913c5e43 197 outStr[readc] = 0 ;
martin13 0:81cd913c5e43 198 }
martin13 0:81cd913c5e43 199
martin13 0:81cd913c5e43 200 word Diablo_Serial_4DLib::GetAckResp(void)
martin13 0:81cd913c5e43 201 {
martin13 0:81cd913c5e43 202 GetAck();
martin13 0:81cd913c5e43 203 return GetWord() ;
martin13 0:81cd913c5e43 204 }
martin13 0:81cd913c5e43 205
martin13 0:81cd913c5e43 206 word Diablo_Serial_4DLib::GetAckRes2Words(word * word1, word * word2)
martin13 0:81cd913c5e43 207 {
martin13 0:81cd913c5e43 208 int Result ;
martin13 0:81cd913c5e43 209 GetAck() ;
martin13 0:81cd913c5e43 210 Result = GetWord() ;
martin13 0:81cd913c5e43 211 *word1 = GetWord() ;
martin13 0:81cd913c5e43 212 *word2 = GetWord() ;
martin13 0:81cd913c5e43 213 return Result ;
martin13 0:81cd913c5e43 214 }
martin13 0:81cd913c5e43 215
martin13 0:81cd913c5e43 216 void Diablo_Serial_4DLib::GetAck2Words(word * word1, word * word2)
martin13 0:81cd913c5e43 217 {
martin13 0:81cd913c5e43 218 GetAck() ;
martin13 0:81cd913c5e43 219 *word1 = GetWord() ;
martin13 0:81cd913c5e43 220 *word2 = GetWord() ;
martin13 0:81cd913c5e43 221 }
martin13 0:81cd913c5e43 222
martin13 0:81cd913c5e43 223 word Diablo_Serial_4DLib::GetAckResSector(GFX_t4DSector Sector)
martin13 0:81cd913c5e43 224 {
martin13 0:81cd913c5e43 225 int Result ;
martin13 0:81cd913c5e43 226 GetAck() ;
martin13 0:81cd913c5e43 227 Result = GetWord() ;
martin13 0:81cd913c5e43 228 getbytes(Sector, 512) ;
martin13 0:81cd913c5e43 229 return Result ;
martin13 0:81cd913c5e43 230 }
martin13 0:81cd913c5e43 231
martin13 0:81cd913c5e43 232 word Diablo_Serial_4DLib::GetAckResStr(char * OutStr)
martin13 0:81cd913c5e43 233 {
martin13 0:81cd913c5e43 234 int Result ;
martin13 0:81cd913c5e43 235 GetAck() ;
martin13 0:81cd913c5e43 236 Result = GetWord() ;
martin13 0:81cd913c5e43 237 getString(OutStr, Result) ;
martin13 0:81cd913c5e43 238 return Result ;
martin13 0:81cd913c5e43 239 }
martin13 0:81cd913c5e43 240
martin13 0:81cd913c5e43 241 word Diablo_Serial_4DLib::GetAckResData(GFX_t4DByteArray OutData, word size)
martin13 0:81cd913c5e43 242 {
martin13 0:81cd913c5e43 243 int Result ;
martin13 0:81cd913c5e43 244 GetAck() ;
martin13 0:81cd913c5e43 245 Result = GetWord() ;
martin13 0:81cd913c5e43 246 getbytes(OutData, size) ;
martin13 0:81cd913c5e43 247 return Result ;
martin13 0:81cd913c5e43 248 }
martin13 0:81cd913c5e43 249
martin13 0:81cd913c5e43 250 void Diablo_Serial_4DLib::SetThisBaudrate(int Newrate)
martin13 0:81cd913c5e43 251 {
martin13 0:81cd913c5e43 252 int br ;
martin13 0:81cd913c5e43 253 // _virtualPort->flush() ;
martin13 0:81cd913c5e43 254 // _virtualPort->end() ;
martin13 0:81cd913c5e43 255 switch(Newrate)
martin13 0:81cd913c5e43 256 {
martin13 0:81cd913c5e43 257 /* case BAUD_110 : br = 110 ;
martin13 0:81cd913c5e43 258 break ;
martin13 0:81cd913c5e43 259 case BAUD_300 : br = 300 ;
martin13 0:81cd913c5e43 260 break ;
martin13 0:81cd913c5e43 261 case BAUD_600 : br = 600 ;
martin13 0:81cd913c5e43 262 break ;
martin13 0:81cd913c5e43 263 case BAUD_1200 : br = 1200 ;
martin13 0:81cd913c5e43 264 break ;
martin13 0:81cd913c5e43 265 case BAUD_2400 : br = 2400 ;
martin13 0:81cd913c5e43 266 break ;
martin13 0:81cd913c5e43 267 case BAUD_4800 : br = 4800 ;
martin13 0:81cd913c5e43 268 break ;*/
martin13 0:81cd913c5e43 269 case GFX_BAUD_9600 : br = 9600 ;
martin13 0:81cd913c5e43 270 break ;
martin13 0:81cd913c5e43 271 // case BAUD_14400 : br = 14400 ;
martin13 0:81cd913c5e43 272 // break ;
martin13 0:81cd913c5e43 273 case GFX_BAUD_19200 : br = 19200 ;
martin13 0:81cd913c5e43 274 break ;
martin13 0:81cd913c5e43 275 /* case BAUD_31250 : br = 31250 ;
martin13 0:81cd913c5e43 276 break ;
martin13 0:81cd913c5e43 277 case BAUD_38400 : br = 38400 ;
martin13 0:81cd913c5e43 278 break ;
martin13 0:81cd913c5e43 279 case BAUD_56000 : br = 56000 ;
martin13 0:81cd913c5e43 280 break ;
martin13 0:81cd913c5e43 281 case BAUD_57600 : br = 57600 ;
martin13 0:81cd913c5e43 282 break ;
martin13 0:81cd913c5e43 283 case BAUD_115200 : br = 115200 ;
martin13 0:81cd913c5e43 284 break ;
martin13 0:81cd913c5e43 285 case BAUD_128000 : br = 133928 ; // actual rate is not 128000 ;
martin13 0:81cd913c5e43 286 break ;
martin13 0:81cd913c5e43 287 case BAUD_256000 : br = 281250 ; // actual rate is not 256000 ;
martin13 0:81cd913c5e43 288 break ;
martin13 0:81cd913c5e43 289 case BAUD_300000 : br = 312500 ; // actual rate is not 300000 ;
martin13 0:81cd913c5e43 290 break ;
martin13 0:81cd913c5e43 291 case BAUD_375000 : br = 401785 ; // actual rate is not 375000 ;
martin13 0:81cd913c5e43 292 break ;
martin13 0:81cd913c5e43 293 case BAUD_500000 : br = 562500 ; // actual rate is not 500000 ;
martin13 0:81cd913c5e43 294 break ;
martin13 0:81cd913c5e43 295 case BAUD_600000 : br = 703125 ; // actual rate is not 600000 ;
martin13 0:81cd913c5e43 296 break ;*/
martin13 0:81cd913c5e43 297 }
martin13 0:81cd913c5e43 298 // _virtualPort->begin(br) ;
martin13 0:81cd913c5e43 299 wait(0.05) ; // Display sleeps for 100
martin13 0:81cd913c5e43 300 _virtualPort->baud(br) ;
martin13 0:81cd913c5e43 301 }
martin13 0:81cd913c5e43 302
martin13 0:81cd913c5e43 303 //*********************************************************************************************//
martin13 0:81cd913c5e43 304 //**********************************Compound 4D Routines***************************************//
martin13 0:81cd913c5e43 305 //*********************************************************************************************//
martin13 0:81cd913c5e43 306
martin13 0:81cd913c5e43 307 word Diablo_Serial_4DLib::bus_Read8()
martin13 0:81cd913c5e43 308 {
martin13 0:81cd913c5e43 309 _virtualPort->putc(GFX_F_bus_Read8 >> 8) ;
martin13 0:81cd913c5e43 310 _virtualPort->putc(GFX_F_bus_Read8) ;
martin13 0:81cd913c5e43 311 return GetAckResp() ;
martin13 0:81cd913c5e43 312 }
martin13 0:81cd913c5e43 313
martin13 0:81cd913c5e43 314 void Diablo_Serial_4DLib::bus_Write8(word Bits)
martin13 0:81cd913c5e43 315 {
martin13 0:81cd913c5e43 316 _virtualPort->putc(GFX_F_bus_Write8 >> 8) ;
martin13 0:81cd913c5e43 317 _virtualPort->putc(GFX_F_bus_Write8) ;
martin13 0:81cd913c5e43 318 _virtualPort->putc(Bits >> 8);
martin13 0:81cd913c5e43 319 _virtualPort->putc(Bits) ;
martin13 0:81cd913c5e43 320 GetAck() ;
martin13 0:81cd913c5e43 321 }
martin13 0:81cd913c5e43 322
martin13 0:81cd913c5e43 323 word Diablo_Serial_4DLib::charheight(char TestChar)
martin13 0:81cd913c5e43 324 {
martin13 0:81cd913c5e43 325 _virtualPort->putc(GFX_F_charheight >> 8);
martin13 0:81cd913c5e43 326 _virtualPort->putc(GFX_F_charheight);
martin13 0:81cd913c5e43 327 _virtualPort->putc(TestChar);
martin13 0:81cd913c5e43 328 return GetAckResp();
martin13 0:81cd913c5e43 329 }
martin13 0:81cd913c5e43 330
martin13 0:81cd913c5e43 331 word Diablo_Serial_4DLib::charwidth(char TestChar)
martin13 0:81cd913c5e43 332 {
martin13 0:81cd913c5e43 333 _virtualPort->putc(GFX_F_charwidth >> 8);
martin13 0:81cd913c5e43 334 _virtualPort->putc(GFX_F_charwidth);
martin13 0:81cd913c5e43 335 _virtualPort->putc(TestChar);
martin13 0:81cd913c5e43 336 return GetAckResp();
martin13 0:81cd913c5e43 337 }
martin13 0:81cd913c5e43 338
martin13 0:81cd913c5e43 339 word Diablo_Serial_4DLib::file_Close(word Handle)
martin13 0:81cd913c5e43 340 {
martin13 0:81cd913c5e43 341 _virtualPort->putc(GFX_F_file_Close >> 8);
martin13 0:81cd913c5e43 342 _virtualPort->putc(GFX_F_file_Close);
martin13 0:81cd913c5e43 343 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 344 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 345 return GetAckResp();
martin13 0:81cd913c5e43 346 }
martin13 0:81cd913c5e43 347
martin13 0:81cd913c5e43 348 word Diablo_Serial_4DLib::file_Count(char * Filename)
martin13 0:81cd913c5e43 349 {
martin13 0:81cd913c5e43 350 _virtualPort->putc(GFX_F_file_Count >> 8);
martin13 0:81cd913c5e43 351 _virtualPort->putc(GFX_F_file_Count);
martin13 0:81cd913c5e43 352 WriteChars(Filename);
martin13 0:81cd913c5e43 353 return GetAckResp();
martin13 0:81cd913c5e43 354 }
martin13 0:81cd913c5e43 355
martin13 0:81cd913c5e43 356 word Diablo_Serial_4DLib::file_Dir(char * Filename)
martin13 0:81cd913c5e43 357 {
martin13 0:81cd913c5e43 358 _virtualPort->putc(GFX_F_file_Dir >> 8);
martin13 0:81cd913c5e43 359 _virtualPort->putc(GFX_F_file_Dir);
martin13 0:81cd913c5e43 360 WriteChars(Filename);
martin13 0:81cd913c5e43 361 return GetAckResp();
martin13 0:81cd913c5e43 362 }
martin13 0:81cd913c5e43 363
martin13 0:81cd913c5e43 364 word Diablo_Serial_4DLib::file_Erase(char * Filename)
martin13 0:81cd913c5e43 365 {
martin13 0:81cd913c5e43 366 _virtualPort->putc(GFX_F_file_Erase >> 8);
martin13 0:81cd913c5e43 367 _virtualPort->putc(GFX_F_file_Erase);
martin13 0:81cd913c5e43 368 WriteChars(Filename);
martin13 0:81cd913c5e43 369 return GetAckResp();
martin13 0:81cd913c5e43 370 }
martin13 0:81cd913c5e43 371
martin13 0:81cd913c5e43 372 word Diablo_Serial_4DLib::file_Error()
martin13 0:81cd913c5e43 373 {
martin13 0:81cd913c5e43 374 _virtualPort->putc(GFX_F_file_Error >> 8);
martin13 0:81cd913c5e43 375 _virtualPort->putc(GFX_F_file_Error);
martin13 0:81cd913c5e43 376 return GetAckResp();
martin13 0:81cd913c5e43 377 }
martin13 0:81cd913c5e43 378
martin13 0:81cd913c5e43 379 word Diablo_Serial_4DLib::file_Exec(char * Filename, word ArgCount, GFX_t4DWordArray Args)
martin13 0:81cd913c5e43 380 {
martin13 0:81cd913c5e43 381 _virtualPort->putc(GFX_F_file_Exec >> 8);
martin13 0:81cd913c5e43 382 _virtualPort->putc(GFX_F_file_Exec);
martin13 0:81cd913c5e43 383 WriteChars(Filename);
martin13 0:81cd913c5e43 384 _virtualPort->putc(ArgCount >> 8);
martin13 0:81cd913c5e43 385 _virtualPort->putc(ArgCount);
martin13 0:81cd913c5e43 386 WriteWords(Args, ArgCount);
martin13 0:81cd913c5e43 387 return GetAckResp();
martin13 0:81cd913c5e43 388 }
martin13 0:81cd913c5e43 389
martin13 0:81cd913c5e43 390 word Diablo_Serial_4DLib::file_Exists(char * Filename)
martin13 0:81cd913c5e43 391 {
martin13 0:81cd913c5e43 392 _virtualPort->putc(GFX_F_file_Exists >> 8);
martin13 0:81cd913c5e43 393 _virtualPort->putc(GFX_F_file_Exists);
martin13 0:81cd913c5e43 394 WriteChars(Filename);
martin13 0:81cd913c5e43 395 return GetAckResp();
martin13 0:81cd913c5e43 396 }
martin13 0:81cd913c5e43 397
martin13 0:81cd913c5e43 398 word Diablo_Serial_4DLib::file_FindFirst(char * Filename)
martin13 0:81cd913c5e43 399 {
martin13 0:81cd913c5e43 400 _virtualPort->putc(GFX_F_file_FindFirst >> 8);
martin13 0:81cd913c5e43 401 _virtualPort->putc(GFX_F_file_FindFirst);
martin13 0:81cd913c5e43 402 WriteChars(Filename);
martin13 0:81cd913c5e43 403 return GetAckResp();
martin13 0:81cd913c5e43 404 }
martin13 0:81cd913c5e43 405
martin13 0:81cd913c5e43 406 word Diablo_Serial_4DLib::file_FindNext()
martin13 0:81cd913c5e43 407 {
martin13 0:81cd913c5e43 408 _virtualPort->putc(GFX_F_file_FindNext >> 8);
martin13 0:81cd913c5e43 409 _virtualPort->putc(GFX_F_file_FindNext);
martin13 0:81cd913c5e43 410 return GetAckResp();
martin13 0:81cd913c5e43 411 }
martin13 0:81cd913c5e43 412
martin13 0:81cd913c5e43 413 char Diablo_Serial_4DLib::file_GetC(word Handle)
martin13 0:81cd913c5e43 414 {
martin13 0:81cd913c5e43 415 _virtualPort->putc(GFX_F_file_GetC >> 8);
martin13 0:81cd913c5e43 416 _virtualPort->putc(GFX_F_file_GetC);
martin13 0:81cd913c5e43 417 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 418 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 419 return GetAckResp();
martin13 0:81cd913c5e43 420 }
martin13 0:81cd913c5e43 421
martin13 0:81cd913c5e43 422 word Diablo_Serial_4DLib::file_GetS(char * StringIn, word Size, word Handle)
martin13 0:81cd913c5e43 423 {
martin13 0:81cd913c5e43 424 _virtualPort->putc(GFX_F_file_GetS >> 8);
martin13 0:81cd913c5e43 425 _virtualPort->putc(GFX_F_file_GetS);
martin13 0:81cd913c5e43 426 _virtualPort->putc(Size >> 8);
martin13 0:81cd913c5e43 427 _virtualPort->putc(Size);
martin13 0:81cd913c5e43 428 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 429 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 430 return GetAckResStr(StringIn);
martin13 0:81cd913c5e43 431 }
martin13 0:81cd913c5e43 432
martin13 0:81cd913c5e43 433 word Diablo_Serial_4DLib::file_GetW(word Handle)
martin13 0:81cd913c5e43 434 {
martin13 0:81cd913c5e43 435 _virtualPort->putc(GFX_F_file_GetW >> 8);
martin13 0:81cd913c5e43 436 _virtualPort->putc(GFX_F_file_GetW);
martin13 0:81cd913c5e43 437 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 438 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 439 return GetAckResp();
martin13 0:81cd913c5e43 440 }
martin13 0:81cd913c5e43 441
martin13 0:81cd913c5e43 442 word Diablo_Serial_4DLib::file_Image(word X, word Y, word Handle)
martin13 0:81cd913c5e43 443 {
martin13 0:81cd913c5e43 444 _virtualPort->putc(GFX_F_file_Image >> 8);
martin13 0:81cd913c5e43 445 _virtualPort->putc(GFX_F_file_Image);
martin13 0:81cd913c5e43 446 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 447 _virtualPort->putc(X);
martin13 0:81cd913c5e43 448 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 449 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 450 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 451 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 452 return GetAckResp();
martin13 0:81cd913c5e43 453 }
martin13 0:81cd913c5e43 454
martin13 0:81cd913c5e43 455 word Diablo_Serial_4DLib::file_Index(word Handle, word HiSize, word LoSize, word Recordnum)
martin13 0:81cd913c5e43 456 {
martin13 0:81cd913c5e43 457 _virtualPort->putc(GFX_F_file_Index >> 8);
martin13 0:81cd913c5e43 458 _virtualPort->putc(GFX_F_file_Index);
martin13 0:81cd913c5e43 459 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 460 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 461 _virtualPort->putc(HiSize >> 8);
martin13 0:81cd913c5e43 462 _virtualPort->putc(HiSize);
martin13 0:81cd913c5e43 463 _virtualPort->putc(LoSize >> 8);
martin13 0:81cd913c5e43 464 _virtualPort->putc(LoSize);
martin13 0:81cd913c5e43 465 _virtualPort->putc(Recordnum >> 8);
martin13 0:81cd913c5e43 466 _virtualPort->putc(Recordnum);
martin13 0:81cd913c5e43 467 return GetAckResp();
martin13 0:81cd913c5e43 468 }
martin13 0:81cd913c5e43 469
martin13 0:81cd913c5e43 470 word Diablo_Serial_4DLib::file_LoadFunction(char * Filename)
martin13 0:81cd913c5e43 471 {
martin13 0:81cd913c5e43 472 _virtualPort->putc(GFX_F_file_LoadFunction >> 8);
martin13 0:81cd913c5e43 473 _virtualPort->putc(GFX_F_file_LoadFunction);
martin13 0:81cd913c5e43 474 WriteChars(Filename);
martin13 0:81cd913c5e43 475 return GetAckResp();
martin13 0:81cd913c5e43 476 }
martin13 0:81cd913c5e43 477
martin13 0:81cd913c5e43 478 word Diablo_Serial_4DLib::file_LoadImageControl(char * Datname, char * GCIName, word Mode)
martin13 0:81cd913c5e43 479 {
martin13 0:81cd913c5e43 480 _virtualPort->putc(GFX_F_file_LoadImageControl >> 8);
martin13 0:81cd913c5e43 481 _virtualPort->putc(GFX_F_file_LoadImageControl);
martin13 0:81cd913c5e43 482 WriteChars(Datname);
martin13 0:81cd913c5e43 483 WriteChars(GCIName);
martin13 0:81cd913c5e43 484 _virtualPort->putc(Mode >> 8);
martin13 0:81cd913c5e43 485 _virtualPort->putc(Mode);
martin13 0:81cd913c5e43 486 return GetAckResp();
martin13 0:81cd913c5e43 487 }
martin13 0:81cd913c5e43 488
martin13 0:81cd913c5e43 489 word Diablo_Serial_4DLib::file_Mount()
martin13 0:81cd913c5e43 490 {
martin13 0:81cd913c5e43 491 _virtualPort->putc(GFX_F_file_Mount >> 8);
martin13 0:81cd913c5e43 492 _virtualPort->putc(GFX_F_file_Mount);
martin13 0:81cd913c5e43 493 return GetAckResp();
martin13 0:81cd913c5e43 494 }
martin13 0:81cd913c5e43 495
martin13 0:81cd913c5e43 496 word Diablo_Serial_4DLib::file_Open(char * Filename, char Mode)
martin13 0:81cd913c5e43 497 {
martin13 0:81cd913c5e43 498 _virtualPort->putc(GFX_F_file_Open >> 8);
martin13 0:81cd913c5e43 499 _virtualPort->putc(GFX_F_file_Open);
martin13 0:81cd913c5e43 500 WriteChars(Filename);
martin13 0:81cd913c5e43 501 _virtualPort->putc(Mode);
martin13 0:81cd913c5e43 502 return GetAckResp();
martin13 0:81cd913c5e43 503 }
martin13 0:81cd913c5e43 504
martin13 0:81cd913c5e43 505 word Diablo_Serial_4DLib::file_PlayWAV(char * Filename)
martin13 0:81cd913c5e43 506 {
martin13 0:81cd913c5e43 507 _virtualPort->putc(GFX_F_file_PlayWAV >> 8);
martin13 0:81cd913c5e43 508 _virtualPort->putc(GFX_F_file_PlayWAV);
martin13 0:81cd913c5e43 509 WriteChars(Filename);
martin13 0:81cd913c5e43 510 return GetAckResp();
martin13 0:81cd913c5e43 511 }
martin13 0:81cd913c5e43 512
martin13 0:81cd913c5e43 513 word Diablo_Serial_4DLib::file_PutC(char Character, word Handle)
martin13 0:81cd913c5e43 514 {
martin13 0:81cd913c5e43 515 _virtualPort->putc(GFX_F_file_PutC >> 8);
martin13 0:81cd913c5e43 516 _virtualPort->putc(GFX_F_file_PutC);
martin13 0:81cd913c5e43 517 _virtualPort->putc(Character);
martin13 0:81cd913c5e43 518 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 519 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 520 return GetAckResp();
martin13 0:81cd913c5e43 521 }
martin13 0:81cd913c5e43 522
martin13 0:81cd913c5e43 523 word Diablo_Serial_4DLib::file_PutS(char * StringOut, word Handle)
martin13 0:81cd913c5e43 524 {
martin13 0:81cd913c5e43 525 _virtualPort->putc(GFX_F_file_PutS >> 8);
martin13 0:81cd913c5e43 526 _virtualPort->putc(GFX_F_file_PutS);
martin13 0:81cd913c5e43 527 WriteChars(StringOut);
martin13 0:81cd913c5e43 528 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 529 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 530 return GetAckResp();
martin13 0:81cd913c5e43 531 }
martin13 0:81cd913c5e43 532
martin13 0:81cd913c5e43 533 word Diablo_Serial_4DLib::file_PutW(word Word, word Handle)
martin13 0:81cd913c5e43 534 {
martin13 0:81cd913c5e43 535 _virtualPort->putc(GFX_F_file_PutW >> 8);
martin13 0:81cd913c5e43 536 _virtualPort->putc(GFX_F_file_PutW);
martin13 0:81cd913c5e43 537 _virtualPort->putc(Word >> 8);
martin13 0:81cd913c5e43 538 _virtualPort->putc(Word);
martin13 0:81cd913c5e43 539 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 540 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 541 return GetAckResp();
martin13 0:81cd913c5e43 542 }
martin13 0:81cd913c5e43 543
martin13 0:81cd913c5e43 544 word Diablo_Serial_4DLib::file_Read(GFX_t4DByteArray Data, word Size, word Handle)
martin13 0:81cd913c5e43 545 {
martin13 0:81cd913c5e43 546 _virtualPort->putc(GFX_F_file_Read >> 8);
martin13 0:81cd913c5e43 547 _virtualPort->putc(GFX_F_file_Read);
martin13 0:81cd913c5e43 548 _virtualPort->putc(Size >> 8);
martin13 0:81cd913c5e43 549 _virtualPort->putc(Size);
martin13 0:81cd913c5e43 550 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 551 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 552 return GetAckResData(Data,Size);
martin13 0:81cd913c5e43 553 }
martin13 0:81cd913c5e43 554
martin13 0:81cd913c5e43 555 word Diablo_Serial_4DLib::file_Rewind(word Handle)
martin13 0:81cd913c5e43 556 {
martin13 0:81cd913c5e43 557 _virtualPort->putc(GFX_F_file_Rewind >> 8);
martin13 0:81cd913c5e43 558 _virtualPort->putc(GFX_F_file_Rewind);
martin13 0:81cd913c5e43 559 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 560 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 561 return GetAckResp();
martin13 0:81cd913c5e43 562 }
martin13 0:81cd913c5e43 563
martin13 0:81cd913c5e43 564 word Diablo_Serial_4DLib::file_Run(char * Filename, word ArgCount, GFX_t4DWordArray Args)
martin13 0:81cd913c5e43 565 {
martin13 0:81cd913c5e43 566 _virtualPort->putc(GFX_F_file_Run >> 8);
martin13 0:81cd913c5e43 567 _virtualPort->putc(GFX_F_file_Run);
martin13 0:81cd913c5e43 568 WriteChars(Filename);
martin13 0:81cd913c5e43 569 _virtualPort->putc(ArgCount >> 8);
martin13 0:81cd913c5e43 570 _virtualPort->putc(ArgCount);
martin13 0:81cd913c5e43 571 WriteWords(Args, ArgCount);
martin13 0:81cd913c5e43 572 return GetAckResp();
martin13 0:81cd913c5e43 573 }
martin13 0:81cd913c5e43 574
martin13 0:81cd913c5e43 575 word Diablo_Serial_4DLib::file_ScreenCapture(word X, word Y, word Width, word Height, word Handle)
martin13 0:81cd913c5e43 576 {
martin13 0:81cd913c5e43 577 _virtualPort->putc(GFX_F_file_ScreenCapture >> 8);
martin13 0:81cd913c5e43 578 _virtualPort->putc(GFX_F_file_ScreenCapture);
martin13 0:81cd913c5e43 579 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 580 _virtualPort->putc(X);
martin13 0:81cd913c5e43 581 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 582 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 583 _virtualPort->putc(Width >> 8);
martin13 0:81cd913c5e43 584 _virtualPort->putc(Width);
martin13 0:81cd913c5e43 585 _virtualPort->putc(Height >> 8);
martin13 0:81cd913c5e43 586 _virtualPort->putc(Height);
martin13 0:81cd913c5e43 587 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 588 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 589 return GetAckResp();
martin13 0:81cd913c5e43 590 }
martin13 0:81cd913c5e43 591
martin13 0:81cd913c5e43 592 word Diablo_Serial_4DLib::file_Seek(word Handle, word HiWord, word LoWord)
martin13 0:81cd913c5e43 593 {
martin13 0:81cd913c5e43 594 _virtualPort->putc(GFX_F_file_Seek >> 8);
martin13 0:81cd913c5e43 595 _virtualPort->putc(GFX_F_file_Seek);
martin13 0:81cd913c5e43 596 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 597 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 598 _virtualPort->putc(HiWord >> 8);
martin13 0:81cd913c5e43 599 _virtualPort->putc(HiWord);
martin13 0:81cd913c5e43 600 _virtualPort->putc(LoWord >> 8);
martin13 0:81cd913c5e43 601 _virtualPort->putc(LoWord);
martin13 0:81cd913c5e43 602 return GetAckResp();
martin13 0:81cd913c5e43 603 }
martin13 0:81cd913c5e43 604
martin13 0:81cd913c5e43 605 word Diablo_Serial_4DLib::file_Size(word Handle, word * HiWord, word * LoWord)
martin13 0:81cd913c5e43 606 {
martin13 0:81cd913c5e43 607 _virtualPort->putc(GFX_F_file_Size >> 8);
martin13 0:81cd913c5e43 608 _virtualPort->putc(GFX_F_file_Size);
martin13 0:81cd913c5e43 609 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 610 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 611 return GetAckRes2Words(HiWord,LoWord);
martin13 0:81cd913c5e43 612 }
martin13 0:81cd913c5e43 613
martin13 0:81cd913c5e43 614 word Diablo_Serial_4DLib::file_Tell(word Handle, word * HiWord, word * LoWord)
martin13 0:81cd913c5e43 615 {
martin13 0:81cd913c5e43 616 _virtualPort->putc(GFX_F_file_Tell >> 8);
martin13 0:81cd913c5e43 617 _virtualPort->putc(GFX_F_file_Tell);
martin13 0:81cd913c5e43 618 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 619 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 620 return GetAckRes2Words(HiWord,LoWord);
martin13 0:81cd913c5e43 621 }
martin13 0:81cd913c5e43 622
martin13 0:81cd913c5e43 623 void Diablo_Serial_4DLib::file_Unmount()
martin13 0:81cd913c5e43 624 {
martin13 0:81cd913c5e43 625 _virtualPort->putc(GFX_F_file_Unmount >> 8);
martin13 0:81cd913c5e43 626 _virtualPort->putc(GFX_F_file_Unmount);
martin13 0:81cd913c5e43 627 GetAck();
martin13 0:81cd913c5e43 628 }
martin13 0:81cd913c5e43 629
martin13 0:81cd913c5e43 630 word Diablo_Serial_4DLib::file_Write(word Size, GFX_t4DByteArray Source, word Handle)
martin13 0:81cd913c5e43 631 {
martin13 0:81cd913c5e43 632 _virtualPort->putc(GFX_F_file_Write >> 8);
martin13 0:81cd913c5e43 633 _virtualPort->putc(GFX_F_file_Write);
martin13 0:81cd913c5e43 634 _virtualPort->putc(Size >> 8);
martin13 0:81cd913c5e43 635 _virtualPort->putc(Size);
martin13 0:81cd913c5e43 636 WriteBytes(Source, Size);
martin13 0:81cd913c5e43 637 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 638 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 639 return GetAckResp();
martin13 0:81cd913c5e43 640 }
martin13 0:81cd913c5e43 641
martin13 0:81cd913c5e43 642 word Diablo_Serial_4DLib::gfx_BevelShadow(word Value)
martin13 0:81cd913c5e43 643 {
martin13 0:81cd913c5e43 644 _virtualPort->putc(GFX_F_gfx_BevelShadow >> 8);
martin13 0:81cd913c5e43 645 _virtualPort->putc(GFX_F_gfx_BevelShadow);
martin13 0:81cd913c5e43 646 _virtualPort->putc(Value >> 8);
martin13 0:81cd913c5e43 647 _virtualPort->putc(Value);
martin13 0:81cd913c5e43 648 return GetAckResp();
martin13 0:81cd913c5e43 649 }
martin13 0:81cd913c5e43 650
martin13 0:81cd913c5e43 651 word Diablo_Serial_4DLib::gfx_BevelWidth(word Value)
martin13 0:81cd913c5e43 652 {
martin13 0:81cd913c5e43 653 _virtualPort->putc(GFX_F_gfx_BevelWidth >> 8);
martin13 0:81cd913c5e43 654 _virtualPort->putc(GFX_F_gfx_BevelWidth);
martin13 0:81cd913c5e43 655 _virtualPort->putc(Value >> 8);
martin13 0:81cd913c5e43 656 _virtualPort->putc(Value);
martin13 0:81cd913c5e43 657 return GetAckResp();
martin13 0:81cd913c5e43 658 }
martin13 0:81cd913c5e43 659
martin13 0:81cd913c5e43 660 word Diablo_Serial_4DLib::gfx_BGcolour(word Color)
martin13 0:81cd913c5e43 661 {
martin13 0:81cd913c5e43 662 _virtualPort->putc(GFX_F_gfx_BGcolour >> 8);
martin13 0:81cd913c5e43 663 _virtualPort->putc(GFX_F_gfx_BGcolour);
martin13 0:81cd913c5e43 664 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 665 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 666 return GetAckResp();
martin13 0:81cd913c5e43 667 }
martin13 0:81cd913c5e43 668
martin13 0:81cd913c5e43 669 void Diablo_Serial_4DLib::gfx_Button(word Up, word x, word y, word buttonColour, word txtColour, word font, word txtWidth, word txtHeight, char * text)
martin13 0:81cd913c5e43 670 {
martin13 0:81cd913c5e43 671 _virtualPort->putc(GFX_F_gfx_Button >> 8);
martin13 0:81cd913c5e43 672 _virtualPort->putc(GFX_F_gfx_Button);
martin13 0:81cd913c5e43 673 _virtualPort->putc(Up >> 8);
martin13 0:81cd913c5e43 674 _virtualPort->putc(Up);
martin13 0:81cd913c5e43 675 _virtualPort->putc(x >> 8);
martin13 0:81cd913c5e43 676 _virtualPort->putc(x);
martin13 0:81cd913c5e43 677 _virtualPort->putc(y >> 8);
martin13 0:81cd913c5e43 678 _virtualPort->putc(y);
martin13 0:81cd913c5e43 679 _virtualPort->putc(buttonColour >> 8);
martin13 0:81cd913c5e43 680 _virtualPort->putc(buttonColour);
martin13 0:81cd913c5e43 681 _virtualPort->putc(txtColour >> 8);
martin13 0:81cd913c5e43 682 _virtualPort->putc(txtColour);
martin13 0:81cd913c5e43 683 _virtualPort->putc(font >> 8);
martin13 0:81cd913c5e43 684 _virtualPort->putc(font);
martin13 0:81cd913c5e43 685 _virtualPort->putc(txtWidth >> 8);
martin13 0:81cd913c5e43 686 _virtualPort->putc(txtWidth);
martin13 0:81cd913c5e43 687 _virtualPort->putc(txtHeight >> 8);
martin13 0:81cd913c5e43 688 _virtualPort->putc(txtHeight);
martin13 0:81cd913c5e43 689 WriteChars(text);
martin13 0:81cd913c5e43 690 GetAck();
martin13 0:81cd913c5e43 691 }
martin13 0:81cd913c5e43 692
martin13 0:81cd913c5e43 693 void Diablo_Serial_4DLib::gfx_ChangeColour(word OldColor, word NewColor)
martin13 0:81cd913c5e43 694 {
martin13 0:81cd913c5e43 695 _virtualPort->putc(GFX_F_gfx_ChangeColour >> 8);
martin13 0:81cd913c5e43 696 _virtualPort->putc(GFX_F_gfx_ChangeColour);
martin13 0:81cd913c5e43 697 _virtualPort->putc(OldColor >> 8);
martin13 0:81cd913c5e43 698 _virtualPort->putc(OldColor);
martin13 0:81cd913c5e43 699 _virtualPort->putc(NewColor >> 8);
martin13 0:81cd913c5e43 700 _virtualPort->putc(NewColor);
martin13 0:81cd913c5e43 701 GetAck();
martin13 0:81cd913c5e43 702 }
martin13 0:81cd913c5e43 703
martin13 0:81cd913c5e43 704 void Diablo_Serial_4DLib::gfx_Circle(word X, word Y, word Radius, word Color)
martin13 0:81cd913c5e43 705 {
martin13 0:81cd913c5e43 706 _virtualPort->putc(GFX_F_gfx_Circle >> 8);
martin13 0:81cd913c5e43 707 _virtualPort->putc(GFX_F_gfx_Circle);
martin13 0:81cd913c5e43 708 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 709 _virtualPort->putc(X);
martin13 0:81cd913c5e43 710 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 711 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 712 _virtualPort->putc(Radius >> 8);
martin13 0:81cd913c5e43 713 _virtualPort->putc(Radius);
martin13 0:81cd913c5e43 714 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 715 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 716 GetAck();
martin13 0:81cd913c5e43 717 }
martin13 0:81cd913c5e43 718
martin13 0:81cd913c5e43 719 void Diablo_Serial_4DLib::gfx_CircleFilled(word X, word Y, word Radius, word Color)
martin13 0:81cd913c5e43 720 {
martin13 0:81cd913c5e43 721 _virtualPort->putc(GFX_F_gfx_CircleFilled >> 8);
martin13 0:81cd913c5e43 722 _virtualPort->putc(GFX_F_gfx_CircleFilled);
martin13 0:81cd913c5e43 723 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 724 _virtualPort->putc(X);
martin13 0:81cd913c5e43 725 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 726 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 727 _virtualPort->putc(Radius >> 8);
martin13 0:81cd913c5e43 728 _virtualPort->putc(Radius);
martin13 0:81cd913c5e43 729 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 730 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 731 GetAck();
martin13 0:81cd913c5e43 732 }
martin13 0:81cd913c5e43 733
martin13 0:81cd913c5e43 734 void Diablo_Serial_4DLib::gfx_Clipping(word OnOff)
martin13 0:81cd913c5e43 735 {
martin13 0:81cd913c5e43 736 _virtualPort->putc(GFX_F_gfx_Clipping >> 8);
martin13 0:81cd913c5e43 737 _virtualPort->putc(GFX_F_gfx_Clipping);
martin13 0:81cd913c5e43 738 _virtualPort->putc(OnOff >> 8);
martin13 0:81cd913c5e43 739 _virtualPort->putc(OnOff);
martin13 0:81cd913c5e43 740 GetAck();
martin13 0:81cd913c5e43 741 }
martin13 0:81cd913c5e43 742
martin13 0:81cd913c5e43 743 void Diablo_Serial_4DLib::gfx_ClipWindow(word X1, word Y1, word X2, word Y2)
martin13 0:81cd913c5e43 744 {
martin13 0:81cd913c5e43 745 _virtualPort->putc(GFX_F_gfx_ClipWindow >> 8);
martin13 0:81cd913c5e43 746 _virtualPort->putc(GFX_F_gfx_ClipWindow);
martin13 0:81cd913c5e43 747 _virtualPort->putc(X1 >> 8);
martin13 0:81cd913c5e43 748 _virtualPort->putc(X1);
martin13 0:81cd913c5e43 749 _virtualPort->putc(Y1 >> 8);
martin13 0:81cd913c5e43 750 _virtualPort->putc(Y1);
martin13 0:81cd913c5e43 751 _virtualPort->putc(X2 >> 8);
martin13 0:81cd913c5e43 752 _virtualPort->putc(X2);
martin13 0:81cd913c5e43 753 _virtualPort->putc(Y2 >> 8);
martin13 0:81cd913c5e43 754 _virtualPort->putc(Y2);
martin13 0:81cd913c5e43 755 GetAck();
martin13 0:81cd913c5e43 756 }
martin13 0:81cd913c5e43 757
martin13 0:81cd913c5e43 758 void Diablo_Serial_4DLib::gfx_Cls()
martin13 0:81cd913c5e43 759 {
martin13 0:81cd913c5e43 760 _virtualPort->putc(GFX_F_gfx_Cls >> 8);
martin13 0:81cd913c5e43 761 _virtualPort->putc(GFX_F_gfx_Cls);
martin13 0:81cd913c5e43 762 GetAck();
martin13 0:81cd913c5e43 763 }
martin13 0:81cd913c5e43 764
martin13 0:81cd913c5e43 765 word Diablo_Serial_4DLib::gfx_Contrast(word Contrast)
martin13 0:81cd913c5e43 766 {
martin13 0:81cd913c5e43 767 _virtualPort->putc(GFX_F_gfx_Contrast >> 8);
martin13 0:81cd913c5e43 768 _virtualPort->putc(GFX_F_gfx_Contrast);
martin13 0:81cd913c5e43 769 _virtualPort->putc(Contrast >> 8);
martin13 0:81cd913c5e43 770 _virtualPort->putc(Contrast);
martin13 0:81cd913c5e43 771 return GetAckResp();
martin13 0:81cd913c5e43 772 }
martin13 0:81cd913c5e43 773
martin13 0:81cd913c5e43 774 void Diablo_Serial_4DLib::gfx_Ellipse(word X, word Y, word Xrad, word Yrad, word Color)
martin13 0:81cd913c5e43 775 {
martin13 0:81cd913c5e43 776 _virtualPort->putc(GFX_F_gfx_Ellipse >> 8);
martin13 0:81cd913c5e43 777 _virtualPort->putc(GFX_F_gfx_Ellipse);
martin13 0:81cd913c5e43 778 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 779 _virtualPort->putc(X);
martin13 0:81cd913c5e43 780 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 781 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 782 _virtualPort->putc(Xrad >> 8);
martin13 0:81cd913c5e43 783 _virtualPort->putc(Xrad);
martin13 0:81cd913c5e43 784 _virtualPort->putc(Yrad >> 8);
martin13 0:81cd913c5e43 785 _virtualPort->putc(Yrad);
martin13 0:81cd913c5e43 786 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 787 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 788 GetAck();
martin13 0:81cd913c5e43 789 }
martin13 0:81cd913c5e43 790
martin13 0:81cd913c5e43 791 void Diablo_Serial_4DLib::gfx_EllipseFilled(word X, word Y, word Xrad, word Yrad, word Color)
martin13 0:81cd913c5e43 792 {
martin13 0:81cd913c5e43 793 _virtualPort->putc(GFX_F_gfx_EllipseFilled >> 8);
martin13 0:81cd913c5e43 794 _virtualPort->putc(GFX_F_gfx_EllipseFilled);
martin13 0:81cd913c5e43 795 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 796 _virtualPort->putc(X);
martin13 0:81cd913c5e43 797 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 798 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 799 _virtualPort->putc(Xrad >> 8);
martin13 0:81cd913c5e43 800 _virtualPort->putc(Xrad);
martin13 0:81cd913c5e43 801 _virtualPort->putc(Yrad >> 8);
martin13 0:81cd913c5e43 802 _virtualPort->putc(Yrad);
martin13 0:81cd913c5e43 803 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 804 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 805 GetAck();
martin13 0:81cd913c5e43 806 }
martin13 0:81cd913c5e43 807
martin13 0:81cd913c5e43 808 word Diablo_Serial_4DLib::gfx_FrameDelay(word Msec)
martin13 0:81cd913c5e43 809 {
martin13 0:81cd913c5e43 810 _virtualPort->putc(GFX_F_gfx_FrameDelay >> 8);
martin13 0:81cd913c5e43 811 _virtualPort->putc(GFX_F_gfx_FrameDelay);
martin13 0:81cd913c5e43 812 _virtualPort->putc(Msec >> 8);
martin13 0:81cd913c5e43 813 _virtualPort->putc(Msec);
martin13 0:81cd913c5e43 814 return GetAckResp();
martin13 0:81cd913c5e43 815 }
martin13 0:81cd913c5e43 816
martin13 0:81cd913c5e43 817 word Diablo_Serial_4DLib::gfx_Get(word Mode)
martin13 0:81cd913c5e43 818 {
martin13 0:81cd913c5e43 819 _virtualPort->putc(GFX_F_gfx_Get >> 8);
martin13 0:81cd913c5e43 820 _virtualPort->putc(GFX_F_gfx_Get);
martin13 0:81cd913c5e43 821 _virtualPort->putc(Mode >> 8);
martin13 0:81cd913c5e43 822 _virtualPort->putc(Mode);
martin13 0:81cd913c5e43 823 return GetAckResp();
martin13 0:81cd913c5e43 824 }
martin13 0:81cd913c5e43 825
martin13 0:81cd913c5e43 826 word Diablo_Serial_4DLib::gfx_GetPixel(word X, word Y)
martin13 0:81cd913c5e43 827 {
martin13 0:81cd913c5e43 828 _virtualPort->putc(GFX_F_gfx_GetPixel >> 8);
martin13 0:81cd913c5e43 829 _virtualPort->putc(GFX_F_gfx_GetPixel);
martin13 0:81cd913c5e43 830 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 831 _virtualPort->putc(X);
martin13 0:81cd913c5e43 832 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 833 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 834 return GetAckResp();
martin13 0:81cd913c5e43 835 }
martin13 0:81cd913c5e43 836
martin13 0:81cd913c5e43 837 void Diablo_Serial_4DLib::gfx_Line(word X1, word Y1, word X2, word Y2, word Color)
martin13 0:81cd913c5e43 838 {
martin13 0:81cd913c5e43 839 _virtualPort->putc(GFX_F_gfx_Line >> 8);
martin13 0:81cd913c5e43 840 _virtualPort->putc(GFX_F_gfx_Line);
martin13 0:81cd913c5e43 841 _virtualPort->putc(X1 >> 8);
martin13 0:81cd913c5e43 842 _virtualPort->putc(X1);
martin13 0:81cd913c5e43 843 _virtualPort->putc(Y1 >> 8);
martin13 0:81cd913c5e43 844 _virtualPort->putc(Y1);
martin13 0:81cd913c5e43 845 _virtualPort->putc(X2 >> 8);
martin13 0:81cd913c5e43 846 _virtualPort->putc(X2);
martin13 0:81cd913c5e43 847 _virtualPort->putc(Y2 >> 8);
martin13 0:81cd913c5e43 848 _virtualPort->putc(Y2);
martin13 0:81cd913c5e43 849 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 850 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 851 GetAck();
martin13 0:81cd913c5e43 852 }
martin13 0:81cd913c5e43 853
martin13 0:81cd913c5e43 854 word Diablo_Serial_4DLib::gfx_LinePattern(word Pattern)
martin13 0:81cd913c5e43 855 {
martin13 0:81cd913c5e43 856 _virtualPort->putc(GFX_F_gfx_LinePattern >> 8);
martin13 0:81cd913c5e43 857 _virtualPort->putc(GFX_F_gfx_LinePattern);
martin13 0:81cd913c5e43 858 _virtualPort->putc(Pattern >> 8);
martin13 0:81cd913c5e43 859 _virtualPort->putc(Pattern);
martin13 0:81cd913c5e43 860 return GetAckResp();
martin13 0:81cd913c5e43 861 }
martin13 0:81cd913c5e43 862
martin13 0:81cd913c5e43 863 void Diablo_Serial_4DLib::gfx_LineTo(word X, word Y)
martin13 0:81cd913c5e43 864 {
martin13 0:81cd913c5e43 865 _virtualPort->putc(GFX_F_gfx_LineTo >> 8);
martin13 0:81cd913c5e43 866 _virtualPort->putc(GFX_F_gfx_LineTo);
martin13 0:81cd913c5e43 867 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 868 _virtualPort->putc(X);
martin13 0:81cd913c5e43 869 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 870 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 871 GetAck();
martin13 0:81cd913c5e43 872 }
martin13 0:81cd913c5e43 873
martin13 0:81cd913c5e43 874 void Diablo_Serial_4DLib::gfx_MoveTo(word X, word Y)
martin13 0:81cd913c5e43 875 {
martin13 0:81cd913c5e43 876 _virtualPort->putc(GFX_F_gfx_MoveTo >> 8);
martin13 0:81cd913c5e43 877 _virtualPort->putc(GFX_F_gfx_MoveTo);
martin13 0:81cd913c5e43 878 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 879 _virtualPort->putc(X);
martin13 0:81cd913c5e43 880 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 881 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 882 GetAck();
martin13 0:81cd913c5e43 883 }
martin13 0:81cd913c5e43 884
martin13 0:81cd913c5e43 885 word Diablo_Serial_4DLib::gfx_Orbit(word Angle, word Distance, word * Xdest, word * Ydest)
martin13 0:81cd913c5e43 886 {
martin13 0:81cd913c5e43 887 _virtualPort->putc(GFX_F_gfx_Orbit >> 8);
martin13 0:81cd913c5e43 888 _virtualPort->putc(GFX_F_gfx_Orbit);
martin13 0:81cd913c5e43 889 _virtualPort->putc(Angle >> 8);
martin13 0:81cd913c5e43 890 _virtualPort->putc(Angle);
martin13 0:81cd913c5e43 891 _virtualPort->putc(Distance >> 8);
martin13 0:81cd913c5e43 892 _virtualPort->putc(Distance);
martin13 0:81cd913c5e43 893 GetAck2Words(Xdest,Ydest);
martin13 0:81cd913c5e43 894 return 0 ;
martin13 0:81cd913c5e43 895 }
martin13 0:81cd913c5e43 896
martin13 0:81cd913c5e43 897 word Diablo_Serial_4DLib::gfx_OutlineColour(word Color)
martin13 0:81cd913c5e43 898 {
martin13 0:81cd913c5e43 899 _virtualPort->putc(GFX_F_gfx_OutlineColour >> 8);
martin13 0:81cd913c5e43 900 _virtualPort->putc(GFX_F_gfx_OutlineColour);
martin13 0:81cd913c5e43 901 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 902 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 903 return GetAckResp();
martin13 0:81cd913c5e43 904 }
martin13 0:81cd913c5e43 905
martin13 0:81cd913c5e43 906 void Diablo_Serial_4DLib::gfx_Panel(word Raised, word X, word Y, word Width, word Height, word Color)
martin13 0:81cd913c5e43 907 {
martin13 0:81cd913c5e43 908 _virtualPort->putc(GFX_F_gfx_Panel >> 8);
martin13 0:81cd913c5e43 909 _virtualPort->putc(GFX_F_gfx_Panel);
martin13 0:81cd913c5e43 910 _virtualPort->putc(Raised >> 8);
martin13 0:81cd913c5e43 911 _virtualPort->putc(Raised);
martin13 0:81cd913c5e43 912 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 913 _virtualPort->putc(X);
martin13 0:81cd913c5e43 914 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 915 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 916 _virtualPort->putc(Width >> 8);
martin13 0:81cd913c5e43 917 _virtualPort->putc(Width);
martin13 0:81cd913c5e43 918 _virtualPort->putc(Height >> 8);
martin13 0:81cd913c5e43 919 _virtualPort->putc(Height);
martin13 0:81cd913c5e43 920 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 921 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 922 GetAck();
martin13 0:81cd913c5e43 923 }
martin13 0:81cd913c5e43 924
martin13 0:81cd913c5e43 925 void Diablo_Serial_4DLib::gfx_Polygon(word n, GFX_t4DWordArray Xvalues, GFX_t4DWordArray Yvalues, word Color)
martin13 0:81cd913c5e43 926 {
martin13 0:81cd913c5e43 927 _virtualPort->putc(GFX_F_gfx_Polygon >> 8);
martin13 0:81cd913c5e43 928 _virtualPort->putc(GFX_F_gfx_Polygon);
martin13 0:81cd913c5e43 929 _virtualPort->putc(n >> 8);
martin13 0:81cd913c5e43 930 _virtualPort->putc(n);
martin13 0:81cd913c5e43 931 WriteWords(Xvalues, n);
martin13 0:81cd913c5e43 932 WriteWords(Yvalues, n);
martin13 0:81cd913c5e43 933 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 934 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 935 GetAck();
martin13 0:81cd913c5e43 936 }
martin13 0:81cd913c5e43 937
martin13 0:81cd913c5e43 938 void Diablo_Serial_4DLib::gfx_PolygonFilled(word n, GFX_t4DWordArray Xvalues, GFX_t4DWordArray Yvalues, word Color)
martin13 0:81cd913c5e43 939 {
martin13 0:81cd913c5e43 940 _virtualPort->putc(GFX_F_gfx_PolygonFilled >> 8);
martin13 0:81cd913c5e43 941 _virtualPort->putc(GFX_F_gfx_PolygonFilled);
martin13 0:81cd913c5e43 942 _virtualPort->putc(n >> 8);
martin13 0:81cd913c5e43 943 _virtualPort->putc(n);
martin13 0:81cd913c5e43 944 WriteWords(Xvalues, n);
martin13 0:81cd913c5e43 945 WriteWords(Yvalues, n);
martin13 0:81cd913c5e43 946 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 947 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 948 GetAck();
martin13 0:81cd913c5e43 949 }
martin13 0:81cd913c5e43 950
martin13 0:81cd913c5e43 951 void Diablo_Serial_4DLib::gfx_Polyline(word n, GFX_t4DWordArray Xvalues, GFX_t4DWordArray Yvalues, word Color)
martin13 0:81cd913c5e43 952 {
martin13 0:81cd913c5e43 953 _virtualPort->putc(GFX_F_gfx_Polyline >> 8);
martin13 0:81cd913c5e43 954 _virtualPort->putc(GFX_F_gfx_Polyline);
martin13 0:81cd913c5e43 955 _virtualPort->putc(n >> 8);
martin13 0:81cd913c5e43 956 _virtualPort->putc(n);
martin13 0:81cd913c5e43 957 WriteWords(Xvalues, n);
martin13 0:81cd913c5e43 958 WriteWords(Yvalues, n);
martin13 0:81cd913c5e43 959 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 960 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 961 GetAck();
martin13 0:81cd913c5e43 962 }
martin13 0:81cd913c5e43 963
martin13 0:81cd913c5e43 964 void Diablo_Serial_4DLib::gfx_PutPixel(word X, word Y, word Color)
martin13 0:81cd913c5e43 965 {
martin13 0:81cd913c5e43 966 _virtualPort->putc(GFX_F_gfx_PutPixel >> 8);
martin13 0:81cd913c5e43 967 _virtualPort->putc(GFX_F_gfx_PutPixel);
martin13 0:81cd913c5e43 968 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 969 _virtualPort->putc(X);
martin13 0:81cd913c5e43 970 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 971 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 972 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 973 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 974 GetAck();
martin13 0:81cd913c5e43 975 }
martin13 0:81cd913c5e43 976
martin13 0:81cd913c5e43 977 void Diablo_Serial_4DLib::gfx_Rectangle(word X1, word Y1, word X2, word Y2, word Color)
martin13 0:81cd913c5e43 978 {
martin13 0:81cd913c5e43 979 _virtualPort->putc(GFX_F_gfx_Rectangle >> 8);
martin13 0:81cd913c5e43 980 _virtualPort->putc(GFX_F_gfx_Rectangle);
martin13 0:81cd913c5e43 981 _virtualPort->putc(X1 >> 8);
martin13 0:81cd913c5e43 982 _virtualPort->putc(X1);
martin13 0:81cd913c5e43 983 _virtualPort->putc(Y1 >> 8);
martin13 0:81cd913c5e43 984 _virtualPort->putc(Y1);
martin13 0:81cd913c5e43 985 _virtualPort->putc(X2 >> 8);
martin13 0:81cd913c5e43 986 _virtualPort->putc(X2);
martin13 0:81cd913c5e43 987 _virtualPort->putc(Y2 >> 8);
martin13 0:81cd913c5e43 988 _virtualPort->putc(Y2);
martin13 0:81cd913c5e43 989 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 990 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 991 GetAck();
martin13 0:81cd913c5e43 992 }
martin13 0:81cd913c5e43 993
martin13 0:81cd913c5e43 994 void Diablo_Serial_4DLib::gfx_RectangleFilled(word X1, word Y1, word X2, word Y2, word Color)
martin13 0:81cd913c5e43 995 {
martin13 0:81cd913c5e43 996 _virtualPort->putc(GFX_F_gfx_RectangleFilled >> 8);
martin13 0:81cd913c5e43 997 _virtualPort->putc(GFX_F_gfx_RectangleFilled);
martin13 0:81cd913c5e43 998 _virtualPort->putc(X1 >> 8);
martin13 0:81cd913c5e43 999 _virtualPort->putc(X1);
martin13 0:81cd913c5e43 1000 _virtualPort->putc(Y1 >> 8);
martin13 0:81cd913c5e43 1001 _virtualPort->putc(Y1);
martin13 0:81cd913c5e43 1002 _virtualPort->putc(X2 >> 8);
martin13 0:81cd913c5e43 1003 _virtualPort->putc(X2);
martin13 0:81cd913c5e43 1004 _virtualPort->putc(Y2 >> 8);
martin13 0:81cd913c5e43 1005 _virtualPort->putc(Y2);
martin13 0:81cd913c5e43 1006 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 1007 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 1008 GetAck();
martin13 0:81cd913c5e43 1009 }
martin13 0:81cd913c5e43 1010
martin13 0:81cd913c5e43 1011 void Diablo_Serial_4DLib::gfx_ScreenCopyPaste(word Xs, word Ys, word Xd, word Yd, word Width, word Height)
martin13 0:81cd913c5e43 1012 {
martin13 0:81cd913c5e43 1013 _virtualPort->putc(GFX_F_gfx_ScreenCopyPaste >> 8);
martin13 0:81cd913c5e43 1014 _virtualPort->putc(GFX_F_gfx_ScreenCopyPaste);
martin13 0:81cd913c5e43 1015 _virtualPort->putc(Xs >> 8);
martin13 0:81cd913c5e43 1016 _virtualPort->putc(Xs);
martin13 0:81cd913c5e43 1017 _virtualPort->putc(Ys >> 8);
martin13 0:81cd913c5e43 1018 _virtualPort->putc(Ys);
martin13 0:81cd913c5e43 1019 _virtualPort->putc(Xd >> 8);
martin13 0:81cd913c5e43 1020 _virtualPort->putc(Xd);
martin13 0:81cd913c5e43 1021 _virtualPort->putc(Yd >> 8);
martin13 0:81cd913c5e43 1022 _virtualPort->putc(Yd);
martin13 0:81cd913c5e43 1023 _virtualPort->putc(Width >> 8);
martin13 0:81cd913c5e43 1024 _virtualPort->putc(Width);
martin13 0:81cd913c5e43 1025 _virtualPort->putc(Height >> 8);
martin13 0:81cd913c5e43 1026 _virtualPort->putc(Height);
martin13 0:81cd913c5e43 1027 GetAck();
martin13 0:81cd913c5e43 1028 }
martin13 0:81cd913c5e43 1029
martin13 0:81cd913c5e43 1030 word Diablo_Serial_4DLib::gfx_ScreenMode(word ScreenMode)
martin13 0:81cd913c5e43 1031 {
martin13 0:81cd913c5e43 1032 _virtualPort->putc(GFX_F_gfx_ScreenMode >> 8);
martin13 0:81cd913c5e43 1033 _virtualPort->putc(GFX_F_gfx_ScreenMode);
martin13 0:81cd913c5e43 1034 _virtualPort->putc(ScreenMode >> 8);
martin13 0:81cd913c5e43 1035 _virtualPort->putc(ScreenMode);
martin13 0:81cd913c5e43 1036 return GetAckResp();
martin13 0:81cd913c5e43 1037 }
martin13 0:81cd913c5e43 1038
martin13 0:81cd913c5e43 1039 void Diablo_Serial_4DLib::gfx_Set(word Func, word Value)
martin13 0:81cd913c5e43 1040 {
martin13 0:81cd913c5e43 1041 _virtualPort->putc(GFX_F_gfx_Set >> 8);
martin13 0:81cd913c5e43 1042 _virtualPort->putc(GFX_F_gfx_Set);
martin13 0:81cd913c5e43 1043 _virtualPort->putc(Func >> 8);
martin13 0:81cd913c5e43 1044 _virtualPort->putc(Func);
martin13 0:81cd913c5e43 1045 _virtualPort->putc(Value >> 8);
martin13 0:81cd913c5e43 1046 _virtualPort->putc(Value);
martin13 0:81cd913c5e43 1047 GetAck();
martin13 0:81cd913c5e43 1048 }
martin13 0:81cd913c5e43 1049
martin13 0:81cd913c5e43 1050 void Diablo_Serial_4DLib::gfx_SetClipRegion()
martin13 0:81cd913c5e43 1051 {
martin13 0:81cd913c5e43 1052 _virtualPort->putc(GFX_F_gfx_SetClipRegion >> 8);
martin13 0:81cd913c5e43 1053 _virtualPort->putc(GFX_F_gfx_SetClipRegion);
martin13 0:81cd913c5e43 1054 GetAck();
martin13 0:81cd913c5e43 1055 }
martin13 0:81cd913c5e43 1056
martin13 0:81cd913c5e43 1057 word Diablo_Serial_4DLib::gfx_Slider(word Mode, word X1, word Y1, word X2, word Y2, word Color, word Scale, word Value)
martin13 0:81cd913c5e43 1058 {
martin13 0:81cd913c5e43 1059 _virtualPort->putc(GFX_F_gfx_Slider >> 8);
martin13 0:81cd913c5e43 1060 _virtualPort->putc(GFX_F_gfx_Slider);
martin13 0:81cd913c5e43 1061 _virtualPort->putc(Mode >> 8);
martin13 0:81cd913c5e43 1062 _virtualPort->putc(Mode);
martin13 0:81cd913c5e43 1063 _virtualPort->putc(X1 >> 8);
martin13 0:81cd913c5e43 1064 _virtualPort->putc(X1);
martin13 0:81cd913c5e43 1065 _virtualPort->putc(Y1 >> 8);
martin13 0:81cd913c5e43 1066 _virtualPort->putc(Y1);
martin13 0:81cd913c5e43 1067 _virtualPort->putc(X2 >> 8);
martin13 0:81cd913c5e43 1068 _virtualPort->putc(X2);
martin13 0:81cd913c5e43 1069 _virtualPort->putc(Y2 >> 8);
martin13 0:81cd913c5e43 1070 _virtualPort->putc(Y2);
martin13 0:81cd913c5e43 1071 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 1072 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 1073 _virtualPort->putc(Scale >> 8);
martin13 0:81cd913c5e43 1074 _virtualPort->putc(Scale);
martin13 0:81cd913c5e43 1075 _virtualPort->putc(Value >> 8);
martin13 0:81cd913c5e43 1076 _virtualPort->putc(Value);
martin13 0:81cd913c5e43 1077 return GetAckResp();
martin13 0:81cd913c5e43 1078 }
martin13 0:81cd913c5e43 1079
martin13 0:81cd913c5e43 1080 word Diablo_Serial_4DLib::gfx_Transparency(word OnOff)
martin13 0:81cd913c5e43 1081 {
martin13 0:81cd913c5e43 1082 _virtualPort->putc(GFX_F_gfx_Transparency >> 8);
martin13 0:81cd913c5e43 1083 _virtualPort->putc(GFX_F_gfx_Transparency);
martin13 0:81cd913c5e43 1084 _virtualPort->putc(OnOff >> 8);
martin13 0:81cd913c5e43 1085 _virtualPort->putc(OnOff);
martin13 0:81cd913c5e43 1086 return GetAckResp();
martin13 0:81cd913c5e43 1087 }
martin13 0:81cd913c5e43 1088
martin13 0:81cd913c5e43 1089 word Diablo_Serial_4DLib::gfx_TransparentColour(word Color)
martin13 0:81cd913c5e43 1090 {
martin13 0:81cd913c5e43 1091 _virtualPort->putc(GFX_F_gfx_TransparentColour >> 8);
martin13 0:81cd913c5e43 1092 _virtualPort->putc(GFX_F_gfx_TransparentColour);
martin13 0:81cd913c5e43 1093 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 1094 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 1095 return GetAckResp();
martin13 0:81cd913c5e43 1096 }
martin13 0:81cd913c5e43 1097
martin13 0:81cd913c5e43 1098 void Diablo_Serial_4DLib::gfx_Triangle(word X1, word Y1, word X2, word Y2, word X3, word Y3, word Color)
martin13 0:81cd913c5e43 1099 {
martin13 0:81cd913c5e43 1100 _virtualPort->putc(GFX_F_gfx_Triangle >> 8);
martin13 0:81cd913c5e43 1101 _virtualPort->putc(GFX_F_gfx_Triangle);
martin13 0:81cd913c5e43 1102 _virtualPort->putc(X1 >> 8);
martin13 0:81cd913c5e43 1103 _virtualPort->putc(X1);
martin13 0:81cd913c5e43 1104 _virtualPort->putc(Y1 >> 8);
martin13 0:81cd913c5e43 1105 _virtualPort->putc(Y1);
martin13 0:81cd913c5e43 1106 _virtualPort->putc(X2 >> 8);
martin13 0:81cd913c5e43 1107 _virtualPort->putc(X2);
martin13 0:81cd913c5e43 1108 _virtualPort->putc(Y2 >> 8);
martin13 0:81cd913c5e43 1109 _virtualPort->putc(Y2);
martin13 0:81cd913c5e43 1110 _virtualPort->putc(X3 >> 8);
martin13 0:81cd913c5e43 1111 _virtualPort->putc(X3);
martin13 0:81cd913c5e43 1112 _virtualPort->putc(Y3 >> 8);
martin13 0:81cd913c5e43 1113 _virtualPort->putc(Y3);
martin13 0:81cd913c5e43 1114 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 1115 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 1116 GetAck();
martin13 0:81cd913c5e43 1117 }
martin13 0:81cd913c5e43 1118
martin13 0:81cd913c5e43 1119 void Diablo_Serial_4DLib::gfx_TriangleFilled(word X1, word Y1, word X2, word Y2, word X3, word Y3, word Color)
martin13 0:81cd913c5e43 1120 {
martin13 0:81cd913c5e43 1121 _virtualPort->putc(GFX_F_gfx_TriangleFilled >> 8);
martin13 0:81cd913c5e43 1122 _virtualPort->putc(GFX_F_gfx_TriangleFilled);
martin13 0:81cd913c5e43 1123 _virtualPort->putc(X1 >> 8);
martin13 0:81cd913c5e43 1124 _virtualPort->putc(X1);
martin13 0:81cd913c5e43 1125 _virtualPort->putc(Y1 >> 8);
martin13 0:81cd913c5e43 1126 _virtualPort->putc(Y1);
martin13 0:81cd913c5e43 1127 _virtualPort->putc(X2 >> 8);
martin13 0:81cd913c5e43 1128 _virtualPort->putc(X2);
martin13 0:81cd913c5e43 1129 _virtualPort->putc(Y2 >> 8);
martin13 0:81cd913c5e43 1130 _virtualPort->putc(Y2);
martin13 0:81cd913c5e43 1131 _virtualPort->putc(X3 >> 8);
martin13 0:81cd913c5e43 1132 _virtualPort->putc(X3);
martin13 0:81cd913c5e43 1133 _virtualPort->putc(Y3 >> 8);
martin13 0:81cd913c5e43 1134 _virtualPort->putc(Y3);
martin13 0:81cd913c5e43 1135 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 1136 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 1137 GetAck();
martin13 0:81cd913c5e43 1138 }
martin13 0:81cd913c5e43 1139
martin13 0:81cd913c5e43 1140 word Diablo_Serial_4DLib::img_ClearAttributes(word Handle, word Index, word Value)
martin13 0:81cd913c5e43 1141 {
martin13 0:81cd913c5e43 1142 _virtualPort->putc(GFX_F_img_ClearAttributes >> 8);
martin13 0:81cd913c5e43 1143 _virtualPort->putc(GFX_F_img_ClearAttributes);
martin13 0:81cd913c5e43 1144 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1145 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1146 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1147 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1148 _virtualPort->putc(Value >> 8);
martin13 0:81cd913c5e43 1149 _virtualPort->putc(Value);
martin13 0:81cd913c5e43 1150 return GetAckResp();
martin13 0:81cd913c5e43 1151 }
martin13 0:81cd913c5e43 1152
martin13 0:81cd913c5e43 1153 word Diablo_Serial_4DLib::img_Darken(word Handle, word Index)
martin13 0:81cd913c5e43 1154 {
martin13 0:81cd913c5e43 1155 _virtualPort->putc(GFX_F_img_Darken >> 8);
martin13 0:81cd913c5e43 1156 _virtualPort->putc(GFX_F_img_Darken);
martin13 0:81cd913c5e43 1157 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1158 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1159 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1160 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1161 return GetAckResp();
martin13 0:81cd913c5e43 1162 }
martin13 0:81cd913c5e43 1163
martin13 0:81cd913c5e43 1164 word Diablo_Serial_4DLib::img_Disable(word Handle, word Index)
martin13 0:81cd913c5e43 1165 {
martin13 0:81cd913c5e43 1166 _virtualPort->putc(GFX_F_img_Disable >> 8);
martin13 0:81cd913c5e43 1167 _virtualPort->putc(GFX_F_img_Disable);
martin13 0:81cd913c5e43 1168 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1169 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1170 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1171 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1172 return GetAckResp();
martin13 0:81cd913c5e43 1173 }
martin13 0:81cd913c5e43 1174
martin13 0:81cd913c5e43 1175 word Diablo_Serial_4DLib::img_Enable(word Handle, word Index)
martin13 0:81cd913c5e43 1176 {
martin13 0:81cd913c5e43 1177 _virtualPort->putc(GFX_F_img_Enable >> 8);
martin13 0:81cd913c5e43 1178 _virtualPort->putc(GFX_F_img_Enable);
martin13 0:81cd913c5e43 1179 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1180 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1181 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1182 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1183 return GetAckResp();
martin13 0:81cd913c5e43 1184 }
martin13 0:81cd913c5e43 1185
martin13 0:81cd913c5e43 1186 word Diablo_Serial_4DLib::img_GetWord(word Handle, word Index, word Offset )
martin13 0:81cd913c5e43 1187 {
martin13 0:81cd913c5e43 1188 _virtualPort->putc(GFX_F_img_GetWord >> 8);
martin13 0:81cd913c5e43 1189 _virtualPort->putc(GFX_F_img_GetWord);
martin13 0:81cd913c5e43 1190 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1191 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1192 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1193 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1194 _virtualPort->putc(Offset >> 8);
martin13 0:81cd913c5e43 1195 _virtualPort->putc(Offset );
martin13 0:81cd913c5e43 1196 return GetAckResp();
martin13 0:81cd913c5e43 1197 }
martin13 0:81cd913c5e43 1198
martin13 0:81cd913c5e43 1199 word Diablo_Serial_4DLib::img_Lighten(word Handle, word Index)
martin13 0:81cd913c5e43 1200 {
martin13 0:81cd913c5e43 1201 _virtualPort->putc(GFX_F_img_Lighten >> 8);
martin13 0:81cd913c5e43 1202 _virtualPort->putc(GFX_F_img_Lighten);
martin13 0:81cd913c5e43 1203 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1204 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1205 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1206 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1207 return GetAckResp();
martin13 0:81cd913c5e43 1208 }
martin13 0:81cd913c5e43 1209
martin13 0:81cd913c5e43 1210 word Diablo_Serial_4DLib::img_SetAttributes(word Handle, word Index, word Value)
martin13 0:81cd913c5e43 1211 {
martin13 0:81cd913c5e43 1212 _virtualPort->putc(GFX_F_img_SetAttributes >> 8);
martin13 0:81cd913c5e43 1213 _virtualPort->putc(GFX_F_img_SetAttributes);
martin13 0:81cd913c5e43 1214 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1215 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1216 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1217 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1218 _virtualPort->putc(Value >> 8);
martin13 0:81cd913c5e43 1219 _virtualPort->putc(Value);
martin13 0:81cd913c5e43 1220 return GetAckResp();
martin13 0:81cd913c5e43 1221 }
martin13 0:81cd913c5e43 1222
martin13 0:81cd913c5e43 1223 word Diablo_Serial_4DLib::img_SetPosition(word Handle, word Index, word Xpos, word Ypos)
martin13 0:81cd913c5e43 1224 {
martin13 0:81cd913c5e43 1225 _virtualPort->putc(GFX_F_img_SetPosition >> 8);
martin13 0:81cd913c5e43 1226 _virtualPort->putc(GFX_F_img_SetPosition);
martin13 0:81cd913c5e43 1227 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1228 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1229 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1230 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1231 _virtualPort->putc(Xpos >> 8);
martin13 0:81cd913c5e43 1232 _virtualPort->putc(Xpos);
martin13 0:81cd913c5e43 1233 _virtualPort->putc(Ypos >> 8);
martin13 0:81cd913c5e43 1234 _virtualPort->putc(Ypos);
martin13 0:81cd913c5e43 1235 return GetAckResp();
martin13 0:81cd913c5e43 1236 }
martin13 0:81cd913c5e43 1237
martin13 0:81cd913c5e43 1238 word Diablo_Serial_4DLib::img_SetWord(word Handle, word Index, word Offset , word Word)
martin13 0:81cd913c5e43 1239 {
martin13 0:81cd913c5e43 1240 _virtualPort->putc(GFX_F_img_SetWord >> 8);
martin13 0:81cd913c5e43 1241 _virtualPort->putc(GFX_F_img_SetWord);
martin13 0:81cd913c5e43 1242 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1243 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1244 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1245 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1246 _virtualPort->putc(Offset >> 8);
martin13 0:81cd913c5e43 1247 _virtualPort->putc(Offset );
martin13 0:81cd913c5e43 1248 _virtualPort->putc(Word >> 8);
martin13 0:81cd913c5e43 1249 _virtualPort->putc(Word);
martin13 0:81cd913c5e43 1250 return GetAckResp();
martin13 0:81cd913c5e43 1251 }
martin13 0:81cd913c5e43 1252
martin13 0:81cd913c5e43 1253 word Diablo_Serial_4DLib::img_Show(word Handle, word Index)
martin13 0:81cd913c5e43 1254 {
martin13 0:81cd913c5e43 1255 _virtualPort->putc(GFX_F_img_Show >> 8);
martin13 0:81cd913c5e43 1256 _virtualPort->putc(GFX_F_img_Show);
martin13 0:81cd913c5e43 1257 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1258 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1259 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1260 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1261 return GetAckResp();
martin13 0:81cd913c5e43 1262 }
martin13 0:81cd913c5e43 1263
martin13 0:81cd913c5e43 1264 word Diablo_Serial_4DLib::img_Touched(word Handle, word Index)
martin13 0:81cd913c5e43 1265 {
martin13 0:81cd913c5e43 1266 _virtualPort->putc(GFX_F_img_Touched >> 8);
martin13 0:81cd913c5e43 1267 _virtualPort->putc(GFX_F_img_Touched);
martin13 0:81cd913c5e43 1268 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1269 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1270 _virtualPort->putc(Index >> 8);
martin13 0:81cd913c5e43 1271 _virtualPort->putc(Index);
martin13 0:81cd913c5e43 1272 return GetAckResp();
martin13 0:81cd913c5e43 1273 }
martin13 0:81cd913c5e43 1274
martin13 0:81cd913c5e43 1275 word Diablo_Serial_4DLib::media_Flush()
martin13 0:81cd913c5e43 1276 {
martin13 0:81cd913c5e43 1277 _virtualPort->putc(GFX_F_media_Flush >> 8);
martin13 0:81cd913c5e43 1278 _virtualPort->putc(GFX_F_media_Flush);
martin13 0:81cd913c5e43 1279 return GetAckResp();
martin13 0:81cd913c5e43 1280 }
martin13 0:81cd913c5e43 1281
martin13 0:81cd913c5e43 1282 void Diablo_Serial_4DLib::media_Image(word X, word Y)
martin13 0:81cd913c5e43 1283 {
martin13 0:81cd913c5e43 1284 _virtualPort->putc(GFX_F_media_Image >> 8);
martin13 0:81cd913c5e43 1285 _virtualPort->putc(GFX_F_media_Image);
martin13 0:81cd913c5e43 1286 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 1287 _virtualPort->putc(X);
martin13 0:81cd913c5e43 1288 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 1289 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 1290 GetAck();
martin13 0:81cd913c5e43 1291 }
martin13 0:81cd913c5e43 1292
martin13 0:81cd913c5e43 1293 word Diablo_Serial_4DLib::media_Init()
martin13 0:81cd913c5e43 1294 {
martin13 0:81cd913c5e43 1295 _virtualPort->putc(GFX_F_media_Init >> 8);
martin13 0:81cd913c5e43 1296 _virtualPort->putc(GFX_F_media_Init);
martin13 0:81cd913c5e43 1297 return GetAckResp();
martin13 0:81cd913c5e43 1298 }
martin13 0:81cd913c5e43 1299
martin13 0:81cd913c5e43 1300 word Diablo_Serial_4DLib::media_RdSector(GFX_t4DSector SectorIn)
martin13 0:81cd913c5e43 1301 {
martin13 0:81cd913c5e43 1302 _virtualPort->putc(GFX_F_media_RdSector >> 8);
martin13 0:81cd913c5e43 1303 _virtualPort->putc(GFX_F_media_RdSector);
martin13 0:81cd913c5e43 1304 return GetAckResSector(SectorIn);
martin13 0:81cd913c5e43 1305 }
martin13 0:81cd913c5e43 1306
martin13 0:81cd913c5e43 1307 word Diablo_Serial_4DLib::media_ReadByte()
martin13 0:81cd913c5e43 1308 {
martin13 0:81cd913c5e43 1309 _virtualPort->putc(GFX_F_media_ReadByte >> 8);
martin13 0:81cd913c5e43 1310 _virtualPort->putc(GFX_F_media_ReadByte);
martin13 0:81cd913c5e43 1311 return GetAckResp();
martin13 0:81cd913c5e43 1312 }
martin13 0:81cd913c5e43 1313
martin13 0:81cd913c5e43 1314 word Diablo_Serial_4DLib::media_ReadWord()
martin13 0:81cd913c5e43 1315 {
martin13 0:81cd913c5e43 1316 _virtualPort->putc(GFX_F_media_ReadWord >> 8);
martin13 0:81cd913c5e43 1317 _virtualPort->putc(GFX_F_media_ReadWord);
martin13 0:81cd913c5e43 1318 return GetAckResp();
martin13 0:81cd913c5e43 1319 }
martin13 0:81cd913c5e43 1320
martin13 0:81cd913c5e43 1321 void Diablo_Serial_4DLib::media_SetAdd(word HiWord, word LoWord)
martin13 0:81cd913c5e43 1322 {
martin13 0:81cd913c5e43 1323 _virtualPort->putc(GFX_F_media_SetAdd >> 8);
martin13 0:81cd913c5e43 1324 _virtualPort->putc(GFX_F_media_SetAdd);
martin13 0:81cd913c5e43 1325 _virtualPort->putc(HiWord >> 8);
martin13 0:81cd913c5e43 1326 _virtualPort->putc(HiWord);
martin13 0:81cd913c5e43 1327 _virtualPort->putc(LoWord >> 8);
martin13 0:81cd913c5e43 1328 _virtualPort->putc(LoWord);
martin13 0:81cd913c5e43 1329 GetAck();
martin13 0:81cd913c5e43 1330 }
martin13 0:81cd913c5e43 1331
martin13 0:81cd913c5e43 1332 void Diablo_Serial_4DLib::media_SetSector(word HiWord, word LoWord)
martin13 0:81cd913c5e43 1333 {
martin13 0:81cd913c5e43 1334 _virtualPort->putc(GFX_F_media_SetSector >> 8);
martin13 0:81cd913c5e43 1335 _virtualPort->putc(GFX_F_media_SetSector);
martin13 0:81cd913c5e43 1336 _virtualPort->putc(HiWord >> 8);
martin13 0:81cd913c5e43 1337 _virtualPort->putc(HiWord);
martin13 0:81cd913c5e43 1338 _virtualPort->putc(LoWord >> 8);
martin13 0:81cd913c5e43 1339 _virtualPort->putc(LoWord);
martin13 0:81cd913c5e43 1340 GetAck();
martin13 0:81cd913c5e43 1341 }
martin13 0:81cd913c5e43 1342
martin13 0:81cd913c5e43 1343 void Diablo_Serial_4DLib::media_Video(word X, word Y)
martin13 0:81cd913c5e43 1344 {
martin13 0:81cd913c5e43 1345 _virtualPort->putc(GFX_F_media_Video >> 8);
martin13 0:81cd913c5e43 1346 _virtualPort->putc(GFX_F_media_Video);
martin13 0:81cd913c5e43 1347 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 1348 _virtualPort->putc(X);
martin13 0:81cd913c5e43 1349 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 1350 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 1351 GetAck();
martin13 0:81cd913c5e43 1352 }
martin13 0:81cd913c5e43 1353
martin13 0:81cd913c5e43 1354 void Diablo_Serial_4DLib::media_VideoFrame(word X, word Y, word Framenumber)
martin13 0:81cd913c5e43 1355 {
martin13 0:81cd913c5e43 1356 _virtualPort->putc(GFX_F_media_VideoFrame >> 8);
martin13 0:81cd913c5e43 1357 _virtualPort->putc(GFX_F_media_VideoFrame);
martin13 0:81cd913c5e43 1358 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 1359 _virtualPort->putc(X);
martin13 0:81cd913c5e43 1360 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 1361 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 1362 _virtualPort->putc(Framenumber >> 8);
martin13 0:81cd913c5e43 1363 _virtualPort->putc(Framenumber);
martin13 0:81cd913c5e43 1364 GetAck();
martin13 0:81cd913c5e43 1365 }
martin13 0:81cd913c5e43 1366
martin13 0:81cd913c5e43 1367 word Diablo_Serial_4DLib::media_WriteByte(word Byte)
martin13 0:81cd913c5e43 1368 {
martin13 0:81cd913c5e43 1369 _virtualPort->putc(GFX_F_media_WriteByte >> 8);
martin13 0:81cd913c5e43 1370 _virtualPort->putc(GFX_F_media_WriteByte);
martin13 0:81cd913c5e43 1371 _virtualPort->putc(Byte >> 8);
martin13 0:81cd913c5e43 1372 _virtualPort->putc(Byte);
martin13 0:81cd913c5e43 1373 return GetAckResp();
martin13 0:81cd913c5e43 1374 }
martin13 0:81cd913c5e43 1375
martin13 0:81cd913c5e43 1376 word Diablo_Serial_4DLib::media_WriteWord(word Word)
martin13 0:81cd913c5e43 1377 {
martin13 0:81cd913c5e43 1378 _virtualPort->putc(GFX_F_media_WriteWord >> 8);
martin13 0:81cd913c5e43 1379 _virtualPort->putc(GFX_F_media_WriteWord);
martin13 0:81cd913c5e43 1380 _virtualPort->putc(Word >> 8);
martin13 0:81cd913c5e43 1381 _virtualPort->putc(Word);
martin13 0:81cd913c5e43 1382 return GetAckResp();
martin13 0:81cd913c5e43 1383 }
martin13 0:81cd913c5e43 1384
martin13 0:81cd913c5e43 1385 word Diablo_Serial_4DLib::media_WrSector(GFX_t4DSector SectorOut)
martin13 0:81cd913c5e43 1386 {
martin13 0:81cd913c5e43 1387 _virtualPort->putc(GFX_F_media_WrSector >> 8);
martin13 0:81cd913c5e43 1388 _virtualPort->putc(GFX_F_media_WrSector);
martin13 0:81cd913c5e43 1389 WriteBytes(SectorOut, 512);
martin13 0:81cd913c5e43 1390 return GetAckResp();
martin13 0:81cd913c5e43 1391 }
martin13 0:81cd913c5e43 1392
martin13 0:81cd913c5e43 1393 word Diablo_Serial_4DLib::mem_Free(word Handle)
martin13 0:81cd913c5e43 1394 {
martin13 0:81cd913c5e43 1395 _virtualPort->putc(GFX_F_mem_Free >> 8);
martin13 0:81cd913c5e43 1396 _virtualPort->putc(GFX_F_mem_Free);
martin13 0:81cd913c5e43 1397 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1398 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1399 return GetAckResp();
martin13 0:81cd913c5e43 1400 }
martin13 0:81cd913c5e43 1401
martin13 0:81cd913c5e43 1402 word Diablo_Serial_4DLib::mem_Heap()
martin13 0:81cd913c5e43 1403 {
martin13 0:81cd913c5e43 1404 _virtualPort->putc(GFX_F_mem_Heap >> 8);
martin13 0:81cd913c5e43 1405 _virtualPort->putc(GFX_F_mem_Heap);
martin13 0:81cd913c5e43 1406 return GetAckResp();
martin13 0:81cd913c5e43 1407 }
martin13 0:81cd913c5e43 1408
martin13 0:81cd913c5e43 1409 word Diablo_Serial_4DLib::peekM(word Address)
martin13 0:81cd913c5e43 1410 {
martin13 0:81cd913c5e43 1411 _virtualPort->putc(GFX_F_peekM >> 8);
martin13 0:81cd913c5e43 1412 _virtualPort->putc(GFX_F_peekM);
martin13 0:81cd913c5e43 1413 _virtualPort->putc(Address >> 8);
martin13 0:81cd913c5e43 1414 _virtualPort->putc(Address);
martin13 0:81cd913c5e43 1415 return GetAckResp() ;
martin13 0:81cd913c5e43 1416 }
martin13 0:81cd913c5e43 1417
martin13 0:81cd913c5e43 1418 word Diablo_Serial_4DLib::pin_HI(word Pin)
martin13 0:81cd913c5e43 1419 {
martin13 0:81cd913c5e43 1420 _virtualPort->putc(GFX_F_pin_HI >> 8);
martin13 0:81cd913c5e43 1421 _virtualPort->putc(GFX_F_pin_HI);
martin13 0:81cd913c5e43 1422 _virtualPort->putc(Pin >> 8);
martin13 0:81cd913c5e43 1423 _virtualPort->putc(Pin);
martin13 0:81cd913c5e43 1424 return GetAckResp() ;
martin13 0:81cd913c5e43 1425 }
martin13 0:81cd913c5e43 1426
martin13 0:81cd913c5e43 1427 word Diablo_Serial_4DLib::pin_LO(word Pin)
martin13 0:81cd913c5e43 1428 {
martin13 0:81cd913c5e43 1429 _virtualPort->putc(GFX_F_pin_LO >> 8);
martin13 0:81cd913c5e43 1430 _virtualPort->putc(GFX_F_pin_LO);
martin13 0:81cd913c5e43 1431 _virtualPort->putc(Pin >> 8);
martin13 0:81cd913c5e43 1432 _virtualPort->putc(Pin);
martin13 0:81cd913c5e43 1433 return GetAckResp() ;
martin13 0:81cd913c5e43 1434 }
martin13 0:81cd913c5e43 1435
martin13 0:81cd913c5e43 1436 word Diablo_Serial_4DLib::pin_Read(word Pin)
martin13 0:81cd913c5e43 1437 {
martin13 0:81cd913c5e43 1438 _virtualPort->putc(GFX_F_pin_Read >> 8);
martin13 0:81cd913c5e43 1439 _virtualPort->putc(GFX_F_pin_Read);
martin13 0:81cd913c5e43 1440 _virtualPort->putc(Pin >> 8);
martin13 0:81cd913c5e43 1441 _virtualPort->putc(Pin);
martin13 0:81cd913c5e43 1442 return GetAckResp() ;
martin13 0:81cd913c5e43 1443 }
martin13 0:81cd913c5e43 1444
martin13 0:81cd913c5e43 1445 word Diablo_Serial_4DLib::pin_Set(word Mode, word Pin)
martin13 0:81cd913c5e43 1446 {
martin13 0:81cd913c5e43 1447 _virtualPort->putc(GFX_F_pin_Set >> 8);
martin13 0:81cd913c5e43 1448 _virtualPort->putc(GFX_F_pin_Set);
martin13 0:81cd913c5e43 1449 _virtualPort->putc(Mode >> 8);
martin13 0:81cd913c5e43 1450 _virtualPort->putc(Mode);
martin13 0:81cd913c5e43 1451 _virtualPort->putc(Pin >> 8);
martin13 0:81cd913c5e43 1452 _virtualPort->putc(Pin);
martin13 0:81cd913c5e43 1453 return GetAckResp() ;
martin13 0:81cd913c5e43 1454 }
martin13 0:81cd913c5e43 1455
martin13 0:81cd913c5e43 1456 void Diablo_Serial_4DLib::pokeM(word Address, word WordValue)
martin13 0:81cd913c5e43 1457 {
martin13 0:81cd913c5e43 1458 _virtualPort->putc(GFX_F_pokeM >> 8);
martin13 0:81cd913c5e43 1459 _virtualPort->putc(GFX_F_pokeM);
martin13 0:81cd913c5e43 1460 _virtualPort->putc(Address >> 8);
martin13 0:81cd913c5e43 1461 _virtualPort->putc(Address);
martin13 0:81cd913c5e43 1462 _virtualPort->putc(WordValue >> 8);
martin13 0:81cd913c5e43 1463 _virtualPort->putc(WordValue);
martin13 0:81cd913c5e43 1464 GetAck() ;
martin13 0:81cd913c5e43 1465 }
martin13 0:81cd913c5e43 1466
martin13 0:81cd913c5e43 1467 void Diablo_Serial_4DLib::putCH(word WordChar)
martin13 0:81cd913c5e43 1468 {
martin13 0:81cd913c5e43 1469 _virtualPort->putc(GFX_F_putCH >> 8);
martin13 0:81cd913c5e43 1470 _virtualPort->putc(GFX_F_putCH);
martin13 0:81cd913c5e43 1471 _virtualPort->putc(WordChar >> 8);
martin13 0:81cd913c5e43 1472 _virtualPort->putc(WordChar);
martin13 0:81cd913c5e43 1473 GetAck() ;
martin13 0:81cd913c5e43 1474 }
martin13 0:81cd913c5e43 1475
martin13 0:81cd913c5e43 1476 word Diablo_Serial_4DLib::putstr(char * InString)
martin13 0:81cd913c5e43 1477 {
martin13 0:81cd913c5e43 1478 _virtualPort->putc(GFX_F_putstr >> 8);
martin13 0:81cd913c5e43 1479 _virtualPort->putc(GFX_F_putstr);
martin13 0:81cd913c5e43 1480 WriteChars(InString);
martin13 0:81cd913c5e43 1481 return GetAckResp();
martin13 0:81cd913c5e43 1482 }
martin13 0:81cd913c5e43 1483
martin13 0:81cd913c5e43 1484 //-----------------print----------------------------------
martin13 0:81cd913c5e43 1485
martin13 0:81cd913c5e43 1486 void Diablo_Serial_4DLib::print(const string &s)
martin13 0:81cd913c5e43 1487 {
martin13 0:81cd913c5e43 1488 int len = s.length();
martin13 0:81cd913c5e43 1489 //char arr[len + 1];
martin13 0:81cd913c5e43 1490 //s.toCharArray(arr,len + 1);
martin13 0:81cd913c5e43 1491 //putstr(arr);
martin13 0:81cd913c5e43 1492 for(int x=0; x<len; x++)
martin13 0:81cd913c5e43 1493 {
martin13 0:81cd913c5e43 1494 putCH(s[x]);
martin13 0:81cd913c5e43 1495 }
martin13 0:81cd913c5e43 1496 }
martin13 0:81cd913c5e43 1497
martin13 0:81cd913c5e43 1498 void Diablo_Serial_4DLib::print(const char str[])
martin13 0:81cd913c5e43 1499 {
martin13 0:81cd913c5e43 1500 int len = strlen(str);
martin13 0:81cd913c5e43 1501 for(int x = 0; x<len; x++)
martin13 0:81cd913c5e43 1502 {
martin13 0:81cd913c5e43 1503 putCH(str[x]);
martin13 0:81cd913c5e43 1504 }
martin13 0:81cd913c5e43 1505 }
martin13 0:81cd913c5e43 1506
martin13 0:81cd913c5e43 1507 void Diablo_Serial_4DLib::print(char c)
martin13 0:81cd913c5e43 1508 {
martin13 0:81cd913c5e43 1509 putCH(c);
martin13 0:81cd913c5e43 1510 }
martin13 0:81cd913c5e43 1511
martin13 0:81cd913c5e43 1512 void Diablo_Serial_4DLib::print(unsigned char b, int base)
martin13 0:81cd913c5e43 1513 {
martin13 0:81cd913c5e43 1514 print((unsigned long) b, base);
martin13 0:81cd913c5e43 1515 }
martin13 0:81cd913c5e43 1516
martin13 0:81cd913c5e43 1517 void Diablo_Serial_4DLib::print(int n, int base)
martin13 0:81cd913c5e43 1518 {
martin13 0:81cd913c5e43 1519 print((long) n, base);
martin13 0:81cd913c5e43 1520 }
martin13 0:81cd913c5e43 1521
martin13 0:81cd913c5e43 1522 void Diablo_Serial_4DLib::print(unsigned int n, int base)
martin13 0:81cd913c5e43 1523 {
martin13 0:81cd913c5e43 1524 print((unsigned long) n, base);
martin13 0:81cd913c5e43 1525 }
martin13 0:81cd913c5e43 1526
martin13 0:81cd913c5e43 1527 void Diablo_Serial_4DLib::print(long n, int base)
martin13 0:81cd913c5e43 1528 {
martin13 0:81cd913c5e43 1529
martin13 0:81cd913c5e43 1530 if (base == 10)
martin13 0:81cd913c5e43 1531 {
martin13 0:81cd913c5e43 1532 if (n < 0)
martin13 0:81cd913c5e43 1533 {
martin13 0:81cd913c5e43 1534 //int t = print('-');
martin13 0:81cd913c5e43 1535 putCH('-');
martin13 0:81cd913c5e43 1536 n = -n;
martin13 0:81cd913c5e43 1537 printNumber(n, 10);
martin13 0:81cd913c5e43 1538 }
martin13 0:81cd913c5e43 1539 else
martin13 0:81cd913c5e43 1540 {
martin13 0:81cd913c5e43 1541 printNumber(n, 10);
martin13 0:81cd913c5e43 1542 }
martin13 0:81cd913c5e43 1543 }
martin13 0:81cd913c5e43 1544 else
martin13 0:81cd913c5e43 1545 {
martin13 0:81cd913c5e43 1546 printNumber(n, base);
martin13 0:81cd913c5e43 1547 }
martin13 0:81cd913c5e43 1548
martin13 0:81cd913c5e43 1549 }
martin13 0:81cd913c5e43 1550
martin13 0:81cd913c5e43 1551 void Diablo_Serial_4DLib::print(unsigned long n, int base)
martin13 0:81cd913c5e43 1552 {
martin13 0:81cd913c5e43 1553 printNumber(n, base);
martin13 0:81cd913c5e43 1554 }
martin13 0:81cd913c5e43 1555
martin13 0:81cd913c5e43 1556 void Diablo_Serial_4DLib::print(double n, int digits)
martin13 0:81cd913c5e43 1557 {
martin13 0:81cd913c5e43 1558 printFloat(n, digits);
martin13 0:81cd913c5e43 1559 }
martin13 0:81cd913c5e43 1560
martin13 0:81cd913c5e43 1561
martin13 0:81cd913c5e43 1562 //println
martin13 0:81cd913c5e43 1563 /*
martin13 0:81cd913c5e43 1564 void Diablo_Serial_4DLib::println(const __FlashStringHelper *ifsh)
martin13 0:81cd913c5e43 1565 {
martin13 0:81cd913c5e43 1566 print(ifsh);
martin13 0:81cd913c5e43 1567 putCH('\n');
martin13 0:81cd913c5e43 1568 putCH('\r');
martin13 0:81cd913c5e43 1569 }
martin13 0:81cd913c5e43 1570 */
martin13 0:81cd913c5e43 1571 void Diablo_Serial_4DLib::println(const string &s)
martin13 0:81cd913c5e43 1572 {
martin13 0:81cd913c5e43 1573 print(s);
martin13 0:81cd913c5e43 1574 putCH('\n');
martin13 0:81cd913c5e43 1575 putCH('\r');
martin13 0:81cd913c5e43 1576 }
martin13 0:81cd913c5e43 1577
martin13 0:81cd913c5e43 1578 void Diablo_Serial_4DLib::println(const char c[])
martin13 0:81cd913c5e43 1579 {
martin13 0:81cd913c5e43 1580 print(c);
martin13 0:81cd913c5e43 1581 putCH('\n');
martin13 0:81cd913c5e43 1582 putCH('\r');
martin13 0:81cd913c5e43 1583 }
martin13 0:81cd913c5e43 1584
martin13 0:81cd913c5e43 1585 void Diablo_Serial_4DLib::println(char c)
martin13 0:81cd913c5e43 1586 {
martin13 0:81cd913c5e43 1587 // print(string(c);
martin13 0:81cd913c5e43 1588 putCH('\n');
martin13 0:81cd913c5e43 1589 putCH('\r');
martin13 0:81cd913c5e43 1590 }
martin13 0:81cd913c5e43 1591
martin13 0:81cd913c5e43 1592 void Diablo_Serial_4DLib::println(unsigned char b, int base)
martin13 0:81cd913c5e43 1593 {
martin13 0:81cd913c5e43 1594 print((unsigned char)b, base);
martin13 0:81cd913c5e43 1595 putCH('\n');
martin13 0:81cd913c5e43 1596 putCH('\r');
martin13 0:81cd913c5e43 1597 }
martin13 0:81cd913c5e43 1598
martin13 0:81cd913c5e43 1599 void Diablo_Serial_4DLib::println(int num, int base)
martin13 0:81cd913c5e43 1600 {
martin13 0:81cd913c5e43 1601 print((int)num, base);
martin13 0:81cd913c5e43 1602 putCH('\n');
martin13 0:81cd913c5e43 1603 putCH('\r');
martin13 0:81cd913c5e43 1604 }
martin13 0:81cd913c5e43 1605
martin13 0:81cd913c5e43 1606 void Diablo_Serial_4DLib::println(unsigned int num, int base)
martin13 0:81cd913c5e43 1607 {
martin13 0:81cd913c5e43 1608 print((unsigned int)num, base);
martin13 0:81cd913c5e43 1609 putCH('\n');
martin13 0:81cd913c5e43 1610 putCH('\r');
martin13 0:81cd913c5e43 1611 }
martin13 0:81cd913c5e43 1612
martin13 0:81cd913c5e43 1613 void Diablo_Serial_4DLib::println(long num, int base)
martin13 0:81cd913c5e43 1614 {
martin13 0:81cd913c5e43 1615 print((long)num, base);
martin13 0:81cd913c5e43 1616 putCH('\n');
martin13 0:81cd913c5e43 1617 putCH('\r');
martin13 0:81cd913c5e43 1618 }
martin13 0:81cd913c5e43 1619
martin13 0:81cd913c5e43 1620 void Diablo_Serial_4DLib::println(unsigned long num, int base)
martin13 0:81cd913c5e43 1621 {
martin13 0:81cd913c5e43 1622 print((unsigned long)num, base);
martin13 0:81cd913c5e43 1623 putCH('\n');
martin13 0:81cd913c5e43 1624 putCH('\r');
martin13 0:81cd913c5e43 1625 }
martin13 0:81cd913c5e43 1626
martin13 0:81cd913c5e43 1627 void Diablo_Serial_4DLib::println(double num, int digits)
martin13 0:81cd913c5e43 1628 {
martin13 0:81cd913c5e43 1629 print((double)num, digits);
martin13 0:81cd913c5e43 1630 putCH('\n');
martin13 0:81cd913c5e43 1631 putCH('\r');
martin13 0:81cd913c5e43 1632 }
martin13 0:81cd913c5e43 1633
martin13 0:81cd913c5e43 1634
martin13 0:81cd913c5e43 1635 //-Private:
martin13 0:81cd913c5e43 1636
martin13 0:81cd913c5e43 1637 void Diablo_Serial_4DLib::printNumber(unsigned long n, uint8_t base) {
martin13 0:81cd913c5e43 1638 char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte.
martin13 0:81cd913c5e43 1639 int count = 0;
martin13 0:81cd913c5e43 1640 do {
martin13 0:81cd913c5e43 1641 unsigned long m = n;
martin13 0:81cd913c5e43 1642 n /= base;
martin13 0:81cd913c5e43 1643 char c = m - base * n;
martin13 0:81cd913c5e43 1644 buf[count] = c < 10 ? c + '0' : c + 'A' - 10;
martin13 0:81cd913c5e43 1645 count++;
martin13 0:81cd913c5e43 1646 } while(n);
martin13 0:81cd913c5e43 1647
martin13 0:81cd913c5e43 1648 for(int x = count - 1; x>=0; x--)
martin13 0:81cd913c5e43 1649 {
martin13 0:81cd913c5e43 1650 putCH(buf[x]);
martin13 0:81cd913c5e43 1651 }
martin13 0:81cd913c5e43 1652 }
martin13 0:81cd913c5e43 1653
martin13 0:81cd913c5e43 1654 void Diablo_Serial_4DLib::printFloat(double number, uint8_t digits)
martin13 0:81cd913c5e43 1655 {
martin13 0:81cd913c5e43 1656 //size_t n = 0;
martin13 0:81cd913c5e43 1657 if (isnan(number)) print("nan");
martin13 0:81cd913c5e43 1658 else if (isinf(number)) print("inf");
martin13 0:81cd913c5e43 1659 else if (number > 4294967040.0) print ("ovf"); // constant determined empirically
martin13 0:81cd913c5e43 1660 else if (number <-4294967040.0) print ("ovf"); // constant determined empirically
martin13 0:81cd913c5e43 1661 else{
martin13 0:81cd913c5e43 1662 // Handle negative numbers
martin13 0:81cd913c5e43 1663 if (number < 0.0)
martin13 0:81cd913c5e43 1664 {
martin13 0:81cd913c5e43 1665 putCH('-');
martin13 0:81cd913c5e43 1666 number = -number;
martin13 0:81cd913c5e43 1667 }
martin13 0:81cd913c5e43 1668
martin13 0:81cd913c5e43 1669 // Round correctly so that print(1.999, 2) prints as "2.00"
martin13 0:81cd913c5e43 1670 double rounding = 0.5;
martin13 0:81cd913c5e43 1671 for (uint8_t i=0; i<digits; ++i)
martin13 0:81cd913c5e43 1672 rounding /= 10.0;
martin13 0:81cd913c5e43 1673
martin13 0:81cd913c5e43 1674 number += rounding;
martin13 0:81cd913c5e43 1675
martin13 0:81cd913c5e43 1676 // Extract the integer part of the number and print it
martin13 0:81cd913c5e43 1677 unsigned long int_part = (unsigned long)number;
martin13 0:81cd913c5e43 1678 double remainder = number - (double)int_part;
martin13 0:81cd913c5e43 1679 //print((unsigned long)int_part);
martin13 0:81cd913c5e43 1680 printNumber(int_part, 10);
martin13 0:81cd913c5e43 1681
martin13 0:81cd913c5e43 1682 // Print the decimal point, but only if there are digits beyond
martin13 0:81cd913c5e43 1683 if (digits > 0) {
martin13 0:81cd913c5e43 1684 putCH('.');
martin13 0:81cd913c5e43 1685 }
martin13 0:81cd913c5e43 1686
martin13 0:81cd913c5e43 1687 // Extract digits from the remainder one at a time
martin13 0:81cd913c5e43 1688 while (digits-- > 0)
martin13 0:81cd913c5e43 1689 {
martin13 0:81cd913c5e43 1690 remainder *= 10.0;
martin13 0:81cd913c5e43 1691 int toPrint = int(remainder);
martin13 0:81cd913c5e43 1692 printNumber((unsigned long)toPrint, 10);
martin13 0:81cd913c5e43 1693 remainder -= toPrint;
martin13 0:81cd913c5e43 1694 }
martin13 0:81cd913c5e43 1695 }
martin13 0:81cd913c5e43 1696 }
martin13 0:81cd913c5e43 1697
martin13 0:81cd913c5e43 1698
martin13 0:81cd913c5e43 1699 //--------------------------------------------------------
martin13 0:81cd913c5e43 1700
martin13 0:81cd913c5e43 1701 void Diablo_Serial_4DLib::snd_BufSize(word Bufsize)
martin13 0:81cd913c5e43 1702 {
martin13 0:81cd913c5e43 1703 _virtualPort->putc(GFX_F_snd_BufSize >> 8);
martin13 0:81cd913c5e43 1704 _virtualPort->putc(GFX_F_snd_BufSize);
martin13 0:81cd913c5e43 1705 _virtualPort->putc(Bufsize >> 8);
martin13 0:81cd913c5e43 1706 _virtualPort->putc(Bufsize);
martin13 0:81cd913c5e43 1707 GetAck();
martin13 0:81cd913c5e43 1708 }
martin13 0:81cd913c5e43 1709
martin13 0:81cd913c5e43 1710 void Diablo_Serial_4DLib::snd_Continue()
martin13 0:81cd913c5e43 1711 {
martin13 0:81cd913c5e43 1712 _virtualPort->putc(GFX_F_snd_Continue >> 8);
martin13 0:81cd913c5e43 1713 _virtualPort->putc(GFX_F_snd_Continue);
martin13 0:81cd913c5e43 1714 GetAck();
martin13 0:81cd913c5e43 1715 }
martin13 0:81cd913c5e43 1716
martin13 0:81cd913c5e43 1717 void Diablo_Serial_4DLib::snd_Pause()
martin13 0:81cd913c5e43 1718 {
martin13 0:81cd913c5e43 1719 _virtualPort->putc(GFX_F_snd_Pause >> 8);
martin13 0:81cd913c5e43 1720 _virtualPort->putc(GFX_F_snd_Pause);
martin13 0:81cd913c5e43 1721 GetAck();
martin13 0:81cd913c5e43 1722 }
martin13 0:81cd913c5e43 1723
martin13 0:81cd913c5e43 1724 word Diablo_Serial_4DLib::snd_Pitch(word Pitch)
martin13 0:81cd913c5e43 1725 {
martin13 0:81cd913c5e43 1726 _virtualPort->putc(GFX_F_snd_Pitch >> 8);
martin13 0:81cd913c5e43 1727 _virtualPort->putc(GFX_F_snd_Pitch);
martin13 0:81cd913c5e43 1728 _virtualPort->putc(Pitch >> 8);
martin13 0:81cd913c5e43 1729 _virtualPort->putc(Pitch);
martin13 0:81cd913c5e43 1730 return GetAckResp();
martin13 0:81cd913c5e43 1731 }
martin13 0:81cd913c5e43 1732
martin13 0:81cd913c5e43 1733 word Diablo_Serial_4DLib::snd_Playing()
martin13 0:81cd913c5e43 1734 {
martin13 0:81cd913c5e43 1735 _virtualPort->putc(GFX_F_snd_Playing >> 8);
martin13 0:81cd913c5e43 1736 _virtualPort->putc(GFX_F_snd_Playing);
martin13 0:81cd913c5e43 1737 return GetAckResp();
martin13 0:81cd913c5e43 1738 }
martin13 0:81cd913c5e43 1739
martin13 0:81cd913c5e43 1740 void Diablo_Serial_4DLib::snd_Stop()
martin13 0:81cd913c5e43 1741 {
martin13 0:81cd913c5e43 1742 _virtualPort->putc(GFX_F_snd_Stop >> 8);
martin13 0:81cd913c5e43 1743 _virtualPort->putc(GFX_F_snd_Stop);
martin13 0:81cd913c5e43 1744 GetAck();
martin13 0:81cd913c5e43 1745 }
martin13 0:81cd913c5e43 1746
martin13 0:81cd913c5e43 1747 void Diablo_Serial_4DLib::snd_Volume(word Volume)
martin13 0:81cd913c5e43 1748 {
martin13 0:81cd913c5e43 1749 _virtualPort->putc(GFX_F_snd_Volume >> 8);
martin13 0:81cd913c5e43 1750 _virtualPort->putc(GFX_F_snd_Volume);
martin13 0:81cd913c5e43 1751 _virtualPort->putc(Volume >> 8);
martin13 0:81cd913c5e43 1752 _virtualPort->putc(Volume);
martin13 0:81cd913c5e43 1753 GetAck();
martin13 0:81cd913c5e43 1754 }
martin13 0:81cd913c5e43 1755
martin13 0:81cd913c5e43 1756 word Diablo_Serial_4DLib::sys_Sleep(word Units)
martin13 0:81cd913c5e43 1757 {
martin13 0:81cd913c5e43 1758 _virtualPort->putc(GFX_F_sys_Sleep >> 8);
martin13 0:81cd913c5e43 1759 _virtualPort->putc(GFX_F_sys_Sleep);
martin13 0:81cd913c5e43 1760 _virtualPort->putc(Units >> 8);
martin13 0:81cd913c5e43 1761 _virtualPort->putc(Units);
martin13 0:81cd913c5e43 1762 return GetAckResp();
martin13 0:81cd913c5e43 1763 }
martin13 0:81cd913c5e43 1764
martin13 0:81cd913c5e43 1765 void Diablo_Serial_4DLib::touch_DetectRegion(word X1, word Y1, word X2, word Y2)
martin13 0:81cd913c5e43 1766 {
martin13 0:81cd913c5e43 1767 _virtualPort->putc(GFX_F_touch_DetectRegion >> 8);
martin13 0:81cd913c5e43 1768 _virtualPort->putc(GFX_F_touch_DetectRegion);
martin13 0:81cd913c5e43 1769 _virtualPort->putc(X1 >> 8);
martin13 0:81cd913c5e43 1770 _virtualPort->putc(X1);
martin13 0:81cd913c5e43 1771 _virtualPort->putc(Y1 >> 8);
martin13 0:81cd913c5e43 1772 _virtualPort->putc(Y1);
martin13 0:81cd913c5e43 1773 _virtualPort->putc(X2 >> 8);
martin13 0:81cd913c5e43 1774 _virtualPort->putc(X2);
martin13 0:81cd913c5e43 1775 _virtualPort->putc(Y2 >> 8);
martin13 0:81cd913c5e43 1776 _virtualPort->putc(Y2);
martin13 0:81cd913c5e43 1777 GetAck();
martin13 0:81cd913c5e43 1778 }
martin13 0:81cd913c5e43 1779
martin13 0:81cd913c5e43 1780 word Diablo_Serial_4DLib::touch_Get(word Mode)
martin13 0:81cd913c5e43 1781 {
martin13 0:81cd913c5e43 1782 _virtualPort->putc(GFX_F_touch_Get >> 8);
martin13 0:81cd913c5e43 1783 _virtualPort->putc(GFX_F_touch_Get);
martin13 0:81cd913c5e43 1784 _virtualPort->putc(Mode >> 8);
martin13 0:81cd913c5e43 1785 _virtualPort->putc(Mode);
martin13 0:81cd913c5e43 1786 return GetAckResp();
martin13 0:81cd913c5e43 1787 }
martin13 0:81cd913c5e43 1788
martin13 0:81cd913c5e43 1789 void Diablo_Serial_4DLib::touch_Set(word Mode)
martin13 0:81cd913c5e43 1790 {
martin13 0:81cd913c5e43 1791 _virtualPort->putc(GFX_F_touch_Set >> 8);
martin13 0:81cd913c5e43 1792 _virtualPort->putc(GFX_F_touch_Set);
martin13 0:81cd913c5e43 1793 _virtualPort->putc(Mode >> 8);
martin13 0:81cd913c5e43 1794 _virtualPort->putc(Mode);
martin13 0:81cd913c5e43 1795 GetAck();
martin13 0:81cd913c5e43 1796 }
martin13 0:81cd913c5e43 1797
martin13 0:81cd913c5e43 1798 word Diablo_Serial_4DLib::txt_Attributes(word Attribs)
martin13 0:81cd913c5e43 1799 {
martin13 0:81cd913c5e43 1800 _virtualPort->putc(GFX_F_txt_Attributes >> 8);
martin13 0:81cd913c5e43 1801 _virtualPort->putc(GFX_F_txt_Attributes);
martin13 0:81cd913c5e43 1802 _virtualPort->putc(Attribs >> 8);
martin13 0:81cd913c5e43 1803 _virtualPort->putc(Attribs);
martin13 0:81cd913c5e43 1804 return GetAckResp();
martin13 0:81cd913c5e43 1805 }
martin13 0:81cd913c5e43 1806
martin13 0:81cd913c5e43 1807 word Diablo_Serial_4DLib::txt_BGcolour(word Color)
martin13 0:81cd913c5e43 1808 {
martin13 0:81cd913c5e43 1809 _virtualPort->putc(GFX_F_txt_BGcolour >> 8);
martin13 0:81cd913c5e43 1810 _virtualPort->putc(GFX_F_txt_BGcolour);
martin13 0:81cd913c5e43 1811 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 1812 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 1813 return GetAckResp();
martin13 0:81cd913c5e43 1814 }
martin13 0:81cd913c5e43 1815
martin13 0:81cd913c5e43 1816 word Diablo_Serial_4DLib::txt_Bold(word Bold)
martin13 0:81cd913c5e43 1817 {
martin13 0:81cd913c5e43 1818 _virtualPort->putc(GFX_F_txt_Bold >> 8);
martin13 0:81cd913c5e43 1819 _virtualPort->putc(GFX_F_txt_Bold);
martin13 0:81cd913c5e43 1820 _virtualPort->putc(Bold >> 8);
martin13 0:81cd913c5e43 1821 _virtualPort->putc(Bold);
martin13 0:81cd913c5e43 1822 return GetAckResp();
martin13 0:81cd913c5e43 1823 }
martin13 0:81cd913c5e43 1824
martin13 0:81cd913c5e43 1825 word Diablo_Serial_4DLib::txt_FGcolour(word Color)
martin13 0:81cd913c5e43 1826 {
martin13 0:81cd913c5e43 1827 _virtualPort->putc(GFX_F_txt_FGcolour >> 8);
martin13 0:81cd913c5e43 1828 _virtualPort->putc(GFX_F_txt_FGcolour);
martin13 0:81cd913c5e43 1829 _virtualPort->putc(Color >> 8);
martin13 0:81cd913c5e43 1830 _virtualPort->putc(Color);
martin13 0:81cd913c5e43 1831 return GetAckResp();
martin13 0:81cd913c5e43 1832 }
martin13 0:81cd913c5e43 1833
martin13 0:81cd913c5e43 1834 word Diablo_Serial_4DLib::txt_FontID(word FontNumber)
martin13 0:81cd913c5e43 1835 {
martin13 0:81cd913c5e43 1836 _virtualPort->putc(GFX_F_txt_FontID >> 8);
martin13 0:81cd913c5e43 1837 _virtualPort->putc(GFX_F_txt_FontID);
martin13 0:81cd913c5e43 1838 _virtualPort->putc(FontNumber >> 8);
martin13 0:81cd913c5e43 1839 _virtualPort->putc(FontNumber);
martin13 0:81cd913c5e43 1840 return GetAckResp();
martin13 0:81cd913c5e43 1841 }
martin13 0:81cd913c5e43 1842
martin13 0:81cd913c5e43 1843 word Diablo_Serial_4DLib::txt_Height(word Multiplier)
martin13 0:81cd913c5e43 1844 {
martin13 0:81cd913c5e43 1845 _virtualPort->putc(GFX_F_txt_Height >> 8);
martin13 0:81cd913c5e43 1846 _virtualPort->putc(GFX_F_txt_Height);
martin13 0:81cd913c5e43 1847 _virtualPort->putc(Multiplier >> 8);
martin13 0:81cd913c5e43 1848 _virtualPort->putc(Multiplier);
martin13 0:81cd913c5e43 1849 return GetAckResp();
martin13 0:81cd913c5e43 1850 }
martin13 0:81cd913c5e43 1851
martin13 0:81cd913c5e43 1852 word Diablo_Serial_4DLib::txt_Inverse(word Inverse)
martin13 0:81cd913c5e43 1853 {
martin13 0:81cd913c5e43 1854 _virtualPort->putc(GFX_F_txt_Inverse >> 8);
martin13 0:81cd913c5e43 1855 _virtualPort->putc(GFX_F_txt_Inverse);
martin13 0:81cd913c5e43 1856 _virtualPort->putc(Inverse >> 8);
martin13 0:81cd913c5e43 1857 _virtualPort->putc(Inverse);
martin13 0:81cd913c5e43 1858 return GetAckResp();
martin13 0:81cd913c5e43 1859 }
martin13 0:81cd913c5e43 1860
martin13 0:81cd913c5e43 1861 word Diablo_Serial_4DLib::txt_Italic(word Italic)
martin13 0:81cd913c5e43 1862 {
martin13 0:81cd913c5e43 1863 _virtualPort->putc(GFX_F_txt_Italic >> 8);
martin13 0:81cd913c5e43 1864 _virtualPort->putc(GFX_F_txt_Italic);
martin13 0:81cd913c5e43 1865 _virtualPort->putc(Italic >> 8);
martin13 0:81cd913c5e43 1866 _virtualPort->putc(Italic);
martin13 0:81cd913c5e43 1867 return GetAckResp();
martin13 0:81cd913c5e43 1868 }
martin13 0:81cd913c5e43 1869
martin13 0:81cd913c5e43 1870 void Diablo_Serial_4DLib::txt_MoveCursor(word Line, word Column)
martin13 0:81cd913c5e43 1871 {
martin13 0:81cd913c5e43 1872 _virtualPort->putc(GFX_F_txt_MoveCursor >> 8);
martin13 0:81cd913c5e43 1873 _virtualPort->putc(GFX_F_txt_MoveCursor);
martin13 0:81cd913c5e43 1874 _virtualPort->putc(Line >> 8);
martin13 0:81cd913c5e43 1875 _virtualPort->putc(Line);
martin13 0:81cd913c5e43 1876 _virtualPort->putc(Column >> 8);
martin13 0:81cd913c5e43 1877 _virtualPort->putc(Column);
martin13 0:81cd913c5e43 1878 GetAck();
martin13 0:81cd913c5e43 1879 }
martin13 0:81cd913c5e43 1880
martin13 0:81cd913c5e43 1881 word Diablo_Serial_4DLib::txt_Opacity(word TransparentOpaque)
martin13 0:81cd913c5e43 1882 {
martin13 0:81cd913c5e43 1883 _virtualPort->putc(GFX_F_txt_Opacity >> 8);
martin13 0:81cd913c5e43 1884 _virtualPort->putc(GFX_F_txt_Opacity);
martin13 0:81cd913c5e43 1885 _virtualPort->putc(TransparentOpaque >> 8);
martin13 0:81cd913c5e43 1886 _virtualPort->putc(TransparentOpaque);
martin13 0:81cd913c5e43 1887 return GetAckResp();
martin13 0:81cd913c5e43 1888 }
martin13 0:81cd913c5e43 1889
martin13 0:81cd913c5e43 1890 void Diablo_Serial_4DLib::txt_Set(word Func, word Value)
martin13 0:81cd913c5e43 1891 {
martin13 0:81cd913c5e43 1892 _virtualPort->putc(GFX_F_txt_Set >> 8);
martin13 0:81cd913c5e43 1893 _virtualPort->putc(GFX_F_txt_Set);
martin13 0:81cd913c5e43 1894 _virtualPort->putc(Func >> 8);
martin13 0:81cd913c5e43 1895 _virtualPort->putc(Func);
martin13 0:81cd913c5e43 1896 _virtualPort->putc(Value >> 8);
martin13 0:81cd913c5e43 1897 _virtualPort->putc(Value);
martin13 0:81cd913c5e43 1898 GetAck();
martin13 0:81cd913c5e43 1899 }
martin13 0:81cd913c5e43 1900
martin13 0:81cd913c5e43 1901 word Diablo_Serial_4DLib::txt_Underline(word Underline)
martin13 0:81cd913c5e43 1902 {
martin13 0:81cd913c5e43 1903 _virtualPort->putc(GFX_F_txt_Underline >> 8);
martin13 0:81cd913c5e43 1904 _virtualPort->putc(GFX_F_txt_Underline);
martin13 0:81cd913c5e43 1905 _virtualPort->putc(Underline >> 8);
martin13 0:81cd913c5e43 1906 _virtualPort->putc(Underline);
martin13 0:81cd913c5e43 1907 return GetAckResp();
martin13 0:81cd913c5e43 1908 }
martin13 0:81cd913c5e43 1909
martin13 0:81cd913c5e43 1910 word Diablo_Serial_4DLib::txt_Width(word Multiplier)
martin13 0:81cd913c5e43 1911 {
martin13 0:81cd913c5e43 1912 _virtualPort->putc(GFX_F_txt_Width >> 8);
martin13 0:81cd913c5e43 1913 _virtualPort->putc(GFX_F_txt_Width);
martin13 0:81cd913c5e43 1914 _virtualPort->putc(Multiplier >> 8);
martin13 0:81cd913c5e43 1915 _virtualPort->putc(Multiplier);
martin13 0:81cd913c5e43 1916 return GetAckResp();
martin13 0:81cd913c5e43 1917 }
martin13 0:81cd913c5e43 1918
martin13 0:81cd913c5e43 1919 word Diablo_Serial_4DLib::txt_Wrap(word Position)
martin13 0:81cd913c5e43 1920 {
martin13 0:81cd913c5e43 1921 _virtualPort->putc(GFX_F_txt_Wrap >> 8);
martin13 0:81cd913c5e43 1922 _virtualPort->putc(GFX_F_txt_Wrap);
martin13 0:81cd913c5e43 1923 _virtualPort->putc(Position >> 8);
martin13 0:81cd913c5e43 1924 _virtualPort->putc(Position);
martin13 0:81cd913c5e43 1925 return GetAckResp();
martin13 0:81cd913c5e43 1926 }
martin13 0:81cd913c5e43 1927
martin13 0:81cd913c5e43 1928 word Diablo_Serial_4DLib::txt_Xgap(word Pixels)
martin13 0:81cd913c5e43 1929 {
martin13 0:81cd913c5e43 1930 _virtualPort->putc(GFX_F_txt_Xgap >> 8);
martin13 0:81cd913c5e43 1931 _virtualPort->putc(GFX_F_txt_Xgap);
martin13 0:81cd913c5e43 1932 _virtualPort->putc(Pixels >> 8);
martin13 0:81cd913c5e43 1933 _virtualPort->putc(Pixels);
martin13 0:81cd913c5e43 1934 return GetAckResp() ;
martin13 0:81cd913c5e43 1935 }
martin13 0:81cd913c5e43 1936
martin13 0:81cd913c5e43 1937 word Diablo_Serial_4DLib::txt_Ygap(word Pixels)
martin13 0:81cd913c5e43 1938 {
martin13 0:81cd913c5e43 1939 _virtualPort->putc(GFX_F_txt_Ygap >> 8);
martin13 0:81cd913c5e43 1940 _virtualPort->putc(GFX_F_txt_Ygap);
martin13 0:81cd913c5e43 1941 _virtualPort->putc(Pixels >> 8);
martin13 0:81cd913c5e43 1942 _virtualPort->putc(Pixels);
martin13 0:81cd913c5e43 1943 return GetAckResp() ;
martin13 0:81cd913c5e43 1944 }
martin13 0:81cd913c5e43 1945
martin13 0:81cd913c5e43 1946 word Diablo_Serial_4DLib::file_CallFunction(word Handle, word ArgCount, GFX_t4DWordArray Args)
martin13 0:81cd913c5e43 1947 {
martin13 0:81cd913c5e43 1948 _virtualPort->putc(GFX_F_file_CallFunction >> 8);
martin13 0:81cd913c5e43 1949 _virtualPort->putc(GFX_F_file_CallFunction);
martin13 0:81cd913c5e43 1950 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1951 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1952 _virtualPort->putc(ArgCount >> 8);
martin13 0:81cd913c5e43 1953 _virtualPort->putc(ArgCount);
martin13 0:81cd913c5e43 1954 WriteWords(Args, ArgCount);
martin13 0:81cd913c5e43 1955 return GetAckResp();
martin13 0:81cd913c5e43 1956 }
martin13 0:81cd913c5e43 1957
martin13 0:81cd913c5e43 1958 word Diablo_Serial_4DLib::sys_GetModel(char * ModelStr)
martin13 0:81cd913c5e43 1959 {
martin13 0:81cd913c5e43 1960 _virtualPort->putc(GFX_F_sys_GetModel >> 8);
martin13 0:81cd913c5e43 1961 _virtualPort->putc(GFX_F_sys_GetModel);
martin13 0:81cd913c5e43 1962 return GetAckResStr(ModelStr);
martin13 0:81cd913c5e43 1963 }
martin13 0:81cd913c5e43 1964
martin13 0:81cd913c5e43 1965 word Diablo_Serial_4DLib::sys_GetVersion()
martin13 0:81cd913c5e43 1966 {
martin13 0:81cd913c5e43 1967 _virtualPort->putc(GFX_F_sys_GetVersion >> 8);
martin13 0:81cd913c5e43 1968 _virtualPort->putc(GFX_F_sys_GetVersion);
martin13 0:81cd913c5e43 1969 return GetAckResp();
martin13 0:81cd913c5e43 1970 }
martin13 0:81cd913c5e43 1971
martin13 0:81cd913c5e43 1972 word Diablo_Serial_4DLib::sys_GetPmmC()
martin13 0:81cd913c5e43 1973 {
martin13 0:81cd913c5e43 1974 _virtualPort->putc(GFX_F_sys_GetPmmC >> 8);
martin13 0:81cd913c5e43 1975 _virtualPort->putc(GFX_F_sys_GetPmmC);
martin13 0:81cd913c5e43 1976 return GetAckResp();
martin13 0:81cd913c5e43 1977 }
martin13 0:81cd913c5e43 1978
martin13 0:81cd913c5e43 1979 word Diablo_Serial_4DLib::writeString(word Handle, char * StringOut)
martin13 0:81cd913c5e43 1980 {
martin13 0:81cd913c5e43 1981 _virtualPort->putc(GFX_F_writeString >> 8);
martin13 0:81cd913c5e43 1982 _virtualPort->putc(GFX_F_writeString);
martin13 0:81cd913c5e43 1983 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1984 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1985 WriteChars(StringOut) ;
martin13 0:81cd913c5e43 1986 return GetAckResp() ;
martin13 0:81cd913c5e43 1987 }
martin13 0:81cd913c5e43 1988
martin13 0:81cd913c5e43 1989 word Diablo_Serial_4DLib::readString(word Handle, char * StringIn)
martin13 0:81cd913c5e43 1990 {
martin13 0:81cd913c5e43 1991 _virtualPort->putc(GFX_F_readString >> 8);
martin13 0:81cd913c5e43 1992 _virtualPort->putc(GFX_F_readString);
martin13 0:81cd913c5e43 1993 _virtualPort->putc(Handle >> 8);
martin13 0:81cd913c5e43 1994 _virtualPort->putc(Handle);
martin13 0:81cd913c5e43 1995 return GetAckResStr(StringIn);
martin13 0:81cd913c5e43 1996 }
martin13 0:81cd913c5e43 1997
martin13 0:81cd913c5e43 1998 void Diablo_Serial_4DLib::blitComtoDisplay(word X, word Y, word Width, word Height, GFX_t4DByteArray Pixels)
martin13 0:81cd913c5e43 1999 {
martin13 0:81cd913c5e43 2000 _virtualPort->putc(GFX_F_blitComtoDisplay >> 8);
martin13 0:81cd913c5e43 2001 _virtualPort->putc(GFX_F_blitComtoDisplay);
martin13 0:81cd913c5e43 2002 _virtualPort->putc(X >> 8);
martin13 0:81cd913c5e43 2003 _virtualPort->putc(X);
martin13 0:81cd913c5e43 2004 _virtualPort->putc(Y >> 8);
martin13 0:81cd913c5e43 2005 _virtualPort->putc(Y);
martin13 0:81cd913c5e43 2006 _virtualPort->putc(Width >> 8);
martin13 0:81cd913c5e43 2007 _virtualPort->putc(Width);
martin13 0:81cd913c5e43 2008 _virtualPort->putc(Height >> 8);
martin13 0:81cd913c5e43 2009 _virtualPort->putc(Height);
martin13 0:81cd913c5e43 2010 WriteBytes(Pixels, Width*Height*2);
martin13 0:81cd913c5e43 2011 GetAck() ;
martin13 0:81cd913c5e43 2012 }
martin13 0:81cd913c5e43 2013
martin13 0:81cd913c5e43 2014 word Diablo_Serial_4DLib::file_FindFirstRet(char * Filename, char * StringIn)
martin13 0:81cd913c5e43 2015 {
martin13 0:81cd913c5e43 2016 _virtualPort->putc(GFX_F_file_FindFirstRet >> 8) ;
martin13 0:81cd913c5e43 2017 _virtualPort->putc(GFX_F_file_FindFirstRet) ;
martin13 0:81cd913c5e43 2018 WriteChars(Filename) ;
martin13 0:81cd913c5e43 2019 return GetAckResStr(StringIn) ;
martin13 0:81cd913c5e43 2020 }
martin13 0:81cd913c5e43 2021
martin13 0:81cd913c5e43 2022 word Diablo_Serial_4DLib::file_FindNextRet(char * StringIn)
martin13 0:81cd913c5e43 2023 {
martin13 0:81cd913c5e43 2024 _virtualPort->putc(GFX_F_file_FindNextRet >> 8) ;
martin13 0:81cd913c5e43 2025 _virtualPort->putc(GFX_F_file_FindNextRet) ;
martin13 0:81cd913c5e43 2026 return GetAckResStr(StringIn) ;
martin13 0:81cd913c5e43 2027 }
martin13 0:81cd913c5e43 2028
martin13 0:81cd913c5e43 2029 void Diablo_Serial_4DLib::setbaudWait(word Newrate)
martin13 0:81cd913c5e43 2030 {
martin13 0:81cd913c5e43 2031 _virtualPort->putc(GFX_F_setbaudWait >> 8);
martin13 0:81cd913c5e43 2032 _virtualPort->putc(GFX_F_setbaudWait);
martin13 0:81cd913c5e43 2033 _virtualPort->putc(Newrate >> 8);
martin13 0:81cd913c5e43 2034 _virtualPort->putc(Newrate);
martin13 0:81cd913c5e43 2035 SetThisBaudrate(Newrate); // change this systems baud rate to match new display rate, ACK is 100ms away
martin13 0:81cd913c5e43 2036 GetAck() ;
martin13 0:81cd913c5e43 2037 }