PN
Der Swap dient der Zuordung der richtigen Stelle
1Mio, 100tsder, 10tsder, Tausender, Hunderter, Zehner, Einer.
Das hängt davon ab wie man es betrachtet. Wenn ich rechne möchte ich das Ergebnis als ganzes sehen um evtl Fehler usw zu erkennen und spart Bytes. Somit habe ich eine reine Zahlenroutine nur für die Ausgabe von Zahlen.
Wenn man jeder Ziffer der einzelnen Stellen jeweils ein Byte zuordnet kann man das gern machen um es dann mit $30 zu addieren um es quasi als LCD-Ziffer schon parat und abrufbereit zu haben, erfordert je nach Ergebnis aber eben schonmal bis zu 10byte.
Problem wirds geben wenn man das zu früh macht und evtl mit dem Ergebniss weiter rechnen muss...
Ich spare mir das indem ich dafür eine reine Zahlenroutine habe die dann High/Lowbyte auftrennt und $30 dazu addiert
Nun ich nehme an das ZE als Buchstaben zu betrachten sind und Buchstaben brauchen nicht mehr gewandelt werden.
Mach mal einen Doppelklick auf ein Register, dort hast du jetzt mehrere Möglichkeiten einen Wert einzugeben und in HEX/DEZ/OCT/BIN/TEXT darstellen zu lassen. Also klicke mal TEXT an und gebe Z oder E ein. Dann klickst auf Bin oder HEX oder DEZ, da steht dann der Zahlenwert im jeweiligen Zahlensystem. Mal einen Wert von E oder Z als BIN anzeigen lassen und nix machen
Wechsel zur PDF des LCD. Dort ASCII-Tabelle suchen und mal die UPPER und LOWER 4Bit ansehen und vergleichen nun sollte eigentlich ein EUREKA die Synapsen befeuern![]()
Selbst dein Bildschirm beinhaltet diesen Zeichensatz.
absolut korrekt.
40 als DEZ + $30 = $58 in binär 0101 1000 und sollte eigentlich das X sein
15 als DEZ + $30 = $3F in binär 0011 1111 und sollte eigentlich das ? sein
$40 + $30 = $70 in binär 0111 0000 müsste das p sein
$15 + $30 = $45 in binär 0100 0101 müsste das E sein
Die erste Spalte, also $00 bis $0F, sind die Adressen für eigens zu erstellende Zeichen im CHARAKTER-ROM... Heißt du würdest jetzt im Zeichenvorrat-Ram deine eigenen Zeichen adressieren...
Als Assembler "String" wäre das eine Schleife.
Heißt du könntest diese Zahl im RAM ablegen um die Register frei zu machen somit dann gesichert. Und schreibst dir eine Unterroutine wo du dir die gesicherte Zahl in dein/e Register schreibst, $30 dazu addieren gefolgt von LCD_DATA. Vorher solltest du eine Adresse (00 bis 0F) + $80 für Zeile 1 oder für Zeile 2 ($40 bis $4F) + $80 definieren auf die bzw ab die das LCD mit dem setzen der Zeichen beginnen soll.
1. Adresse auf LCD setzen mit LCD_Command
2. Zeichen/Ziffer laden + bearbeiten
3. Zeichen mit LCD_DATA an LCD senden
4. bei weiteren Zeichen Sprung zu 2 solange bis EndeBedingung erkannt wurde die musst du dann für dich kreieren
*LACHT*
Lesezeichen