Hallo in die werte Runde!
Könnte sein, daß das schon mal hier irgendwo angesprochen wurde.
Ich finde es wirklich sehr umständlich, eine 16 Bit Zahl (z.B. der Score bei einem Spiel) auf dem Spiel darzustellen. Man muss die Zahl dann immer umständlich zerlegen oder am besten gar nicht als 16 Bit Zahl speichern, sondern gleich die einzelnen Ziffern der Zahl getrennt speichern und dann entsprechend hochzählen.
Schöner wäre es aber tatsächlich den Score in einer Zahl zu speichern und diese dann darzustellen.
Gibt es da eine einfache und pfiffige Lösung??
LG
Peter
Score darstellen
Moderator: Rockford
- LarsImNetz
- Beiträge: 166
- Registriert: 24.08.2021 18:27
- Has thanked: 125 times
- Been thanked: 87 times
- Kontaktdaten:
Re: Score darstellen
Ja!
Für Game-Scores verwende ich grundsätzlich BCD Zahlen. Ich brauche die Zahl im Spiel nicht als 16/32/64bit Zahl. Ich verwende BCD. Jedes Byte enthält dann 2 Stellen. Fertig.
Add und Sub funktionieren sehr einfach, wie man es sonst gewohnt ist. SED, CLD muss man entsprechend setzen.
Für die Anzeige lässt sich die BCD Zahl sehr flott in ihre Nibble Values zerlegen die dann als Index in einer Hex-Zahlen-Tabelle anzeigen lassen ist ein Selbstgänger.
Konvertierung von BCD in Binär gibt es auch irgendwo. "Normalerweise" braucht man es aber nicht, vielleicht, wenn man den Score unbedingt auf das "schreibgeschützte" ATR Medium in FujiNet speichern möchte. Dann könnte man es konvertieren, aber im Spiel ist es nicht notwendig, da verwendet man BCD.
LG
Lars
Für Game-Scores verwende ich grundsätzlich BCD Zahlen. Ich brauche die Zahl im Spiel nicht als 16/32/64bit Zahl. Ich verwende BCD. Jedes Byte enthält dann 2 Stellen. Fertig.
Add und Sub funktionieren sehr einfach, wie man es sonst gewohnt ist. SED, CLD muss man entsprechend setzen.
Für die Anzeige lässt sich die BCD Zahl sehr flott in ihre Nibble Values zerlegen die dann als Index in einer Hex-Zahlen-Tabelle anzeigen lassen ist ein Selbstgänger.
Konvertierung von BCD in Binär gibt es auch irgendwo. "Normalerweise" braucht man es aber nicht, vielleicht, wenn man den Score unbedingt auf das "schreibgeschützte" ATR Medium in FujiNet speichern möchte. Dann könnte man es konvertieren, aber im Spiel ist es nicht notwendig, da verwendet man BCD.
LG
Lars
- DjayBee
- Beiträge: 698
- Registriert: 17.08.2021 04:02
- Has thanked: 428 times
- Been thanked: 203 times
- Kontaktdaten:
Re: Score darstellen
Ist das mit einem ORA nicht viel Speichereffizienter?LarsImNetz hat geschrieben: ↑14.04.2024 19:17Für die Anzeige lässt sich die BCD Zahl sehr flott in ihre Nibble Values zerlegen die dann als Index in einer Hex-Zahlen-Tabelle anzeigen lassen ist ein Selbstgänger.
Code: Alles auswählen
lda ByteMitZiffern
pha
jsr bcd2scrlo
sta SpeicherstelleNiederwertigeZiffer
pla
jsr bcd2scrhi
sta SpeicherstelleHoeherwertigeZiffer
; und weiter geht's
bcd2scrhi
lsr
lsr
lsr
lsr
bcd2scrlo
and #$f
ora #$10
; ora #$90 für invers
; ora #$30 für ATASCII
rts
- Dr. Irata
- Beiträge: 954
- Registriert: 24.08.2021 14:40
- Has thanked: 114 times
- Been thanked: 283 times
- Kontaktdaten:
Re: Score darstellen
... vielen Dank an Lars und DjayBee für die Antworten und auch Janko für die Erklärung auf direktem Weg.
Das hat mir sehr weitergeholfen und jetzt ging der Code sehr einfach umzusetzen.
LG
Peter
Das hat mir sehr weitergeholfen und jetzt ging der Code sehr einfach umzusetzen.
LG
Peter
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast