@tukinem,
post #505
Nie wiem jak to jest w Amosie ale 1, to moze byc zarowno bajt $01 i wtedy nastepne dane sa nieparzystym adresie, albo jako slowo $0001 i wtedy jest ok.
tablice bajtowe sa ok np.
0,5,6,7,8,66,34
.....
ale musza miec PARZYSTA dlugosc, czyli liczba bajtow musi byc np. 1000, a nie 999 lub 1001.
Jesli dlugosc tablicy jest nieparzysta albo nieznana to w asemblerze sie uzywa na koncu tablicy komendy "even", i ona wyrownuje (dodaje) pusty bajt na koncu danej tablicy o ile jej wielkosc jest nieparzysta, a jak jest parzysta to nie dodaje. Pewnie jakas podobna komenda jest tez w AMOS-ie, ale to Selur sie zna. Niektorzy koderzy zawsze uzywaja komendy "even" po kazdej tablicy lub danych i to jest dobre przyzwyczajenie.
Poza tym zwykle jest iles danych typu bajt, i jezeli np. masz 4 dane typu bajt, w tej kolejnosci:
bajt1
bajt2
bajt3
bajt4
to nastepne dane sa na parzystym offsecie i wszystko bedzie ok.
Ale juz w tej kolejnosci, to bedziesz mial problem:
bajt1
bajt2
bajt3
word1
bajt4
bo slowo (word1) bedzie na nieparzystym offsecie. Oczywiscie da sie odczytac tez word spod nieparzystego adresu na 68000, ale to trzeba specjalnego odczytu uzyc do tego, sporo wolniejszego niz zwykly odczyt.
Ogolnie to mozesz tez zmienic strukture swojego hiscore na taka, i wtedy nie musisz nic definiowac. Powinno zawsze dzialac, o ile to jest tylko 1 zapis, bo przy 2 zapisach po kolei to juz zalezy od dlugosci nazwy gracza czy bedzie parzysta czy nieparzysta.
offset 0 to MOVES to hex value jako slowo/word
offset 2 to PUSHES to hex value jako slowo/word
offset 4 to TIMER/50 to hex value jako slowo/word
offset 6 to NAZWA gracza jako tekst/ascii