Moin zusammen.
erstmal zum Thema: ich weiß , dass es langsam etwas spät dafür ist, aber das projekt liegt schon seit oktober rum und wartet auf vollendung.
Ich schreibe den Code in Assembler (und dabei würde ich auch gerne bleiben)

Bei http://www.hanf-elektrotechnik.de/ gibt es einen Weihnachtsstern unter Projekte. Dort wird ein MAX 7219 LED-Treiber seriell angesteuert. Für die Ansteuerung hab ich bereits eine Routine fertig, die auch klappen sollte. Jetzt sollen Leuchtmuster ausgegeben werden.
Jedes Muster kann man in Sequenzen aufteilen je 8Byte, was einem Einzelbild entspricht. Interruptgesteuert wird nun alle 500ms das nächste Einzelbild gezeigt.
Als Controller nehme ich einen PIC 16F648A, mit 4kB Programmspeicher

Nun zum Problem: Wie lege ich die Muster ab, sodass ich sie ohne großen aufwand verwalten kann?

Ich möchte es folgendermaßen organisieren:
Ein Muster besteht aus max 24 Sequenzen. Jede Sequenz aus 8Byte, eins für jeden Ast des Sterns (siehe URL oben). Vor jedem dieser Musterblöcke ist ein Byte, dass die Länge des Musters angibt (ich will ja manchmal auch kürzere Muster mit nur 4 Sequenzen). Das macht also pro Muster 192Byte Daten + vorne weg ein Infobyte zur länge der Muster.

Es gibt die DT anweisung, mit der man ein oder mehrere Byte hintereinander im Programmspeicher als RTWL Befehl(Return with Literal in Work Register) ablegen kann.

Aber wie lese ich nun diese Stellen mit den Blöcken richtig aus?
Und wo muss ich diese platzieren, damit genug platz ist?
Muss ich indirekte adressierung benutzen?

Ich hoffe jemand kann mir helfen. Bei interesse poste ich den Quellcode