Page 1 of 1

Negative values passed to Chr() generate an error

Posted: Tue Jan 09, 2024 5:43 am
by DeanH
I have spotted a difference between 6.01 and 6.04 / 6.10 with the Chr() function.

Using 6.10 beta 1 and 6.04 LTS, ASM, a negative value passed to Chr() generates an error. With 6.01 LTS no error.

Code: Select all

;Error if run in 6.04 or 6.10, but no error in 6.01
a = -30
a$ = Chr(a)

Code: Select all

;No error with 6.04 and 6.10
a = -30
a = (a & 65535)
a$ = Chr(a)

Re: Negative values passed to Chr() generate an error

Posted: Tue Jan 09, 2024 8:32 am
by Little John
DeanH wrote: Tue Jan 09, 2024 5:43 am Using 6.10 beta 1 and 6.04 LTS, ASM, a negative value passed to Chr() generates an error.
Doing so is an error. So this is no bug.

Re: Negative values passed to Chr() generate an error

Posted: Tue Jan 09, 2024 2:36 pm
by Olli
:shock:

I wish you a happy new year, preferably positive.

Re: Negative values passed to Chr() generate an error

Posted: Tue Jan 09, 2024 3:06 pm
by juergenkulow

Re: Negative values passed to Chr() generate an error

Posted: Tue Jan 09, 2024 3:16 pm
by SPH

Code: Select all

    For i=1 To u
      z= ReadByte(#src)
      If z<0
        z+256
      EndIf
      a$+Chr(z)
    Next

Re: Negative values passed to Chr() generate an error

Posted: Tue Jan 09, 2024 10:58 pm
by DeanH
I was not sure if it was classified as a bug. I am fully aware the generated error and documentation is correct. But it is a difference in behaviour and it may catch other code. I picked this up when transferring data in a file from one library system to a different one.