Never ever kriegt man das mit POKE auch nur annähernd so schnell hin!
Die Geschwindigkeit ist mir ehrlich gesagt voll Banane ![]()
Aber dein Programm ist klasse, ich guck mal ob ich damit zum Ziel komme, super ![]()
Never ever kriegt man das mit POKE auch nur annähernd so schnell hin!
Die Geschwindigkeit ist mir ehrlich gesagt voll Banane ![]()
Aber dein Programm ist klasse, ich guck mal ob ich damit zum Ziel komme, super ![]()
Aber du musst doch gar nicht alle 25 Einträge neu printen? Du setzt den Cursor auf die invertierte Zeile und printest da die Normalversion hin. Dann setzt du den Cursor auf die ausgewählte Zeile und printest dort die invertierte Version hin - feddisch!
Und generell: Im Bildschirm rumzuPOKEn ist saulangsam, mit PRINT ist man fast immer besser dran.
Ja, das ist klar. Ich bekomme aber ein Problem, wenn ich z.B. vier volle Bildschirme mit Auswahlmöglichkeiten habe, brauche ich bereits 100 Variablen, und da kommen dann ja nochmal einige dazu für das Programm selber. Daher hatte ich überlegt das über den Bildschirmspeicher direkt zu lösen ![]()
Ich schreib mal ein paar Testroutinen, die von hexfile erwähnte Lösung von Mike sieht schon sehr gut aus ![]()
SkulleateR Hmm... wenn Du das mit einer Schleife wie von mir erwähnt erledigst, ist der nicht gewählte Eintrag doch automatisch nicht invertiert? Ich glaube, es ist so die schnellste Methode, wenn Du nicht über einen kurzen Assembler-Schnipp gehen willst.
Ja das stimmt, da aber unter Umständen bis zu 25 Einträge auswählbar sein werden und mit einer Schleife immer alles neu gePRINTet wird, dauert das u.U. länger als PEEK/POKE .... ich teste das mal aus ...
Ansonsten könntest du dir eine kleine Routine z.B. in den Kassettenpuffer legen die dir die Arbeit des invertieren abnimmt.
Klar, aber es sollte schon in Basic realisiert werden ![]()
Also ich würde das über ein Array lösen.
Und dann in einer Schleife wie
Aber dann würde er ja immer ALLE Einträge neu PRINTen, das stelle ich mir bei einem kompletten Bildschirm schwierig vor ![]()
Ich hab ausserdem vergessen, dass der alte Eintrag dann ja auch noch wieder als nicht-invertiert dargestellt werden muss ... hmmm, wahrscheinlich macht es doch mehr Sinn, den Eintrag mit einem Sonderzeichen davor zu markieren und das wandert dann einfach auf den ausgewählten Eintrag.
Moin ![]()
Ich bastel gerade an einem Programm, dort kommen mehrere Textbildschirme zum Einsatz und der Nutzer muss einen Eintrag wählen. Da ich gerne die kompletten 40 Zeichen einer Zeile nutzen möchte und somit keine Auswahlmöglichkeit ala "Drücken sie Taste 1,2,3 oder 4" noch zusätzlich auf dem Bildschirm haben möchte, läuft das ganze darauf hinaus, dass die aktuelle Auswahl invertiert dargestellt wird, z.B. so :
Bitte melde dich an, um diesen Anhang zu sehen.
Jetzt ist meine Frage wie ich das ganze am besten in BasicV2 umsetzen kann.
Ich kann natürlich alle Einträge in Variablen stopfen und nach der Auswahl einfach den gleichen String nochmal invertiert darstellen, allerdings wollte ich eigentlich gerne über den Bildschirmspeicher arbeiten, dann könnte ich mit A=PEEK(1024+X) die Zeichen auslesen und mit POKE 1024+X,A+128 das Zeichen direkt invertieren, allerdings dürfte das SEHR langsam sein ...
Gibt es eventuell (ausser Maschinencode) noch eine andere Möglichkeit die ich noch nicht kenne
???