Funkamateur 01/90

 

AC1-Assemblerprogrammierung

A. Barthel

Die Bildschirmarbeit bei der Assemblerprogrammierung ist oft sehr kompliziert. Das macht sich z.B. bei Spielprogrammen besonders bemerkbar, wenn Spielfiguren bewegt oder Positionen zueinander bestimmt werden sollen. Die Arbeit ist wesentlich einfacher, wenn der 2-KByte-Bildschirm in Zeilen und Spalten aufgeteilt wird, wie es auch in BASIC üblich ist. Das erste der untenstehenden Programme wandelt eine Bildwiederholspeicheradresse (BWSA), die vorher in das Doppelregister HL einzutragen ist, in die entsprechende Zeile und Spalte um. Die Zeile steht dann im Register D und die Spalte in E. Der umgekehrte Vorgang läuft im zweiten Programm ab. Hier wird vorher die Bildschirmposition, ausgedrückt durch Zeile und Spalte, in das Doppelregister DE eingetragen. Das Ergebnis ist dann die zugehörige BWSA im Doppelregister HL. Der Nullpunkt befindet sich in der linken unteren Bildschirmecke. Alle Aus- und Eingabewerte sind Hexadezimalwerte.
Wertebereiche:
BWSA im Doppelregister HL: 1000 bis 17FF
Zeile im Register D: 00 bis 1F
Spalte im Register E: 00 bis 3F
Die beiden Programme prüfen die Einhaltung des Wertebereichs der Eingabewerte nicht!

56 KByte
Listing