005
11.11.2016, 23:13 Uhr
Hobi
|
Das Problem ist jetzt teilweise gelöst. Mein erster Versuch mit einer Lookup Tabelle war vertane Liebesmüh'.
Die Routine beim KC85-3 braucht in etwa 200 Taktzyklen (ohne den ganzen Call-overhead), die Lookuptabelle etwa 180. Die Original-Implementierung ist relativ schnell. Optimieren kann man aber dennoch, wenn man annimmt, dass die Bits 0..1 der jeweiligen Zeile 0 sind, dann wird der Algorithmus einfacher.
Da jeweils 8 Byte "hintereinander" im Speicher liegen, reicht es die Routine innerhalb eines ein 64x4 Feld nur einmal aufzurufen.
Also Bonus gibt es noch einen superschnelles Bildschirm löschen. Die Idee ist zwar geklaut, aber dennoch cool. Der Push HL Befehl braucht nur 11 Zyklen um ein 16 Bit Wort zu schreiben! Selbst beim KC85-4
Quellcode: | ld (hl),a inc hl ... |
brauchen sie noch 22. -- ------------------------------------------- Corontäne ------------------------------------------- Dieser Beitrag wurde am 11.11.2016 um 23:15 Uhr von Hobi editiert. |