
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> > > > > > > Hallo Forum, > Hallo Dominique! > > > Mein Problem ist LCD_PRINT. Derzeit übergebe ich an Adresse $0A1 den HEX-Wert > > des darzustellenden Zeichens. Dabei muss ich bei Zeichen > 1 immer LCD_PRINT > > erneut aufrufen. Die Zeichen werden gegenüber CC_Basic trotzdem sehr schnell an- > > gezeigt. > > Jo, ist die klassiche Weise Zeichen darzustellen. > > > Die Zeichen sind im CC-Basic definiert. Ich würde aber gern schreiben: > > > > sys LCD_LINE1:sys LCD_PRINT:print"LEISTUNG:" > > > > Mach doch! ;-) > > > Leider bin ich dafür ein DAU und würde mich über einen eventuellen > > Lösungsweg freuen (brauche nur einen Tip wo ich ansetzen muss). > > Anbei der bisherige asm-Code, mit der Bitte um Verbesserungen: > > Der Lösungsweg ist eigentlich ganz einfach (und wurde schon zu Zeiten des C64 und dex ZX Spectrums verwendet... daher habe ich auch die Idee): die Routine LCD_PRINT muss über den Basic-Programmzeiger schauen, ob das nächste Basic-Token ein PRINT ist. Ist das der Fall, überliest die Routine das Token und gibt die folgenden Zeichen im Basic-Speicherbereich bis zur nächsten NULL (terminiert den String) aus. Ganz einfach, ne?! :-) > Denk dran, daß Du den Basic-Programmzeiger hochzählen musst, damit er am Ende Deines LCD_PRINT auf dem nächsten Token nach dem PRINT-Befehl steht, sonst stürzt Dein Programm ab. > Beachte auch, daß Du so NUR Strings ausgeben kannst! Bei Variablen, numerischen Werten, Formeln, etc. funktioniert das nicht! > Ich verwende eine solche Routine schon eine Weile erfolgreich mit meinem I2C-Display. > > > Cu Dominique > Good luck > Hy Carsten, thx für die Antwort, aber bis dato nur "bömische Dörfer". Wie beschrieben -> war mein erstes asm-Proggi. Werde mal schauen, wie ich das realisieren kann. Derzeit weiss ich noch gar nicht, wo ich "über den Basic-Programmzeiger" schauen kann. Das mit dem "Good luck" trifft voll ins Schwarze! Bis dahin ... Cu Dominique |
| Antwort schreiben |