m820250830bcd7seg.asm

;; (C) David Vajda
;; 2025-08-30
;; BCD27Seg on Atmega8 with special Error handling

.include "m8def.inc"

ldi r16, HIGH (RAMEND)
out SPH, r16
ldi r16, LOW (RAMEND)
out SPL, r16

;; ich brauche
;; 1.) einen speicherbereich in dem die auszugegebende
;; zahlenfolge steht
;;
;; 2.) einen speicherbereich mit den entsprechenden codes
;;
;; 3.) Der Code mit den Ziffern von 10 .. 15
;; waere gut so ein zu richten, dass er im dynamischen ram
;; sitzt. oder besser, er gilt fuer alle zahlen von 10..15
;; also belegt 6 plaetze, aber davon wiederum 5 fuer "ERRoR"
;; ein zeiger waehlt immer den naechsten platz aus
;; was bei der ausgabe immer desselben zeichens nicht noetig waere

;; (C) David Vajda
;; 2025-08-30
;; Generate Randomized Hex String/Stream
;; (C) David Vajda
;; 2025-08-30
;; Generate Randomized Hex String/Stream
DataStr:
;; unpacked
  .db 0x08, 0x02, 0x0b, 0x0a, 0x02, 0x0f, 0x01, 0x0e, 0x02, 0x00, 0x07, 0x01, 0x0d, 0x02, 0x0f, 0x0b, 0x0d, 0x08, 0x0f, 0x00, 0x0b, 0x0d, 0x0c, 0x05


BCD27SegDecStr:
    .db
;; a ::= (0, 2, 3, 5, 6, 7, 8, 9)
;; b ::= (0, 1, 2, 3, 4, 7, 8, 9)
;; c ::= (0, 1, 3, 4, 5, 6, 7, 8, 9)
;; d ::= (0, 2, 3, 5, 6, 8, 9)
;; e ::= (0, 2, 6, 8)
;; f ::= (0, 4, 5, 6, 8, 9)
;; g ::= (2, 3, 4, 5, 6, 8, 9)