Score darstellen

Moderator: Rockford

Antworten
Benutzeravatar
Dr. Irata
Beiträge: 950
Registriert: 24.08.2021 14:40
Has thanked: 113 times
Been thanked: 275 times
Kontaktdaten:

Score darstellen

Beitrag von Dr. Irata »

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

Benutzeravatar
LarsImNetz
Beiträge: 160
Registriert: 24.08.2021 18:27
Has thanked: 117 times
Been thanked: 85 times
Kontaktdaten:

Re: Score darstellen

Beitrag von LarsImNetz »

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

Benutzeravatar
DjayBee
Beiträge: 688
Registriert: 17.08.2021 04:02
Has thanked: 421 times
Been thanked: 201 times
Kontaktdaten:

Re: Score darstellen

Beitrag von DjayBee »

LarsImNetz hat geschrieben:
14.04.2024 19:17
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.
Ist das mit einem ORA nicht viel Speichereffizienter?

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

Benutzeravatar
Dr. Irata
Beiträge: 950
Registriert: 24.08.2021 14:40
Has thanked: 113 times
Been thanked: 275 times
Kontaktdaten:

Re: Score darstellen

Beitrag von Dr. Irata »

... 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

Antworten

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast