Moin!
Ich habe heute mal etwas mit Assembly herumexperimentiert und eine Routine geschrieben, mit der man ein 2*2 großes Objekt aus Bildschirmzeichen über den Bildschirm bewegen kann. Funzt ganz gut, nur wenn die Position der unteren beiden Zeichen über den 256-Byte großen Bereich hinausgeht, erscheint dieser untere Teil am Anfang des 256-Byte-Bereiches, anstatt im nächsten. Das sieht dann ungefähr so aus:
#.....CD.......................................
..............................................
..............................................
..............AB..............................
..............................................
..............................................
#
Das Objekt besteht aus den Zeichen ABCD, wobei CD unter AB steht. Wie in diesem Beispiel schön zu sehen ist, befindet sich AB an der richtigen Stelle (nehmen wir mal an: $04DA), aber CD befindet sich $0404, da in der Routine CD gleich direkt unter AB gesetzt wird. Aber ich habe eine Überprüfungsroutine eingesetzt, die prüft, ob für CD der Bereich überschritten wird (also im Beispiel ab $04D8) und entsprechend handelt (also $04DA + $28 und für CD auf $0504 setzen). Aber es funktioniert nicht so wie es soll. CD erscheint immer noch an einer völlig verkehrten Stelle. Was mache ich falsch? Wie muß eine korrekte Routine aussehen, die auf Seitenüberschreitung prüft?
mfg
Metalmorphosis