Re[2]: [cc65] preprocessor hazzle...

Date view Thread view Subject view

From: groepaz (groepaz_at_gmx.net)
Date: 2002-07-31 01:59:47


Hello Ullrich,

>> i have knocked up a testprog that shows the problem more exactly (and
>> another problem aswell).... attached at the bottom of this mail :)

UvB> Thanks a lot! I'm out of town until tomorrow evening, so don't expect any news
UvB> before thursday.

no problem :)

anyway.... found another thing :=P

that is, the runtime library appearently gets the result of the
modulo-operation wrong - the sign of the remainder to be exact. i have
checked with gcc (uhmz, to lazy to search for any proper definition, i
believe in gcc for that matter ;=P) and it shows that

sign(a % b) == sign (a)

the current implementation applies the same rules to the
modulo-operation as to the division/multiplication here, thus getting
the wrong result in 3 of 4 cases ;=P

however, i have looked at the runtime lib myself and noticed that not
only mod.s and lmod.s would need a patch, but it would probably make
sence to also modify the helper-routines and mul/div routines maybe
aswell to make the code more clean (patching mod.s is easy, but not
quite clean... and patching lmod.s is quite ugly without modified
helper routines).

a dirty hack for mod.s is below...

-- 
Best regards,
 groepaz                            mailto:groepaz_at_gmx.net

--- mod.s

tosmoda0:
        ldx     #0
tosmodax:
        jsr     popsargs        ; Get arguments from stack, adjust sign
        jsr     udiv16          ; Do the division
        ldy     ptr1            ; Result is in sreg, remainder in ptr1
        ldx     ptr1+1

        lda     tmp1            ; get back sign of divisor
        eor     tmp2
        bpl     L3              ; dont adjust
        tya
        jmp     negax           ; Adjust sign
L3:
        tya
        rts


----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.


Date view Thread view Subject view

This archive was generated by hypermail 2.1.3 : 2002-07-31 02:00:26 CEST