Jump to content


Recommended Posts


Firstly i love this boostbasic,I cant wait for the full release.

Ok my problem is that i want to use the Chr Function,

I am reading a byte from the serial port as follows


Dim Dat as byte

Dim Buffer as String


if pir1.RCIF = 1 then ' if a character is received then

Dat = rcreg

Buffer = Buffer + Chr(Dat) 'append rs232 character to Buffer



I cant see any reference to any functions like this, is there a way i can transform Dat which is a Byte to a String Character.




sub main()

Dim ErrorPos as Integer

Dim DeadBand as Integer

Dim Sum as Integer

' this works

Sum = ErrorPos + DeadBand

If Sum < 0 then

Goto notnearpos

End if

goto indeadband

' this doesnt

If ( ErrorPos + DeadBand ) < 0 then

goto notnearpos

End if





end sub



also this doesnt fail gracefully


Dim Buffer(10) as byte

sub main()


call BufAdd()


end sub


sub BufAdd()

Buffer = ""

Buffer(0) = 0

End sub


I know theres a deliberate mistake but boost basic gives an access violation.


Keep up the good work


Edited by peterae
Link to post
Share on other sites



Here is a solution:


function Chr( c as char ) as string( 2 )

asm movf _c, W
asm movwf _Chr
asm movlw 0
asm movwf _Chr+1

end function

Sub main() 
Dim c As char

dim buffer(20) as string
dim dat(2) as string

buffer = "hello"
c = 65

buffer = buffer + call Chr( c ) 'append rs232 character to Buffer

Do while 1


end sub




Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...