Wydaje mi sie ze jest blad w bibliotece colaczonej do mads'a
Chodzio plik: /examples/LIBRARIES/graphics/lib/circle.asm
nie pasuje mi ten fragment:
;og := mo + y + y + 1;
lda zpage+zp.mo
sec ; ustawienie znacznika przeniesienia C podczas dodawania
adc zpage+zp.y ; spowoduje ze wynik takiego dodawania bedzie zwiekszony o 1
adc zpage+zp.y
sta zpage+zp.og
;mo := og;
sta zpage+zp.mo
;ou := og - x - x + 1;
clc ; skasowanie znacznika przeniesienia C podczas odejmowania
sbc zpage+zp.x ; spowoduje ze wynik takiego odejmowania bedzie zwiekszony o 1
sbc zpage+zp.x
sta zpage+zp.ou
Nie powinno to wygladac mniejwiecej tak?:
;og := mo + y + y + 1;
lda zpage+zp.mo
sec ; ustawienie znacznika przeniesienia C podczas dodawania
adc zpage+zp.y ; spowoduje ze wynik takiego dodawania bedzie zwiekszony o 1
CLC
adc zpage+zp.y
sta zpage+zp.og
;mo := og;
sta zpage+zp.mo
;ou := og - x - x + 1;
SEC ; skasowanie znacznika przeniesienia C podczas odejmowania
sbc zpage+zp.x ; spowoduje ze wynik takiego odejmowania bedzie ZMNIEJSZONY o 1
SEC
sbc zpage+zp.x
CLC
ADC #1
sta zpage+zp.ou
Jezeli sie myle to prosze o wytlumaczenie, ale po tych poprawkach wyniki wyszly mi jednakowe do procedury w pascalu z tej strony:
http://www.atari.org.pl/artykul/kurs-as … a-cz.-8/31
btw. Kto jest autorem tej 8 bitowej implementacji tego algorytmu ? ew skad sie wzielo?
w.